Ejercicios resueltos informática II practica 1 (nueva 2014)

23
Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein Ejercicios Resueltos Practica 1 (NUEVA 2014) Informatica II Ejercicio 1: #include <stdio.h> #include <stdlib.h> #define N 5 int main() { char rombo[N][N]; llenar_rombo(rombo); mostrar_rombo(rombo); return 0; } void llenar_rombo(char rombo[N][N]) { int bl,nr,i,j; bl=2; nr=1; for(j=0; j<3; j++) { for(i=0; i<bl; i++) { rombo[j][i]=' '; } for(; i<(nr+bl); i++) { rombo[j][i]='*'; } for(; i<N; i++) { rombo[j][i]=' '; } bl--; nr+=2; } bl=1; nr=3; for(; j<N; j++) { for(i=0; i<bl; i++) { rombo[j][i]=' ';

Transcript of Ejercicios resueltos informática II practica 1 (nueva 2014)

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

Ejercicios Resueltos Practica 1 (NUEVA 2014) Informa tica II

Ejercicio 1: #include <stdio.h>

#include <stdlib.h>

#define N 5

int main()

{

char rombo[N][N];

llenar_rombo(rombo);

mostrar_rombo(rombo);

return 0;

}

void llenar_rombo(char rombo[N][N])

{

int bl,nr,i,j;

bl=2;

nr=1;

for(j=0; j<3; j++)

{

for(i=0; i<bl; i++)

{

rombo[j][i]=' ';

}

for(; i<(nr+bl); i++)

{

rombo[j][i]='*';

}

for(; i<N; i++)

{

rombo[j][i]=' ';

}

bl--;

nr+=2;

}

bl=1;

nr=3;

for(; j<N; j++)

{

for(i=0; i<bl; i++)

{

rombo[j][i]=' ';

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

}

for(; i<(nr+bl); i++)

{

rombo[j][i]='*';

}

for(; i<N; i++)

{

rombo[j][i]=' ';

}

bl++;

nr-=2;

}

}

void mostrar_rombo (char rombo [N][N])

{

int i,j;

for(j=0; j<N; j++)

{

for(i=0; i<N; i++)

{

printf("|%c|", rombo[i][j]);

}

printf("\n");

}

}

Ejercicio 2: #include <stdio.h>

#include <stdlib.h>

#define N 5

void mostrar (int mtz [N][N]);

int main()

{

int

mtz[N][N]={{21,22,23,24,25},{46,47,48,49,40},{57,53,58,53,50},{60,70,80,90,10},{11,12,13,14,15}};

mostrar(mtz);

printf("\n---------------------------\n");

transponer(mtz);

mostrar(mtz);

return 0;

}

void transponer (int mtz[N][N])

{

int aux;

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

int i,j;

for(j=0;j<N;j++)

{

for(i=j;i<N;i++)

{

aux=mtz[i][j];

mtz[i][j]=mtz[j][i];

mtz[j][i]=aux;

}

}

}

void mostrar (int mtz[N][N])

{

int i,j;

for(j=0; j<N; j++)

{

for(i=0; i<N; i++)

{

printf("|%d|", mtz[i][j]);

}

printf("\n");

}

}

Ejercicio 3: #include <stdio.h>

#include <stdlib.h>

#define N 5

#define M 20

int main()

{

char mtz[N][M];

cargar_nombres(mtz);

mostrar(mtz);

return 0;

}

void cargar_nombres (char mtz[N][M])

{

FILE * arch;

int j=0;

arch=fopen("C:\\Users\\alumno\\Desktop\\Equipos.txt", "r");

if(arch!=NULL)

{

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

while((!feof(arch))&&(j<N))

{

fgets(mtz[j], M, arch);

j++;

}

}

}

void mostrar (char mtz[N][M])

{

int i,j;

for(j=0; j<N; j++)

{

printf("%s", mtz[j]);

i++;

}

}

Ejercicio 4:

(A) #include <stdio.h> #include <stdlib.h> #define N 5 #define M 25 int main() { char mtz[N][M]; cargar_nombres(mtz); ordenar_nombres(mtz); mostrar(mtz); return 0; } void cargar_nombres (char mtz[N][M]) { FILE * arch; int j=0; arch=fopen("Equipos.txt", "r"); if(arch!=NULL) { while((!feof(arch))&&(j<N)) { fgets(mtz[j], M, arch); j++; } } }

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

