Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Practica SEM7 Solucion
Practica SEM7 Solucion
EscribaunprogramaenCdadaunamatrizM[x][y]haga:
a)muestremenconsola
b)calculelamatriztranspuestaMT[y][x]
c)muestremtenconsola.
Solucin:
#include<stdio.h>
#defineX4
#defineY8
intmain(){
intm[X][Y]=
{0,0,0,0,0,0,0,0,
1,1,1,1,1,1,1,1,
2,2,2,2,2,2,2,2,
3,3,3,3,3,3,3,3};
intmt[Y][X];
inti,j;
//imprimom
printf("\nmatriz\"m\"\n");
for(i=0;i<X;i++){
for(j=0;j<Y;j++)
printf("%d|",m[i][j]);
printf("\n");
}
printf("\n\n");
//calculomt
for(i=0;i<X;i++)
for(j=0;j<Y;j++)
mt[j][i]=m[i][j];
//imprimomt
printf("matriz\"mt\"\n");
for(i=0;i<Y;i++){
for(j=0;j<X;j++)
printf("%d|",mt[i][j]);
printf("\n");
}
return0;
}
2.Escribaunprogramaque,dadaunamatrizM[x][y]laalmaceneen:
a)unvectorV1delaforma{fila1,fila2,...,filax}
b)unvectorV2delaforma{columna1,columna2,...,columnay}
Solucin:
#include<stdio.h>
#defineX4
#defineY8
intmain(){
intm[X][Y]=
{0,0,0,0,0,0,0,0,
1,1,1,1,1,1,1,1,
2,2,2,2,2,2,2,2,
3,3,3,3,3,3,3,3};
intv1[X*Y];
intv2[Y*X];
inti,j;
//imprimom
printf("\nmatriz\"m\"\n");
for(i=0;i<X;i++){
for(j=0;j<Y;j++)
printf("%d|",m[i][j]);
printf("\n");
}
printf("\n\n");
//calculoV1
for(j=0;j<Y;j++)
for(i=0;i<X;i++)
v1[(j*X)+i]=m[i][j];
//calculoV2
for(i=0;i<X;i++)
for(j=0;j<Y;j++)
v2[(i*Y)+j]=m[i][j];
//imprimoV1
printf("\"V1:\"\n|");
for(i=0;i<(Y*X);i++)
printf("%d|",v1[i]);
printf("\n");
//imprimoV2
printf("\"V2:\"\n|");
for(i=0;i<(Y*X);i++)
printf("%d|",v2[i]);
printf("\n");
return0;
}
3.EscribaunprogramaenCqueutiliceunarregloparamostrarlosNprimerosnmerosdela
sucesindefibonacci.Nota:Nesintroducidoporelusuario.
Solucin:
#include<stdio.h>
intmain(){
intn,k;
printf("introduzcalacantidaddenumerosacalcular:\n");
scanf("%d",&n);
intfibo[n];
if(n==1){
fibo[0]=0;
}
elseif(n==2){
fibo[0]=0;
fibo[1]=1;
}
elseif(n>2){
fibo[0]=0;
fibo[1]=1;
for(k=2;k<n;k++)
fibo[k]=fibo[k1]+fibo[k2];
}
else{
printf("%dnoesunnumerovalido\n\n",n);
return0;
}
//inmprimoelresultado
printf("\nlos%dprimerosnumerosdelasucesiondefibonaccison:\n|",n);
for(k=0;k<n;k++)
printf("%d|",fibo[k]);
printf("\n\n");
return0;
}
4.escribaunprogramaenCquesimuleuntablerodeajedrezcon(slo)torres.Elprogramadebe
decir si,dadaslasposicionesdelastorresalgunadeellassecomeaotra.Sugerencia:Nose
compliquemucho.Solosequieresabersitodasvivenoalgunamuere.
Solucin:
#include<stdio.h>
#defineTRUE1
#defineFALSE0
intmain(){
inttablero[8][8]=
{0,0,0,0,0,0,0,0,
0,0,0,0,0,0,1,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0};
intf,c;
intcuantas;
inttodasbien;
todasbien=TRUE;
for(f=0;f<8;f++){
for(c=0;c<8;c++){
if(tablero[f][c]==1){
//arriba&abajo
cuantas=
tablero[0][c]+
tablero[1][c]+
tablero[2][c]+
tablero[3][c]+
tablero[4][c]+
tablero[5][c]+
tablero[6][c]+
tablero[7][c];
if(cuantas>1)todasbien=FALSE;
//izquierda&derecha
cuantas=
tablero[f][0]+
tablero[f][1]+
tablero[f][2]+
tablero[f][3]+
tablero[f][4]+
tablero[f][5]+
tablero[f][6]+
tablero[f][7];
if(cuantas>1)todasbien=FALSE;
}
}
}
if(todasbien)printf("Eneltableroningunatorresecomeaotra\n");
elseprintf("Eneltableroalgunatorresecomeaotra\n");
return0;
}
5.EscribauncdigoenCquerecibaunarregloAconNnmerosydevuelvaunarregloBconlos
mismoNnmerosordenados.
Solucin:
#include<stdio.h>
#include<limits.h>
intmain(){
intdesorden[12]={2,6,4,9,1,3,8,5,0,7,8,4};
intorden[12];
intmin=INT_MAX;
intposmin=1;
inti,j;
for(i=0;i<12;i++){
for(j=0;j<12;j++){
if(desorden[j]<=min){
min=desorden[j];
posmin=j;
}
}
desorden[posmin]=INT_MAX;
orden[i]=min;
min=INT_MAX;
}
printf("elarregloordenado:\n|");
for(i=0;i<12;i++)
printf("%d|",orden[i]);
printf("\n\n");
return0;
}