martes, 29 de mayo de 2012

practica 13 (problemas).

problema 1.
haga un programa que considere una matriz de 4x4 y realice las siguientes funciones:
a) introducir los datos de la matriz.
b) sumar los datos de la matriz.
c) encontrar el dato mayor.
d) desplegar los datos de la matriz.
e) sumar la diagonal principal.
f) buscar un dato y encontrar las veces de la existencia del dato.



P-seudo codigo.
1.- Inicio
void insertardatos(int tabla[4][4])
{int R,C
for(R=0 to R<4 step R++)
{for(C=0 to C<4 step C++)
{Print "Punto M[" ,(R+1), "][" ,(C+1), "]= "
Print tabla[R][C]}}
Print  endl}

template <class T>
T suma(T sum[4][4])
{int R,C,s=0
for(R=0 to R<4 step R++)
{for(C=0 to C<4 step C++)
{s=s+sum[R][C]}}
return s}

void max(int M[4][4])
{int R,C,mayor=M[0][0]
for(R=0 to R<4 step R++)
{for(C=0 to C<4 step C++)
{if(M[R][C]>=mayor)
{mayor=M[R][C]}}}
Print  "El dato mayor de la tabla es= " ,mayor}

void desplegar(int d[4][4])
{int R,C=0,D=1,E=2,F=3
Print  "\tDatos de la matriz"
for(R=0 to R<4 step R++)
{Print "\t" ,d[R][C], "\t" ,d[R][D], "\t" ,d[R][E], "\t" ,d[R][F]}
Print  endl}

template <class T>
T diagonal(T X[4][4])
{int r=0,s=0
while(r<4)
{s=s+X[r][r]
r++}
return s}

void exist(int e[4][4])
{int x=0,s=0,R,C
Print  "Que dato desea encontrar?"
Print  "Dato= "
Read x
for(R=0 to R<4 step R++)
{for(C=0 to C<4 step C++)
{if(x==e[R][C])
{s=s+1}
else
{s=s+0}}}
if(s==0)
{Print "No se encontro el dato"}
else
{Print "El dato se encontro " ,s, " veces"}}

1.- Inicio de programa
void main()
{int matriz[4][4]
insertardatos(matriz)
Print "La suma de todos los valores es= " ,suma(matriz)
max(matriz)
Print "La suma de la diagnoal principal es= " ,diagonal(matriz)
Print endl
desplegar(matriz)
exist(matriz)
fin.


problema 2.

a.-Escriba un programa que sume los elementos equiparables bidimensionales denominados primero y segundo. Ambos arreglos deben tener dos renglones y tres columnas. Por ejemplo los elementos [1][2] del arreglo que resulte deben ser la suma de primero [1][2] y segundo [1][2]. Los arreglos primero y segundo deben realizarse de la manera siguiente:
                                         primero:                                           segundo:
                              16          18        23                       24             52           77
                              54          91        11                       16             19           59



P-seudo codigo.
1.- Inicio
void pri(int x[2][3])
{int R,C=0,V=1,B=2
Print  "Primer arreglo"
for(R=0 to R<2 step R++)
{Print x[R][C], "\t" ,x[R][V], "\t" ,x[R][B]}
Print endl}

void seg(int y[2][3])
{int R,C=0,V=1,B=2
Print  "Segundo arreglo"
for(R=0 to R<2 step R++)
{Print y[R][C], "\t", y[R][V], "\t" ,y[R][B]}
Print  endl}

void suma(int x[2][3],int y[2][3])
{int R,a=0,s=1,d=2
cout<<"Suma equiparable de los arreglos"
for(R=0;R<2;R++)
{Print (x[R][a]+y[R][a]), "\t" ,(x[R][s]+y[R][s]), "\t" ,(x[R][d]+y[R][d])}
Print  endl}

void pri3(int D[2][3])
{int R,C=0,V=1,B=2
cout<<"Primer arreglo"
for(R=0 to R<2 step R++)
{Print D[R][C], "\t" ,D[R][V], "\t" ,D[R][B]}
Print  endl}

void seg2(int S[2][3])
{int R,C=0,V=1,B=2;
Print  "Segundo arreglo"
for(R=0 to R<2 step R++)
{Print S[R][C], "\t" ,S[R][V], "\t" ,S[R][B]}
Print  endl}

void pri2(int D[2][3],int S[2][3])
{int R,C
randomize()
for(R=0 to R<2 step R++)
{for(C=0 to C<3 step C++)
{D[R][C]=random(100)+1
S[R][C]=random(100)+1}}}

void suma2(int D[2][3],int S[2][3])
{int R,a=0,s=1,d=2
Print  "Suma equiparable de los arreglos"
for(R=0 to R<2 step R++)
{Print (D[R][a]+S[R][a]), "\t" ,(D[R][s]+S[R][s]), "\t" ,(D[R][d]+S[R][d])}}

1.- Inicio de programa
void main()
{int primero[2][3]={16,18,23,54,91,11}
int segundo[2][3]={24,52,77,16,19,59}
int A[2][3],B[2][3]
pri(primero)
seg(segundo)
suma(primero,segundo)
pri2(A,B)
pri3(A)
seg2(B)
suma2(A,B)
fin.


b.- Escriba un programa que sume los elementos equiparables de los arreglos bidimensionales denominados primero y segundo. ambos arreglos debe tener dos renglones y tres columnas. Los arreglos primero y segundo deben generarse con numeros aleatorios.


P-seudo codigo.
inicio.
void introducevolt(float arreglo[3][5])
{int r,c
srand(time(NULL))
for(r=0; r<3; r++)
{for (c=0; c<5; c++)
{arreglo[r][c]=rand()%100+1;}}}

void rangovoltajes(float arreglo[3][5], int &v1, int&v2, int &v3, int &v4, int &v5)
{v1=v2=v3=v4=v5=0
int r,c
for (r=0; r<3; r++)
{for (c=0; c<5; c++)
{if (arreglo[r][c] < 60)
{v1++}
else
{if (arreglo[r][c] >=60 && arreglo[r][c]< 70)
{v2++}
else
{if (arreglo[r][c] >=70 && arreglo[r][c]< 80)
{v3++}
else
{if (arreglo[r][c] >=80 && arreglo[r][c]< 90)
{v4++}
else
{v5++}}}}}}}

void main()
{real voltajes[3][5]
int c1,c2,c3,c4,c5
introducevolt(voltajes)
rangovoltajes(voltajes,c1,c2,c3,c4,c5)
print"numero de vltajes menores que 60 =",c1
print" numero de voltajes mayores que 60, pero menores que 70 =",c2
print" numero de voltajes mayores que 70, pero menores que 80 =",c3
print" numero de voltajes mayores que 80, pero menores que 90 =",c4
print" numero de voltajes mayores que 90 =",c5



No hay comentarios:

Publicar un comentario