Está en la página 1de 22

Programa que convierte de metros a pies y pulgadas. #include stdio.

h main(){ float metros,resul,pulg; int resul2,pulg2; clrscr(); printf("\nValor en metros: "); scanf("%f",&metros); resul=metros*(1/.3048); resul2=resul; pulg=resul-resul2; pulg=pulg*12; pulg2=pulg; printf("El resultado es: %d pies %d pulgadas",resul2,pulg2); getch(); }

Programa que realiza las cuatro operaciones aritmticas fundamentales (+,-,*,/). #include stdio.h #include conio.h void main(){ int prim,seg,resul; char oper; clrscr(); printf("\nPrimer numero: "); scanf("%d",&prim); printf("\nOperacion a realizar (+,-,*,/): "); oper=getche(); printf("\nSegundo numero: "); scanf("%d",&seg); if(oper=='+') resul=prim+seg; if(oper=='-') resul=prim-seg; if(oper=='*') resul=prim*seg; if(oper=='/') resul=prim/seg; printf("\nEl resultado de la operacion %d %c %d es %d",prim,oper,seg,resul); getch();

Programa que lee los tres lados de un tringulo y detecta el tipo. #include stdio.h main(){ float uno,dos,tres; clrscr(); printf("\nValor del primer lado: "); scanf("%f",&uno); printf("\nValor del segundo lado: "); scanf("%f",&dos); printf("\nValor del tercer lado: "); scanf("%f",&tres); if((uno==dos) && (dos==tres) && (uno==tres)) printf("\nEl triangulo es equilatero"); else if((uno!=dos) && (dos!=tres) && (uno!=tres)) printf("\nEl triangulo es escaleno"); else printf("\nEl triangulo es isoceles"); getch(); }

Programa que lee las edades de un grupo de alumnos y encuentra el promedio. #include stdio.h main(){ int alumnos,edad,counter=1; float promedio,sumaedad=0; clrscr(); printf("\nNumero de alumnos: "); scanf("%d",&alumnos); while(1){ printf("\nEdad alumno %d: ",counter); scanf("%d",&edad);

sumaedad=sumaedad+edad; if(counter==alumnos){ break; } counter++; } promedio=sumaedad/counter; printf("\nLa edad promedio de %d alumno(s) es %.1f aos",counter,promedio); getch(); } . Funcin que lee las matrculas (nmeros enteros) y las calificaciones (tipo char) de los alumnos de un grupo y las almacene en dos arreglos unidimensionales. La funcin deber leer los datos hasta que se de una matrcula cero la cual indica el fin de captura. La funcin regresa el nmero de alumnos por el mecanismo de return. Despus debe de imprimir el contenido de los arreglos. #include stdio.h void despliega(int *mats,char *califs,int numcap); int leedato(int *mats,char *califs,int maximo); void main(void){ int max=30,matr[29],numalumn; char calif[29]; clrscr(); numalumn=leedato(matr,calif,max); printf("\nEl numero de alumnos capturados es %d",numalumn); despliega(matr,calif,numalumn); } int leedato(int *mats,char *califs,int maximo){ int n=0; printf("\n *** Introduce la matricula y su calificacion. ***"); printf("\n *** Para terminar dale un cero a la matricula. ***"); while(1){ if(n>=maximo){ printf("\nEl arreglo se encuentra lleno"); getch(); break; } printf("\n\nMatricula del alumno %d: ",n+1);

scanf("%d",mats); if(*mats==0){ break; } printf("\nCalificacion del alumno %d: ",n+1); scanf("%d",califs); mats++; califs++; n++; } return n; } void despliega(int *mats,char *califs,int numcap){ int i=1; while(1){ if(i>numcap){ break; } printf("\nLa calificacion del alumno %d es %d",*mats,*califs); i++; mats++; califs++; } getch(); }

