• Viernes 19 de Abril de 2024, 20:49

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - kingsizen

Páginas: [1] 2
1
CSS / SASS / LESS / Empezando con CSS
« en: Martes 7 de Septiembre de 2010, 06:17 »
Hola amigos, les comento que hace poco empece con css y tengo algunas dudas.
mi idea es centrar dos divs dentro de un contenedor que queden los dos juntos uno a la izquierda y otro a la derecha

les dejo el codigo a ver que me dicen

Código: Text
  1.  
  2. body {
  3.  
  4. top:0;
  5.     margin:0;
  6.     padding:0px;
  7.     font-family:Helvetica, Arial, sans-serif;
  8.     font-size:62.5%;
  9.     line-height:1.5;
  10.     color:#5f6262;
  11.     background:#f0f9fc;
  12. }
  13. #encabezado
  14. {
  15. background:#006600;
  16. border-bottom:medium #000000;
  17. position:relative;
  18. width:820px;
  19. }
  20.  
  21. #container {
  22.  
  23.  
  24.     position:relative;
  25.     width:920px;
  26.     margin:0 auto;
  27.     padding:0px 40px;
  28.     font-size:1.2em;
  29.     background:#fff url(../images/bg.png) no-repeat -12px -141px;
  30. }
  31.  
  32.  
  33.  
  34. #contenido {
  35.  
  36. text-align:justify;
  37. margin:0 auto;
  38. background-color:#FFFFFF;
  39.  
  40. border:double;
  41. border-color:
  42. #009933;
  43.         padding:10px;
  44.     width: 590px;
  45.    
  46.     font-family: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
  47.     font-size: 16px;
  48.     top: 176px;
  49.  
  50.  
  51. }
  52. #contenido2
  53.  
  54. {
  55.  
  56. top:1000px;
  57.    
  58.    
  59.     text-align:justify;
  60.     margin:0 auto;
  61.     background-color:#FFFFFF;
  62.     border:double;
  63.     border-color:
  64. #009933;
  65.     padding:10px;
  66.     width: 200px;
  67.     font-family: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
  68.     font-size: 16px;
  69.     top: 122px;
  70.     left: 626px;
  71. }
  72. #home
  73. {
  74.  
  75. background:#009900;
  76. }
  77.  
  78.  
  79.  

y este es el codigo html

Código: Text
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml"><head>
  3.  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  4.   <title>ejemplo</title>
  5.  
  6.   <link rel="stylesheet" type="text/css" href="style.css">
  7.  
  8. </head>
  9. <body topmargin="0">
  10.  
  11. <div id="container">
  12.  
  13.  
  14. <div id="home">
  15. <div id="encabezado">
  16. <h1> CABECERA EN FLASH</h1>
  17. </div>
  18. <h2>Segundo encabezado</h2>
  19. <div id="contenido">
  20.  
  21.     <p><strong>blablalalalblablalalalblablalalalblablalalalblablalalal</strong></p>
  22.     <p><strong>blablalalal</strong><strong>blablalalal</strong><strong>blablalalal</strong><strong>blablalalal</strong><strong>blablalalal</strong><strong>blablalalal</strong></p>
  23.     <p><strong>blablalalal</strong><strong>blablalalal</strong><strong>blablalalal</strong><strong>blablalalal</strong></p>
  24. </div>
  25.       <div id="contenido2">
  26.  
  27.    
  28.     <p><strong>Rblablalalalblablalalalblablala</strong></p>
  29.     <p><strong>blablalalal</strong><strong>blablalalal</strong><strong>blablalalal</strong><strong>blablalalal</strong><strong>blablalalal</strong><strong>blablalalal</strong></p>
  30.     <p><strong>blablalalal</strong><strong>blablalalal</strong><strong>blablalalal</strong><strong>blablalalal</strong></p>
  31.     <p><br />
  32.       </p>
  33.     </div>
  34.    
  35.   </div>
  36.   <h2>Noticias</h2>
  37.  
  38.  
  39.  
  40. </div>
  41.  
  42. </body></html>
  43.  

espero su ayuda.
muchas gracias

2
Smalltalk / Nuevo en smalltalk
« en: Miércoles 13 de Mayo de 2009, 05:37 »
saludos amigos, estoy aprendiendo a programar en smalltalk, pero no se como se usa el programa.
tengo el dolphin smalltalk, cuando lo ejecuto sale una ventana en blanco. pero no se donde definir las clases ni como se usa, alguien podria darme algun ejemplo sencillo con algunas indicaciones??
no encuentro ningun manual en ningun lado, me refiero a un manual de como se usa el programa en si, no de programacion en smalltalk.
espero sus respuestas. muchas gracias!

3
C/C++ / problema con ordenamiento antes de rendir el examen
« en: Jueves 7 de Mayo de 2009, 05:28 »
hola amigos con suerte este sea mi ultima consulta:
alguien me puede ayudar con este ordenamiento?
no se porque motivo no funciona.. me devuelve cualquier cosa, tambien me gustaria arrastrar en el ordenamiento el nombre del equipo.
muchas gracias, esperode urgencia su respuesta!!

_____________________________________
edito:
despues de quemarme las pestañas encontre el error
habia un ; al final de un for... increible
ahora el otro problema ke tengo es ke al intentar arrastrar en la busqueda los nombres, siempre me devuelve los mismos . es decir me ordena los puntos, pero para todos usa el mismo nombre de equipo

