• Domingo 28 de Abril de 2024, 22:44

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.


Temas - AnioN

Páginas: 1 2 [3]
51
C/C++ / Vaciar El Buffer De Entrada En C++
« en: Sábado 30 de Septiembre de 2006, 14:17 »
Hola, necesito saber como puedo vaciar el buffer de entrada en c++, en c lo hacia con fflush(stdin), claro, todo sobre windows.

52
C/C++ / Promedio De Los Nodos Terminales
« en: Viernes 22 de Septiembre de 2006, 14:22 »
Hola, necesito crear una funcion para calcular el promedio de los nodos hojas. Cree la funcion promedio para hacerlo, la cual no esta bien hecha. El resto del codigo funciona bien. Alguien sabe cual es el error?

Código: Text
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<stdlib.h>
  4.  
  5. struct dato {
  6.   int entero;
  7. };
  8.  
  9. struct nodo {
  10.   struct dato d;
  11.   struct nodo *izq, *der;
  12. };
  13.  
  14. int arbol_vacio(struct nodo *q);
  15. struct nodo* arbol_lleno();
  16. struct nodo* insertar(struct nodo *q, struct dato x);
  17. void listar_preorden(struct nodo *q);
  18. float promedio(struct nodo *q, int*, int*);
  19.  
  20. void main() {
  21.   struct nodo *raiz = NULL;
  22.   struct dato x;
  23.   int c = 0, s = 0;
  24.  
  25.   printf("Ingrese un entero:");
  26.   scanf("%d", &x.entero);
  27.  
  28.   while(x.entero != 0) {
  29.  
  30.     raiz = insertar(raiz, x);
  31.  
  32.     printf("Ingrese un entero:");
  33.     scanf("%d", &x.entero);
  34.   }
  35.  
  36.   listar_preorden(raiz);
  37.  
  38.   printf("\nEl promedio de los nodos hojas es:%.2f.", promedio(raiz,&c,&s));
  39.  
  40.   printf("\nPresione una tecla para salir");
  41.   getch();
  42. }
  43.  
  44. int arbol_vacio(struct nodo *q) {
  45.  
  46.   if(!q) {
  47.     return 1;
  48.   } else {
  49.     return 0;
  50.   }
  51. }
  52.  
  53.  
  54. struct nodo* arbol_lleno() {
  55.   struct nodo *aux;
  56.  
  57.   aux = (struct nodo*)malloc(sizeof(struct nodo)*1);
  58.  
  59.   return aux;
  60. }
  61.  
  62.  
  63. void listar_preorden(struct nodo *q) {
  64.  
  65.   if(q) {
  66.     printf("\n%d", q->d.entero);
  67.     listar_preorden(q->izq);
  68.     listar_preorden(q->der);
  69.   }
  70. }
  71.  
  72.  
  73. struct nodo* insertar(struct nodo *q, struct dato x) {
  74.   struct nodo *nuevo, *ant = q, *act = q;
  75.  
  76.   if((nuevo=arbol_lleno())==NULL) {
  77.     printf("El arbol esta lleno");
  78.   } else {
  79.     nuevo->d = x;
  80.     nuevo->izq = nuevo->der = NULL;
  81.  
  82.     if(arbol_vacio(q)) {
  83.       q = nuevo;
  84.     } else {
  85.  
  86.       while(act!=NULL) {
  87.         ant = act;
  88.  
  89.         if(nuevo->d.entero > act->d.entero) {
  90.           act = act->der;
  91.         } else {
  92.           act = act->izq;
  93.         }
  94.       }
  95.  
  96.       if(nuevo->d.entero > ant->d.entero) {
  97.         ant->der = nuevo;
  98.       } else {
  99.  
  100.         if(nuevo->d.entero < ant->d.entero) {
  101.           ant->izq = nuevo;
  102.         } else {
  103.           printf("Clave duplicada");
  104.         }
  105.       }
  106.     }
  107.   }
  108.   return q;
  109. }
  110.  
  111.  
  112. float promedio(struct nodo *q, int *c, int *s) {
  113.  
  114.   if(q) {
  115.       if(q->izq==NULL && q->der==NULL) {
  116.       (*c)++;
  117.       (*s) += q->d.entero;
  118.     } else {
  119.       promedio(q->izq,&c,&s);
  120.       promedio(q->der,&c,&s);
  121.     }
  122.   }
  123.   return (float)(*s/(*c));
  124. }
  125.  

