• Jueves 18 de Abril de 2024, 15:21

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 - elpis

Páginas: [1]
1
C++ Builder / Archivos en C++
« 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

Código: [Seleccionar]
#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
C++ Builder / Consultas en un archivo de texto
« 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)

Código: [Seleccionar]
#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
C++ Builder / Intercalar numeros de 2 vectores
« 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:
Código: [Seleccionar]
#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
C/C++ / Re:numeros capicua
« en: Jueves 28 de Julio de 2011, 23:59 »
A ver ahora:

(todos los valores me da que NO es capicua)    :ayuda:

Código: [Seleccionar]
#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
C/C++ / Vectores y Struct
« 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
C/C++ / Re: ordenar caracteres
« 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  :D

7
C/C++ / vectores de temperaturas
« 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
C/C++ / numeros capicua
« 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
C/C++ / ordenar caracteres
« 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]