|
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 - Iganguli
26
« en: Viernes 1 de Agosto de 2008, 19:39 »
las cadenas no se comparan con == se usa strcmp
if( !strcmp(nombre, "leonardo") && !strcmp(Apellido,"trigos") )
strcmp regresa 0 si son iguales, -1 si es meno y 1 si es mayor
27
« en: Jueves 31 de Julio de 2008, 17:44 »
si lo que quieres es declararla local ponle static asi al salir de la funcion te asegurara que siga ese espacio de memoria reservado
28
« en: Viernes 25 de Julio de 2008, 18:53 »
Pero recuerda que cuando definís un puntero con new, tenés que eliminarlo con delete en este caso se hace asi for( int = 0; i < filas; ++i) delete [] mat[filas] delete [] mat
29
« en: Viernes 25 de Julio de 2008, 04:48 »
bueno antes que nada necesitas saber que con el turbo c++ 3.0 no vas a llegar a algun lado, ya que es un compilador viejisimo, usa uno mas actual como el de gnu en s version para windows minigw, despues uno poco de ASM y un buen libro te recomiendo el de el creador de minix en ese libro esta el codigo fuente de es SO
30
« en: Jueves 24 de Julio de 2008, 20:42 »
Bueno, como sabemos cuando trabajan con C++ hablamos de aspecto grafico, osea botones, barras etc.- Cuando hablamos de C++ se habla de Programacion Orientada a Objetos Eso de botones iy barras es GUI y para lo que tu quieres usa librerias Qt Glade o las Winforms de Microsoft y para estas ultimas usa el VC++ express
31
« en: Miércoles 23 de Julio de 2008, 22:58 »
puedes probar con un puntero doble ej: float **mat, despues pides al usuario que determine el tamaño pidiendo filas y columnas, y con "new" o "malloc" creas la matriz en el double puntero; printf("da las filas"); scanf("%d", &filas); printf("da las columnas"); scanf("%d", &columnas); **mat = new float[filas]; for( i = 0; i < filas; i++) *mat[i] = new float[columnas];
y asi haces la matriz
32
« en: Viernes 11 de Julio de 2008, 06:43 »
Te paso este codigo que tal vez te pueda ayudar Domains lista = elemento* elemento = symbol N = integer Predicates nondeterm elemento(elemento, N, lista). Clauses elemento (X, 1, [X|_]). elemento (X, N, [_|C]) :- elemento(X, M, C), N = M + 1. Goal %elemento (E,3,[a,b,c,d]). elemento (c,N,[a,b,c,d]).
33
« en: Miércoles 2 de Julio de 2008, 21:56 »
Pues la busqueda binaria se usa sobre vectores ordenados y generalmente se toma como pivote el elemento de enmedio y si es mayor el elemento que busco desecho la otra mitad y asi no es necesario pasarlo a un arbol binario
34
« en: Miércoles 2 de Julio de 2008, 21:50 »
Cuando te refieres a Deitel es un a una guia de programacion un entorno de desarrollo o que? Se refiere al libro escrito por Deitel padre e hijo es un buen libro para aprender a programar en C/C++
35
« en: Jueves 19 de Junio de 2008, 05:30 »
si pones cual es el error que te arroja asi como las caracteristicas de la computadora o has proba instalando oto compilador por que podrian ser muchas cosas si fueras mas explicito te podrian ayudar mejor
36
« en: Martes 17 de Junio de 2008, 04:48 »
si pones el codigo que llevas hecho te podrian ayudar mucho mas ya que se verian los errores que cometes y tratar de corregirlos, recuerda que no solo es pedir y espera a que alguien haga el trabajo por ti
37
« en: Domingo 15 de Junio de 2008, 04:48 »
te has olvidado de hacer lo que dijo eternal cuando usas scanf te hace flata &usuario modificalo y haber que tal
38
« en: Sábado 14 de Junio de 2008, 23:33 »
bueno una forma estandar creo que no existe (creo  ) y tomalo como un consejo no uses el borlnad ya que es un compilador de 16 bits aparte de viejisimo no esta actualizado al c++ puedes probar con otros compiladores como el vc++ en su version express si no quieres pagar licencia  o usar los de gnu como el minigw o el codeblocks o es el dev cpp y dejar atras el borland
39
« en: Viernes 13 de Junio de 2008, 05:48 »
si estas usando c++ entonces la libreria es la #include <cstdlib>
y si usas c entonces es la #include <stdlib.h>
40
« en: Domingo 8 de Junio de 2008, 02:07 »
puedes usar system("cls"); que esta en la stdlib.h
41
« en: Lunes 19 de Mayo de 2008, 04:40 »
revisa esta linea declaras cad de tamaño 1 por ende cuando ingresas datos no lo reconoce bien , lo podrias solucionar declarando cad de mayor tamaño recuerda reservar 1 mas para el '\0' que es el de terminacion de cadena
42
« en: Miércoles 7 de Mayo de 2008, 19:47 »
en esta linea lo que hace es dividir entre 10 y multiplicar por 10 pero como son enteros no da el mismo resultado ejemplo x = 1234 si divido (1234 / 10) como los dos numeros son enteros entonces me da como resultado 123 el cual es multiplicado por 10 y da 1230 si se lo resto al valor de x me da el 4 el cual es el valor que adquiere paso en el la primera vez que se ejecuta el ciclo entonces no da infinitamente 0 reflejo= reflejo*potencia+paso;
en esta linea reflejo aduqiere el valor de 4 con lo cual tampoco es infinitamente 0 aqui lo que hace es quitarle las unidades al numero x es como en el paso 1 como se divide entre enteros se elimina el residuo ahora digo que el detalle esta en por que a la tercera vuelta en reflejo esta 43 peo potencia es 100 entonces 43 * 100 es 4300 y si le sumamos el paso que seria 2 me da 4302 deberia que checar esta linea de codigo
43
« en: Miércoles 7 de Mayo de 2008, 05:11 »
Deberias checar esta linea en esta podria estar el error te sugiero que hagas el ejercicio e papel y lo vayas haciendo paso a paso ahi te daras cuenta del error
44
« en: Viernes 11 de Abril de 2008, 20:49 »
puedes usar int main(int argc, char *argv[])
45
« en: Miércoles 9 de Abril de 2008, 19:51 »
checate estas lineas long double p; scanf("%d %d",&n,&p);
estas tratando de leer 2 numero enteros cuando p es un long double
46
« en: Domingo 16 de Marzo de 2008, 07:29 »
bueno ahora si creo que ya encontre el problema y le cambie el fwrite al fpintf les anexo el codigo por si ha alguien le interesa #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> #define MAX 125 char archivo1[]="C:\\empleados.txt"; char archivo2[]="C:\\departamento.txt"; char archivo3[]="C:\\bueno.txt"; char *tmp; typedef struct { int ID; char nombre[20]; int depto; }empleado; typedef struct { int depto; char nom_dep[20]; }departamento; typedef struct { int ID; char nombre[20]; char depa[20]; }combina; empleado separar(char *temporal) { empleado emp; tmp=strtok(temporal,","); emp.ID=atoi(tmp); tmp=strtok(NULL,","); strcpy(emp.nombre,tmp); tmp=strtok(NULL,"\n"); emp.depto=atoi(tmp); printf("\n%d %s %d",emp.ID,emp.nombre,emp.depto); return emp; } departamento separar2(char *temporal) { departamento dep; tmp=strtok(temporal,","); dep.depto=atoi(tmp); tmp=strtok(NULL,"\n"); strcpy(dep.nom_dep,tmp); printf("\n%d %s",dep.depto,dep.nom_dep); return dep; } int main() { FILE *arch1, *arch2, *arch3; char temporal[MAX]; int i=0,j,k,tame=0,tamd=0,band; empleado tempor[10]; departamento tempo[10]; combina aux[10]; arch1=fopen(archivo1,"r+"); arch2=fopen(archivo2,"r+"); if(arch1==NULL || arch2==NULL) printf("Error de apertura"); else { fgets(temporal,MAX,arch1); printf("leyendo empleados\n"); while(!feof(arch1)) { tempor[i]=separar(temporal); fgets(temporal,MAX,arch1); i++; } //fgets tame=i++; i=0; fgets(temporal,MAX,arch2); printf("leyendo depto\n"); while(!feof(arch2)) { tempo[i]=separar2(temporal); fgets(temporal,MAX,arch2); i++; } tamd=i++; } printf("\n\n"); for(i=0;i<tame;i++) printf("%d %s %d \n",tempor[i].ID,tempor[i].nombre,tempor[i].depto); printf("\n\n"); for(i=0;i<tamd;i++) printf("%d %s \n",tempo[i].depto,tempo[i].nom_dep); printf("\n\n"); for(j=0;j<tame;j++) { aux[j].ID = tempor[j].ID; memset(aux[j].nombre,' ',21); memset(aux[j].depa,' ',21); strcpy(aux[j].nombre ,tempor[j].nombre); band=0; for(k=0;k<=tamd;k++) { if(tempor[j].depto==tempo[k].depto) { strcpy(aux[j].depa,tempo[k].nom_dep ); band=1; } } if(band==0) strcpy(aux[j].depa,"Desconocido"); } for(i=0;i<tame;i++) { printf("%s %s %d \n",aux[i].nombre,aux[i].depa,aux[i].ID); } arch3=fopen(archivo3,"w+"); if(arch3!=NULL) { for(j=0;j<tame;j++) { fprintf(arch3,"%s %s %d \n",aux[j].nombre,aux[j].depa,aux[j].ID); } } else printf("No se pudo abrir el 3 archivo\n"); fclose(arch1); fclose(arch2); fclose(arch3); system("pause"); return EXIT_SUCCESS; }
47
« en: Viernes 14 de Marzo de 2008, 14:04 »
al paracer tenia mal mas que eso pero ya lo resolvi pero ahora como lo guardo ya que nada mas guarda el nombre y el area pero el id no de nuevo alguien que me eche la mano #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> #define MAX 125 char archivo1[]="C:\\empleados.txt"; char archivo2[]="C:\\departamento.txt"; char archivo3[]="C:\\bueno.txt"; char *tmp; typedef struct { int ID; char nombre[20]; int depto; }empleado; typedef struct { int depto; char nom_dep[20]; }departamento; typedef struct { int ID; char nombre[20]; char depa[20]; }combina; empleado separar(char *temporal) { empleado emp; memset(emp.nombre,' ',20); tmp=strtok(temporal,","); emp.ID=atoi(tmp); tmp=strtok(NULL,","); strcpy(emp.nombre,tmp); tmp=strtok(NULL,","); emp.depto=atoi(tmp); printf("\n%d %s %d",emp.ID,emp.nombre,emp.depto); return emp; } departamento separar2(char *temporal) { departamento dep; memset(dep.nom_dep,' ',20); tmp=strtok(temporal,","); dep.depto=atoi(tmp); tmp=strtok(NULL,"\n"); strcpy(dep.nom_dep,tmp); printf("\n%d %s",dep.depto,dep.nom_dep); return dep; } int main() { FILE *arch1, *arch2, *arch3; char temporal[MAX]; int i=0,j,k,tame=0,tamd=0; empleado tempor[10]; departamento tempo[10]; combina aux[10]; arch1=fopen(archivo1,"r+"); arch2=fopen(archivo2,"r+"); if(arch1==NULL || arch2==NULL) printf("Error de apertura"); else { fgets(temporal,MAX,arch1); while(!feof(arch1)) { tempor[i]=separar(temporal); fgets(temporal,MAX,arch1); i++; } tempor[i]=separar(temporal); tame=i++; i=0; fgets(temporal,MAX,arch2); while(!feof(arch2)) { tempo[i]=separar2(temporal); fgets(temporal,MAX,arch2); i++; } tempo[i]=separar2(temporal); tamd=i++; } for(i=0;i<=tame;i++) printf("%d %s %d \n",tempor[i].ID,tempor[i].nombre,tempor[i].depto); for(i=0;i<=tamd;i++) printf("%d %s \n",tempo[i].depto,tempo[i].nom_dep); for(j=0;j<=tame;j++) { aux[j].ID = tempor[j].ID; memset(aux[j].nombre,' ',21); memset(aux[j].depa,' ',21); strcpy(aux[j].nombre ,tempor[j].nombre ); for(k=0;k<=tamd;k++) if(tempor[j].depto==tempo[k].depto) strcpy(aux[j].depa,tempo[k].nom_dep ); } for(i=0;i<tame;i++) { printf("%s %s %d \n",aux[i].nombre,aux[i].depa,aux[i].ID); } arch3=fopen(archivo3,"w+"); if(arch3!=NULL) { for(j=0;j<tame;j++) { fwrite(&aux[j],sizeof(combina),1,arch3); } } else printf("No se pudo abrir el 3 archivo\n"); fclose(arch1); fclose(arch2); fclose(arch3); system("pause"); return EXIT_SUCCESS; }
48
« en: Viernes 14 de Marzo de 2008, 13:53 »
hola tengo dudas en este programa lo que tiene que hacer es leer datos de 2 archivos y combinarlos en uno mismo asi por ejemplo el archivo empleados tiene 1,jose,10 2,luisa,20 3,juan,5 y el archivo departamento tiene 10,sistemas 5,administracion 20,soporte entonces en el archivo bueno.txt deberia guardar 1,jose,sistemas 2,luisa,soporte 3,juan,administracion el prolema es que si lee bien los registros del archivo empleado y departamento pero al momento de guardarlos al 3 archivo ya no lo guarda si alguien e echa una mano gracias #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> #define MAX 125 char archivo1[]="C:\\empleados.txt"; char archivo2[]="C:\\departamento.txt"; char archivo3[]="C:\\bueno.txt"; typedef struct { int ID; char nombre[30]; int depto; }empleado; typedef struct { int depto; char nom_dep[30]; }departamento; typedef struct { int ID; char nombre[30]; char depa[30]; }combina; empleado separar(char *temporal) { empleado emp; memset(emp.nombre,' ',30); char aux[]=","; char *tmp; tmp=strtok(temporal,aux); emp.ID=atoi(tmp); tmp=strtok(NULL,aux); strcpy(emp.nombre,tmp); tmp=strtok(NULL,aux); emp.depto=atoi(tmp); printf("\n%d %s %d",emp.ID,emp.nombre,emp.depto); return emp; } departamento separar2(char *temporal) { departamento dep; memset(dep.nom_dep,' ',30); char aux[]=","; char *tmp; tmp=strtok(temporal,aux); dep.depto=atoi(tmp); tmp=strtok(NULL,aux); strcpy(dep.nom_dep,tmp); printf("\n%d %s",dep.depto,dep.nom_dep); return dep; } int main() { FILE *arch1, *arch2, *arch3; char temporal[MAX]; int i=0,k,tame=0,tamd=0; empleado tempor[10]; departamento tempo[10]; combina aux[10]; arch1=fopen(archivo1,"r+"); arch2=fopen(archivo2,"r+"); if(arch1==NULL || arch2==NULL) printf("Error de apertura"); else { fgets(temporal,MAX,arch1); while(!feof(arch1)) { tempor[i]=separar(temporal); fgets(temporal,MAX,arch1); i++; } tempor[i]=separar(temporal); tame=i++; i=0; fgets(temporal,MAX,arch2); while(!feof(arch2)) { tempo[i]=separar2(temporal); fgets(temporal,MAX,arch2); i++; } tempo[i]=separar2(temporal); tamd=i++; } for(int j=0;j<tame;j++) { aux[i].ID = tempor[i].ID; strcpy(aux[i].nombre ,tempor[i].nombre ); for(int k=0;k<10;k++) if(tempor[i].depto==tempo[k].depto) strcpy(aux[i].depa,tempo[k].nom_dep ); } arch3=fopen(archivo3,"w+"); if(arch3!=NULL) { for(int j=0;j<tame;j++) { fwrite(&aux[j],90,1,arch3); } } else printf("No se pudo abrir el 3 archivo\n"); fclose(arch1); fclose(arch2); fclose(arch3); system("pause"); return EXIT_SUCCESS; }
49
« en: Domingo 9 de Marzo de 2008, 20:25 »
el codigo que pusiste tenia muchos problemas y diego nos hizo l favor de mostra algunos como por ejemplo que te falta el uso del ; ademas observe otors como que en el for usas , en lugar de ; ademas usas variables globales entonces el programa se puede liar un poco por que tambien las declaraste locales haciendo unas correciones quedaria asi # include<stdio.h> # include<conio.h> long factorial(int k) { long resultado=1; int i; for(i=1;i<=k;i++) resultado*=i; return(resultado); } int main(void) { int n,p,fx; printf("dame n,p"); scanf("%d %d",&n,&p); if(n<0) printf("numero invalido"); else if(p<0) printf("numero invalido"); else if(p>n) printf("numero invalido"); else fx=factorial(n)/(factorial(n-p)*(factorial(p))); printf("f(x)=%ld",fx); getch(); return 0; }
50
« en: Miércoles 20 de Febrero de 2008, 18:57 »
ok tanx por la ayuda
|
|
|