53
C/C++ / Para Que Se Utiliza?
« en: Sábado 5 de Agosto de 2006, 00:20 »
Hola, hace un tiempo que programo en C y ya poseo una base bastante solida como para utilizarlo. Mi pregunta radica en la actualidad para que se lo utiliza?. Siempre programe utilizando ANSI C, o sea no utilice nunca una API. Me gustaria aprender a utilizar la api de windows pero me resulta bastante cunfusa aprenderla. Que API me recomiendan para empezar?

54
C/C++ / Vector Por Valor
« en: Lunes 10 de Julio de 2006, 15:54 »
Hola, mi idea es saber si se puede pasar un vector a una funcion por valor?, o sea, si modifico el mismo dentro de la funcion que no se modifique en el main. Por ej:

Código: Text
  1. #include<stdio.h>
  2. #include<conio.h>
  3.  
  4. void vectorPuntero(int *v, int ce);
  5. void vectorCopia(int v[], int ce);
  6.  
  7.  
  8. void main() {
  9.  
  10.   int vecmain[5];
  11.   int i;
  12.  
  13.   for(i = 0;i < 5;i++) {
  14.     vecmain[i] = 0;
  15.   }
  16.  
  17.   for(i = 0;i < 5;i++) {
  18.     printf("\nvecmain[%d] = %d",i,vecmain[i]);
  19.   }
  20.  
  21.   vectorPuntero(vecmain, 5);
  22.  
  23.   for(i = 0;i < 5;i++) {
  24.     printf("\nvecmain[%d] = %d",i,vecmain[i]);
  25.   }
  26.  
  27.   vectorCopia(vecmain,5);
  28.  
  29.   for(i = 0;i < 5;i++) {
  30.     printf("\nvecmain[%d] = %d",i,vecmain[i]);
  31.   }
  32.  
  33.   printf("\nPresione una tecla para salir");
  34.   getch();
  35. }
  36.  
  37.  
  38. void vectorPuntero(int *v, int ce) {
  39.   int aux;
  40.  
  41.   for(aux = 0;aux < ce;aux++) {
  42.     printf("\nv[%d] = %d", aux, *(v+aux));
  43.   }
  44.  
  45.   for(aux = 0;aux < ce;aux++) {
  46.     *(v+aux) = 1;
  47.   }
  48.  
  49.   for(aux = 0;aux < ce;aux++) {
  50.     printf("\nv[%d] = %d", aux, *(v+aux));
  51.   }
  52.  
  53. }
  54.  
  55.  
  56. void vectorCopia(int v[], int ce) {
  57.   int aux;
  58.  
  59.   for(aux = 0;aux < ce;aux++) {
  60.     printf("\nv[%d] = %d", aux, v[aux]);
  61.   }
  62.  
  63.   for(aux = 0;aux < ce;aux++) {
  64.     v[aux] = 2;
  65.   }
  66.  
  67.   for(aux = 0;aux < ce;aux++) {
  68.     printf("\nv[%d] = %d", aux, v[aux]);
  69.   }
  70. }
  71.  
En el codigo anterior cree dos funciones para manejar un vector, en una usando aritmetica de punteros y en el otro manteniendo la indexacion. Ambas modifican el vector del main, o sea no se pasa por valor el parametro.

55
C/C++ / Parametro Por Referencia
« en: Sábado 8 de Julio de 2006, 03:42 »
Alguien me puede decir cual es el error de este codigo?