void mostrar (char mtz[N][M]) { int i,j; for(j=0; j<N; j++) { printf("%s", mtz[j]); i++; } } void ordenar_nombres (char nombres[][25]) { int i,j; char aux[25]; for (i=0; i<N ;i++) { for(j=i+1; j<N ; j++) { if(nombres[i][0]<nombres[j][0]) { strcpy(aux,nombres[i]); strcpy(nombres[i],nombres[j]); strcpy(nombres[j], aux); } } } }

(B) #include <stdio.h> #include <stdlib.h> #define N 5 #define M 25 int main() { char mtz[N][M]; cargar_nombres(mtz); ordenar_nombres(mtz); mostrar(mtz); return 0; } void cargar_nombres (char mtz[N][M]) { FILE * arch; int j=0; arch=fopen("Equipos.txt", "r"); if(arch!=NULL) { while((!feof(arch))&&(j<N)) {

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

fgets(mtz[j], M, arch); j++; } } } void mostrar (char mtz[N][M]) { int i,j; for(j=0; j<N; j++) { printf("%s", mtz[j]); i++; } } void ordenar_nombres (char nombres[][25]) { int i,j; char aux[25]; for (i=0; i<N ;i++) { for(j=i+1; j<N ; j++) { if(strcmp(nombres[i] , nombres[j])>0) { strcpy(aux,nombres[i]); strcpy(nombres[i],nombres[j]); strcpy(nombres[j], aux); } } } }

(C) #include <stdio.h> #include <stdlib.h> #define N 5 #define M 25 int es_mayuscula (char); int strcmpbm(char nombre1[] , char nombre2[]); int main() { char mtz[N][M]; cargar_nombres(mtz); ordenar_nombres(mtz); mostrar(mtz); return 0; } void cargar_nombres (char mtz[N][M]) { FILE * arch;

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

int j=0; arch=fopen("Equipos.txt", "r"); if(arch!=NULL) { while((!feof(arch))&&(j<N)) { fgets(mtz[j], M, arch); j++; } } } void mostrar (char mtz[N][M]) { int i,j; for(j=0; j<N; j++) { printf("%s", mtz[j]); i++; } } void ordenar_nombres (char nombres[][25]) { int i,j; char aux[25]; for (i=0; i<N ;i++) { for(j=i+1; j<N ; j++) { if(strcmpbm(nombres[i] , nombres[j])>0) { strcpy(aux,nombres[i]); strcpy(nombres[i],nombres[j]); strcpy(nombres[j], aux); } } } } int strcmpbm(char nombre1[] , char nombre2[]) { int i,j; char aux1, aux2; for(i=0;i<M;i++) { if(nombre1[i]!='\0') { if(nombre2[i]!='\0') { if(es_mayuscula(nombre1[i])) { aux1=nombre1[i]; }

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

else { aux1=nombre1[i]^32; } if(es_mayuscula(nombre2[i])) { aux2=nombre2[i]; } else { aux2=nombre2[i]^32; } if(aux1>aux2) { return 1; } else { if(aux1<aux2) return -1; } } else { return -1; } } } return 0; } int es_mayuscula (char h) { if(h>='A'&&h<'Z') return 1; else return 0; }

Ejercicio 5: #include <stdio.h> #include <stdlib.h> #define N 5 void cargar (int [N][8]); void imprimir (int [N][8]); int main() { int mtz[N][8]; cargar(mtz);

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

imprimir(mtz); return 0; } void cargar(int mtz[N][8]) { FILE * arch; int i=0; arch=fopen("puntos.csv","r"); while((!feof(arch))&&(i<N)) { fscanf(arch,"%d,%d,%d,%d,%d,%d,%d,%d\n", &mtz[i][0], &mtz[i][1], &mtz[i][2], &mtz[i][3], &mtz[i][4], &mtz[i][5], &mtz[i][6], &mtz[i][7]); i++; } fclose(arch); } void imprimir (int mtz[N][8]) { int i,j; for(i=0;i<N;i++) { for(j=0;j<8;j++) { printf("|%d|", mtz[i][j]); } printf("\n"); } }

Ejercicio 6: #include <stdio.h> #include <stdlib.h> #define N 5 #define M 25 #define O 8 int main() { char nombres[N][M]; int numeros[N][O]; cargar_nombres(nombres); cargar_numeros(numeros); mostrar_tabla(nombres,numeros); return 0; } void cargar_nombres (char mtz[N][M]) { FILE * arch; int j=0; arch=fopen("Equipos.txt", "r");

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

