Sie sind auf Seite 1von 47

Universidad de los Andes Facultad de Ingeniera Escuela de Ingeniera Elctrica Doctorado en ciencias aplicadas GIBULA

SEMINARIO DE TESIS I
Prof. Rubn Medina PhD.

CMO PROGRAMAR EN C/C++?


Material digital preparado por: Miguel Vera

Mrida, Noviembre de 2008

Texto: Como Programar En C,c++ Y Java. Autores: Harvey M. Deitel Y Paul J. Deitel.4 Edicin

CAPTULOS A DESARROLLAR MEDIANTE EXPOSICIONES 4. Control de programas en C 5. Funciones en C 6. Arreglos en C 7. Apuntadores en C 8. Caracteres y cadenas en C 9. Entrada/Salida con formato en C 10. Estructuras, uniones, manipulaciones de bits y enumeraciones en C 11. Procesamiento de archivos en C 12. Estructuras de datos en C 13. El preprocesador de C 14. Otros temas de C 15. C++ como un Mejor C 16. Clases y abstraccin de datos en C++ 17. Clases en C++: Parte II 18. Sobrecarga de operadores en C++ 19. Herencia en C++ 20. Funciones virtuales y polimorfismo en C++ 21. Entrada / salida de flujo en C++ 22. Plantillas en C++

Texto: Como Programar En C,c++ Y Java. Autores: Harvey M. Deitel Y Paul J. Deitel.4 Edicin

CAPTULOS A DESARROLLAR MEDIANTE EXPOSICIONES

4. Control de programas en C 5. Funciones en C 6. Arreglos en C 7. Apuntadores en C 8. Caracteres y cadenas en C 9. Entrada/Salida con formato en C 10. Estructuras y uniones en C 11. Procesamiento de archivos en C 12. Estructuras de datos en C 13. El preprocesador de C 14. Otros temas de C

Primera exposicin

15. C++ como un Mejor C C 16. Clases y abstraccin de datos en C++ abstracci 17. Clases en C++: Parte II 18. Sobrecarga de operadores en C++ 19. Herencia en C++ 20. Funciones virtuales y polimorfismo en C++ 21. Entrada / salida de flujo en C++ 22. Plantillas en C++

4_14.- Desde Instrucciones de Control hasta otros temas de C.


Los Programas en C
Controlan su ejecucin, con instrucciones de:

REPETICIN
De tipo:

SELECCIN
De tipo:

INTERRUPCIN
De tipo:

for

while do while

if ifelse

switch

break

continue

Estas palabras reservadas pueden realizar acciones de CONTROL en programas donde intervienen:

FUNCIONES

ARREGLOS
Junto a las FUNCIONES permiten crear programas verstiles y flexibles CARACTERES y CADENAS

APUNTADORES
Estos elementos posibilitan la creacin y manipulacin de:

UNIONES

Estructuras y ARCHIVOS

y
ENUMERACIONES

REPETICIN

for
Su formato es:

Instruccin for for( inicializacin de contadores ; condiciones ; incrementos ) { conjunto de instrucciones a ejecutar en el bucle }

for

Ejemplo1: Uso de for para obtener la suma de los primeros 50 nmeros naturales pares mediante un ciclo controlado por CONTADOR. #include <stdio.h> int main() { int suma = 0; int numero; for ( numero = 2; numero <= 100; numero += 2 ) { suma += numero; } printf( "La suma es %d\n", suma ); return 0; }

Resultado luego de ejecutar el programa

REPETICIN

Instruccin while Su formato es: while ( condicin ) { bloque de instrucciones a ejecutar }

while

Ejemplo2: Uso de while para obtener el promedio de calificaciones mediante una repeticin controlada por CONTADOR.

#include <stdio.h> int main() { int contador=1,calificacion=0,total=0,promedio=0; while ( contador <= 10 ) { printf( "Introduzca la calificacion: " ); scanf( "%d", &calificacion ); total = total + calificacion; contador = contador + 1; } promedio = total / 10; printf( "El promedio de la clase es %d\n", promedio ); return 0; }