Código: Text
  1. #include<stdio.h>
  2.  
  3. void mifuncionPorPuntero(int *lavar);
  4. void mifuncionPorReferencia(int &lavar);
  5.  
  6. int main(){
  7.   int variable;
  8.   variable = 1;
  9.  
  10.   printf("Valor inicial = %d\n", variable);
  11.   mifuncionPorPuntero(&variable);
  12.   printf("Valor despues de llamada por puntero = %d\n", variable);
  13.   mifuncionPorReferencia(variable);
  14.   printf("Valor despues de llamada por referencia = %d\n", variable);
  15.   getchar();
  16. }
  17.  
  18. void mifuncionPorPuntero(int *lavar){
  19.   (*lavar)++;
  20. }
  21.  
  22. void mifuncionPorReferencia(int &lavar){
  23.   lavar++;
  24. }
  25.  

56
C/C++ / Referencias A Variables
« en: Viernes 7 de Julio de 2006, 23:45 »
No me queda bien claro como es el tema de definir alias para las variables. Por ej en este codigo:
Código: Text
  1.  
  2. int main() {
  3.    int a;
  4.    int &r = a;
  5.  
  6.    a = 10;
  7.    cout << r << endl;
  8.    return 0;
  9. }
  10.  

la linea que define el alias es:
Código: Text
  1.    int &r = a;
  2.  
o sea, a la direccion de r se le asigna el contenido de a?. Entiendo el concepto, pero me parece medio confuso.  Tiene una explicacion esto?. La idea es que dos variables apunten al mismo objeto.

57
C/C++ / Debuggear Un Codigo
« en: Miércoles 5 de Julio de 2006, 16:29 »
quiero aprender a debugguear un codigo. Aclaro que no tengo ni idea de como hacerlo en C, con VB marcaba los braek points y luego ejecutaba y me fijaba los valores de las variables que iban tomando. Pero como es en Borland c/c++ 5.02?, o de ultima en el dev c?

58
C/C++ / Lista Simplemente Enlazada
« en: Domingo 2 de Julio de 2006, 21:56 »
No entiendo bien que hace la funciion insertar. Aca esta el codigo, la parte de ing por teclado la suprimi para que el codigo sea mas corto.

Código: Text
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include "carga_lectura.h"
  4.  
  5.  
  6. int lista_vacia(struct lista *);
  7. struct lista* lista_lena();
  8. struct lista* insertar(struct lista *, struct dato);
  9. void listar(struct lista *);
  10. struct lista* eliminar(struct lista *q, int nl);
  11.  
  12. void main() {
  13.   struct dato x;
  14.   struct lista *p=NULL;
  15.   FILE *arch;
  16.  
  17.  
  18.   if(lista_vacia(p)) {
  19.     printf("La lista esta vacia");
  20.   }
  21.  
  22.   /* CARGA DE LOS DATOS */  
  23.  
  24.   p = insertar(p,x);
  25.  
  26.   listar(p);
  27.  
  28.   p = eliminar(p, x.leg);
  29.  
  30.   fclose(arch);
  31.   printf("Presione una tecla para salir");
  32.   getch();
  33. }
  34.  
  35.  
  36.  
  37. int lista_vacia(struct lista *q) {
  38.   if(q = NULL) {
  39.     return 1;
  40.   } else {
  41.     return 0;
  42.   }
  43. }
  44.  
  45.  
  46. struct lista* insertar(struct lista *q, struct dato d) {
  47.   struct lista *nuevo, *ant=q, *act=q;
  48.  
  49.   if((nuevo=lista_llena())==NULL) {
  50.     printf("Lista llena");
  51.   } else {
  52.     nuevo->d = d;
  53.     nuevo->sig = NULL;
  54.  
  55.     if(lista_vacia(q)) q = nuevo;
  56.     else {
  57.       while(act && act->d.leg < d.leg) {
  58.         ant=act;
  59.         act=act->sig;
  60.       }
  61.       if(ant==act) {
  62.         nuevo->sig = q;
  63.         q = nuevo;
  64.       } else {
  65.         ant->sig=nuevo;
  66.         nuevo->sig=act;
  67.       }
  68.     }
  69.   }
  70.   return (q);
  71. }
  72.  
  73. struct lista * lista_lena() {
  74.   struct lista *q;
  75.   q = (struct lista *)malloc(sizeof(struct lista));
  76.   return q;
  77. }
  78.  
  79. void listar(struct lista *q) {
  80.   if(lista_vacia(q)) {
  81.     printf("Lista vacia");
  82.   } else {
  83.     while(q) {
  84.       printf("%5d %-40s %10.2f \n", q->d.leg, q->d.apyn, q->d.prom);
  85.       q = q->sig;
  86.     }
  87.   }
  88. }
  89.  
  90. struct lista* eliminar(struct lista *q, int nl) {
  91.   struct lista *ant=q, *act=q;
  92.   if(lista_vacia(q)) {
  93.     printf("Lista vacia");
  94.   } else {
  95.     while(act && nl > act->d.sig) {
  96.       ant = act;
  97.       act = act->sig;
  98.     }
  99.     if((act==NULL)||(act->d.leg !=nl)) {
  100.       printf("No encontrado");
  101.     } else {
  102.       if(ant==act) {
  103.         q=act->sig;
  104.       } else {
  105.         ant->sig=act->sig;
  106.       }
  107.       free(act);
  108.     }
  109.   }
  110.   return (q);
  111. }
  112.  
  113.  