if(arch!=NULL) { while((!feof(arch))&&(j<N)) { fgets(mtz[j], M, arch); j++; } } } void cargar_numeros (int mtz[N][8]) { FILE * arch; int i=0; arch=fopen("puntos.csv","r"); while((!feof(arch))&&(i<N)) { fscanf(arch,"%d,%d,%d,%d,%d,%d,%d,%d\n", &mtz[i][0], &mtz[i][1], &mtz[i][2], &mtz[i][3], &mtz[i][4], &mtz[i][5], &mtz[i][6], &mtz[i][7]); i++; } fclose(arch); } void mostrar_tabla(char nombres[N][M], int numeros[N][O]) { int i; printf("Equipo\t\tPTS\tPJ\tPG\tPE\tPP\tGF\tGC\tDIF\n"); printf("________________________________________________________________________________\n"); for(i=0;i<N;i++) { printf("%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n", nombres[i], numeros[i][0], numeros[i][1], numeros[i][2], numeros[i][3], numeros[i][4], numeros[i][5], numeros[i][6], numeros[i][7]); } }

Ejercicio 7: #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { FILE * arch; int mtz[12][31]; srand(time(NULL)); arch=fopen("temperaturas.csv", "w"); cargar(mtz); imp_arch(arch,mtz); fclose(arch); return 0; }

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

void cargar(int mtz[12][31]) { int i,j; for(i=0;i<12;i++) { for(j=0;j<31;j++) { mtz[i][j]=rand()%50 -5; } } } void imp_arch (FILE * arch, int mtz[12][31]) { int i,j; for(i=0;i<12;i++) { for(j=0;j<31;j++) { fprintf(arch,"%d", mtz[i][j]); if(j<30) fputc(',',arch); } fputc('\n', arch); } }

Ejercicio 8:

(A)(B)(C): #include <stdio.h> #include <stdlib.h> double promedio_general(double mtz[12][31]); double maxima_absoluta(double mtz[12][31]); int main() { double mtz[12][31]; double mes[12]; double prom_general; double maxima; int i; cargar(mtz); prom_general=promedio_general(mtz); printf("Promedio General: %.2lf\n", prom_general); medias_mensuales(mtz,mes); printf("\nMedidas mensuales:\n"); for(i=0;i<12;i++) printf("Promedio mes %d: %.2lf\n", i+1, mes[i]);

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

maxima=maxima_absoluta(mtz); printf("\nMaxima Absoluta: %.2lf\n", maxima); return 0; } void cargar(double mtz[12][31]) { FILE * arch; int i,j; arch=fopen("temperaturas.csv","r"); i=0; while ((!feof(arch))&&(i<12)) { for(j=0;j<31;j++) { fscanf(arch,"%lf", &mtz[i][j]); fgetc(arch); } i++; } fclose(arch); } /*a. double promedio_general(double[][12]), que calcula el promedio de temperatura de todo el año. */ double promedio_general(double mtz[12][31]) { int i,j; double prom=0; for(i=0;i<12;i++) { for(j=0;j<31;j++) prom+=mtz[i][j]; } prom/=(12*31); return prom; } /*b. void medias_mensuales(double[][12], double[]), que calcula el promedio de temperatura de cada mes y asigna dicho valor en el índice correspondiente del arreglo pasado como segundo parámetro.*/ void medias_mensuales(double mtz[][12], double mes[]) { int i,j; double prom=0; for(i=0;i<12;i++) { prom=0; for(j=0;j<31;j++) prom+=mtz[i][j]; mes[i]=prom/31; } } /*c. double maxima_absoluta(double[][12]), que retorna la máxima absoluta del año.*/ double maxima_absoluta(double mtz[12][31]) {

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

double maxima=-100; int i,j; for(i=0;i<12;i++) { for(j=0;j<31;j++) { if(mtz[i][j]>maxima) maxima=mtz[i][j]; } } return maxima; }

(D) #include <stdio.h> #include <stdlib.h> double promedio_general(double mtz[12][31], int limites[12]); double maxima_absoluta(double mtz[12][31], int limites[12]); int main() { double mtz[12][31]; double mes[12]; double prom_general; double maxima; int limites[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int i; cargar(mtz); prom_general=promedio_general(mtz, limites); printf("Promedio General: %.2lf\n", prom_general); medias_mensuales(mtz,mes,limites); printf("\nMedidas mensuales:\n"); for(i=0;i<12;i++) printf("Promedio mes %d: %.2lf\n", i+1, mes[i]); maxima=maxima_absoluta(mtz,limites); printf("\nMaxima Absoluta: %.2lf\n", maxima); return 0; } void cargar(double mtz[12][31]) { FILE * arch; int i,j; arch=fopen("temperaturas.csv","r"); i=0; while ((!feof(arch))&&(i<12)) { for(j=0;j<31;j++) { fscanf(arch,"%lf", &mtz[i][j]);

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