Resultado luego de ejecutar el programa

REPETICIN

Instruccin do while Su formato es: do { instrucciones a ejecutar } while ( condicin );

do while

Ejemplo3: Uso de dowhile para obtener por pantalla los primeros diez nmeros naturales mediante un ciclo controlado por CONTADOR. #include <stdio.h> int contador = 1; int main() { do { printf( "%d\n", contador ); } while ( ++contador <= 10 ); Resultado luego de ejecutar el programa

return 0; }

Instruccin if Su formato es: if ( condicin ) { instrucciones a ejecutar }


REPETICIN

for

SELECCIN

if

INTERRUPCIN

break Ejemplo4: Ruptura de un ciclo for mediante break precedido de una instruccin if.

#include <stdio.h> int main() { int x; for ( x = 1; x <= 10; x++ ) { if ( x == 5 ) { break; } printf( "%d ", x ); } printf( "\nRompe el ciclo en x == %d\n", x ); return 0; }

Resultado luego de ejecutar el programa

Instruccin If else
Su formato es:
REPETICIN

if ( condicin ) { bloque que se ejecuta si se cumple la condicin } else { bloque que se ejecuta si no se cumple la condicin } If - else

while

SELECCIN doble

Ejemplo5: Promedio de calificaciones con repeticin controlada por CENTINELA. #include <stdio.h> int main() { int contador=0,calificacion=0,total=0; float promedio; while ( calificacion != -1 ) { total = total + calificacion; contador = contador + 1; printf( "Introduzca la calificacion o digite -1 para terminar: " ); scanf("%d", &calificacion); } if ( total != 0 ) { promedio = ( float ) total / contador; printf( " El promedio de la clase es: %.2f\n", promedio ); } else { printf( "No se introdujeron calificaciones\n" ); } return 0; }

Ejemplo5: Promedio de calificaciones con repeticin controlada por CENTINELA.


REPETICIN

If - else
SELECCIN doble

#include <stdio.h> int main() { int contador=0,calificacion=0,total=0; float promedio; while ( calificacion != -1 ) { total = total + calificacion; contador = contador + 1; printf( "Introduzca la calificacion, -1 para terminar: " ); scanf("%d", &calificacion); } if ( total != 0 ) { promedio = ( float ) total / contador; printf( " El promedio de la clase es: %.2f\n", promedio ); } else { printf( "No se introdujeron calificaciones\n" ); } return 0; }

while

Ejemplifica el else

Ejemplo5: Promedio de calificaciones con repeticin controlada por CENTINELA.


REPETICIN

#include <stdio.h> int main() { int contador=0,calificacion=0,total=0; float promedio; while ( calificacion != -1 ) { total = total + calificacion; contador = contador + 1; printf( "Introduzca la calificacion, -1 para terminar: " ); scanf("%d", &calificacion); } if ( total != 0 ) { promedio = ( float ) total / contador; printf( " El promedio de la clase es: %.2f\n", promedio ); } else { printf( "No se introdujeron calificaciones\n" ); } return 0; }

SELECCIN doble

Ejemplifica el while

Ejemplo6: Uso de switch y repeticin controlada por for.


#include <stdio.h> #include <stdlib.h> int main()

REPETICIN SELECCIN mltiple

switch