Código: C
  1.  
  2. # include <stdio.h>
  3. # include <string.h>
  4. # define sub 20
  5.  
  6. struct equis
  7. {
  8.        char nombre[15];
  9.        char presidente[20];
  10.        int puntos;
  11. };
  12. void carga (struct equis [],int *);
  13. void ordena (struct equis [],int);
  14. char* mayor (struct equis [],int);
  15. void menores (struct equis [],int,int);
  16.  
  17. main ()
  18. {
  19.      struct equis equipos[sub];
  20.      int i,cant_e,pts;
  21.  
  22.      char opcion,*equipo[15];
  23.           cant_e=0;
  24.      
  25.      
  26.      do
  27.      {
  28.             printf ("Opcionesn");
  29.             printf ("a) Cargar Datosn");
  30.             printf ("b) lista Ordenada por puntosn");
  31.             printf ("c) Equipo con mas puntosn");
  32.             printf ("d) equipos con menos puntos que el ingresado");
  33.             printf ("e) salirn");
  34.             do
  35.             {
  36.             scanf ("%c",&opcion);
  37.             }while((opcion !='a') && (opcion !='b') && (opcion !='c') && (opcion !='d') && (opcion !='e'));
  38.            
  39.             switch (opcion)
  40.             {
  41.                    case 'a':
  42.                         {
  43.                             carga(equipos,&cant_e);
  44.                                 printf ("total %dn",cant_e);                            
  45.                             }break;
  46.                            
  47.                    case 'b':
  48.                         {
  49.                             ordena(equipos,cant_e);
  50.                             }break;
  51.                    case 'c':
  52.                         {
  53.                             *equipo= mayor (equipos,cant_e);
  54.                             printf ("El equipo de mayor puntaje es %s",*equipo);
  55.                             }break;
  56.                    case 'd':
  57.                         {
  58.                             printf ("Ingrese puntosn");
  59.                             scanf ("%d",&pts);
  60.                             menores (equipos,pts,cant_e);
  61.                         }
  62.             }
  63.  
  64.       }while(opcion !='e');
  65.                    
  66. }
  67.  
  68. void carga (struct equis e[],int *cant)
  69. {
  70.      int i,j;
  71.      char resp;
  72.      i=*cant;
  73.      
  74.      do
  75.      {
  76.              
  77.  
  78.              printf ("Ingrese Nombre Equipon");
  79.                          
  80.              scanf ("%s",e[i].nombre);
  81.              fflush(stdin);
  82.              printf ("Ingrese Nombre Presidenten");
  83.              gets (e[i].presidente);
  84.              printf ("Ingrese Puntosn");
  85.              scanf ("%d",&e[i].puntos);
  86.              ++i;
  87.              printf ("Continuar? s/nn");
  88.              fflush(stdin);
  89.              scanf ("%c",&resp);
  90.              }while (resp !='n');
  91. *cant=i;
  92.  
  93. for (j=0;j<*cant;++j)
  94. {
  95. printf ("%s %d",e[j].nombre,e[j].puntos);
  96.  
  97. }
  98.  
  99. }
  100.      
  101. void ordena (struct equis e[],int cant)
  102. {
  103.      int i,j,k,aux;
  104.      char caux[15];
  105.      aux=0;
  106.      for (i=0;i<cant;i++)
  107.      {
  108.          for (j=1;j<cant;j++)
  109.          {
  110.          if ( e[i].puntos < e[j].puntos)
  111.          {
  112.               aux=e[i].puntos;
  113.               e[i].puntos=e[j].puntos;
  114.               e[j].puntos=aux;
  115.              
  116.               strcpy(caux,e[i].nombre);
  117.               strcpy(e[j].nombre,e[i].nombre);
  118.               strcpy(e[i].nombre,caux);
  119.               }
  120.          }
  121.          }  
  122.      for (k=0;k<cant;++k)
  123.      {
  124.          printf ("%d  n",e[k].puntos);
  125.          }
  126. }
  127.      
  128.      
  129. char* mayor (struct equis e[],int cant)
  130.  
  131. {
  132.       int i,mayor,indice;
  133.       mayor=0;
  134.        indice=0;
  135.       for (i=0;i<cant;++i)
  136.       if (e[i].puntos > mayor)
  137.       {
  138.          mayor=e[i].puntos;
  139.          indice=i;
  140.          }
  141.      
  142. return (e[indice].nombre);
  143. }
  144.  
  145.  
  146. void menores (struct equis e[],int num,int cant)
  147. {
  148.      int i,j;
  149.      j=0;
  150.      char caux[cant][15];
  151.      
  152.      for (i=0;i<cant;++i)
  153.      {
  154.          if (e[i].puntos < num)
  155.          {
  156.                          ++j;
  157.                          strcpy(caux[j],e[i].nombre);
  158.          }
  159.      }
  160.      
  161.      for (i=0;i<cant;++i)
  162.      printf ("%s",caux[i]);
  163. }
  164.                          
  165.          
  166.            
  167.      
  168.      
  169.      
  170.      
  171.      
  172.      
  173.      
  174.      
  175.      
  176.      
  177.      
  178.      
  179.      
  180.      
  181.      
  182.      
  183.      
  184.      
  185.      
  186.      
  187.      
  188.      
  189.  
  190.  
  191.  

4
C/C++ / Re: Retornar un puntero a una estructura
« en: Martes 28 de Abril de 2009, 18:53 »
saludos, aca me guie en el ejemplo que me diste y modifique el codigo segun lo que entendi.
en primer lugar la funcion ahora devuelve un tipo de datos "struct productos" y no un "int" como hacia antes. declare en main un *puntero tambien con el tipo de dato struct productos, que va a recibir el puntero proveniente de la funcion.
ahora no me queda del todo claro, porque en este prototipo

struct productos *buscar (struct productos *p,int cant,char cod[])

se usa *buscar en vez de buscar y porque se usa *p en vez de p[]

espero tu respuesta. muchas gracias!!
aqui va el codigo:

Código: C
  1.  
  2. # include <stdio.h>
  3. # include <string.h>
  4. # define sub 50
  5.  
  6. struct productos
  7. {
  8.        char codigo[5];
  9.        char modelo[10];
  10.        char descripcion[200];
  11.        float precio;
  12.        char codprov[10];
  13.        char nomprov[30];
  14. };
  15.  
  16. void carga (struct productos [],int *);
  17. //void ordenar (struct productos [],int,int);
  18.  
  19. struct productos *buscar (struct productos *,int ,char []);
  20.  
  21.  
  22. main()
  23. {    
  24.       struct productos prod[sub],*puntero;
  25.      int c,cant_prod,codigo_orden;
  26.       char modelo_buscado[10],codigo_buscado[5];
  27.       cant_prod=0;
  28.      
  29.       carga (prod,&cant_prod);
  30.       printf ("%d",cant_prod);
  31.       do
  32.       {
  33.       printf ("------------------------------< Elija Una Opcion >n");
  34.       printf ("1) Ordenarn");
  35.       printf ("2) Mostrarn");
  36.       printf ("3) Buscarn");
  37.       printf ("4) Modificarn");
  38.       printf ("5) Salirn");
  39.       scanf ("%d",&c);
  40.      
  41.       switch (c)
  42.       {
  43.              case 1:
  44.                   {
  45.                   printf ("Ingrese 1 para ordenar por codigo, 2 para ordenar por modelon");
  46.                   scanf ("%d",&codigo_orden);
  47.                   //ordenar (prod,cant_prod,codigo_orden);
  48.                   }break;
  49.              case 2:
  50.                   {
  51.                          printf ("Ingrese Modelo Buscadon");
  52.                          scanf ("%s",modelo_buscado);
  53.                        //  mostrar(prod,cant_prod,modelo_buscado);
  54.                          }break;
  55.              case 3:{
  56.                   printf ("Ingrese codigo buscadon");
  57.                   scanf("%s",codigo_buscado);
  58.                   puntero=buscar(prod,cant_prod,codigo_buscado);
  59.                  
  60.                  
  61.                  
  62.                  
  63.                  
  64.                   }
  65.                          
  66.                  
  67.                   }    
  68.              
  69.      
  70.       }while (c!=5);
  71. }
  72.  
  73. struct productos *buscar (struct productos *p,int cant,char cod[])
  74. {
  75.     int i;
  76.        
  77.     for (i=0;i<cant;++i)
  78.     {
  79.         if (strcmp(cod,(p+i)->codigo)==0)
  80.         return (p+i);
  81.        
  82.        
  83.  
  84. }
  85.  
  86. }
  87.  
  88. void carga (struct productos p[],int *cant )
  89. {
  90.      int i=*cant;
  91.      char r;
  92.      do
  93.      {  
  94.          
  95.          printf ("Ingrese Codigon");
  96.          scanf ("%s",&p[i].codigo);
  97.          fflush (stdin);
  98.          printf ("Ingrese Modelon");
  99.          gets(p[i].modelo);
  100.          printf ("Ingrese Descripcionn");
  101.          gets(p[i].descripcion);
  102.          printf ("Ingrese Precion");
  103.          scanf ("%f",&p[i].precio);        
  104.          printf ("Ingrese Cod proveedorn");
  105.          scanf("%s",p[i].codprov);
  106.          fflush (stdin);                  
  107.          printf ("Ingrese Nombre proveedorn");
  108.          gets(p[i].nomprov);
  109.          i++;
  110.          printf ("Seguir ingresando datos?n");
  111.          fflush (stdin);
  112.          scanf ("%c",&r);
  113.          }while (r !='n');
  114.      *cant=i;
  115. }
  116.  
  117.  
  118.  

5
C/C++ / Re: fflush (stdin) , flusshal. cuando usarlos? como funcionan?
« en: Martes 28 de Abril de 2009, 04:13 »
excelente!! eso queria saber!!... osea ke limpio el buffer tantas veces como "gets" use?

6
C/C++ / Retornar un puntero a una estructura
« en: Lunes 27 de Abril de 2009, 22:45 »
que tal amigos, tengo una nueva pregunta para hacerles. encontre un examen final en el cual se plantea un ejercicio que dice

"... la funcion buscar, busca el producto que coincide con el codigo ingresado y retorna (no muestra) todos los datos de ese producto.

a) recibe los datos de todos los articulos, la cantidad total de articulos y el codigo buscado.
b) retorna en un puntero a la estructura que contiene los datos de ese articulo si es que el codigo existe, en caso contrario retorna un puntero a una estructura con codigo ***** "

aqui va el codigo de lo que estuve haciendo, fijense en la funcion buscar, no tengo idea como se retorna un puntero.. pero intente algo.

