Ejercicios Informáticá II Prácticá 1 Ejercicio 1: #include <stdio.h> #include <stdlib.h> #include <conio.h> #define N 5 int main() { char nombre[N][20]; int tabla [N][8]; int i=0,j=0; char l; int aux; //pide datos: for(i=0; i<N; i++) { printf("Ingrese el nombre del equipo: \n"); do { l=getche(); if(l!='\r') { nombre[i][j]=l; j++; } } while((l!='\r')&&(j<19)); nombre[i][j]='\0'; j=0; printf("\nIngrese los partidos ganados: \n"); scanf("%d", &aux); tabla[i][2]=aux; printf("Ingrese los partidos empatados: \n"); scanf("%d", &aux); tabla[i][3]=aux; printf("Ingrese los partidos perdidos: \n"); scanf("%d", &aux); tabla[i][4]=aux; printf("Ingrese los goles a favor: \n"); scanf("%d", &aux); tabla[i][5]=aux; printf("Ingrese los goles en contra: \n"); scanf("%d", &aux); tabla[i][6]=aux; printf("-------------------\n");
guia resuelta de ejercicios, informatica II en la UCA, practica 1 (año 2014)
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Ejercicios Informá ticá II Prácticá 1
Ejercicio 1: #include <stdio.h> #include <stdlib.h> #include <conio.h> #define N 5 int main() { char nombre[N][20]; int tabla [N][8]; int i=0,j=0; char l; int aux; //pide datos: for(i=0; i<N; i++) { printf("Ingrese el nombre del equipo: \n"); do { l=getche(); if(l!='\r') { nombre[i][j]=l; j++; } } while((l!='\r')&&(j<19)); nombre[i][j]='\0'; j=0; printf("\nIngrese los partidos ganados: \n"); scanf("%d", &aux); tabla[i][2]=aux; printf("Ingrese los partidos empatados: \n"); scanf("%d", &aux); tabla[i][3]=aux; printf("Ingrese los partidos perdidos: \n"); scanf("%d", &aux); tabla[i][4]=aux; printf("Ingrese los goles a favor: \n"); scanf("%d", &aux); tabla[i][5]=aux; printf("Ingrese los goles en contra: \n"); scanf("%d", &aux); tabla[i][6]=aux; printf("-------------------\n");
int i,j; int aux[N][N]; for(i=0;i<N;i++) { for(j=0;j<N;j++) { aux[i][j]=mt[j][i]; } } for(i=0;i<N;i++) { for(j=0;j<N;j++) { mt[i][j]=aux[i][j]; } } }
Ejercicio 6
#include <stdio.h> #include <stdlib.h> #include <time.h> #define M 2 #define C 2 #define A 2 #define P 2 double prom_mat(int , int [M][C][A][P]); double prom_alm(int , int, int [M][C][A][P]); double prom_com(int , int [M][C][A][P]); double prom_par(int , int, int, int [M][C][A][P]); int main() { int mt[M][C][A][P]; int a=0,b=0,c=0,d=0; int op; int aux; srand(time(NULL)); printf("Seleccione la opcion de carga:\n0) Para Carga Masiva\n1) Para Carga Selectiva\n2) Para Carga Aleatoria de Prueva\n"); scanf("%d", &op); switch (op) { case 0: for(a=0; a<M; a++) {
for(b=0; b<C; b++) { for(c=0; c<A; c++) { for(d=0; d<P; d++) { printf("Ingrese nota para Materia %d - Comision %d - Alumno %d - Parcial %d: ", (a+1),(b+1),(c+1),(d+1)); scanf("%d", &aux); mt[a][b][c][d]=aux; } } } } break; case 1: for(a=0; a<M; a++) { for(b=0; b<C; b++) { for(c=0; c<A; c++) { for(d=0; d<P; d++) { mt[a][b][c][d]=rand()%10; } } } } while((a!=-1)&&(b!=-1)&&(c!=-1)&&(d!=-1)) { printf("Ingrese el codigo de la materia:"); scanf("%d",&a); if(a!=-1) { printf("Ingrese el codigo de la comision:"); scanf("%d",&b); if(b!=-1) { printf("Ingrese el codigo del alumno:"); scanf("%d",&c); if(c!=-1) { printf("Ingrese el codigo del parcial:"); scanf("%d",&d); if(d!=-1) { printf("Ingrese la nota:"); scanf("%d", &aux); /*a--; b--; c--; d--;
estos -- son necesarios si pensas que al ingresar datos el hombre cuando se refiere a la primer materia (mt[0][x][x][x]) va a poner un 1 cuando en realidad deberia poner un 0. */ mt[a][b][c][d]=aux; printf("\n----------\n"); } } } } } break; case 2: for(a=0; a<M; a++) { for(b=0; b<C; b++) { for(c=0; c<A; c++) { for(d=0; d<P; d++) { mt[a][b][c][d]=rand()%10; } } } } break; default: printf("!!!\nOpcion Incorrecta\n"); break; } printf("\n--------------------\n"); op=0; while (aux!=6) { printf("\n\nMenu:\n"); printf("1- Ver promedio de una materia (solicitará el codigo de la materia)\n"); printf("2- Ver promedio de un alumno (solicitará la comision y el nro. del alumno)\n"); printf("3- Ver promedio de una comision (solicitara la comision)\n"); printf("4- Ver promedio de un parcial (solicitará la materia, la comisión y el parcial)\n"); printf("5- Volver a cargar los datos (se sobreescribirán los datos existentes)\n"); printf("6- Salir\n"); scanf("%d",&aux); printf("\n--------------------\n"); switch (aux) { case 1: printf("\n Ingrese la materia:"); scanf("%d", &a); printf("\n--------------------\n"); printf("Promedio: %.2lf" , prom_mat(a,mt)); printf("\n--------------------\n"); break; case 2: printf("\n Ingrese la comision:");
scanf("%d", &a); printf("\n Ingrese el alumno:"); scanf("%d", &b); printf("\n--------------------\n"); printf("Promedio: %.2lf" , prom_alm(a,b,mt)); printf("\n--------------------\n"); break; case 3: printf("\n Ingrese la comision:"); scanf("%d", &a); printf("\n--------------------\n"); printf("Promedio: %.2lf" , prom_com(a,mt)); printf("\n--------------------\n"); break; case 4: printf("\n Ingrese la materia:"); scanf("%d", &a); printf("\n Ingrese la comision:"); scanf("%d", &b); printf("\n Ingrese el parcial:"); scanf("%d", &c); printf("\n--------------------\n"); printf("Promedio: %.2lf" , prom_par(a,b,c,mt)); printf("\n--------------------\n"); break; case 5: //copy paste del codigo de arriba. printf("Seleccione la opcion de carga:\n0) Para Carga Masiva\n1) Para Carga Selectiva\n2) Para Carga Aleatoria de Prueva\n"); scanf("%d", &op); switch (op) { case 0: for(a=0; a<M; a++) { for(b=0; b<C; b++) { for(c=0; c<A; c++) { for(d=0; d<P; d++) { printf("Ingrese nota para Materia %d - Comision %d - Alumno %d - Parcial %d: ", (a+1),(b+1),(c+1),(d+1)); scanf("%d", &aux); mt[a][b][c][d]=aux; } } } } break; case 1: for(a=0; a<M; a++) { for(b=0; b<C; b++) {
for(c=0; c<A; c++) { for(d=0; d<P; d++) { mt[a][b][c][d]=rand()%10; } } } } while((a!=-1)&&(b!=-1)&&(c!=-1)&&(d!=-1)) { printf("Ingrese el codigo de la materia:"); scanf("%d",&a); if(a!=-1) { printf("Ingrese el codigo de la comision:"); scanf("%d",&b); if(b!=-1) { printf("Ingrese el codigo del alumno:"); scanf("%d",&c); if(c!=-1) { printf("Ingrese el codigo del parcial:"); scanf("%d",&d); if(d!=-1) { printf("Ingrese la nota:"); scanf("%d", &aux); /*a--; b--; c--; d--; estos -- son necesarios si pensas que al ingresar datos el hombre cuando se refiere a la primer materia (mt[0][x][x][x]) va a poner un 1 cuando en realidad deberia poner un 0. */ mt[a][b][c][d]=aux; printf("\n----------\n"); } } } } } break; case 2: for(a=0; a<M; a++) { for(b=0; b<C; b++) { for(c=0; c<A; c++) { for(d=0; d<P; d++) {
mt[a][b][c][d]=rand()%10; } } } } break; default: printf("!!!\nOpcion Incorrecta\n"); break; } break; case 6: break; default: printf("!!!\nOpcion Incorrecta\n"); break; } } return 0; } double prom_mat(int i, int mt[M][C][A][P]) { int a,b,c; double sum=0; for(a=0; a<C; a++) { for(b=0; b<A; b++) { for(c=0; c<P; c++) { sum+=mt[i][a][b][c]; } } } return ((double)sum/(C*A*P)); } double prom_alm(int i, int j, int mt[M][C][A][P]) { int a,c; double sum=0; for(a=0; a<M; a++) { for(c=0; c<P; c++) { sum+=mt[a][i][j][c]; } } return ((double)sum/(M*P)); } double prom_com(int i, int mt[M][C][A][P]) { int a,b,c; double sum=0; for(a=0; a<M; a++)
{ for(b=0; b<A; b++) { for(c=0; c<P; c++) { sum+=mt[a][i][b][c]; } } } return ((double)sum/(M*A*P)); } double prom_par(int i, int j, int k, int mt[M][C][A][P]) { int a; double sum=0; for(a=0; a<A; a++) { sum+=mt[i][j][a][k]; } return ((double)sum/(A)); }
Ejercicio 7
#include <stdio.h> #include <stdlib.h> int binario (char ); int main() { char num; int bin=0; printf("Ingrese el numero a pasar a binario: (el numero debe estar entre 0 y 255)\n"); scanf("%d", &num); bin=binario(num); printf("El numero %d en binario es: %d", num, bin); return 0; } int binario (char num) { short int aux; int bin=0; int n; for(n=0;n<8;n++) { aux=0; aux=num%2; num/=2; bin+=aux*pow(10,n); }
return bin; }
Ejercicio 8
#include <stdio.h> #include <stdlib.h> int binario (char ); int main() { char num; int bin=0; printf("Ingrese el numero a pasar a binario: (el numero debe estar entre 0 y 255)\n"); scanf("%d", &num); bin=binario(num); printf("El numero %d en binario es: %d", num, bin); return 0; } int binario (char num) { unsigned char mask=1; int n, bin=0; for(n=0;n<8;n++) { bin+=(num&mask)*pow(10,n); num=num>>1; } return bin; }
Ejercicio 9
#include <stdio.h> #include <stdlib.h> int shiftd (int); int binario (char); int main() { char num; int bin=0; printf("Ingrese el numero a pasar a binario: (el numero debe estar entre 0 y 255)\n"); scanf("%d", &num);
bin=binario(num); printf("El numero %d en binario es: %d", num, bin); num=shiftd(num); bin=binario(num); printf("\nluego del shift a la derecha su numero, en binario, es: %d", bin); return 0; } int shiftd (int num) { int mask=1; mask=mask<<(sizeof(int)*4);//*4 porque hay 4 bits por cada byte, y el sizeof me da en bytes. mask=~mask; num=num>>1; return (num&mask); } int binario (char num) { short int aux; int bin=0; int n; for(n=0;n<8;n++) { aux=0; aux=num%2; num/=2; bin+=aux*pow(10,n); } return bin; }
Ejercicio 10
#include <stdio.h> #include <stdlib.h> int cbits (unsigned int); int binario (char); int main() { unsigned int num; int bin=0; printf("Ingrese el numero a contar los '1s': \n"); scanf("%d", &num); bin=binario(num); printf("El numero %d en binario es: %d", num, bin); num=cbits(num); printf("\nHay %d '1s' en esa variable.", num); return 0; }
int cbits (unsigned int var) { unsigned int mask=1; int i; int cont=0; for(i=0;i<(sizeof(unsigned int)*4); i++) { if(((var>>i)&mask)==1) cont++; } return cont; } int binario (char num) { short int aux; int bin=0; int n; for(n=0;n<8;n++) { aux=0; aux=num%2; num/=2; bin+=aux*pow(10,n); } return bin; }
Ejercicio 11
#include <stdio.h> #include <stdlib.h> #include <math.h> unsigned int mashup (unsigned char,unsigned char,unsigned char,unsigned char); int binario (char ); int binario_int (int); int main() { unsigned char v1=1,v2=4,v3=8,v4=16; unsigned int vr; vr=mashup(v1,v2,v3,v4); printf("\nv1=%d", binario(v1)); printf("\nv2=%d", binario(v2)); printf("\nv3=%d", binario(v3)); printf("\nv4=%d", binario(v4)); printf("\nvr=%d", vr); /*me va a tirar el numero decimal porque la variable int no alcanza para almacenar este numero en binario, asique directamente mande el numero sin transformarlo.*/ return 0;