{ int frecuencia1 = 0,frecuencia2 = 0,frecuencia3 = 0,frecuencia4 = 0,frecuencia5 = 0,frecuencia6 = 0,tiro, cara;

for ( tiro = 1; tiro <= 6000; tiro++ ) { switch ( cara ) { case 1: /* tiro 1 */ ++frecuencia1; break; case 2: /* tiro 2 */ ++frecuencia2; break; case 3: /* tiro 3 */ ++frecuencia3; break; case 4: /* tiro 4 */ ++frecuencia4; break; case 5: /* tiro 5 */ ++frecuencia5; break; case 6: /* tiro 6 */ ++frecuencia6; }
}

cara = 1 + rand() % 6;

Resultado luego de ejecutar el programa

printf( "%s%13s\n", "Cara", "Frecuencia" ); printf( " 1%13d 2%13d 3%13d 4%13d 5%13d 6%13d\n ", frecuencia1, frecuencia2 , frecuencia3, frecuencia4, frecuencia5, frecuencia6 ); return 0;
}

Texto: Como Programar En C,c++ Y Java. Autores: Harvey M. Deitel Y Paul J. Deitel.4 Edicin

REPETICIN

for

SELECCIN

if

INTERRUPCIN

continue Ejemplo7: Interrupcin de un ciclo for mediante continue precedido de if. #include <stdio.h> int main() Resultado luego de ejecutar el programa { int x; for ( x = 1; x <= 10; x++ ) { if ( x == 5 ) { continue; } printf( "%d ", x ); } printf( "\nUtiliza continue para ignorar la impresion del valor 5\n" ); return 0; }

Texto: Como Programar En C,c++ Y Java. Autores: Harvey M. Deitel Y Paul J. Deitel.4 Edicin

Ejemplo8: for anidado #include <stdio.h> int main() { int i, j; for( i=0; i<6; i++ ) { for( j=0; j<i; j++ ) printf( "*" ); printf( "\n" ); } return 0; }

Resultado luego de ejecutar el programa

FUNCIONES Una funcin tiene el formato:

Definicin de una funcin tipo_de_variable nombre_de_la_funcion( argumentos );//prototpo prototipo { cuerpo de la funcin; return Valor; }

Ejemplo9: Creacin y llamado de una funcin por valor. #include <stdio.h> int cuadrado( int y ); int main() { int x; for ( x = 1; x <= 10; x++ ) { printf( "%d ", cuadrado( x ) ); } printf( "\n" ); return 0; } int cuadrado( int y ) { return y * y; }

Resultado luego de ejecutar el programa

Ejemplo10: Creacin y llamado de una funcin por valor.


#include <stdio.h> #include <math.h> float CC,c1,N,nf,n,Tas,monto,Cap,Ta=0;

float Tasa(float monto,float Cap, float n); int main() { printf("La tasa es: %f\n\n\n\n",Tasa( monto,Cap,n )); printf("Si desea salir, pulse cualquier tecla\n"); return 0; } float Tasa(float monto,float Cap, float n){ printf("Introduzca el monto con dos numeros decimales:"); scanf("%f",&monto); printf("Introduzca el Capital con dos numeros decimales:"); scanf("%f",&Cap); printf("Introduzca el tiempo:"); scanf("%f",&n); N=float(monto/Cap); nf=float(log(N)); c1=float(nf/n); CC=float(exp(c1)); Ta=float(CC-1); return Ta;
}

Resultado al ejecutar el programa

Ejemplo11: Creacin y llamado de una funcin por valor

o parmetro.

#include <stdio.h> funcin int maximo( int x, int y, int z ); por int main() valor { int numero1, numero2, numero3; printf( "Introduzca tres enteros: " ); scanf( "%d%d%d", &numero1, &numero2, &numero3 ); printf( "El maximo es: %d\n", maximo( numero1, numero2, numero3 ) ); return 0; } int maximo( int x, int y, int z ) { int max = x; Resultado luego de ejecutar el programa if ( y > max ) { max = y; } if ( z > max ) { max = z; } return max; }

Ejemplo12: Una funcin recursiva.

#include <stdio.h> long factorial( long numero ); /* prototipo de la funcin */ int main() { int i; /* contador */ for ( i = 0; i <= 10; i++ ) { printf( "%2d! = %ld\n", i, factorial( i ) ); } /* fin de for */ Resultado luego de ejecutar el programa return 0; } /* definicin recursiva de la funcin factorial */ long factorial( long numero ) { /* caso base */ if ( numero <= 1 ) { return 1; } /* fin de if */ else { /* paso recursivo */ return ( numero * factorial( numero - 1 ) ); } /* fin de else */ }