Programa que despliega una tabla de conversin de C a F y viceversa. El programa debe tener una funcin que pregunte el tipo de conversin deseada. El usuario teclear "c" o "C" si la conversin va a ser de C a F y "f" o "F" si la conversin es de F a C, regresando el caracter ledo por medio de return. Otra funcin preguntar el rango de valores de la tabla y el incremento, recibiendo como parmetros las direcciones de las variables donde se almacenarn esos datos. Otras dos funciones sern para desplegar cada tipo de tabla de conversin. #include stdio.h #include ctype.h void despliegaFC(int *ran1,int *ran2,int *inc); void despliegaCF(int *ran1,int *ran2,int *inc); void leeDatos(int *ran1,int *ran2,int *inc); char tipoConv(void); void main(void){

int rango1,rango2,incremento; char tipo; clrscr(); tipo=tipoConv(); leeDatos(&rango1,&rango2,&incremento); if(tipo=='C'){ despliegaCF(&rango1,&rango2,&incremento); } else{ despliegaFC(&rango1,&rango2,&incremento); } } char tipoConv(void){ char caract; printf(" TABLA DE CONVERSION DE GRADOS CENTIGRADOS A GRADOS FARENHEIT"); printf("\n Y DE GRADOS FARENHEIT A GRADOS CENTIGRADOS"); printf("\n\nPara convertir de Centigrados a Farenheit oprime 'C'"); printf("\npara convertir de Farenheit a Centigrados oprime 'F'"); printf("\n\nTipo de Conversion (C o F): "); caract=toupper(getch()); return caract; } void leeDatos(int *ran1,int *ran2,int *inc){ printf("\n\nValor inicial de la tabla: "); scanf("%d",ran1); printf("\nValor final de la tabla: "); scanf("%d",ran2); printf("\n\nIncremento de los valores de la tabla: "); scanf("%d",inc); } void despliegaCF(int *ran1,int *ran2,int *inc){ int suma=*ran1,incremento=*inc,rango2=*ran2; float conversion; while(suma<=rango2){ conversion=(((suma)*9)/5)+32; printf("\n%d C ----------------------------- %.1f F",suma,conversion); suma=suma+incremento; }

getch(); } void despliegaFC(int *ran1,int *ran2,int *inc){ int suma=*ran1,incremento=*inc,rango2=*ran2; int conversion; while(suma<=rango2){ conversion=((suma-32)*5)/9; printf("\n%d F ----------------------------- %d C",suma,conversion); suma=suma+incremento; } getch(); }

Funcin que lee una serie de nmeros de la lnea de comandos y ejecuta la instruccin proporcionada despus del ltimo nmero de la serie. Si la instruccin es GUARDA, los nmeros son guardados en un arreglo de tipo entero. Si la instruccin es LISTA, los numeros son desplegados como cadenas.

#include stdio.h #include ctype.h #include string.h #include stdlib.h void main(int np, char *ps[]){ int arreglo[100],j,i; clrscr(); if(strcmp(ps[np-1],"GUARDA")==0){ for(i=0,j=1;j<(np-1);i++,j++){ arreglo[i]=atoi(ps[j]); printf("\n%d",arreglo[i]); } } if(strcmp(ps[np-1],"LISTA")==0){ for(i=1;i<(np-1);i++){ puts(ps[i]); } } }

Directorio telefnico con manejo de archivos.

#include stdio.h #include conio.h #include ctype.h #include string.h #include stdlib.h struct DIREC{ char nombre[35]; char tele[20]; }; FILE *pack(FILE *a); void ordena(FILE *a); void consulta2(FILE *a); long busca_Clave2(FILE *a,char buscado[]); void lee(FILE *a); void imprime(FILE *a); void main(){ char opcion; FILE *archivo; archivo=fopen("TELE.DAT","rb+"); /* usar opcin "wb+" para crear el archivo .DAT y despus cambiar a "rb+" */ while(1){ clrscr(); textattr(6+5*5); clrscr(); textcolor(YELLOW); cprintf(" printf("\n\n"); cprintf(" N"); printf("uevo"); textcolor(YELLOW); cprintf(" L"); printf("ista"); textcolor(YELLOW); cprintf(" B"); printf("aja"); textcolor(YELLOW); cprintf(" C"); printf("onsulta"); textcolor(YELLOW); cprintf(" O"); printf("rdena"); textcolor(YELLOW); cprintf(" S"); printf("alir");