desde ya espero su ayuda. muchisimas gracias!!

Código: C
  1.  
  2. # include <stdio.h>
  3. # include <string.h>
  4. # define sub 50
  5.  
  6. struct productos
  7. {
  8.        char codigo[5];
  9.        char modelo[10];
  10.        char descripcion[200];
  11.        float precio;
  12.        char codprov[10];
  13.        char nomprov[30];
  14. };
  15.  
  16. void carga (struct productos [],int *);
  17. int buscar (struct productos [],int ,char []);
  18.  
  19.  
  20. main()
  21. {    
  22.       struct productos prod[sub];
  23.       int *puntero,c,cant_prod,codigo_orden;
  24.       char modelo_buscado[10],codigo_buscado[5];
  25.       cant_prod=0;
  26.      
  27.       carga (prod,&cant_prod);
  28.       printf ("%d",cant_prod);
  29.       do
  30.       {
  31.       printf ("------------------------------< Elija Una Opcion >n");
  32.       printf ("1) Ordenarn");
  33.       printf ("2) Mostrarn");
  34.       printf ("3) Buscarn");
  35.       printf ("4) Modificarn");
  36.       printf ("5) Salirn");
  37.       scanf ("%d",&c);
  38.      
  39.       switch (c)
  40.       {
  41.              case 1:
  42.                   {
  43.                   printf ("Ingrese 1 para ordenar por codigo, 2 para ordenar por modelon");
  44.                   scanf ("%d",&codigo_orden);
  45.                   ordenar (prod,cant_prod,codigo_orden);
  46.                   }break;
  47.              case 2:
  48.                   {
  49.                          printf ("Ingrese Modelo Buscadon");
  50.                          scanf ("%s",modelo_buscado);
  51.                          mostrar(prod,cant_prod,modelo_buscado);
  52.                          }break;
  53.              case 3:{
  54.                   printf ("Ingrese codigo buscadon");
  55.                   scanf("%s",codigo_buscado);
  56.                   *puntero=buscar(prod,cant_prod,codigo_buscado);
  57.                  
  58.                  
  59.                  
  60.                  
  61.                   }
  62.                          
  63.                  
  64.              
  65.              
  66.      
  67.       }while c!=5;
  68. }
  69. int buscar (struct productos p[],int cant,cod[])
  70. {
  71.     int i,*punt;
  72.     for (i=0;i<cant,++i)
  73.     {
  74.         if (strcmp(cod,p[i].codigo)==0)
  75.         *punt=p[i];
  76. }
  77. return *punt;
  78. }
  79.  
  80. void carga (struct productos p[],int *cant )
  81. {
  82.      int i=*cant;
  83.      char r;
  84.      do
  85.      {  
  86.          
  87.          printf ("Ingrese Codigon");
  88.          scanf ("%s",&p[i].codigo);
  89.          /*fflush (stdin);
  90.          printf ("Ingrese Modelon");
  91.          gets(p[i].modelo);
  92.          printf ("Ingrese Descripcionn");
  93.          gets(p[i].descripcion);
  94.          printf ("Ingrese Precion");
  95.          scanf ("%f",&p[i].precio);        
  96.          printf ("Ingrese Cod proveedorn");
  97.          scanf("%s",p[i].codprov);
  98.          fflush (stdin);                  
  99.          printf ("Ingrese Nombre proveedorn");
  100.          gets(p[i].nomprov);*/
  101.          i++;
  102.          printf ("Seguir ingresando datos?n");
  103.          fflush (stdin);
  104.          scanf ("%c",&r);
  105.          }while (r !='n');
  106.      *cant=i;
  107. }
  108.  
  109.  
  110.  

7
C/C++ / Re: fflush (stdin) , flusshal. cuando usarlos? como funcionan?
« en: Lunes 27 de Abril de 2009, 21:46 »
amigos, no me quedo muy claro esto, por lo tanto voy con un ejemplo:

en este ejercicio en la carga  de datos, se saltean algunos gets.. es ahi cuando debo limpiar el buffer??. espero sus respuestas.. muchas gracias!

Código: C
  1.  
  2. # include <stdio.h>
  3. # include <string.h>
  4. # define sub 50
  5.  
  6. struct productos
  7. {
  8.        char codigo[5];
  9.        char modelo[10];
  10.        char descripcion[200];
  11.        float precio;
  12.        char codprov[10];
  13.        char nomprov[30];
  14. };
  15.  
  16. void carga (struct productos [],int *);
  17.  
  18. main()
  19. {    
  20.       struct productos prod[sub];
  21.       int cant_prod;
  22.       cant_prod=0;
  23.      
  24.       carga (prod,&cant_prod);
  25. }
  26.  
  27. void carga (struct productos p[],int *cant )
  28. {
  29.      int i=*cant;
  30.      char r;
  31.      do
  32.      {  
  33.          
  34.          printf ("Ingrese Codigon");
  35.          scanf ("%s",&p[i].codigo);
  36.          [color=#BF0000]//fflush (stdin)????????????????????;[/color]
  37.          printf ("Ingrese Modelon");
  38.          gets(p[i].modelo);
  39.          printf ("Ingrese Descripcionn");
  40.          gets(p[i].descripcion);
  41.          printf ("Ingrese Precion");
  42.          scanf ("%f",&p[i].precio);        
  43.          printf ("Ingrese Cod proveedorn");
  44.          scanf("%s",p[i].codprov);                  
  45.          printf ("Ingrese Nombre proveedorn");
  46.          gets(p[i].nomprov);
  47.          i++;
  48.          printf ("Seguir ingresando datos?n");
  49.          scanf ("%c",&r);
  50.          }while (r !='n');
  51.      *cant=i;
  52. }
  53.  
  54.  

8
C/C++ / Listado de alumnos...
« en: Domingo 26 de Abril de 2009, 01:09 »
Hola amigos aca les traigo un ejercicio que acabo de terminar, pero tengo una pequeña falla. resulta que tengo ke ingesar un numero de comision y el sistema emitir un listado de todos los alumnos de esa comision, junto con sus datos.
aca va el codigo
la fucion listado es la que me presenta el problema. espero me ayuden. muchas gracias!
Código: C
  1. # include <stdio.h>
  2. # include <string.h>
  3. # define sub 1
  4.  
  5.  
  6. struct datos
  7. {
  8.        int legajo;
  9.        char apynom[15];
  10.        char titulo[15];
  11.        int comi;
  12. };
  13.  
  14. void carga (struct datos a[])
  15. {
  16.      int i,valorsete;
  17.      for (i=0;i<sub;i++)
  18.      {
  19.          printf ("Ingrese Legajon");
  20.          scanf ("%d",&a[i].legajo);
  21.          printf ("Ingrese Apellido Y Nombren");
  22.          fflush(stdin);
  23.          gets (a[i].apynom);
  24.          printf ("Ingrese Titulo Nivel Medion");
  25.          gets (a[i].titulo);
  26.          printf ("Ingrese Comisionn");
  27.          scanf ("%d",&a[i].comi);
  28.          
  29.          
  30.               }
  31.          
  32.  
  33. }
  34. void listado (struct datos a[],int com)
  35. {    
  36.      char nombres[sub][15],titulos[sub][15];
  37.      int i,j;
  38.      j=0;
  39.      for (i=0;i<sub;++i)
  40.      {
  41.          if (com == a[i].comi)
  42.          {  
  43.                  j++;
  44.                  strcpy(nombres[j],a[i].apynom);
  45.                  strcpy(titulos[j],a[i].titulo);
  46.                  }
  47.                  }
  48.                  
  49.      printf ("Comision %dn",com);
  50.      printf ("Nombresn");
  51.      printf ("Titulosn");
  52.      for (i=0;i<sub;++i)
  53.      printf ("%s %s",nombres[i],titulos[i]);
  54.          
  55.      }
  56.      
  57. void busca (struct datos a[],int leg)
  58.  
  59. {
  60.     int i,ban;
  61.     for (i=0;i<sub;++i)
  62.     {
  63.         if (leg==a[i].legajo)
  64.         {
  65.             printf("Alumno %s n",a[i].apynom);
  66.             printf ("Comision %d n",a[i].comi);
  67.             printf ("Titulo %s n",a[i].titulo);
  68.             ban=1;
  69.             }
  70.    
  71.      }
  72.      if (ban !=1)
  73.      printf ("Legajo Incorrecton");
  74. }    
  75.  
  76. main()
  77. {
  78.       struct datos alumnos[sub];
  79.       int c,i,opcion,comision,leg;
  80.       do
  81.       {
  82.       printf ("----------------<Seleccione una opcion: n");
  83.       printf ("1) Carga De Datosn");
  84.       printf ("2) Listado de alumnos de una comisionn");
  85.       printf ("3) Buscar Alumnon");
  86.       printf ("4) Finn");
  87.       scanf ("%d",&opcion);
  88.      
  89.       switch (opcion)
  90.       {
  91.              case 1: carga(alumnos);
  92.                      break;
  93.                      
  94.              case 2:
  95.                   {
  96.                            printf ("Ingrese Numero de Comisionn");
  97.                            scanf ("%d",&comision);
  98.                            listado (alumnos,comision);
  99.                            }
  100.                            break;
  101.              case 3:
  102.                   {
  103.                            printf ("Ingrese Un numero de legajon");
  104.                            scanf ("%d",&leg);
  105.                            busca (alumnos,leg);
  106.                            
  107.                            
  108.                            }
  109.              
  110.      
  111.                   }        
  112.                  
  113.                  
  114.                  
  115.      c=getchar();
  116.      c=getchar();      
  117.      }while (opcion!=4);          
  118.                  
  119.                  
  120. }
  121.  

9
C/C++ / Re: fflush (stdin) , flusshal. cuando usarlos? como funcionan?
« en: Viernes 24 de Abril de 2009, 20:54 »
mmm.. sigo sin entender...
como hago para limpiar el buffer? para que sirve limpiar el buffer? cuando tengo que hacerlo?..
espero su respuesta. muchas gracias!

10
C/C++ / fflush (stdin) , flusshal. cuando usarlos? como funcionan?
« en: Viernes 24 de Abril de 2009, 07:11 »
hola amigos del foro. como dice el titulo quisiera saber cuales de estas dos funciones usar para limpiar el buffer, el dev-c++ no reconoce flusshal(), pero en un examen final vi que lo utilizan.

ahora algunas veces por ejemplo tengo:
sentencias;
..;
..;
c=getchar();

y el programa sigue de largo, por lo que para que tome un caracter hay ke ponerle
sentencias;
..;
..;
c=getchar();
c=getchar();

pero si le ponemos
sentencias;
..;
..;
fflush(stdin);
c=getchar();
toma el caracter sin ningun problema.

la pregunta es... cuando utilizar esa funcion??? porque en un programa la incluyo a cada rato y no quiero que se me vuelva un vicio!!, la antepongo siempre ante una toma de caracter o palabra, esta bien?
como funciona exactamente?

muchas gracias. espero sus respuestas!!

11
C/C++ / Re: Ejercicio con estructuras
« en: Viernes 24 de Abril de 2009, 07:03 »
uhhhhhh... tengo mi cerebro quemado, pero he logrado que todo funcione correctamente gracias a tu ayuda.
logre modificar cant_lib mediante un puntero usando una funcion void y termine las otras funciones del programa. ahi te mando el codigo
si le encontras algun error o alguna sugerencia bienvenida sea!!, yo estoy aprendiendo. de lo contrario finalizamos el thread.
pero antes te voy a agradecer la paciencia y la predispocicion que has tenido. muchisimas gracias betopin!  :beer:
Código: C
  1.  
  2. # include <stdio.h>
  3. # include <string.h>
  4. # define sub 1000
  5.  
  6.  
  7.  
  8. struct libreria
  9. {
  10.        char codigo[7];
  11.        char titulo[15];
  12.        char autor[25];
  13.        char editorial[15];
  14.        int existencia;
  15.        float precio;
  16. };
  17.  
  18. void carga_datos (struct libreria l[],int *cant)
  19. {
  20.      int i=*cant;
  21.      int c,j;
  22.      
  23.      do
  24.      {
  25.          
  26.          printf ("Ingrese Codigon");
  27.          scanf ("%s",&l[i].codigo);
  28.          fflush(stdin);
  29.          printf ("Ingrese Titulon");
  30.          gets(l[i].titulo);
  31.          
  32.          printf ("Ingrese Autorn");
  33.          gets(l[i].autor);
  34.          printf ("Ingrese Editorialn");
  35.          gets(l[i].editorial);
  36.          printf ("Ingrese stockn");
  37.          scanf ("%d",&l[i].existencia);
  38.          printf ("Ingrese precion");
  39.          scanf ("%f",&l[i].precio);
  40.          ++i;
  41.          printf ("finalizar? s/n n");
  42.          fflush(stdin);
  43.          c=getchar();
  44.          while ((c!='s') && (c!='n'))
  45.          {
  46.                fflush(stdin);
  47.                printf ("Ingrese S/nn");
  48.          c=getchar();
  49.          }
  50.          
  51.          
  52.          }while (c =='n');
  53.          *cant=i;
  54.          for (j=0;j<i;j++)
  55.          {
  56.          printf ("%sn",l[j].codigo);
  57.          printf ("%sn",l[j].titulo);
  58.          printf ("%sn",l[j].autor);
  59.          printf ("%sn",l[j].editorial);
  60.          printf ("%dn",l[j].existencia);
  61.          printf ("%fn",l[j].precio);
  62.          }
  63.          c=getchar();
  64.          c=getchar();
  65.          
  66. }
  67.        
  68. char* consultas (struct libreria l[],int cant)
  69. {
  70.       char tit[15],aut[25];
  71.       int i,ban;    
  72.       printf ("Ingrese Titulo y Autorn");
  73.       fflush(stdin);
  74.       gets(tit);
  75.       gets(aut);
  76.       for (i=0;i<cant;++i)
  77.       {
  78.           if ((strcmp(tit,l[i].titulo)==0) && (strcmp(aut,l[i].autor)==0))
  79.           {
  80.              if (l[i].existencia !=0)
  81.              {
  82.                 return "SIn";
  83.                 ban=1;
  84.              }
  85.           }
  86.       }
  87.       if (ban !=1)
  88.       return "STOCK AGOTADOn";
  89. }
  90.            
  91. void actualizar (struct libreria l[],char cod[],float nue_pre,int cant_lib)
  92. {
  93.      int i;
  94.      for (i=0;i<cant_lib;++i)
  95.      {
  96.          if ((strcmp(cod,l[i].codigo))==0)
  97.             l[i].precio=nue_pre;
  98.      }
  99. }
  100.            
  101.      
  102.        
  103.          
  104.      
  105.  
  106. main()
  107. {    
  108.       int c,cant_lib;
  109.       struct libreria libros[sub];
  110.       char *respuesta[14],cod[7];
  111.       float nue_pre;
  112.       cant_lib=0;
  113.      
  114.      
  115.       do
  116.       {
  117.       printf ("Elija Una Opcionn");
  118.       printf ("a) Carga datosn");
  119.       printf ("b) Consultasn");
  120.       printf ("c) Actualizarn");
  121.       printf ("d) Facturacionn");
  122.       printf ("e) Salirn");
  123.      
  124.      
  125.       c=getchar();
  126.       while ((c!='a')&&(c!='b')&&(c!='c')&&(c!='d')&&(c!='e'))
  127.       {
  128.             fflush(stdin);
  129.             printf ("OPCION INCORRECTA, INGRESE UNA OPCION VALIDAn");
  130.             c=getchar();
  131.             }
  132.            
  133.      
  134.      
  135.       switch (c)
  136.       {
  137.              case 'a':
  138.                   {  
  139.                   carga_datos(libros,&cant_lib);
  140.                  
  141.                   printf ("cantidad libros= %d",cant_lib);
  142.                  
  143.                   c=getchar();
  144.          c=getchar();
  145.                   }
  146.                   break;
  147.          
  148.             case 'b':
  149.                  {
  150.                      *respuesta=consultas(libros,cant_lib);
  151.                      printf ("%s",*respuesta);
  152.                      }
  153.                   break;
  154.            case 'c':
  155.                 {
  156.                     printf("Ingrese codigo de libron");
  157.                     scanf ("%s",cod);
  158.                     printf ("Ingrese nuevo precion");
  159.                     scanf ("%f",&nue_pre);
  160.                     actualizar (libros,cod,nue_pre,cant_lib);
  161.                     }
  162.                
  163.                  
  164.                  
  165.                   }
  166.                      
  167.       }while (c!='e');
  168. }  
  169.      
  170.  
  171.      
  172.  
  173.  

12
C/C++ / Re: Ejercicio con estructuras
« en: Viernes 24 de Abril de 2009, 03:51 »
getchar obtiene un entero del caracter ingresado, por eso c lo declaro como entero
los while los corregi ni bien me dijiste
los returns de cadenas andan bien. ya he probado el programa
ahora el problema es el ke te mencione anteriormente : return-statement with a value, in function returning 'void'
este sale solo cuando pongo return i en la funcion void carga datos. sacando esto el programa funciona
 &lt;_&lt;  &lt;_&lt;  espero tu ayuda

13
C/C++ / Re: Ejercicio con estructuras
« en: Viernes 24 de Abril de 2009, 02:06 »
entendido!, ahora me esta tirando un error:
return-statement with a value, in function returning 'void'
 :mellow:  :mellow:

Código: C
  1.  
  2. # include <stdio.h>
  3. # include <string.h>
  4. # define sub 1000
  5.  
  6.  
  7.  
  8. struct libreria
  9. {
  10.        char codigo[7];
  11.        char titulo[15];
  12.        char autor[25];
  13.        char editorial[15];
  14.        int existencia;
  15.        float precio;
  16. };
  17.  
  18. void carga_datos (struct libreria l[],int *cant)
  19. {
  20.      int i=*cant;
  21.      int c,j;
  22.      
  23.      do
  24.      {
  25.          
  26.          printf ("Ingrese Codigon");
  27.          scanf ("%s",&l[i].codigo);
  28.          fflush(stdin);
  29.          printf ("Ingrese Titulon");
  30.          gets(l[i].titulo);
  31.          
  32.          printf ("Ingrese Autorn");
  33.          gets(l[i].autor);
  34.          printf ("Ingrese Editorialn");
  35.          gets(l[i].editorial);
  36.          printf ("Ingrese stockn");
  37.          scanf ("%d",&l[i].existencia);
  38.          printf ("Ingrese precion");
  39.          scanf ("%f",&l[i].precio);
  40.          ++i;
  41.          printf ("finalizar? s/n n");
  42.          c=getchar();
  43.          c=getchar();
  44.          
  45.          }while (c =='n');
  46.          
  47.          for (j=0;j<i;j++)
  48.          {
  49.          printf ("%sn",l[j].codigo);
  50.          printf ("%sn",l[j].titulo);
  51.          printf ("%sn",l[j].autor);
  52.          printf ("%sn",l[j].editorial);
  53.          printf ("%dn",l[j].existencia);
  54.          printf ("%fn",l[j].precio);
  55.          }
  56.          c=getchar();
  57.          c=getchar();
  58.          return i;
  59. }
  60.        
  61. char* consultas (struct libreria l[])
  62. {
  63.       char tit[15],aut[25];
  64.       int i,ban;    
  65.       printf ("Ingrese Titulo y Autorn");
  66.       fflush(stdin);
  67.       gets(tit);
  68.       gets(aut);
  69.       for (i=0;i<sub;++i)
  70.       {
  71.           if ((strcmp(tit,l[i].titulo)==0) && (strcmp(aut,l[i].autor)==0))
  72.           {
  73.              if (l[i].existencia !=0)
  74.              {
  75.                 return "si";
  76.                 ban=1;
  77.              }
  78.           }
  79.       }
  80.       if (ban !=1)
  81.       return "no hay stockn";
  82. }
  83.            
  84. /*void actualizar (struct libreria l[],char cod,float nue_pre,int cant_lib)
  85. {
  86.      int i;
  87.      for (i=0;i<sub;++i)
  88.      {
  89.          if (strcmp(cod,l[i].codigo)==0)
  90.             l[i].precio=nue_pre;
  91.      }
  92. }
  93.   */          
  94.      
  95.        
  96.          
  97.      
  98.  
  99. main()
  100. {    
  101.       int c,cant_lib;
  102.       struct libreria libros[sub];
  103.       char *respuesta[14],cod[7];
  104.       float nue_pre;
  105.      
  106.      
  107.       do
  108.       {
  109.       printf ("Elija Una Opcionn");
  110.       printf ("a) Carga datosn");
  111.       printf ("b) Consultasn");
  112.       printf ("c) Actualizarn");
  113.       printf ("d) Facturacionn");
  114.       printf ("e) Salirn");
  115.       c=getchar();
  116.      
  117.      
  118.       switch (c)
  119.       {
  120.              case 'a':
  121.                   {  
  122.                   cant_lib=carga_datos(libros,&cant_lib);
  123.                  
  124.                   printf ("cantidad libros= %d",cant_lib);
  125.                  
  126.                   c=getchar();
  127.          c=getchar();
  128.                   }
  129.                   break;
  130.          
  131.             case 'b':
  132.                  {
  133.                      *respuesta=consultas(libros);
  134.                      printf ("%s",*respuesta);
  135.                      }
  136.                   break;
  137.         /*   case 'c':
  138.                 {
  139.                     printf("Ingrese codigo de libron");
  140.                     scanf ("%s",cod);
  141.                     printf ("Ingrese nuevo precion");
  142.                     scanf ("%f",&nue_pre);
  143.                     actualizar (libros,cod,nue_pre,cant_lib);
  144.                     }*/
  145.                
  146.                  
  147.                  
  148.                   }
  149.                
  150.      
  151.      
  152.      
  153.      
  154.      
  155.      
  156.      
  157.      
  158.      
  159.      
  160.      
  161.      
  162.      
  163.      
  164.      
  165.      
  166.      
  167.       }while (c!='e');
  168. }  
  169.      
  170.  
  171.      
  172.  
  173.  

14
C/C++ / Re: Ejercicio con estructuras
« en: Viernes 24 de Abril de 2009, 01:01 »
bien.. eso esta claro, tal vez yo no puedo expresar cual es mi duda...
te voy a mostrar 2 ejemplos que encontre en un manual

Código: C
  1.  
  2. #include <stdio.h>
  3.  
  4. int suma( int a, int b )
  5.      {
  6.           int c;
  7.      c=a+b;
  8.      a=2000;
  9. return c;
  10.      }
  11.  
  12. int main()
  13.      {
  14.      int var1, var2, resultado;
  15.  
  16.      var1 = 5; var2 = 8;
  17.      resultado = suma(var1, var2);
  18.      printf( "La suma es : %i %dn", resultado,var1 );
  19.      }
  20.  
  21.  
  22.  
aqui cambio el valor de var1 en la funcion, pero sigue valiendo lo mismo en main.

Código: C
  1.  
  2. #include <stdio.h>
  3.  
  4. int suma( int *a, int b )
  5.      {
  6.      int c;
  7.  
  8.      c = *a + b;
  9.      *a = 2000;
  10.      return c;
  11.      }
  12.  
  13. int main()
  14.      {
  15.      int var1, var2, resultado;
  16.  
  17.      var1 = 5; var2 = 8;
  18.      resultado = suma(&var1, var2);
  19.      printf( "La suma es: %i y a vale: %in", resultado , var1 );
  20.      }
  21.  
  22.  
aqui modifico var1 en la funcion y se modifica en main...

entonces, en el ejemplo de los libros, cant_lib en este caso es como el var1 de el ultimo ejemplo, yo quiero darle un valor en la funcion y ke lo mantenga en main, que no lo pierda.
por eso no entiendo cuando me dices
Citar
Sin embargo, como"salvas" el valor ...sea manipulandolo atraves de un puntero o retornando el dato desde la funcion hacia main lo defines tu. Desde una funcion tipo void igualmente puedes retornar datos. Hay que aclarar, que este dato tendras que inicializarlo una sola ves y tendras que hacerlo en main.

 :(  :(  :(  :(

15
C/C++ / Re: funcion que devuelve una cadena
« en: Viernes 24 de Abril de 2009, 00:22 »
fantastico como siempre m0skit0!. entendido..
ahora te dejo una duda..

esto:
char* calculo (bla bla bla)
es igual a:
char  *calculo (bla bla bla)

en el primer caso el * esta pegado al final de char.
en el segundo, * esta al principio de calculo.

espero tu respuesta! muchas gracias!

16
C/C++ / Re: Ejercicio con estructuras
« en: Viernes 24 de Abril de 2009, 00:03 »
bien, lo que haga en una funcion muere al cuncluir esta. el tipo void es un caso especial de funcion en el cual no muere nada de lo que haga? osea ke utilizando el tipo void puedo cambiar valores de variables que estan en main usando o no punteros?... ahi entendi bien?

ahora tengo el nuevo codigo de mi programa y presento un nuevo problemilla...
- al ingresar un titulo de un libro digamos "COMO HACER UN PROGRAMA", utilizando scanf, me toma los espacion como fin de cadena o algo asi... por lo tanto tengo que utilizar el gets (que gracias a betopin ahora sé que esta funcion corresponde a c  :D ), pero... como se usa??. aca va el codigo, diganme como reemplazarian los scanf por los gets.

les comento que el programa en la funcion consultas (opcion b) debe recibir un titulo y un autor y de tener stock disponible, devolver a main la cadena "si" y de lo contrario "no hay stock", les comento por si ven algun error para corregir, o algun metodo mas adecuado que yo no haya utilizado.

muchisismas gracias y espero sus respuestas!!! :beer:

pd: van a ver muchos getchar() que no tienen sentido, es que los uso para pausar el programa y ver los resultados  :blink:

Código: C
  1.  
  2. # include <stdio.h>
  3. # include <string.h>
  4. # define sub 1000
  5.  
  6.  
  7.  
  8. struct libreria
  9. {
  10.        char codigo[7];
  11.        char titulo[15];
  12.        char autor[25];
  13.        char editorial[15];
  14.        int existencia;
  15.        float precio;
  16. };
  17.  
  18. void carga_datos (struct libreria l[],int *cant)
  19. {
  20.      int i=0;
  21.      int c,j;
  22.      
  23.      do
  24.      {
  25.          
  26.          printf ("Ingrese Codigon");
  27.          scanf ("%s",&l[i].codigo);
  28.          printf ("Ingrese Titulon");
  29.          scanf ("%s",&l[i].titulo);
  30.          printf ("Ingrese Autorn");
  31.          scanf ("%s",&l[i].autor);
  32.          printf ("Ingrese Editorialn");
  33.          scanf ("%s",&l[i].editorial);
  34.          printf ("Ingrese stockn");
  35.          scanf ("%d",&l[i].existencia);
  36.          printf ("Ingrese precion");
  37.          scanf ("%f",&l[i].precio);
  38.          ++i;
  39.          printf ("finalizar? s/n n");
  40.          c=getchar();
  41.          c=getchar();
  42.          }while (c =='n');
  43.          *cant=i;
  44.          for (j=0;j<i;j++)
  45.          {
  46.          printf ("%sn",l[j].codigo);
  47.          printf ("%sn",l[j].titulo);
  48.          printf ("%sn",l[j].autor);
  49.          printf ("%sn",l[j].editorial);
  50.          printf ("%dn",l[j].existencia);
  51.          printf ("%fn",l[j].precio);
  52.          }
  53.          c=getchar();
  54.          c=getchar();
  55. }
  56.        
  57. char* consultas (struct libreria l[])
  58. {
  59.       char tit[15],aut[25];
  60.       int i,ban;    
  61.       printf ("Ingrese Titulo y Autorn");
  62.       scanf ("%s",&tit);
  63.       scanf ("%s",&aut);
  64.       for (i=0;i<sub;++i)
  65.       {
  66.           if ((strcmp(tit,l[i].titulo)==0) && (strcmp(aut,l[i].autor)==0))
  67.           {
  68.              if (l[i].existencia !=0)
  69.              {
  70.                 return "si";
  71.                 ban=1;
  72.              }
  73.           }
  74.       }
  75.       if (ban !=1)
  76.       return "no hay stock";
  77. }
  78.            
  79.  
  80.      
  81.        
  82.          
  83.      
  84.  
  85. main()
  86. {    
  87.       int c,cant_lib;
  88.       struct libreria libros[sub];
  89.       char *respuesta[14];
  90.       cant_lib=0;
  91.      
  92.       do
  93.       {
  94.       printf ("Elija Una Opcionn");
  95.       printf ("a) Carga datosn");
  96.       printf ("b) Consultasn");
  97.       printf ("c) Actualizarn");
  98.       printf ("d) Facturacionn");
  99.       printf ("e)Salirn");
  100.       c=getchar();
  101.      
  102.      
  103.       switch (c)
  104.       {
  105.              case 'a':
  106.                   {  
  107.                   carga_datos(libros,&cant_lib);
  108.                  
  109.                   printf ("cantidad libros= %d",cant_lib);
  110.                  
  111.                   c=getchar();
  112.          c=getchar();
  113.                   }
  114.                   break;
  115.          
  116.             case 'b':
  117.                  {
  118.                      *respuesta=consultas(libros);
  119.                      printf ("%s",*respuesta);
  120.                      }
  121.                   break;
  122.                  
  123.                   }
  124.                
  125.      
  126.      
  127.      
  128.      
  129.      
  130.      
  131.      
  132.      
  133.      
  134.      
  135.      
  136.      
  137.      
  138.      
  139.      
  140.      
  141.      
  142.       }while (c!='e');
  143. }  
  144.      
  145.  
  146.      
  147.  
  148.  
  149.  

17
C/C++ / Re: Ejercicio con estructuras
« en: Jueves 23 de Abril de 2009, 20:11 »
Excelente!, a ver si entendi bien... osea que si uso una funcion del tipo void, esta me va a modificar de manera permanente una variable que este en main. y si utilizo una funcion que devuelva un solo valor (del tipo int ), solo va a modificar la variable en la funcion y no en main?

aqui va el nuevo codigo, estoy haciendo la parte b del programa, asique les voy a hacer algunas preguntas:
- para ingresar un titulo de un libro que contiene espacios, debo usar gets?
- o gets se usa para c++?

Código: C
  1.  
  2. # include <stdio.h>
  3. # include <string.h>
  4. # define sub 1000
  5.  
  6.  
  7.  
  8. struct libreria
  9. {
  10.        char codigo[7];
  11.        char titulo[15];
  12.        char autor[25];
  13.        char editorial[15];
  14.        int existencia;
  15.        float precio;
  16. };
  17.  
  18. void carga_datos (struct libreria l[],int *cant)
  19. {
  20.      int i=0;
  21.      int c,j;
  22.      
  23.      do
  24.      {
  25.          
  26.          printf ("Ingrese Codigon");
  27.          scanf ("%s",&l[i].codigo);
  28.          /*printf ("Ingrese Titulo y Autorn");
  29.          scanf ("%s %s",&l[i].titulo,&l[i].autor);
  30.          printf ("Ingrese Editorialn");
  31.          scanf ("%s",&l[i].editorial);
  32.          printf ("Ingrese stock y precion");
  33.          scanf ("%d %f",&l[i].existencia,&l[i].precio);*/
  34.          ++i;
  35.          printf ("finalizar? s/n n");
  36.          c=getchar();
  37.          c=getchar();
  38.          }while (c =='n');
  39.          *cant=i;
  40.          for (j=0;j<i;j++)
  41.          {
  42.          printf ("%sn",l[j].codigo);
  43.         /* printf ("%sn",l[j].titulo);
  44.          printf ("%sn",l[j].autor);
  45.          printf ("%sn",l[j].editorial);
  46.          printf ("%dn",l[j].existencia);
  47.          printf ("%fn",l[j].precio);/**/
  48.          }
  49.          c=getchar();
  50.          c=getchar();
  51. }
  52.        
  53. char* consultas (struct libreria l[])
  54. {
  55.       char tit[15],aut[25];
  56.      
  57.       printf ("Ingrese Titulo y Autorn");
  58.       gets (tit);
  59.       gets (aut);
  60. }
  61.      
  62.        
  63.          
  64.      
  65.  
  66. main()
  67. {    
  68.       int c,cant_lib;
  69.       struct libreria libros[sub];
  70.       char *respuesta[14];
  71.       cant_lib=0;
  72.      
  73.       do
  74.       {
  75.       printf ("Elija Una Opcionn");
  76.       printf ("a) Carga datosn");
  77.       printf ("b) Consultasn");
  78.       printf ("c) Actualizarn");
  79.       printf ("d) Facturacionn");
  80.       printf ("e)Salirn");
  81.       c=getchar();
  82.      
  83.      
  84.       switch (c)
  85.       {
  86.              case 'a':
  87.                   {  
  88.                   carga_datos(libros,&cant_lib);
  89.                  
  90.                   printf ("cantidad libros= %d",cant_lib);
  91.                  
  92.                   c=getchar();
  93.          c=getchar();
  94.                   }
  95.                   break;
  96.          
  97.             case 'b':
  98.                  {
  99.                      *respuesta=consultas(libros);
  100.                      printf ("%s",*respuesta);
  101.                      }
  102.                   break;
  103.                  
  104.                   }
  105.                
  106.      
  107.      
  108.      
  109.      
  110.      
  111.      
  112.      
  113.      
  114.      
  115.      
  116.      
  117.      
  118.      
  119.      
  120.      
  121.      
  122.      
  123.       }while (c!='e');
  124. }  
  125.      
  126.  
  127.      
  128.  
  129.  
  130.  
  131.  

saludos!. espero sus respuestas!

18
C/C++ / Ejercicio con estructuras
« en: Jueves 23 de Abril de 2009, 06:06 »
saludos!, estoy haciendo un ejercicio de un examen final y tengo un pequeño problemita, la consigna pide que el se ingresen libros (todos sus datos) con una funcion del tipo void llamada carga_libros y que se deje en la funcion main la cantidad de libros ingresados. a que se refiere exactamente eso?
porke si modifico la variable desde la funcion, al llegar a main va a seguir valiendo lo que valen en main. entonces... tengo ke usar un puntero?

Código: C
  1.  
  2. # include <stdio.h>
  3. # include <string.h>
  4. # define sub 1000
  5.  
  6.  
  7.  
  8. struct libreria
  9. {
  10.        char codigo[7];
  11.        char titulo[15];
  12.        char autor[25];
  13.        char editorial[15];
  14.        int existencia;
  15.        float precio;
  16. };
  17.  
  18. void carga_datos (struct libreria *l,int cant)
  19. {
  20.      int i=0;
  21.      int c,j;
  22.      
  23.      do
  24.      {
  25.          
  26.          printf ("Ingrese Codigon");
  27.          scanf ("%s",&l[i].codigo);
  28.          printf ("Ingrese Titulo y Autorn");
  29.          scanf ("%s %s",&l[i].titulo,&l[i].autor);
  30.          printf ("Ingrese Editorialn");
  31.          scanf ("%s",&l[i].editorial);
  32.          printf ("Ingrese stock y precion");
  33.          scanf ("%d %f",&l[i].existencia,&l[i].precio);
  34.          ++i;
  35.          printf ("finalizar? s/n n");
  36.          c=getchar();
  37.          c=getchar();
  38.          }while (c =='n');
  39.          cant=i+1;
  40.          for (j=0;j<i;j++)
  41.          {
  42.          printf ("%dn",l[j].codigo);
  43.          printf ("%sn",l[j].titulo);
  44.          printf ("%sn",l[j].autor);
  45.          printf ("%sn",l[j].editorial);
  46.          printf ("%dn",l[j].existencia);
  47.          printf ("%fn",l[j].precio);
  48.          }
  49.          c=getchar();
  50.          c=getchar();
  51. }
  52.          
  53.          
  54.      
  55.  
  56. main()
  57. {    
  58.       int c,cant_lib;
  59.       struct libreria libros[sub];
  60.      
  61.       do
  62.       {
  63.       printf ("Elija Una Opcionn");
  64.       printf ("a) Carga datosn");
  65.       printf ("b) Consultasn");
  66.       printf ("c) Actualizarn");
  67.       printf ("d) Facturacionn");
  68.       printf ("e)Salirn");
  69.       c=getchar();
  70.      
  71.      
  72.       switch (c)
  73.       {
  74.              case 'a':
  75.                   {  
  76.                   carga_datos(libros,cant_lib);
  77.                   }
  78.                   break;
  79.                   }
  80.                  
  81.      
  82.      
  83.      
  84.      
  85.      
  86.      
  87.      
  88.      
  89.      
  90.      
  91.      
  92.      
  93.      
  94.      
  95.      
  96.      
  97.      
  98.       }while (c=='e');
  99. }  
  100.      
  101.  
  102.      
  103.  
  104.  

recien estoy haciendo la parte A de la carga de datos.
tengo muchas preguntas sobre este ejercicio pero, empezemos por la primera.
muchas gracias!

19
C/C++ / Re: funcion que devuelve una cadena
« en: Jueves 23 de Abril de 2009, 01:14 »
era un ejemplo solo para probar como una funcion devolvia una cadena

Código: C
  1.  
  2. # include <stdio.h>
  3. # include <string.h>
  4.  
  5. char*  get (char a[])
  6. {
  7.      scanf("%s",a);
  8.      return (a);
  9. }
  10.  
  11.  
  12.  
  13. main()
  14. {
  15.       char arreglo[10],*palabra[10];
  16.      
  17.      
  18.       printf ("Ingrese una palabra");
  19.       *palabra = get(arreglo);
  20.       printf ("%s",*palabra);
  21. }
  22.  
  23.  
ahi parece funcionar.
pregunta:
cada vez ke quiera que una funcion me devuelva una palabra tengo ke hacerlo con punteros??. me podrias dar una explicacion sobre como funciona el puntero en este caso?
muchas gracias!

20
C/C++ / funcion que devuelve una cadena
« en: Miércoles 22 de Abril de 2009, 18:40 »
hola amigos, como dice el titulo estoy tratando de hacer una funcion que devuelva una palabra, y no se como hacerlo

Código: C
  1.  
  2. # include <stdio.h>
  3. # include <string.h>
  4.  
  5. char get (char a[])
  6. {
  7.      scanf("%s",a);
  8.      return a;
  9. }
  10.  
  11.  
  12.  
  13. main()
  14. {
  15.       char arreglo[10],palabra[10];
  16.      
  17.      
  18.       printf ("Ingrese una palabra");
  19.       palabra = get(arreglo);
  20.       printf ("%s",palabra);
  21. }
  22.  
  23.  

tambien estoy pensando en usar strcpy() en vez de palabra=get (arreglo)... pero bueno, ustedes me diran. espero sus respuestas. muchas gracias!

21
C/C++ / Re: Primeros pasos con estructuras
« en: Miércoles 22 de Abril de 2009, 03:48 »
Excelente!. ahi lo probe y funciona!!. estaba usando mal el strcpy().
voy a seguir agregandole cosas al programa, seguramente voy a volver con mas dudas.
muchas gracias. especialmente a moskito

22
C/C++ / Re: Primeros pasos con estructuras
« en: Martes 21 de Abril de 2009, 18:54 »
Aqui tengo otro problema: quiero realizar un ordenamiento , primero lo ordeno por los puntos y luego tambien tengo ke ordenar los nombres... uso strcpy. el programa arranca, pero a la hora de devolverme los nombres me da simbolos

aqui el codigo completo

Código: C
  1.  
  2. # include <stdio.h>
  3. # include <string.h>
  4.  
  5. struct equi
  6. {      
  7.        char nombre[10];
  8.        int ganados;
  9.        int perdidos;
  10.        int empatados;
  11.        int puntos;
  12. };
  13.  
  14. void ordena (struct equi e[])
  15. {
  16.      int i,j,aux;
  17.      char aaux[10];
  18.      
  19.      for (i=0;i<2;++i)
  20.          for (j=0;j<2;++j)
  21.              if (e[i].puntos > e[j].puntos)
  22.                 {
  23.                              aux=e[i].puntos;
  24.                              e[i].puntos=e[j].puntos;
  25.                  e[j].puntos=aux;
  26.  
  27.                  strcpy(e[i].nombre,aaux);
  28.                  strcpy(e[j].nombre,e[i].nombre);
  29.                              strcpy(aaux,e[j].nombre);
  30.                              
  31.                              
  32.                              }
  33. }
  34.      
  35.      
  36.  
  37.  
  38.  
  39. main()
  40. {
  41.  
  42.  struct equi equipos[2];
  43.  int i;
  44.  for (i=0;i<2;++i)
  45.  {
  46.  printf ("Ingrese nombren");
  47.  scanf ("%s",&equipos[i].nombre);
  48.  
  49.  printf ("Ingrese Partidos ganados,perdidos y empatadosn");
  50.  scanf ("%d %d %d %d",&equipos[i].ganados,&equipos[i].perdidos,&equipos[i].empatados,&equipos[i].puntos);
  51. }
  52.  
  53. for (i=0;i<2;++i)
  54.  {
  55.  
  56.  printf ("Nombre: %s",equipos[i].nombre);
  57.  
  58.  printf ("Ganados: %d Perdidos: %d Empatados: %d ",equipos[i].ganados,equipos[i].perdidos,equipos[i].empatados);
  59. }
  60. //calcula(equipos);
  61. ordena (equipos);
  62.  
  63. for (i=0;i<2;++i)
  64.  {
  65.  
  66.  printf ("Nombre: %sn",equipos[i].nombre);
  67.  printf ("Puntos: %dn",equipos[i].puntos);
  68. }
  69.  
  70. }
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  

el ordenamiento de los puntos funciona bien... el problema lo tengo con el ordenamiento de nombres. cual puede ser el problema?
muchas gracias

23
C/C++ / Primeros pasos con estructuras
« en: Martes 21 de Abril de 2009, 06:20 »
Hola gente del foro, estoy empezando a utilizar estructuras y estoy teniendo un problema que seguramente debe ser algo sencillo, se ma hace que algun problema de buffer o algo asi.
el programa es el siguiente:

Código: C
  1.  
  2. # include <stdio.h>
  3.  
  4.  
  5. struct equi
  6. {      
  7.        char nombre;
  8.        int ganados;
  9.        int perdidos;
  10.        int empatados;
  11.        int puntos;
  12. };
  13.  
  14.  
  15.  
  16. main()
  17. {
  18.  
  19.  struct equi equipos[2];
  20.  int i;
  21.  for (i=0;i<2;++i)
  22.  {
  23.  printf ("Ingrese nombren");
  24.  scanf ("%s",&equipos[i].nombre);
  25.  
  26.  printf ("Ingrese Partidos ganados,perdidos y empatadosn");
  27.  scanf ("%d %d %d",&equipos[i].ganados,&equipos[i].perdidos,&equipos[i].empatados);
  28. }
  29.  
  30. for (i=0;i<3;++i)
  31.  {
  32.  
  33.  printf ("Nombre: %s",equipos[i].nombre);
  34.  
  35.  printf ("Ganados: %d Perdidos: %d Empatados: %d",equipos[i].ganados,equipos[i].perdidos,equipos[i].empatados);
  36. }
  37. }
  38.  
  39.  

no me toma los nombres de los equipos, no entiendo porque....
espero sus respuestas. muchas gracias!

pd: alguien me puede explicar como se limpia el buffer y como funciona?

24
C/C++ / Ejercicio complicado
« en: Lunes 20 de Abril de 2009, 17:14 »
hola gente del foro. estoy tratando de hacer un programa muy futbolero, se trata de ingresar nombres de equipos, partidos ganados, perdidos y empatados, y este calcule los puntos y me muestre la tabla de posiciones.
para esto decide no usar estructuras ya que todavia no llegue a ver este tema, por lo tanto lo estoy haciendo en base a arrays, ahi va el codigo:

Código: C
  1.  
  2. # include <stdio.h>
  3.  
  4. void carga(char n[4][20],int g[4],int e[4],int p[4])
  5. {
  6.       int i;
  7.      
  8.       for (i=0;i<4;++i)
  9.       {
  10.       printf ("Ingrese nombren");
  11.       scanf ("%s",&n[i]);
  12.       printf ("Ingrese partidos ganadosn");
  13.       scanf ("%d",&g[i]);
  14.       printf ("Ingrese partidos empatadosn");
  15.       scanf ("%d",&e[i]);
  16.       printf ("Ingrese partidos perdidosn");
  17.       scanf ("%d",&p[i]);
  18.       }
  19. }
  20.  
  21. void calculo (int g[4],int e[4],int pts[4])
  22. {int i;
  23.      for (i=0;i<4;++i)
  24.      {  
  25.          
  26.          pts[i] = (g[i]*3);
  27.          pts[i]= pts[i]+e[i];
  28.          }
  29. }
  30.          
  31.          
  32. void tabla (char e[4][20],int pts[4])
  33.  
  34. {
  35.      int i,j,aux,taux[4][20];
  36.      
  37.      for (i=0;i<4;++i)
  38.          for (j=0;j<4;++j)
  39.          {
  40.              if (pts[i] < pts[j])
  41.                 {    
  42.                       aux=pts[i];
  43.                       taux[i][20]=e[i][20];
  44.                       pts[i]=pts[j];
  45.                       e[i][20]=e[j][20];
  46.                       pts[j]=aux;
  47.                       e[j][20]=taux[i][20];
  48.                       }
  49.                       }
  50.      
  51. }
  52.              
  53.              
  54.          
  55.  
  56. main()
  57. {
  58.       char equipos [4][20];
  59.       int i,puntos[4],ganados[4],empatados[4],perdidos[4];
  60.      
  61.       carga(equipos,ganados,empatados,perdidos);
  62.       calculo(ganados,empatados,puntos);
  63.       tabla(equipos,puntos);
  64.       /*for (i=0;i<4;++i)
  65.       {
  66.           printf ("%s %d",equipos[i],puntos[i]);
  67.           }
  68.           } */
  69.          
  70.           printf ("TABLA DE POSICIONESn");
  71.           printf ("-------------------n");
  72.           for (i=0;i<4;++i)
  73.           {
  74.           printf ("%s",equipos[i]);
  75.           printf ("%d Puntos: n",puntos[i]);
  76.           }
  77. }
  78.  
  79.  

las dudas sobre este programa son:
- al hacer el ordenamiento tambien intento que el nombre del equipo se ordene en la misma posicion (claro , en un arreglo diferente) que los puntos. pero... esta bien como lo hice??
-al mostrar la tabla de posiciones me devuelve cualquier cosa, cuales son los errores?
- y entrando en el tema... en que me beneficiaria usar estructuras para este ejercicio?

saludos. espero sus respuestas!

25
C/C++ / Re: Ordenamiento de array
« en: Miércoles 15 de Abril de 2009, 17:49 »
for (j=1;i<10;++j) ---------> ese era el error, que bronca!
Gracias!!!

Páginas: [1] 2