Ejemplo13: Arreglos y llamado de una funcin por Valor. Arreglo: conjunto de variables del mismo tipo y nombre que se diferencian en el ndice.
ARREGLOS
#include <stdio.h> #include <math.h> float Tas,n,Cap,p=0,M=0; int anio=0;

float Arreglo[1000]={0}; float Monto( float Cap,float Tas,float n );


int main() { printf("Seleccione la opcion segun se indica:\n"); printf("PARA CALCULAR MONTO: pulse 1\n"); scanf("%f",&p);

if (p==1){ printf("El monto acumulado es: %.2f\n",Monto( Cap,Tas,n )); }


return 0; }

Resultado al ejecutar el programa

float Monto( float Cap,float Tas,float n ) {


printf("Introduzca el Capital con dos numeros decimales:"); scanf("%f",&Cap); printf("Introduzca la tasa expresada en decimal:"); scanf("%f",&Tas); printf("Introduzca el periodo de tiempo:"); scanf("%f",&n); printf("%s %6s\n","Periodo","MONTO");

for(anio=1;anio<=n;anio++) { M=float(Cap*pow(1+Tas,anio)); Arreglo[anio]=M; printf("%4d% 10.2f\n",anio,Arreglo[anio]); } return M;


}

APUNTADORES

Apuntador.- Es una variable que APUNTA

a la DIRECCIN de

otras variables y por tanto, mediante el se puede: a.- Almacenar la direccin de la(s) variable(s) a las que apunta b.- Acceder y modificar la informacin de dichas variables c.- Llamar FUNCIONES por REFERENCIA Un Apuntador o PUNTERO se declara de acuerdo al formato: tipo_de_dato *nombre_del_puntero; Ejemplo14: Un

Apuntador que realiza a.- y b.Resultado al ejecutar el programa

#include <stdio.h> void main() { int num; int *ptrnum=NULL; num = 100; ptrnum = &num; printf( "Direccion de num = %p, valor de num = %i\n", ptrnum,*ptrnum ); *ptrnum = 75; printf( "Direccion de num = %p, el nuevo valor de num = %i\n", ptrnum,*ptrnum ); }

Ejemplo15: de creacin y llamado de una funcin por Referencia.


#include <stdio.h> #include <math.h> float monto,Tas,n,d=0,C=0; float *ptrmonto=NULL; float *ptrTas=NULL; float *ptrn=NULL; float Capital( float *ptrmonto,float *ptrTas,float *ptrn ); int main() { printf( "El capital invertido fue: %f\n ", Capital( &monto,&Tas,&n )); return 0; } float Capital( float *ptrmonto,float *ptrTas,float *ptrn ){ printf("Introduzca el monto con dos numeros decimales:"); scanf("%f",&monto); printf("Introduzca la tasa expresada en decimal:"); scanf("%f",&Tas); printf("Introduzca el periodo de tiempo pero como un numero entero:"); scanf("%f",&n); d=float(pow(1+*ptrTas,*ptrn)); C=float(*ptrmonto/d); return C; }

Resultado luego de ejecutar el programa

Ejemplo16: de creacin y llamado de una funcin por Referencia

y Valor.

#include <stdio.h> int suma( int *a, int b ) { int c; c = *a + b; *a = 0; return c; } int main() { int var1, var2, resultado; var1 = 5; var2 = 8; resultado = suma(&var1, var2); printf( "La suma es: %i y a vale: %i\n", resultado , var1 ); }

Resultado luego de ejecutar el programa