DIRECTORIO TELEFONICO");

gotoxy(1,25); printf(" *** PRESIONE LA LETRA RESALTADA PARA ESCOGER LA OPCION ***"); gotoxy(1,4); opcion=toupper(getch()); if(opcion=='S') break; switch(opcion){ case 'N':{ lee(archivo); break; } case 'L':{ imprime(archivo); break; } case 'B':{ pack(archivo); break; } case 'C':{ consulta2(archivo); break; } case 'O':{ ordena(archivo); break; } } } clrscr(); fclose(archivo); normvideo(); clrscr(); } /*********************************************************************/ void imprime(FILE *a){ int r,y=0,c=1; struct DIREC reactivo; clrscr(); textcolor(YELLOW); cprintf("NOMBRE TELEFONO"); normvideo(); rewind(a); while(1){ r=fread(&reactivo,sizeof(struct DIREC),1,a); if(r==0) break;

if((c%2)!=0){ textattr(6+5*5); /* textcolor(LIGHTGRAY);*/ printf("\n"); cprintf("%d.- %-30s %16s",c,reactivo.nombre,reactivo.tele); normvideo(); } else{ textattr(6+5*4); /* textcolor(WHITE);*/ printf("\n"); cprintf("%d.- %-30s %16s",c,reactivo.nombre,reactivo.tele); normvideo(); } if(y==23){ getch(); y=0; } y++; c++; } getch(); }

/*********************************************************************/ void lee(FILE *a){ struct DIREC reactivo; printf("\n\n"); fflush(stdin); printf("Nombre : ");strupr(gets(reactivo.nombre)); if(strlen(reactivo.nombre)<30){ if(busca_Clave2(a,reactivo.nombre)==0){ printf("Telfono : ");gets(reactivo.tele); fseek(a,0,SEEK_END); fwrite(&reactivo,sizeof(struct DIREC),1,a); } else{ printf("\n\nYa existen esos datos!!!"); getch(); } } else{ printf("\n\nM ximo 25 letras por nombre..."); printf("\n\nEl programa puede daarse si repite este error!!!"); getch();

} } /*********************************************************************/ long busca_Clave2(FILE *a,char buscado[]){ long p; struct DIREC r; rewind(a); while(1){ if(fread(&r,sizeof(struct DIREC),1,a)==0) break; if(strcmp(r.nombre,buscado)==0){ p=ftell(a)/sizeof(struct DIREC); return(p); } } return 0; } /*********************************************************************/ void consulta2(FILE *a){ char nombre[30]; long p; struct DIREC r; printf("\n\nDame el nombre a buscar: "); strupr(gets(nombre)); p=busca_Clave2(a,nombre); if(p!=0){ fseek(a,(p-1)*sizeof(struct DIREC),SEEK_SET); fread(&r,sizeof(struct DIREC),1,a); printf("\n\n\n"); textcolor(LIGHTGRAY); cprintf("NOMBRE TELEFONO"); normvideo(); printf("\n%-20s %30s",r.nombre,r.tele); getch(); } else{ printf("\n\nLa informacin solicitada no existe ..."); getch(); } } /*********************************************************************/

