|
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 - elpis
Páginas: [1]
1
« en: Domingo 21 de Agosto de 2011, 05:25 »
Escribir un programa que permita crear un archivo INVENTARIO, de los libros de una librería, así como calcular el valor total del inventario. Campos Registro Libro: título, autor, número de código, precio y cantidad de ejemplares.
Esta es la letra del problema, resolvi el programa, pero lo que no entiendo es que quiere decir : Calcular el valor total del inventario, por lo que me falta eso
#include<stdio.h> #include<conio.h> void main(){ clrscr(); char *dato1; int dato2; float dato3; char op; FILE * archi; archi =fopen("INVENTARIO","a+"); if(archi==NULL) printf("\n\n\t\tNo se creo el archivo"); else{ do{ clrscr(); printf("\n\n\t\tIngrese Codigo\t"); scanf("%i\t",&dato2); flushall(); fprintf(archi,"%i\t",dato2); printf("\n\n\t\tIngrese Titulo\t"); gets(dato1); fprintf(archi,"%s\t",dato1); printf("\n\n\t\tIngrese Autor\t"); gets(dato1); fprintf(archi,"%s\t",dato1); printf("\n\n\t\tIngrese precio\t"); scanf("%f",&dato3); flushall(); fprintf(archi,"%f\t",dato3); printf("\n\n\t\tIngrese Cantidad\t"); scanf("%i",&dato1); flushall(); fprintf(archi,"%i\n",dato1); getch(); printf("Ingreso nuevo S/N\t"); scanf("%c",&op); flushall(); }while (op=='s'); } getch(); } // FALTA CALCULAR EL VALOR TOTAL DEL INVENTARIO
2
« en: Domingo 21 de Agosto de 2011, 05:18 »
Tengo que hacer un archivo INVENTARIO, donde se tiene una lista de libros con codigo, titulo, autor, precio, y cantidad
Tengo la funcion para los ingresos al archivo; me tranque en la consulta, esta debe ser por titulo o autor.
¿Cómo se deberia hacer? (hice unos intentos pero la idea no la tengo clara,y no funciona bien)
#include<stdio.h> #include<conio.h> typedef struct libro{ char titulo[15]; char autor[15]; int codigo; float precio; int cantidad; }; void ingresar(FILE*); void consulta(FILE*); void menu(); void ingresar(FILE*archi){ libro book; clrscr(); char *dato1; int dato2; float dato3; char op; archi =fopen("INVENTARIO","a+"); if(archi==NULL) printf("\n\n\t\tNo se creo el archivo"); else{ do{ clrscr(); printf("\n\n\t\tIngrese Codigo\t"); scanf("%i\t",&dato2); flushall(); fprintf(archi,"%i\t",dato1); printf("\n\n\t\tIngrese Titulo\t"); gets(dato1); fprintf(archi,"%s\t",dato1); printf("\n\n\t\tIngrese Autor\t"); gets(dato1); fprintf(archi,"%s\t",dato1); printf("\n\n\t\tIngrese precio\t"); scanf("%f",&dato3); flushall(); fprintf(archi,"%f\t",dato3); printf("\n\n\t\tIngrese Cantidad\t"); scanf("%i",&dato1); flushall(); fprintf(archi,"%i\n",dato1); getch(); printf("Ingreso nuevo S/N\t"); scanf("%c",&op); flushall(); }while (op=='s'); } getch(); fclose(archi); } void consulta(FILE *arch){ int op; libro libro; char *buscar; clrscr(); fopen("INVENTARIO","r"); printf("\n\n\t/////////////Consultas///////////////"); printf("\n\n\t1 - Por Autor"); printf("\n\n\t2 - Por Titulo\t"); scanf("%i",&op); if((op>=1)&&(op<=2)) switch(op){ case 1: printf("\n\n\tIngrese Nombre de autor\t"); scanf("%s",buscar); if(arch==NULL){ printf("\n\n\n\tError de apertura"); getch(); }else{
if(!feof(arch)){ fscanf(arch,"%i%s%s%f%i",&libro.codigo,libro.titulo,libro.autor,&libro.precio,&libro.cantidad); printf("\n\t\tSe encontraron coincidencias:"); printf("\n\n\t\t%i\t%s\t%s\t%f\t%i",libro.codigo,libro.titulo,libro.autor,libro.precio,libro.cantidad);
}
} break; case 2: break; } getch(); } void menu(){ printf("\n\n\t/////////////////MENU///////////////////"); printf("\n\n\t1 - Ingresar libros a la lista"); printf("\n\t2 - Consultas de libros"); printf("\n\t3 - Salir"); printf("\n\n\t Ingrese opcion\t"); } void main(){ FILE *file; int op; do{ clrscr(); menu(); scanf("%i",&op); flushall(); if((op>=1)&&(op<=2)) switch(op){ case 1: ingresar(file); break; case 2: consulta(file); break; } }while(op!=3); }
3
« en: Viernes 29 de Julio de 2011, 00:09 »
El problema es el siguiente, realizar 3 vectores, vector 1 y 2 son para ingreso de numeros, el 3ero es para intercalan los numeros de los dos primeros.
este es el codigo:
#include<stdio.h> #include<conio.h> #include<alloc.h> void vectores(); void vectores(){ int *vector1,*vector2,*vector3; int pos=0,i=0,n=0,h=0; clrscr(); vector1=(int*)calloc(1,sizeof(float)); if(vector1==NULL){ printf("\nNo hay memoria"); getch(); }else{ do{ printf("\n\tIngrese elemento del vector (0 para salir)"); scanf("%i",&n); flushall(); if(n!=0){ vector1[pos]=n; pos++; vector1=(int*)realloc(vector1,sizeof(int)); if(vector1==NULL){ printf("\n\tNo hay memoria para proximo numero"); getch(); break; } } }while(n!=0); } clrscr(); vector2=(int*)calloc(pos,sizeof(int)); for(i=0;i<=pos-1;i++){ printf("\n\tIngrese elemento 2do vector\t"); scanf("%i",&vector2[i]); flushall(); } vector3=(int*)calloc(pos*2,sizeof(int)); for(i=0;i<=pos-1;i++){ vector3[h]=vector1[i]; h=h+2; } h=1; for(i=0;i<=pos-1;i++){ vector3[h]=vector2[i]; h=h+2; } pos=(pos-1)*2; clrscr(); printf("\n\tvector 3:"); for(i=0;i<=pos;i++) printf(" %i ",vector3[i]); free(vector1); free(vector2); free(vector3);
} void main(){ clrscr(); vectores(); getch(); }
El error se da cuando al mostrar el 3er vector, los primeros numeros diria que se intercalan bien, pero ya los ultimos parareces cualquier numero.
gracias
4
« en: Jueves 28 de Julio de 2011, 23:59 »
A ver ahora: (todos los valores me da que NO es capicua)  #include<stdio.h> #include<conio.h> #include<string.h> char* invertir (char *); char* invertir (char *n){ char* auxi; int largo=(strlen(n)),o=0,i=0; while (o<=(strlen(n))){ auxi[i]=n[largo]; largo--; o++; i++; } return auxi; }
void main(){ clrscr(); char *numero,*resultado; int conf,i; printf("\n\n\t\tIngrese numero\n\t\t"); gets(numero); clrscr(); // resultado=invertir(numero); printf("resutado %s",invertir(numero)); for(i=0;i<strlen(numero);i++) if(numero[i]==resultado[i]); conf++; if(conf==strlen(numero)) printf("\n\n\n\t\tEs capicua"); else printf("\n\n\n\t\tNo es capicua"); getch(); }
5
« en: Viernes 15 de Julio de 2011, 06:17 »
Ell programa dice lo siguiente: Crear un programa que permita ingresar 15 datos, la TEMPERATURA PROMEDIO y CIUDAD a la que pertenece. Se desplegar un menu con las opciones:Ingresar Datos al vector, Consulta de temperatura por CIUDAD, Mayor temperatura, Menor temperatura, Temperatura promedio, Temperaturas más cercanas a la media, Salir En todos los casos desplegar la CIUDAD a la que pertenece la temperatura. El codigo me va quedando algo así: #include<stdio.h> #include<conio.h> #define TEMP 15 struct temperatura{ int temp_prom; char ciudad[10]; }; void menu(void); void ingresar(struct temperatura temp[]); //void consulta(struct temperatura temp[]); void mayor(struct temperatura temp[]); void menor(struct temperatura temp[]); void promedio(struct temperatura temp[]); void cercana (struct temperatura[]); void menu(void){ clrscr(); printf("nnntt1 - Ingresar Datos al vector"); printf("ntt2 - Consuta de temperatura por CUIDAD"); printf("ntt3 - Mayor temperatura"); printf("ntt4 - Menor temperatura"); printf("ntt5 - Temperatura promedio"); printf("ntt6 - Temperaturas mas cercanas a la medida"); printf("nntt7 - Salir"); } void ingresar(struct temperatura temp[TEMP]){ int i; for(i=0;i<16;i++){ clrscr(); printf("nnnttIngrese TEMPERATURA PROMEDIO"); scanf("%i",&temp .temp_prom); flushall(); printf("nnnttIngrese CIUDAD"); gets(temp.ciudad); }
} //void consulta(struct temperatura temp[15]) { // clrscr(); // char auxi; // int i; // printf("Ingrese Ciudad"); // scanf("%c",&auxi); // for(i=0;i<TEMP;i++){ // if(temp.ciudad==auxi) // printf("%i",temp.temp_prom); // // // } void mayor(struct temperatura temp[TEMP]){
clrscr(); int mayor,i; mayor=temp[0].temp_prom; char *ciudad; for(i=0;i<16;i++) if(temp.temp_prom>mayor){ mayor=temp.temp_prom; ciudad=temp.ciudad; } printf("ntNumero mayor %i en %s",mayor,ciudad);
} void menor (struct temperatura temp[TEMP]){ clrscr(); int menor,i; menor=temp[0].temp_prom; char *ciudad; for(i=0;i<16;i++) if(temp.temp_prom<menor){ menor=temp.temp_prom; ciudad=temp.ciudad; } printf("ntNumero mayor %i en %c",menor,ciudad);
} void promedio(struct temperatura temp[TEMP]){ int i,promedio=0; for(i=0;i<TEMP;i++) promedio=promedio+(temp.temp_prom); promedio=promedio/TEMP; printf("nttPromedio de Temperaturas: %i",promedio);
} void cercana(struct temperatura temp[TEMP]){ int i,media=0,vec_auxi[TEMP],cerca; for(i=0;i<TEMP;i++) media=media+(temp.temp_prom); media=media/TEMP; for(i=0;i<TEMP;i++) if(temp.temp_prom) vec_auxi=(temp.temp_prom)-media; else vec_auxi=media-(temp.temp_prom); cerca=vec_auxi; for(i=0;i<TEMP;i++) if(vec_auxi<cerca) menor=vec_auxi; printf("ntcerca %i", menor); }
void main(){ struct temperatura temp[15]; int op; do{ clrscr(); menu(); scanf("%i",&op); flushall(); if((op>=1)&&(op<=7)){ switch(op){ case 1: ingresar(temp); break; // case 2: consulta(temp); // break; case 3: mayor(temp); break; case 4: menor(temp); break; case 5: promedio(temp); break; // case 6: cercana(temp); // // break; } } else if(op!=7){ printf("nntError, opcion invalida!"); getch(); } }while(op!=7); }
LAs funciones que me funcionan bien son la del menu y la de ingreso pero las el resto, por ejemplo cuando tengo que escojer una de las opciones solo sirve la 1 las demás no las "detecta" , debe haber un error que he dejado pasar, pero no lo encuentro,
ahora bien, para las funcion consulta, me he entreverado al momento de hacerla por eso está comentada,,,, idea como hacerlo¿
por ultimo la funcion de cercana, como puedo hacer eso¿¿¿¿?????
Muchisimas Gracias!!
Agradezco Muchissimo respuesta
6
« en: Viernes 15 de Julio de 2011, 06:03 »
Gracias Amigo, estoy aprendiendo esto del método de la burbuja, ya que lo había escuchado pero nunca tuve la precaución de investigarlo, haber si ahora soluciono el programa. Gracias
7
« en: Domingo 10 de Julio de 2011, 22:41 »
Hola a todos!! el problema es el siguiente
Crear un programa que permita ingresar 15 datos, la TEMPERATURA PROMEDIO y CIUDAD a la que pertenece. Desplegar el siguiente menú.
Ingresar Datos al vector Consulta de temperatura por CIUDAD Mayor temperatura Menor temperatura Temperatura promedio Temperaturas más cercanas a la media Salir
En todos los casos desplegar la CIUDAD a la que pertenece la temperatura.
pero me he entreverado con tantas funciones, haber si me ayudan... como sigeo y idea para relizar cada funcion tiendo en cuenta que para toda cosulta de temperatura hay que nombrar de que ciudad estamos hablando
//codigo
#include<stdio.h> #include<conio.h> struct temperatura{ float temp_prom[10]; char ciudad[10]; }; void menu(void); void ingresar(struct temperatura[]); void consulta(struct temperatura[]);
//void mayor(struct temperatura[]); //void menor(struct temperatura[]); //void promedio(struct temperatura[]); //void cercana (struct temperatura[]); void menu(void){ clrscr(); printf("nnntt1 - Ingresar Datos al vector"); printf("ntt2 - Consuta de temperatura por CUIDAD"); printf("ntt3 - Mayor temperatura"); printf("ntt4 - Menor temperatura"); printf("ntt5 - Temperatura promedio"); printf("ntt5 - Temperaturas mas cercanas a la medida"); printf("nntt6 - Salir"); } void ingresar(struct temperatura temp[]){ int i; for(i=0;i<16;i++){ clrscr(); printf("nnnttIngrese TEMPERATURA PROMEDIO"); scanf("%f",&temp.temp_prom); flushall(); printf("nnnttIngrese CIUDAD"); gets(temp.ciudad); flushall(); } } void consulta(temperatura tem[15]) { clrscr(); char auxi; printf("Ingrese Ciudad"); scanf("%s",auxi);
} void main(){ temperatura temp[15]; clrscr(); int op; menu(); scanf("%i",&op); switch(op){ case 1: ingresar(temp); break; case 2: consulta(temp); break; // case 3: mayor(temp); // break; // case 4: menor(temp); /// break; //case 5: promedio(temp); // break; // case 6: cercana(temp); // break; }
}
8
« en: Domingo 10 de Julio de 2011, 22:37 »
Haber como es esto....
problema: todo numero que ingreso da null !!
el programa permite ingresar un numero y dice si es capicúa //codigo #include<stdio.h> #include<conio.h> #include<string.h> char* capicua(char*); char* capicua(char*num){ int largo=strlen(num),i; char* auxi,otro; for(i=0;i<largo;i++){ auxi=num; num=num[largo]; num[largo]=auxi; largo--; } i=0; while (i<strlen(num)){ if(auxi==num){ i++; if(i==strlen(num)) printf("Numero capicula"); }else{ printf("nttNo es capicua"); break; } } } void main(){ clrscr(); char* numero; printf("Ingrese numero"); scanf("%s",&numero); flushall(); printf("%s",capicua(numero)); getch(); }
9
« en: Domingo 10 de Julio de 2011, 22:30 »
HOla! estoy haciendo un programa con 5 funciones en C++ : la primera muestra un menu las otras 4 son las opciones del menu respectivamente.
menu: ingresar nuemros ingresar caracteres ordenar ascendentemente ordenar descendentemente salir
si bien el codigo es una aproximación, ya que tiene cosas que arreglar, y que le faltan no se me ocurre la funcion para ordenar los caracteres, me podrían ayudar?
///codigo #include<stdio.h> #include<conio.h> #include<stdlib.h> void menu(); int ingres_num(int); char ingres_carac(char); void oden_ascen(int[],char*,int); void orden_descen(); void menu(void){ printf("nnt1 - Ingresar numeros"); printf("nt2 - Ingresar caracteres"); printf("nt3 - Ordenar ascendentemente"); printf("nt4 - Ordenar descendentemente"); printf("nt5 - Salir"); printf("nnt Ingrese la opcion escogida");
} int ingres_num(int *num){ int i=0,n=10,x=5; clrscr(); num=(int*)calloc(n,sizeof(int)); printf("Ingrese numeros (0 para terminar)"); gotoxy(3,5); scanf("%i",&num); if(num!=NULL&&n!=0){ while(num!=0){ i++; gotoxy(x,5); scanf("t%i",&num); flushall(); x=x+2; } } return *num; } char* ingres_carac(char* car){ clrscr(); printf("Ingrese los caracteres (enter para terminar)nttt"); gets(car); return car; } void orden_ascen(int num[],char* car,int i){ ////////////////////////////////////////////////////////////////////////////// //////////////////////////////// //////////////////// } void main(){ int *numeros,op,i=0; char *caracteres; do{ clrscr(); menu(); scanf("%i",&op); flushall(); if((op>=1)&&(op<=4)) switch(op){ case 1: ingres_num(numeros); break; case 2: ingres_carac(caracteres); break; case 3: orden_ascen(numeros,caracteres,i); break; case 4: // orden_descen(numeros,caracteres); break; } else if(op!=5){ printf("ERROR!, opcion escogida no se encuentra,intro para ingresar nuevamente"); getch(); } }while(op!=5);
}
me olvidaba:
Máximo de datos en los vectores 10 elementos.
Páginas: [1]
|
|
|