Esta parte del codigo no entiendo, mas especificamente el while.

Código: Text
  1.     if(lista_vacia(q)) q = nuevo;
  2.     else {
  3.       while(act && act->d.leg < d.leg) {
  4.         ant=act;
  5.         act=act->sig;
  6.       }
  7.       if(ant==act) {
  8.         nuevo->sig = q;
  9.         q = nuevo;
  10.       } else {
  11.         ant->sig=nuevo;
  12.         nuevo->sig=act;
  13.       }
  14.     }
  15.  

59
C/C++ / Rules And Recommendations
« en: Lunes 26 de Junio de 2006, 21:52 »
Estoy buscando algo parecido a este libro pero de C.

http://www.doc.ic.ac.uk/lab/cplus/c++.rules/

O sea, algo que tenga recomendaciones y estandares a seguir.

60
C/C++ / Headers
« en: Lunes 26 de Junio de 2006, 15:08 »
Hola, por cada haeder de ANSI C, o sea, me refiero a cada archivo  *.h hay un archivo ensamblado que posee el codigo de las funciones?

61
C/C++ / Conio.h
« en: Jueves 22 de Junio de 2006, 20:11 »
Alguien sabe que significa conio?, asi como stdio significa standard input/output.

62
C/C++ / Null
« en: Domingo 11 de Junio de 2006, 21:42 »
que es NULL?, una macro?, lo estoy usando mucho con punteros pero en definitiva no se que es. Se que se utiliza para indicar que el puntero no apunta a ningun lado.

63
C/C++ / Typedef
« en: Sábado 10 de Junio de 2006, 15:25 »
que diferencia hay entre estos dos codigos.
Código: Text
  1.  
  2. typedef struct {
  3.    int a;
  4. }tpo_elemento;
  5.  
  6.  
y
Código: Text
  1.  
  2. typedef struct nodo {
  3.   int a;
  4. }tipo_elemento;
  5.  
  6.  

64
C/C++ / Organizacion De La Memoria Cuando Se Ejecuta Prog
« en: Sábado 10 de Junio de 2006, 00:01 »
Lo que quiero saber y que no lo encontre buscando en el foro de C es como se organiza la memoria para cada proceso creado. Me refiero al  sector que guarda las variables globales, punteros, espacio para memoria dinamica, variables locales de funciones,etc.

Páginas: 1 2 [3]