Descarga la aplicación para disfrutar aún más
Esta es una vista previa del archivo. Inicie sesión para ver el archivo original
tema6/ejemplo6_1.c /* *ejemplo6_1.c */ #include <stdio.h> int numero; main() { printf("\n\nTeclea un numero "); scanf("%d",&numero); /* lee el numero del teclado */ printf("\nSu cuadrado es %d\n",numero*numero); } tema6/ejemplo6_10.c /* *ejemplo6_10.c */ #include <stdio.h> #define NUMERO_DATOS 4 main(){ float datos[NUMERO_DATOS]; float media= 0.0; float *puntero; short leidos; int j; puntero = datos; for(j = 0; j < NUMERO_DATOS; j++){ printf("Introduzca el dato número %d: ", j+1); leidos = scanf("%f", puntero); puntero ++; } for(j = NUMERO_DATOS; j >0; j--){ puntero--; media= media+ *puntero; } media= media/ NUMERO_DATOS; printf("La media es %f\n", media); } tema6/ejemplo6_11.c /* *ejemplo6_12.suma */ #include <stdio.h> #include <stdlib.h> #include <time.h> #define FIL 5 #define COL 7 int matriz1[FIL][COL],matriz2[FIL][COL],suma[FIL][COL]; int fila,columna; main(){ system("cls"); srand(time(NULL)); for (fila=0; fila<FIL; fila++){ for (columna=0; columna<COL; columna++){ matriz1[fila][columna]=rand()%100; printf("\nDame el elemento matriz2(%d,%d) ",fila,columna); scanf("%d",&matriz2[fila][columna]); } } for (fila=0; fila<FIL; fila++){ /* suma */ for (columna=0; columna<COL; columna++){ suma[fila][columna]=matriz1[fila][columna]+matriz2[fila][columna]; } } system("cls"); printf("Matriz matriz1\n\n"); for (fila=0; fila<FIL; fila++) { for (columna=0; columna<COL; columna++) printf("%4d",matriz1[fila][columna]); printf("\n"); } printf("\nMatriz matriz2\n\n"); for (fila=0; fila<FIL; fila++) { for (columna=0; columna<COL; columna++) printf("%4d",matriz2[fila][columna]); printf("\n"); } printf("\nMatriz suma\n\n"); for (fila=0; fila<FIL; fila++) { for (columna=0; columna<COL; columna++) printf("%4d",suma[fila][columna]); printf("\n"); } } tema6/ejemplo6_12/ejemplo6_12.c /* *ejemplo6_12.c */ #include <stdio.h> #include <stdlib.h> #include "vector.h" int imprimeMenu (); main (){ int opcion; float vector1[3], vector2[3]; float* resultado; //el bucle se ejecutará hasta que el usuario //indique que desea salir del programa while (1){ //obtenemos la operación a realizar opcion = imprimeMenu(); if (opcion == 5){ //salimos del main y, por tanto, termina el programa return 0; } printf ("Introduzca el primer vector: "); scanf ("%f %f %f", &vector1[0], &vector1[1], &vector1[2]); printf ("Introduzca el segundo vector: "); scanf ("%f %f %f", &vector2[0], &vector2[1], &vector2[2]); //realizamos la operación correspondiente switch (opcion){ case 1:{ float producto = productoEscalar(vector1, vector2); printf ("El resultado es %f",resultado); break; } case 2:{ resultado = productoVectorial(vector1, vector2); printf ("El resultado es (%f, %f, %f", resultado[0], resultado[1], resultado[2]); break; } case 3:{ resultado = sumaVectorial(vector1, vector2); printf ("El resultado es (%f, %f, %f", resultado[0], resultado[1], resultado[2]); break; } case 4:{ resultado = restaVectorial(vector1, vector2); printf ("El resultado es (%f, %f, %f", resultado[0], resultado[1], resultado[2]); break; } } //liberamos la memoria if (resultado != NULL){ free (resultado); } } } int imprimeMenu (){ int opcion; printf("\t1.Calcular el producto escalar\n"); printf("\t2.Calcular el producto vectorial\n"); printf("\t3.Calcular la suma vectorial\n"); printf("\t4.Calcular la resta vectorial\n"); printf("\t5.Salir\n"); scanf (" %i", &opcion); return opcion; } tema6/ejemplo6_12/ejemplo6_8.cbp tema6/ejemplo6_12/ejemplo6_8.depend # depslib dependency file v1.0 1373552563 source:z:\ceu\progc2.0\tema6\ejemplo6_12\ejemplo6_12.c <stdio.h> <stdlib.h> "vector.h" 1373552660 z:\ceu\progc2.0\tema6\ejemplo6_12\vector.h 1373552660 source:z:\ceu\progc2.0\tema6\ejemplo6_12\vector.c <stdio.h> <stdlib.h> "vector.h" tema6/ejemplo6_12/ejemplo6_8.layout tema6/ejemplo6_12/vector.c /* *ejemplo6_12.c *vector.c */ #include <stdio.h> #include <stdlib.h> #include "vector.h" float productoEscalar(float vector1[], float vector2[]){ float resultado; resultado =(vector1[0]*vector2[0])+ (vector1[1]*vector2[1])+(vector1[2]*vector2[2]); return resultado; } float* productoVectorial(float vector1[], float vector2[]){ float* resultado = (float *)malloc(3*sizeof(float)); resultado[0] =(vector1[1]*vector2[2])-(vector1[2]*vector2[1]); resultado[1] =-((vector1[0]*vector2[2])-(vector1[2]*vector2[0])); resultado[2] =(vector1[0]*vector2[1])-(vector1[1]*vector2[0]); return resultado; } float* sumaVectorial(float vector1[], float vector2[]){ float* resultado = (float *)malloc(3*sizeof(float)); resultado[0] = vector1[0] + vector2[0]; resultado[1] = vector1[1] + vector2[1]; resultado[2] = vector1[2] + vector2[2]; return resultado; } float* restaVectorial (float vector1[], float vector2[]){ float* resultado = (float *)malloc(3*sizeof(float)); resultado[0] = vector1[0] - vector2[0]; resultado[1] = vector1[1] - vector2[1]; resultado[2] = vector1[2] - vector2[2]; return resultado; } tema6/ejemplo6_12/vector.h /* *ejemplo6_12.c *vector.h */ extern float productoEscalar(float vector1[], float vector2[]); extern float* productoVectorial(float vector1[], float vector2[]); extern float* sumaVectorial (float vector1[], float vector2[]); extern float* restaVectorial (float vector1[], float vector2[]); tema6/ejemplo6_14.c /* *ejemplo6_14.c */ #include <stdlib.h> #include <stdio.h> float **reservarMemoria(int fil, int col){ float **matrizDinamica; int j; matrizDinamica = (float **) malloc(fil * sizeof(float *)); for (j = 0; j < fil; j++){ matrizDinamica[j] = (float *)malloc(col * sizeof(float)); } return matrizDinamica; } void leerMatriz(float **matriz, int fil, int col){ int i, j; float dato; for (i = 0; i < fil; i++){ for (j = 0; j < col; j++){ printf("Elemento [%d,%d]: ", i,j); scanf("%f", &dato); matriz[i][j]=dato; } printf("\n"); } } void imprimirMatriz(float **matriz, int fil, int col){ int i, j; for (i = 0; i < fil; i++){ for (j = 0; j < col; j++){ printf("[ %e ] \t", matriz[i][j]); } printf("\n"); } } void multiplicarMatriz(float **A, float **B, float **C, int dim){ int i, j, k; for(i = 0; i < dim; i++){ for(j = 0; j < dim; j++){ C[i][j] = 0.0; for(k = 0; k < dim; k++){ C[i][j] += A[i][k] * B[k][j]; } } } } void liberarMemoria(float **matriz, int fil, int col){ int j; for (j = 0; j < fil; j++){ free(matriz[j]); } free(matriz); } int main(void){ float **A, **B, **C; int dim; printf("Número de filas: "); scanf("%d", &dim); A = reservarMemoria(dim, dim); B = reservarMemoria(dim, dim); C = reservarMemoria(dim, dim); system ("cls"); printf("Introduzca los datos de la primera matriz: "); leerMatriz(A,dim, dim); system ("cls"); printf("Introduzca los datos de la segunda matriz"); leerMatriz(B,dim, dim); multiplicarMatriz(A, B, C, dim); imprimirMatriz(C, dim, dim); liberarMemoria(A, dim, dim); liberarMemoria(B, dim, dim); liberarMemoria(C, dim, dim); } tema6/ejemplo6_15.c /* *ejemplo6_15.c */ #include <stdio.h> main() { char cadena[200]; int i,blancos=0; printf("Teclea una cadena : "); scanf("%199[^\n]",cadena); for (i=0;cadena[i]!=0;i++) { if (cadena[i]==' ') blancos++; } printf("La cadena tenia %d espacios en blanco",blancos); } tema6/ejemplo6_16.c /* *ejemplo6_16.c */ #include <stdio.h> #include <string.h> main() { char micadena[100]; int longitud; printf("Teclea una cadena"); scanf("%99[^\n]",micadena); longitud=strlen(micadena); printf("Has tecleado %d caracteres",longitud); } tema6/ejemplo6_17.c /* *ejemplo6_17.c */ #include <stdio.h> #include <string.h> main() { char cad1[20],cad2[20]; printf("Teclea dos palabras : "); scanf("%19s %19s",cad1,cad2); if (0==strcmp(cad1,cad2)) printf("Son iguales\n"); else if (strcmp(cad1,cad2)<0) printf("La primera es menor\n"); else printf("La primera es mayor\n"); } tema6/ejemplo6_18.c /* *ejemplo6_18.c */ #include <stdio.h> #include <string.h> main() { char cad1[160],cad2[80]; printf("Teclea dos cadenas : "); gets(cad1); gets(cad2); printf("La cadena 1 es %s\n",cad1); printf("La cadena 2 es %s\n",cad2); strcat(cad1,cad2); printf("Las cadenas pegadas quedan %s\n",cad1); } tema6/ejemplo6_19.c /* *ejemplo6_19.c */ #include <stdio.h> #include <string.h> main(){ char meses[][15]= {"enero","febrero","marzo", "abril","mayo","junio","julio", "agosto","septiembre","octubre", "noviembre","diciembre" }; int duracion[]= {31,28,31,30,31,30,31,31,30,31,30,31}; char mes[15]; int i; printf("Dame un mes (en letra): "); gets(mes); for (i=0; i<12; i++){ if (stricmp(mes,meses[i])==0) break; } if (i==12) printf("Ese mes no existe \n"); else printf("Ese mes tiene %i dias\n",duracion[i]); } tema6/ejemplo6_2.c /* *ejemplo6_2.c */ #include <stdio.h> #include "conio.h" main(){ clrscr(); gotoxy(30,11);printf("CALCULO DE MECANISMOS"); gotoxy(34,13);printf("Version 1.5"); } tema6/ejemplo6_22.c /* *ejemplo6_22.c */ #include <stdio.h> struct Datos{ int entero; char caracter; double real; }; int main(void){ printf("Tamaño tipos de datos\n"); printf("---------------------\n"); printf("sizeof(int) = %d\n", sizeof(int)); printf("sizeof(char) = %d\n", sizeof(char)); printf("sizeof(double) = %d\n", sizeof(double)); printf("sizeof(struct Datos) = %d\n", sizeof(struct Datos)); } tema6/ejemplo6_23.c /* *ejemplo6_23.c */ #include <stdio.h> #include <stdlib.h> struct Estructura{ char letra; long entero; float real; char string[256]; }; int main(void){ struct Estructura ejemplo1 = {'a', 23L, 4.5, "Hola", "Estructura"}; struct Estructura ejemplo2; struct Estructura ejemplo3; ejemplo2 = ejemplo1; ejemplo3.letra = 'b'; ejemplo3.entero = 2345L; ejemplo3.real = 234.678; strcpy(ejemplo3.string, "Cadena de Estructura1"); printf("%c\n", ejemplo3.letra); printf("%d\n", ejemplo3.entero); printf("%f\n", ejemplo3.real); printf("%s\n", ejemplo3.string); } tema6/ejemplo6_24.c /* *ejemplo6_24.c */ #include <stdio.h> #include <stdlib.h> struct Coordenadas { float x; float y; }; int main(void){ struct Coordenadas origen = {0.0, 0.0}; struct Coordenadas *puntoA, *puntoB; puntoA = &origen; printf("Las coordenadas del origen son: "); printf("(%f %f) \n", puntoA->x, puntoA->y); puntoA = (struct Coordenadas *) malloc(sizeof(struct Coordenadas)); puntoB = (struct Coordenadas *) malloc(sizeof(struct Coordenadas)); if ((puntoA == NULL) || (puntoB == NULL)) { printf("Error, no hay memoria disponible\n"); return(0); } printf("Introduzca la coordenada x del punto A: "); scanf("%f", &(puntoA->x)); printf("Introduzca la coordenada y del punto A: "); scanf("%f", &(puntoA->y)); printf("Introduzca la coordenada x del punto B: "); scanf("%f", &(puntoB->x)); printf("Introduzca la coordenada y del punto B: "); scanf("%f", &(puntoB->y)); if ((puntoA->x == puntoB->x) && (puntoA->y == puntoB->y)) printf("Los puntos A y B son iguales\n"); else printf("Los puntos A y B son distintos\n"); free (puntoA); free (puntoB); } tema6/ejemplo6_25.c /* *ejemplo6_25.c */ #include <stdio.h> #define N 3 typedef struct{ char nombre[50]; int edad; char genero; float peso; } registro; registro *buscar(registro tabla[], char nombre[]){ int cont; for (cont=0; cont < N; ++cont) if (stricmp(tabla[cont].nombre,nombre)==0 ) return(&tabla[cont]); return(NULL); } main(){ registro paciente[N]= { {"Lazaro",43,'V',53.33}, {"Juana",68,'M',66.66}, {"Rafael",44,'Z',99.9} }; char nombre[50]; registro *punteroAPaciente; printf("\n Dame un numero de cuenta a buscar:"); scanf("%s",nombre); punteroAPaciente=buscar(paciente,nombre); if (punteroAPaciente!=NULL){ printf("Nombre:%s\n",punteroAPaciente->nombre); printf("Edad: %d\n",punteroAPaciente->edad); printf("Género: %c\n",punteroAPaciente->genero); printf("Peso: %f\n",punteroAPaciente->peso); } else printf("ERROR: numero de cuenta inexistente\n"); } tema6/ejemplo6_26.c /* *ejemplo6_26.c */ #include <stdio.h> main(){ FILE *fichero; char caracter; fichero=fopen("mifichero.dat","w"); do{ caracter=getchar(); fputc(caracter,fichero); } while (caracter != '\n'); fclose(fichero); } tema6/ejemplo6_27.c /* *ejemplo6_27.c */ #include <stdio.h> main (){ FILE* fichero; char caracter; fichero=fopen("mifichero.dat","w"); if (fichero == NULL){ printf ("Error al abrir el fichero"); } else{ //si se abrió correctamente escribimos el texto al fichero do{ caracter=getchar(); putc(toupper(caracter),fichero); }while (caracter != '\n'); //mientras no encontremos el carácter de nueva línea //ahora estas sentencias sólo se ejecutan si se abrió el fichero fflush (fichero); fclose(fichero); } //ahora mostramos el contenido del fichero fichero=fopen("mifichero.dat","r"); if (fichero == NULL){ printf ("El al abrir el fichero"); } else{ //si se abrió correctamente leemos el texto caracter = getc(fichero); while (caracter != EOF){ //mientras no lleguemos al final del fichero putchar (caracter); caracter = getc(fichero); } //ahora estas sentencias sólo se ejecutan si se abrió el fichero fclose(fichero); } } tema6/ejemplo6_28.c /* *ejemplo6_28.c */ #include<stdio.h> #include<stdlib.h> #define N 100 int main (){ int opcion; FILE *fich; char cadena[N], nombreFichero[N]; printf ("Introduzca el nombre del fichero a abrir: "); scanf (" %s",nombreFichero); system("cls"); do{ system("cls"); printf("\n\n\t\t----------MENU----------"); printf("\n\t\t1.Listar contenido del archivo"); printf("\n\t\t2.Añadir texto al archivo"); printf("\n\t\t3.Salir del programa"); do{ //hasta que la acción sea correcta printf("\n\nIntroduzca la opción deseada:"); scanf(" %d",&opcion); } while ((opcion<1)||(opcion>3)); switch (opcion){ case 1: { if ((fich=fopen(nombreFichero,"r"))==NULL){ printf("\nError de apertura de fichero"); exit(-1); } while (fgets(cadena,N,fich) != NULL){ printf("%s",cadena); } fclose(fich); printf("\n"); system("pause"); break; } case 2:{ if ((fich=fopen(nombreFichero,"a+"))==NULL){ printf("\nError de apertura de fichero"); exit(-1); } printf("\nIntroduzca texto, para terminar escriba salir:\n"); do{ //eliminamos cualquier residuo del buffer de entrada de la consola fflush(stdin); gets(cadena); if (stricmp (cadena, "salir") ==0){ break; } fputs(cadena, fich); fputs("\n", fich); //añadimos un carácter de nueva línea } while (1); fflush(fich); fclose(fich); break; } } } while (opcion!=3); system("pause"); return 0; } tema6/ejemplo6_29.c /* *ejemplo6_29.c */ #include<stdio.h> #include<math.h> int main (){ float inicio,fin, paso; char nombreArchivo[100]; FILE *fichero; printf("Introduzca el intervalo [inicio, fin]: "); scanf(" [%f,%f]", &inicio,&fin); printf("Introduzca el paso: "); scanf ("%f",&paso); printf ("Introduzca el nombre del archivo donde se almacenarán los datos"); fflush(stdin);//para eliminar el carácter de nueva línea gets (nombreArchivo); if ((fichero =fopen(nombreArchivo,"w+"))==NULL){ printf("\nError de apertura de fichero"); exit(-1); } for (; inicio <= fin; inicio = inicio + paso){ fprintf(fichero, "x=%.3f, seno(x)=%.3f\n", inicio, sin(inicio)); } printf("Archivo generado con éxito\n"); fflush(fichero); fclose(fichero); } tema6/ejemplo6_3.c /* *ejemplo6_3.c */ #include <stdio.h> main(){ int entero=3; int entero2; int *punteroAEntero; int *punteroAEntero2; punteroAEntero=&entero; entero2=*punteroAEntero; punteroAEntero2=&entero2; printf("\n entero=%d &entero=%p punteroAEntero=%X *punteroAEntero=%d", entero,&entero,punteroAEntero,*punteroAEntero); printf("\n entero2=%d &entero2=%X punteroAEntero2=%X *punteroAEntero2=%d", entero2,&entero2,punteroAEntero2,*punteroAEntero2); } tema6/ejemplo6_30.c /* *ejemplo6_30.c */ #include <stdio.h> struct datos { char nombre[20]; char apellido[20]; char telefono[15]; } registro; main() { FILE *fichero; struct datos registro; fichero = fopen( "nombres.txt", "ab" ); if(fichero!=NULL) { do { printf( "Introduzca el nombre: " ); gets(registro.nombre); if (strcmp(registro.nombre,"")) { printf( "Introduzca el apellido: " ); gets(registro.apellido); printf( "Teléfono: " ); gets(registro.telefono); fwrite( ®istro, sizeof(registro), 1, fichero ); } } while (strcmp(registro.nombre,"")!=0); fflush( fichero ); fclose( fichero ); } else { printf( "Error al abrir el fichero" ); } } tema6/ejemplo6_31.c /* *ejemplo6_31.c */ #include <stdio.h> struct datos { char nombre[20]; char apellido[20]; char telefono[15]; }; main(){ FILE *fichero; struct datos registro; fichero = fopen( "nombres.txt", "rb" ); if(fichero!=NULL) { while (!feof(fichero)) { if (fread( ®istro, sizeof(registro), 1, fichero )!=0) { printf( "Nombre: %s\n", registro.nombre ); printf( "Apellido: %s\n", registro.apellido); printf( "Teléfono: %s\n", registro.telefono); } } fclose( fichero ); } else { printf( "Error abriendo el fichero" ); } } tema6/ejemplo6_31/agenda.c /* *ejemplo6_31 *agenda.c */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include "agenda.h" #define TAMANHO_MAX 100 /*tamaño máximo de la agenda*/ static Contacto agenda[TAMANHO_MAX]; int inicializarAgenda (const char *nombreFichero) { FILE *fichero; register int posicion=0; int leidos; if ((fichero=fopen(nombreFichero,"rb")) != NULL) { while (fread (&agenda[posicion], sizeof(Contacto),1,fichero) && posicion<TAMANHO_MAX) posicion++; fclose(fichero); } else { return ERROR; } leidos = posicion; for (; posicion<TAMANHO_MAX; posicion++) { /*inicializar el resto de componentes del array*/ agenda[posicion].nombre[0]='\0'; } return leidos; } int buscarContactoEnAgenda (char nombre[]) { register int posicion; for (posicion=0; posicion<TAMANHO_MAX; posicion++) if (strcmp(agenda[posicion].nombre,nombre)==0) { return posicion; } return ERROR; } int recorrerAgenda (int ultimoProcesado) { register int posicion; for (posicion=ultimoProcesado; posicion<TAMANHO_MAX; posicion++) { if (agenda[posicion].nombre[0]) { return posicion; } } return ERROR; } int salvarAgenda (const char *nombreFichero) { FILE *fichero; register int posicion=0; if ((fichero=fopen(nombreFichero,"wb")) == NULL) { return ERROR; } else { for (posicion=0; posicion<TAMANHO_MAX; posicion++) { if (agenda[posicion].nombre[0]) { if ((fwrite (&agenda[posicion], sizeof(Contacto),1,fichero)) != 1) { return ERROR; } } } fflush(fichero); fclose(fichero); } return posicion; } int introducirContactoEnAgenda(Contacto nuevoContacto) { int hueco; for (hueco=0; hueco<TAMANHO_MAX; hueco++) { if (agenda[hueco].nombre[0]=='\0') break; } if (hueco==TAMANHO_MAX) return ERROR; agenda[hueco] = nuevoContacto; return hueco; } void borrarContactoEnAgenda(int posicion) { agenda[posicion].nombre[0]='\0'; } Contacto recuperarContactoDeAgenda(int posicion) { return agenda[posicion]; } void modificarContactoEnAgenda(int posicion, Contacto contacto) { agenda[posicion] = contacto; } tema6/ejemplo6_31/agenda.h /* *ejemplo6_31 *agenda.h */ #define ERROR -1 /*código de error*/ #define LNOMBRE 30 /*longitud de la cadena nombre*/ #define LDIRECC 40 /*longitud de la cadena direccion*/ #define LTFNO 12 /*longitud de la cadena telefono*/ /*DEFINICION DE LA ESTRUCTURA*/ typedef struct dir { char nombre[LNOMBRE]; char direccion[LDIRECC]; char telefono[LTFNO]; } Contacto; extern int inicializarAgenda (const char *fichero); extern int introducirContactoEnAgenda(Contacto nuevoContacto); extern int buscarContactoEnAgenda(char nombre[]); extern void borrarContactoEnAgenda(int posicion); extern Contacto recuperarContactoDeAgenda(int posicion); extern void modificarContactoEnAgenda(int posicion, Contacto contacto); extern int salvarAgenda(const char *fichero); extern int recorrerAgenda (int ultimoProcesado); tema6/ejemplo6_31/ejemplo6_31.c /* *ejemplo6_31 *ejemplo6_31.c */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include "agenda.h" /*DECLARACIONES DE CONSTANTES*/ #define PANTALLA 5 /*numero de Contactos que se pueden visualizar en pantalla*/ #define OPCIONES_MENU 7 /*numero de opciones del menú*/ /*NOMBRE DEL ARCHIVO SOBRE EL QUE SE TRABAJA*/ char nombreArchivo[100]="listin.dat"; /*DECLARACIONES DE FUNCIONES*/ int imprimeMenu(const char *fichero); void leerContacto() ; void pideNombreYMuestraContacto(); void mostrarContacto (Contacto contacto); int buscarContacto(); void borrarContacto(); void guardarArchivo(); void modificarContacto(); void imprimirAgenda (); void esperarPorTecla(); int main() { int opcionMenu=0; if(inicializarAgenda(nombreArchivo) == ERROR) { printf( "Agenda vacia; comience a introducir datos\n\n"); } while (1) { switch (opcionMenu=imprimeMenu(nombreArchivo)) { case 1: leerContacto(); break; case 2: borrarContacto(); break; case 3: pideNombreYMuestraContacto(); break; case 4: imprimirAgenda(); break; case 5: modificarContacto(); break; case 6: guardarArchivo(); break; case 7: exit(0); } esperarPorTecla(); } return 0; } int imprimeMenu(const char *fichero) { int opcion=0; printf("------------------------ NOMBRE DEL LISTIN: %s ---------------------\n", fichero); printf("\n\t\t\tÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ\n"); printf("\t\t\tº1.Introducir contacto º\n"); printf("\t\t\tº2.Borrar contacto º\n"); printf("\t\t\tº3.Buscar contacto º\n"); printf("\t\t\tº4.Listar agenda º\n"); printf("\t\t\tº5.Modificar contacto º\n"); printf("\t\t\tº6.Guardar º\n"); printf("\t\t\tº7.Salir º\n"); printf("\t\t\tÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n"); do { printf("-------Introducir opcion [1-%d]: ",OPCIONES_MENU); scanf("%d",&opcion); } while (opcion<0 || opcion > OPCIONES_MENU); fflush(stdin); system("cls"); return opcion; } void leerContacto() { Contacto contacto; printf("\n\n\n\n"); printf("Introduce el nombre: "); gets(contacto.nombre); printf("Introduce la dirección: "); gets(contacto.direccion); printf("Introduce el telefono: "); gets(contacto.telefono); int error = introducirContactoEnAgenda(contacto); if (error == ERROR) { printf("El listin telefonico esta lleno, no se puede introducir\n"); } else { printf ("El contacto ha sido introducido conéxito\n"); } } void pideNombreYMuestraContacto() { int posicion; printf("\n\n\n\t Buscando un contacto"); posicion = buscarContacto(); if (posicion==ERROR) { printf ("El contacto no se encuentra\n"); } else { mostrarContacto(recuperarContactoDeAgenda(posicion)); } } int buscarContacto() { char nombre[LNOMBRE]; printf("\n\n\n\t Introduce el nombre:"); gets(nombre); printf("\n"); return buscarContactoEnAgenda(nombre); } void mostrarContacto(Contacto contacto) { printf("NOMBRE: %s\n",contacto.nombre); printf("DIRECCION: %s\n",contacto.direccion); printf("TELEFONO: %s\n",contacto.telefono); printf("------------------------\n"); } void borrarContacto() { int posicion=0; char conformacion; printf("\n\n\n\t\t\tPara borrar..."); posicion=buscarContacto(); if (posicion!=ERROR) { printf("\nEsta seguro que quiere borrar este contacto? [s/n]"); if ((conformacion=getchar())=='s'||conformacion=='S') { borrarContactoEnAgenda(posicion); printf ("El contacto ha sido eliminado\n"); } else { printf ("El contacto NO ha sido borrado\n"); } esperarPorTecla(); } } void imprimirAgenda() { register int mostrados=0, siguiente; siguiente=recorrerAgenda(0); printf("------------------------ NOMBRE DEL LISTIN: %s ------------------------\n", nombreArchivo); while(siguiente!= ERROR) { if (mostrados==PANTALLA) { mostrados=1; esperarPorTecla(); printf("------------------------ NOMBREDEL LISTIN:%s ------------------------\n", nombreArchivo); } else { mostrados++; } mostrarContacto(recuperarContactoDeAgenda(siguiente)); printf("------------------------\n"); siguiente=recorrerAgenda(siguiente+1) ; } } void guardarArchivo() { if (salvarAgenda(nombreArchivo) == ERROR) { printf ("No se pueden guardar datos en el fichero de datos\n"); } else { printf("Datos guardados con exito\n"); } } void modificarContacto() { int posicion=0; char temporal [100]; Contacto antiguo, nuevo; printf("\n\n\n\t\t\tPara modificar..."); posicion=buscarContacto(); if (posicion!=ERROR) { antiguo = recuperarContactoDeAgenda(posicion); printf("Introduce el nuevo nombre [INTRO para conservar el antiguo]: "); gets(temporal); if (strlen(temporal)!=0) strcpy(nuevo.nombre,temporal); else strcpy(nuevo.nombre, antiguo.nombre); printf("Introduce la nueva dirección [INTROpara conservar la antigua]: "); gets(temporal); if (strlen(temporal)!=0) strcpy(nuevo.direccion,temporal); else strcpy(nuevo.direccion, antiguo.direccion); printf("Introduce el nuevo telefono [INTRO para conservar el anterior]: "); gets(temporal); if (strlen(temporal)) strcpy(nuevo.telefono,temporal); else strcpy(nuevo.telefono,antiguo.telefono); modificarContactoEnAgenda(posicion,nuevo); printf("El contacto ha sido modificado con éxito\n"); } } void esperarPorTecla() { printf ("\nPulse una tecla para continuar..."); getchar() ; system("cls"); } tema6/ejemplo6_31/ejemplo6_31.cbp tema6/ejemplo6_31/ejemplo6_31.layout tema6/ejemplo6_32.c /* *ejemplo6_32.c */ main ( ){ enum diasemana {lunes, martes, miercoles, jueves, viernes, sabado, domingo}; int dia; for ( dia = lunes; dia <= domingo; dia++ ) { if ( dia!= sabado && dia != domingo ) printf("El día %d toca trabajar\n",dia); else printf("El día %d toca descansar\n",dia); } } tema6/ejemplo6_33.c /* *ejemplo6_33.c */ #include <stdio.h> #define superficie longitud * ancho main() { int longitud, ancho; printf("Dame la longitud:"); scanf("%d",&longitud); printf("Dame el ancho:"); scanf("%d",&ancho); printf("La superficie es: %d",superficie); } tema6/ejemplo6_34.c /* *ejemplo6_34.c */ #include <stdio.h> #define bucle for (lineas=1; lineas <=n; lineas++) { \ for (cont=1;cont <= n-lineas;cont++) \ putchar(' '); \ for (cont=1;cont <= 2*lineas-1 ;cont++) \ putchar('*'); \ printf("\n"); \ } main() { int cont, lineas, n; printf("numero de lineas = "); scanf("%d",&n); printf("\n"); bucle; } tema6/ejemplo6_35.c /* *ejemplo6_35.c */ #include <stdio.h> main(int numArgumentos,char *argumentos[]) { int numero1,numero2; if (numArgumentos!=3) { printf("Error en la linea de comandos\n\n"); printf("Formato que debe usar:\t %s <numero> <numero>\n\n",argumentos[0]); system("pause"); exit(0); } numero1=atoi(argumentos[1]); numero2=atoi(argumentos[2]); printf("Resultado: %d",numero1+numero2); } tema6/ejemplo6_4.c /* *ejemplo6_4.c */ #include <stdio.h> main(){ int entero=3; int *punteroAEntero; punteroAEntero=&entero; printf("\n*punteroAEntero=%d entero=%d ",*punteroAEntero,entero); *punteroAEntero=0; printf("\n*punteroAEntero=%d entero=%d",*punteroAEntero,entero); } tema6/ejemplo6_5.c /* *ejemplo6_5.c */ #include <stdio.h> void func1(int entero,int entero2){ entero=0; entero2=0; printf("\nDentro de func1: entero=%d,entero2=%d",entero,entero2); } void func2(int *punteroAEntero, int *punteroAEntero2) { *punteroAEntero=0; *punteroAEntero2=0; printf("\nDentro de func2: *punteroAEntero=%d,*punteroAEntero2=%d", *punteroAEntero,*punteroAEntero2); } main(){ int entero=1; int entero2=3; printf("\nAntes de la llamada a func1: entero=%d entero2=%d",entero,entero2); func1(entero,entero2); printf("\nDespues de la llamada a func1: entero=%d entero2=%d",entero,entero2); func2(&entero,&entero2); printf("\nDespues de la llamada a func2: entero=%d entero2=%d",entero,entero2); } tema6/ejemplo6_6.c /* *ejemplo6_6.c */ #include <stdio.h> main() { int Dato = 0x12345678; int* pInt; short* pShort; pInt = &Dato; pShort = (short *)pInt; printf("La dirección almacenada en pInt es = %p\n",pInt); printf("El dato referenciado por pInt es = 0x%lx\n\n",*pInt); printf("La dirección almacenada en pShort es = %p\n",pShort); printf("El dato referenciado por pShort es = %x\n",*pShort); } tema6/ejemplo6_7.c /* *ejemplo6_7.c */ #include <stdlib.h> #include <stdio.h> main(){ int *punteroAInt; float *vect; punteroAInt = (int *) malloc(sizeof(int)); vect = (float *)calloc(20,sizeof(float)); if ((punteroAInt==NULL)||(vect==NULL)){ printf ("\nNo hay memoria"); exit(1); } /* Aquí iría el código que libera la memoria */ } tema6/ejemplo6_8.c /* *ejemplo6_8.c */ #include <stdio.h> int sumar(int tamano, int *datos){ int i, suma=0; for (i=0 ; i <tamano; ++i){ suma = suma + *(datos+i); } return suma; } main(){ int i,tamano,*datos, suma; printf("¿Cuantos numeros seran introducidos?"); scanf("%d",&tamano); datos=(int *) malloc(tamano*sizeof(int)); if(datos==NULL){ printf("No hay suficiente memoria disponible"); exit(0); } for (i=0; i<tamano; i++){ printf("\nDame el numero en la posicion %d:",i); scanf("%d",datos+i); } suma = sumar (tamano,datos); printf("\nSuma %d",suma); free (datos); } tema6/ejemplo6_9.c //ejemplo6_9.c #include <stdio.h> #define MAXNUM 20//máximo número de datos que se pueden leer int main (){ float datos[MAXNUM]; float suma, media; int i,k,mayores=0,iguales=0,menores=0,cont=0; printf("\n\nIntroduzca los números a promediar (Max. %d, " "0 para finalizar) : ", MAXNUM); for ( i=0 ; i<MAXNUM ; ++i, ++cont ){ scanf("%f",&datos[i]); //cuando introduzca un 0 finaliza la introducción de datos if (datos[i]==0){ break; } suma = suma + datos[i]; } if (cont>0){//si ha introducido algún dato media=suma/cont; printf("\nLa media de los %d números es %f \n",cont,media); for (k=0;k<cont;k++){ if (datos[k]>media){ mayores++; } else{ if (datos[k]==media){ iguales++; } else{ menores++; } } } printf("Hay %d números mayores, %d iguales y %d menores\n", mayores, iguales, menores); } } tema6/entrada.txt asssssssssssssssssssss kjgui sadfsadfsda safsadfsda asdfds asd tema6/nombres.txt asdf����������������xzcv����������������qewr�����������asdfdsf�������������ewr�����������������sdf������������aaaaaaaaaaaaaaaa����aaaaaaaaaaaaaa������aaaaaaaaaaaaaaa tema6/salida.txt asd tema6/seno.txt x=0.000 seno(x)=0.000 x=0.100 seno(x)=0.100 x=0.200 seno(x)=0.199 x=0.300 seno(x)=0.296 x=0.400 seno(x)=0.389 x=0.500 seno(x)=0.479 x=0.600 seno(x)=0.565 x=0.700 seno(x)=0.644 x=0.800 seno(x)=0.717 x=0.900 seno(x)=0.783 x=1.000 seno(x)=0.841 x=1.100 seno(x)=0.891 x=1.200 seno(x)=0.932 x=1.300 seno(x)=0.964 x=1.400 seno(x)=0.985 x=1.500 seno(x)=0.997 x=1.600 seno(x)=1.000 x=1.700 seno(x)=0.992 x=1.800 seno(x)=0.974 x=1.900 seno(x)=0.946 x=2.000 seno(x)=0.909 x=2.100 seno(x)=0.863 x=2.200 seno(x)=0.808 x=2.300 seno(x)=0.746 x=2.400 seno(x)=0.675 x=2.500 seno(x)=0.598 x=2.600 seno(x)=0.516 x=2.700 seno(x)=0.427 x=2.800 seno(x)=0.335 x=2.900 seno(x)=0.239 x=3.000 seno(x)=0.141 x=3.100 seno(x)=0.042 x=3.200 seno(x)=-0.058 x=3.300 seno(x)=-0.158 x=3.400 seno(x)=-0.256 x=3.500 seno(x)=-0.351 x=3.600 seno(x)=-0.443 x=3.700 seno(x)=-0.530 x=3.800 seno(x)=-0.612 x=3.900 seno(x)=-0.688 x=4.000 seno(x)=-0.757 x=4.100 seno(x)=-0.818 x=4.200 seno(x)=-0.872 x=4.300 seno(x)=-0.916 x=4.400 seno(x)=-0.952 x=4.500 seno(x)=-0.978 x=4.600 seno(x)=-0.994 x=4.700 seno(x)=-1.000 x=4.800 seno(x)=-0.996 x=4.900 seno(x)=-0.982 x=5.000 seno(x)=-0.959 x=5.100 seno(x)=-0.926 x=5.200 seno(x)=-0.883 x=5.300 seno(x)=-0.832 x=5.400 seno(x)=-0.773 x=5.500 seno(x)=-0.706 x=5.600 seno(x)=-0.631 x=5.700 seno(x)=-0.551 x=5.800 seno(x)=-0.465 x=5.900 seno(x)=-0.374 x=6.000 seno(x)=-0.279
Compartir