void ordena(FILE *a){ int i=0,j=0,s,t; struct DIREC r; struct DIREC temp[100]; struct DIREC temporal; while(1){ fseek(a,i*sizeof(struct DIREC),SEEK_SET); if(fread(&r,sizeof(struct DIREC),1,a)==0) break; temp[j]=r; i++; j++; } for(s=0;s0){ temporal=temp[s]; temp[s]=temp[t]; temp[t]=temporal; } s=0; i=0; while(1){ if(s>=j) break; r=temp[s]; fseek(a,i*sizeof(struct DIREC),SEEK_SET); fwrite(&r,sizeof(struct DIREC),1,a); s++; i++; } printf("\n\nSus archivos han sido ordenados alfabticamente..."); getch(); }

/*********************************************************************/ FILE *pack(FILE *a){ int i=0; long p; char clave[30]; struct DIREC r; FILE *t; t=fopen("TMP.DAT","wb"); printf("\n\nDame el nombre a dar de baja: "); strupr(gets(clave)); p=busca_Clave2(a,clave);

if(p!=0){ while(1){ fseek(a,i*sizeof(struct DIREC),SEEK_SET); if(fread(&r,sizeof(struct DIREC),1,a)==0) break; if(strcmp(r.nombre,clave)!=0){ fseek(a,i*sizeof(struct DIREC),SEEK_SET); fwrite(&r,sizeof(struct DIREC),1,t); } i++; } fclose(t); fclose(a); remove("TELE.DAT"); rename("TMP.DAT","TELE.DAT"); t=fopen("TELE.DAT","rb+"); printf("\n\nLa informacin solicitada ha sido dada de baja..."); getch(); return(t); } else{ printf("\n\nNo existe el nombre..."); getch(); } return 0; } /*********************************************************************/

#include <stdio.h> main () { char nombre [80]; printf ( "Cul es su nombre? " ); gets ( nombre ); printf ( "Parece que su nombre es %s\n", nombre ); }

/*Funcin que lee las matrculas (nmeros enteros) y las calificaciones (tipo char) de los alumnos de un grupo y las almacene en dos arreglos unidimensionales. La funcin deber leer los datos hasta que se de una matrcula cero la cual indica el fin de captura. La funcin regresa el nmero de alumnos por el mecanismo de return. Despus debe de imprimir el contenido de los arreglos.*/

#include stdio.h void despliega(int *mats,char *califs,int numcap); int leedato(int *mats,char *califs,int maximo); void main(void){ int max=30,matr[29],numalumn; char calif[29]; clrscr(); numalumn=leedato(matr,calif,max); printf("\nEl numero de alumnos capturados es %d",numalumn); despliega(matr,calif,numalumn); } int leedato(int *mats,char *califs,int maximo){ int n=0; printf("\n *** Introduce la matricula y su calificacion. ***"); printf("\n *** Para terminar dale un cero a la matricula. ***"); while(1){ if(n>=maximo){ printf("\nEl arreglo se encuentra lleno"); getch(); break; } printf("\n\nMatricula del alumno %d: ",n+1); scanf("%d",mats); if(*mats==0){ break; } printf("\nCalificacion del alumno %d: ",n+1); scanf("%d",califs); mats++; califs++; n++; } return n; }

void despliega(int *mats,char *califs,int numcap){ int i=1; while(1){ if(i>numcap){ break; } printf("\nLa calificacion del alumno %d es %d",*mats,*califs); i++; mats++; califs++; } getch(); } /*Programa que realiza las cuatro operaciones aritmticas fundamentales (+,-,*,/).*/ #include <stdio.h> #include <conio.h> void main(){ int prim,seg,resul; char oper; clrscr(); printf("\nPrimer numero: "); scanf("%d",&prim); printf("\nSegundo numero: "); scanf("%d",&seg); printf("\nOperacion a realizar (+,-,*,/): "); oper=getche(); if(oper=='+') resul=prim+seg; if(oper=='-') resul=prim-seg; if(oper=='*') resul=prim*seg; if(oper=='/') { if (seg != 0) { resul=prim/seg; printf("\n\nEl resultado de la operacion %d %c %d es %d",prim,oper,seg,resul); } else printf("\n\nLa divisin por cero NO EXISTE");

} printf("\n\nPresine cualquier tecla para salir"); getch(); } /*Directorio telefnico con manejo de archivos.*/ #include stdio.h #include conio.h #include ctype.h #include string.h #include stdlib.h struct DIREC{ char nombre[35]; char tele[20]; }; FILE *pack(FILE *a); void ordena(FILE *a); void consulta2(FILE *a); long busca_Clave2(FILE *a,char buscado[]); void lee(FILE *a); void imprime(FILE *a); void main(){ char opcion; FILE *archivo; archivo=fopen("TELE.DAT","rb+"); /* usar opcin "wb+" para crear el archivo .DAT y despus cambiar a "rb+" */ while(1){ clrscr(); textattr(6+5*5); clrscr(); textcolor(YELLOW); cprintf(" printf("\n\n"); cprintf(" N"); printf("uevo"); textcolor(YELLOW); cprintf(" L"); printf("ista"); textcolor(YELLOW); cprintf(" B");