Ejemplo17: Sntesis de conceptos expuestos y algunas funciones especiales #include <stdio.h> #include <math.h> #define CE 0.000001 int k,anio=0; char salir,S; float p1,p=0,q=0,r=0,s=0,u=0,R=0,C=0,t=0,M=0,inicial=0,f=0,g=0,E[100000]={0},D[100000]={0}; float i[100000]={0},Arreglo[100000]={0}, N,nf,dt,df,d,n,Tas,renta,capital,Cap; float *ptrrenta=NULL,*ptrTas=NULL, *ptrn=NULL;

float Renta( float Cap,float Tas,float n ); float Capital( float *ptrrenta,float *ptrTas,float *ptrn ); float Tiempo(float renta,float Cap, float Tas); float Tasa(float renta,float Cap, float n);
1/6

Ejemplo17: Sntesis de conceptos expuestos y algunas funciones especiales

int main() { repita: while (p!=-1){ printf("\t\t\tDIGITE LA ALTERNATIVA DE SU PREFERENCIA:\n\n\n"); printf("PARA SALIR: pulse -1\n\n\t PARA CALCULAR LA RENTA: pulse 1\n\n\t\t PARA CALCULAR CAPITAL: pulse 2\n\n\t\t\t PARA CALCULAR TIEMPO: pulse 3\n\n\t\t\t\t PARA CALCULAR TASA de INTERES: pulse 4\n\n"); Resultado luego de ejecutar el programa scanf("%f",&p);
2/6

Ejemplo17: Sntesis de conceptos expuestos y algunas funciones especiales


int main() {

if (p==1){q=p; printf("LA renta acumulada es: %f\n\n\n\n",Renta( Cap,Tas,n )); } if (p==2){ r=p; printf( "El capital invertido fue: %f\n\n\n\n ", Capital( &renta,&Tas,&n )); }
if (p==3){ s=p; printf( "El tiempo de la inversion es: %f\n\n\n\n ", Tiempo( renta,Cap,Tas)); }

if (p==4){ u=p; printf( "La tasa de interes fue: %f\n\n\n\n if (q==1 && r==2 && s==3 && u==4){

", Tasa( renta,Cap,n)); }

printf("Quiere salir del programa?\n\a Si: pulse S\n NO: pulse cualquier otro caracter\n"); salir=getchar(); if (salir==83){ goto fin; } else{ goto repita; } } goto repita; } fin: printf("Si esta seguro que desea salir, pulse -1\n"); scanf("%f",&p1); return 0; }

Ejemplo17: Sntesis de conceptos expuestos y algunas funciones especiales float Renta( float Cap,float Tas,float n ) { printf("Introduzca el Capital con dos numeros decimales:"); scanf("%f",&Cap); printf("Introduzca la tasa expresada en decimal:"); scanf("%f",&Tas); printf("Introduzca el periodo de tiempo:"); scanf("%f",&n); printf("%4s%12s\n"," Periodo","RENTA"); for(anio=1;anio<=n;anio++) { R=float(Cap*Tas/(1-pow(1+Tas,-anio))); Arreglo[anio]=R; if (anio==(12)){ continue; } printf("%4d% 15.2f\n",anio,Arreglo[anio]); } return R;

Ejemplo17: Sntesis de conceptos expuestos y algunas funciones especiales

float Capital( float *ptrrenta,float *ptrTas,float *ptrn ){ printf("Introduzca la renta con dos numeros decimales:"); scanf("%f",&renta); printf("Introduzca la tasa expresada en decimal:"); scanf("%f",&Tas); printf("Introduzca el periodo de tiempo:"); scanf("%f",&n);

d=float((1-pow(1+*ptrTas,-*ptrn))/(Tas)); C=float(*ptrrenta*d);
return C; } 4/6

Ejemplo17: Sntesis de conceptos expuestos y algunas funciones especiales

float Tiempo(float renta,float Cap, float Tas){ printf("Introduzca la renta con dos numeros decimales:"); scanf("%f",&renta); printf("Introduzca el capital con dos numeros decimales:"); scanf("%f",&Cap); printf("Introduzca la tasa de interes en decimal:"); scanf("%f",&Tas);

dt=float(1+Tas); df=float(log(dt)); N=float((renta)/(renta-Cap*Tas)); nf=float(log(N)); t=float(nf/df);


return t; } 5/6

Ejemplo17: Sntesis de conceptos expuestos y algunas funciones especiales

float Tasa(float renta,float Cap, float n){ printf("Introduzca la renta con dos numeros decimales:"); scanf("%f",&renta); printf("Introduzca el Capital con dos numeros decimales:");scanf("%f",&Cap); printf("Introduzca el tiempo:");scanf("%f",&n); printf("%4s %10s %10s\n","Periodo"," ERRORCALCULADO"," TASA");
inicial=float(1.5*(pow(((renta*n)/(Cap)),1/(n+1))-1));f=inicial; for(k=1;k<=100;k++){ E[k]=float(1+pow((1+f),(-n))-float(Cap*f/renta)); D[k]=float(-n*pow((1+f),(-n-1))-float(Cap/renta)); i[k]=float(f-float(E[k]/D[k])); g=float(fabs(f-i[k])); f=i[k]; printf("%4d %1.6f %1.6f\n",k,g,f); if (g<=CE){ break; } } M=float(Cap*pow(1+f,n)); printf("EL MONTO ASOCIADO A ESTA ANUALIDAD ES %.2f:\n",M); return f; }

Ejemplo17: Sntesis de conceptos expuestos y algunas funciones especiales

inicial=float(1.5*(pow(((renta*n)/(Cap)),1/(n+1))-1)); f=inicial; for(k=1;k<=100;k++){ E[k]=float(1-pow((1+f),(-n))float(Cap*f/renta)); D[k]=float(n*pow((1+f),(-n-1))float(Cap/renta)); i[k]=float(f-float(E[k]/D[k])); g=float(fabs(f-i[k])); f=i[k]; printf("%4d %1.6f %1.6f\n",k,g,f); if (g<=CE){ break; } }
6.2/6

Ejemplo17: Sntesis de conceptos expuestos y algunas funciones especiales


float Tasa(float renta,float Cap, float n){ printf("Introduzca la renta con dos numeros decimales:"); scanf("%f",&renta); printf("Introduzca el Capital con dos numeros decimales:"); scanf("%f",&Cap); printf("Introduzca el tiempo:"); scanf("%f",&n); printf("%4s %10s %10s\n","Periodo"," ERRORCALCULADO"," TASA"); inicial=float(1.5*(pow(((renta*n)/(Cap)),1/(n+1))-1)); f=inicial; for(k=1;k<=100;k++){ E[k]=float(1-pow((1+f),(-n))-float(Cap*f/renta)); D[k]=float(n*pow((1+f),(-n-1))-float(Cap/renta)); i[k]=float(f-float(E[k]/D[k])); g=float(fabs(f-i[k])); f=i[k]; printf("%4d %1.6f %1.6f\n",k,g,f); if (g<=CE){ break; } } M=float(Cap*pow(1+f,n)); printf("EL MONTO ASOCIADO A ESTA ANUALIDAD ES %.2f:\n",M); return f; } 6/6

Ejemplo17: Sntesis de conceptos expuestos y algunas funciones especiales Resultado luego de ejecutar el programa

Resultado luego de pulsar 1

Ejemplo17: Sntesis de conceptos expuestos y algunas funciones especiales

Resultado luego de pulsar 2 y3

Ejemplo17: Sntesis de conceptos expuestos y algunas funciones especiales Resultado luego de pulsar 4

CARACTERES y CADENAS

CADENAS.- Son ARREGLOS en los cuales se puede:


a.- Almacenar TEXTO (compuesto por caracteres) b.- Determinar el nmero de caracteres que la integran c.- Copiar y concatenar caracteres y otras cadenas

Una CADENA se declara de acuerdo al formato: char nombre_de_la cadena[Tamao_de_la_cadena];

Ejemplo18: Una Cadena de Caracteres que realiza

la funcin a.-

#include <stdio.h> int main() { char nombre[30]; printf( "Introduzca su nombre (30 letras mximo): " ); scanf( "%s", nombre ); printf( "\nEl nombre que ha escrito es: %s\n", nombre ); }

Resultado al ejecutar el programa

CARACTERES y CADENAS

Ejemplo19: Uso de la funcin strcpy Esta funcin copia el contenido de la cadena2 en la cadena1. Su formato es: strcpy( cadena1, cadena2); #include <stdio.h> #include <string.h> int main() { char contador_imagenes[ ] = "Esta es la Imagen numero "; char destino[40]; strcpy( destino, contador_imagenes ); printf( "Valor final: %s\n", destino ); } Resultado al ejecutar el programa

CARACTERES y CADENAS

Ejemplo20: Uso de la funcin strcat. Esta funcin copia el contenido de la cadena2 al final de la cadena1. Su formato es: char strcat(char cadena1, const char cadena2); #include <stdio.h> #include <string.h> int main() { char nombre_completo[50]; char nombre[ ]="Miguel"; char apellido[ ]="Vera"; strcpy( nombre_completo, nombre ); strcat( nombre_completo, " " ); strcat( nombre_completo, apellido ); Resultado al ejecutar el programa printf( "El nombre completo es: %s.\n", nombre_completo ); }

CARACTERES y CADENAS

Ejemplo21: Uso de la funcin scanf

para cadenas.

#include <stdio.h> #include <string.h> Resultado al ejecutar el programa

int main() { char cadena[30]; printf( "Escribe una palabra: " ); fflush( stdout ); scanf( "%s", cadena ); printf( "He guardado: \"%s\" \n", cadena ); }

Estructuras: Son conjuntos de variables relacionadas bajo un nombre. Sus variables pueden ser de distintos tipos de datos La Estructuras comparten el mismo formato :

Estructuras

struct nombre_de_la_estructura { campos de estructura; };

UNIONES

union nombre_de_la_unin { campos de la unin };

ENUMERACIONES

enum nombre_de_la_enumeracin{ nombres de las constantes };

Estructuras

Ejemplo22: Uso bsico de una Estructura.

#include <stdio.h> struct estructura_amigo { char nombre[50]; char apellido[50]; char telefono[12]; char edad; }; struct estructura_amigo amigo; int main() { printf( "Escribe el nombre de su amigo: " ); fflush( stdout ); scanf( "%s", &amigo.nombre ); printf( "Escribe el apellido de su amigo: " ); fflush( stdout ); scanf( "%s", &amigo.apellido ); printf( "Escribe el numero de telefono de su amigo: " ); fflush( stdout ); scanf( "%s", &amigo.telefono ); printf( "Mi amigo %s %s tiene el numero : %s.\n", amigo.nombre, amigo.apellido, amigo.telefono ); }

Resultado al ejecutar el programa

Estructuras #include <stdio.h> #define ELEMENTOS 3 struct estructura_amigo { char nombre[30]; char apellido[40]; char telefono[10]; int edad; }; struct estructura_amigo amigo[ELEMENTOS]; int main() Resultado al ejecutar el programa { int num_amigo; for( num_amigo=0; num_amigo<ELEMENTOS; num_amigo++ ) { printf( "\nDatos del amigo numero %i:\n", num_amigo+1 ); printf( "Nombre: " ); fflush( stdout ); gets(amigo[num_amigo].nombre); printf( "Apellido: " ); fflush( stdout ); gets(amigo[num_amigo].apellido); printf( "Telefono: " ); fflush( stdout ); gets(amigo[num_amigo].telefono); printf( "Edad: " ); fflush( stdout ); scanf( "%i", &amigo[num_amigo].edad ); while(getchar()!='\n'); } for( num_amigo=0; num_amigo<ELEMENTOS; num_amigo++ ) { printf( "El amigo %s ", amigo[num_amigo].nombre ); printf( "%s tiene ", amigo[num_amigo].apellido ); printf( "%i an_os ", amigo[num_amigo].edad ); printf( "y su telefono es el %s.\n" , amigo[num_amigo].telefono ); } }

Ejemplo23: Uso bsico de Registros.

Estructuras

UNIONES

Ejemplo24: Uso bsico de una UNION. Resultado al ejecutar el programa #include <stdio.h> union _persona { char nombre[10]; char inicial; } pers; int main() { printf("Escribe tu nombre: "); gets(pers.nombre); printf("\nTu nombre es: %s\n", pers.nombre); printf("Tu inicial es: %c\n", pers.inicial); /* Cambiamos la inicial */ pers.inicial='V'; printf("\nAhora tu nombre es: %s\n", pers.nombre); printf("y tu inicial es: %c\n", pers.inicial); }

Estructuras

ENUMERACIONES

Ejemplo25: Uso bsico de una ENUMERACION.

#include <stdio.h> enum { primero, segundo, tercero, cuarto, quinto } posicion; int main() { posicion=segundo; printf("posicion = %i\n", posicion); }

Resultado al ejecutar el programa

#include <stdio.h> El ejemplo de la derecha: int main() Abre un archivo, lo lee, { FILE *fichero; muestra el contenido en pantalla char letra,s; y lo cierra. fichero = fopen("origen.txt","r"); if (fichero==NULL) Formato de las instrucciones: { printf( "No se puede abrir el fichero.\n" ); goto fin; FILE *fopen(nombre_fichero, modo); } printf( "Contenido del fichero:\n" ); fgets(buffer, int longitud_max, FILE *fichero); letra=getc(fichero); while (feof(fichero)==0) { printf( "%c",letra ); letra=fgetc(fichero); } if (fclose(fichero)!=0) printf("salir"); scanf("%c",s); printf( "Problemas al cerrar el fichero\n" ); fin: return 0; }

ARCHIVOS

Manejo de

ARCHIVOS , sntesis de conceptos expuestos y algunas funciones especiales

#include <stdio.h> #include <io.h> #include <stdlib.h> #include <math.h> #include <direct.h> #include <string.h> main() { unsigned char *ima,*ima1; char archivo[50],imagen[50]; int i,j,k,l,m,n,p,id,idd; FILE *fp; printf("Introduzca el nombre de la imagen: "); scanf("%s", imagen); if((fp=fopen(imagen,"rb"))!=NULL) { printf("Introduzca el tamao de la imagen: "); scanf("%d", &id); printf("Introduzca el tamao de la subimagen: "); scanf("%d", &idd); ima = new unsigned char[id*id]; ima1 = new unsigned char[idd*idd]; fread(ima,sizeof(unsigned char),id*id,fp); fclose(fp);

Manejo de

ARCHIVOS , sntesis de conceptos expuestos y algunas funciones especiales

k = id - idd; p = 0; for(i=0;i<k;i++) { for(j=0;j<k;j++) { l = 0; for(m=i;m<(i+idd);m++) { for(n=j;n<(j+idd);n++) { ima1[l] = ima[n+(m*id)]; l++; } }

Manejo de char M[10];

ARCHIVOS , sntesis de conceptos expuestos y algunas funciones especiales

_itoa(p,M,10); strcpy(archivo,"image"); strcat(archivo,M); strcat(archivo,".raw"); fopen(archivo,"wb"); fwrite(ima1,sizeof(unsigned char),idd*idd,fp); fclose(fp); p++; } printf("Imagen %d\n",p); } delete ima; delete ima1; } else printf("No se puede encontrar el archivo %s.\n",imagen); return 0; }

Das könnte Ihnen auch gefallen