fgetc(arch); } i++; } fclose(arch); } /*a. double promedio_general(double[][12]), que calcula el promedio de temperatura de todo el año. */ double promedio_general(double mtz[12][31], int limites[12]) { int i,j; double prom=0; for(i=0;i<12;i++) { for(j=0;j<limites[i];j++) prom+=mtz[i][j]; } prom/=(12*31); return prom; } /*b. void medias_mensuales(double[][12], double[]), que calcula el promedio de temperatura de cada mes y asigna dicho valor en el índice correspondiente del arreglo pasado como segundo parámetro.*/ void medias_mensuales(double mtz[][12], double mes[], int limites[12]) { int i,j; double prom=0; for(i=0;i<12;i++) { prom=0; for(j=0;j<limites[i];j++) prom+=mtz[i][j]; mes[i]=prom/limites[i]; } } /*c. double maxima_absoluta(double[][12]), que retorna la máxima absoluta del año.*/ double maxima_absoluta(double mtz[12][31], int limites[12]) { double maxima=-100; int i,j; for(i=0;i<12;i++) { for(j=0;j<limites[i];j++) { if(mtz[i][j]>maxima) maxima=mtz[i][j]; } } return maxima; }

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

Ejercicio 9: #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++) {

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

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; } } }

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

} 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");

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

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);

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

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]) {

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

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)); }

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

Ejercicio 10: void mostrar_bin(char v) { int i; printf("\nVariable en binairo:"); for(i=sizeof(char)*8;i>=0;i--) { if(v>=pow(2,i)) { v-=pow(2,i); printf("1"); } else printf("0"); } printf("\n"); }

Ejercicio 11: #include <stdio.h> #include <stdlib.h> int main() { char v=31; mostrar_bin(v); return 0; } void mostrar_bin(char v) { char mask=128; int i; printf("\nVariable en binario:"); for(i=0;i<8;i++) { if((v&mask)==0) printf("0"); else printf("1"); v=v<<1; } printf("\n"); }

Ejercicio 12: #include <stdio.h> #include <stdlib.h> char shiftder(char v); int main() { char v=30; mostrar_bin(v);

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

v=shiftder(v); mostrar_bin(v); return 0; } char shiftder(char v) { char mask=128; mask=~mask; return (v>>1)&mask; } void mostrar_bin(char v) { char mask=128; int i; printf("\nVariable en binario:"); for(i=0;i<8;i++) { if((v&mask)==0) printf("0"); else printf("1"); v=v<<1; } printf("\n"); }

Ejercicio 13: #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { unsigned int v=128+32+16+8+4+2+1; contarunos(v); return 0; } void contarunos (unsigned int v) { unsigned int mask=pow(2,(sizeof(unsigned int)*8)-1); int i; int cont=0; for(i=0;i<sizeof(unsigned int)*8;i++) { if(!((mask&v)==0)) cont++; v=v<<1; } printf("La variable solicitada tiene %d '1s'.\n", cont); }

Ejercicios Practica 1 (NUEVA 2014) Informática II UCA | Resueltos por Alvin Jacobs Blydenstein

Ejercicio 14: #include <stdio.h> #include <stdlib.h> unsigned int unir_chars(char a,char b,char c,char d); int main() { char a=15,b=30,c=64,d=1; unsigned int respuesta=unir_chars(a,b,c,d); printf("Uniendo las variables a=%d, b=%d, c=%d, d=%d, obtengo: %d\n",a,b,c,d,respuesta); return 0; } unsigned int unir_chars(char a,char b,char c,char d) { unsigned int r=0; r=r|a; r=r<<(sizeof(char)*8); r=r|b; r=r<<(sizeof(char)*8); r=r|c; r=r<<(sizeof(char)*8); r=r|d; return r; }

Ejercicio 15: #include <stdio.h> #include <stdlib.h> char cletra (char); int main() { char a='c'; printf("Letra original: %c\n", a); a=cletra(a); printf("Letra luego de 'cletrar': %c\n",a); return 0; } char cletra (char a) { unsigned char mask=32; return a^mask; }