DIRECTORIO TELEFONICO");

printf("aja"); textcolor(YELLOW); cprintf(" C"); printf("onsulta"); textcolor(YELLOW); cprintf(" O"); printf("rdena"); textcolor(YELLOW); cprintf(" S"); printf("alir"); gotoxy(1,25); printf(" *** PRESIONE LA LETRA RESALTADA PARA ESCOGER LA OPCION ***"); gotoxy(1,4); opcion=toupper(getch()); if(opcion=='S') break; switch(opcion){ case 'N':{ lee(archivo); break; } case 'L':{ imprime(archivo); break; } case 'B':{ pack(archivo); break; } case 'C':{ consulta2(archivo); break; } case 'O':{ ordena(archivo); break; } } } clrscr(); fclose(archivo); normvideo(); clrscr(); }

/*********************************************************************/ void imprime(FILE *a){ int r,y=0,c=1; struct DIREC reactivo; clrscr(); textcolor(YELLOW); cprintf("NOMBRE TELEFONO"); normvideo(); rewind(a); while(1){ r=fread(&reactivo,sizeof(struct DIREC),1,a); if(r==0) break; if((c%2)!=0){ textattr(6+5*5); /* textcolor(LIGHTGRAY);*/ printf("\n"); cprintf("%d.- %-30s %16s",c,reactivo.nombre,reactivo.tele); normvideo(); } else{ textattr(6+5*4); /* textcolor(WHITE);*/ printf("\n"); cprintf("%d.- %-30s %16s",c,reactivo.nombre,reactivo.tele); normvideo(); } if(y==23){ getch(); y=0; } y++; c++; } getch(); }

/*********************************************************************/ void lee(FILE *a){ struct DIREC reactivo; printf("\n\n");

fflush(stdin); printf("Nombre : ");strupr(gets(reactivo.nombre)); if(strlen(reactivo.nombre)<30){ if(busca_Clave2(a,reactivo.nombre)==0){ printf("Telfono : ");gets(reactivo.tele); fseek(a,0,SEEK_END); fwrite(&reactivo,sizeof(struct DIREC),1,a); } else{ printf("\n\nYa existen esos datos!!!"); getch(); } } else{ printf("\n\nM ximo 25 letras por nombre..."); printf("\n\nEl programa puede daarse si repite este error!!!"); getch(); } } /*********************************************************************/ long busca_Clave2(FILE *a,char buscado[]){ long p; struct DIREC r; rewind(a); while(1){ if(fread(&r,sizeof(struct DIREC),1,a)==0) break; if(strcmp(r.nombre,buscado)==0){ p=ftell(a)/sizeof(struct DIREC); return(p); } } return 0; } /*********************************************************************/ void consulta2(FILE *a){ char nombre[30]; long p; struct DIREC r; printf("\n\nDame el nombre a buscar: "); strupr(gets(nombre));

p=busca_Clave2(a,nombre); if(p!=0){ fseek(a,(p-1)*sizeof(struct DIREC),SEEK_SET); fread(&r,sizeof(struct DIREC),1,a); printf("\n\n\n"); textcolor(LIGHTGRAY); cprintf("NOMBRE TELEFONO"); normvideo(); printf("\n%-20s %30s",r.nombre,r.tele); getch(); } else{ printf("\n\nLa informacin solicitada no existe ..."); getch(); } } /*********************************************************************/ void ordena(FILE *a){ int i=0,j=0,s,t; struct DIREC r; struct DIREC temp[100]; struct DIREC temporal; while(1){ fseek(a,i*sizeof(struct DIREC),SEEK_SET); if(fread(&r,sizeof(struct DIREC),1,a)==0) break; temp[j]=r; i++; j++; } for(s=0;s0){ temporal=temp[s]; temp[s]=temp[t]; temp[t]=temporal; } s=0; i=0; while(1){ if(s>=j) break;

r=temp[s]; fseek(a,i*sizeof(struct DIREC),SEEK_SET); fwrite(&r,sizeof(struct DIREC),1,a); s++; i++; } printf("\n\nSus archivos han sido ordenados alfabticamente..."); getch(); }

