Logo Studenta

Ceu San Pablo _ Ingeniería biomedica _ Programación _ tema6_zip

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( &registro, 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( &registro, 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

Continuar navegando