/*********************************************************************/ FILE *pack(FILE *a){ int i=0; long p; char clave[30]; struct DIREC r; FILE *t; t=fopen("TMP.DAT","wb"); printf("\n\nDame el nombre a dar de baja: "); strupr(gets(clave)); p=busca_Clave2(a,clave); if(p!=0){ while(1){ fseek(a,i*sizeof(struct DIREC),SEEK_SET); if(fread(&r,sizeof(struct DIREC),1,a)==0) break; if(strcmp(r.nombre,clave)!=0){ fseek(a,i*sizeof(struct DIREC),SEEK_SET); fwrite(&r,sizeof(struct DIREC),1,t); } i++; } fclose(t); fclose(a); remove("TELE.DAT"); rename("TMP.DAT","TELE.DAT"); t=fopen("TELE.DAT","rb+"); printf("\n\nLa informacin solicitada ha sido dada de baja..."); getch(); return(t); } else{

printf("\n\nNo existe el nombre..."); getch(); } return 0; } /*********************************************************************/ Repeticin controlada por contador mediante la instruccin for #include <stdio.h> /* la funcin main comienza la ejecucin del programa */ int main() { int contador; /* definicin del contador */ /* la inicializacin, condicin de repeticin, e incremento se incluyen en el encabezado de la instruccin for. */ for ( contador = 1; contador <= 10; contador++ ) { printf( "%d\n", contador ); } /* fin del for */ return 0; /* indica terminacin exitosa del programa */ } /* fin de la funcin main */

eleva x a la potencia y #include <stdio.h> int main() { int x, y, i, potencia;

/* definicin de las variables */

i = 1; potencia = 1; /* inicializa la potencia */ scanf( "%d", &x ); /* lectura de x del usuario */ scanf( "%d", &y ); /* lectura de y del usuario */ while ( i <= y ) { /* repetir el ciclo while mientras i sea menor o igual a y */ potencia *= x; /* multiplica potencia por x */ ++i; /* incrementa i */ } /* fin del while */ printf( "%d\n", potencia ); /* despliega la potencia */

return 0; } /* fin de la funcin main */ /*Programa que lee las edades de un grupo de alumnos y encuentra el promedio.*/ #include stdio.h main(){ int alumnos,edad,counter=1; float promedio,sumaedad=0; clrscr(); printf("\nNumero de alumnos: "); scanf("%d",&alumnos); while(1){ printf("\nEdad alumno %d: ",counter); scanf("%d",&edad); sumaedad=sumaedad+edad; if(counter==alumnos){ break; } counter++; } promedio=sumaedad/counter; printf("\nLa edad promedio de %d alumno(s) es %.1f aos",counter,promedio); getch(); }

También podría gustarte