UNIVERSIDAD DE CONCEPCIÓN FACULTAD DE INGENIERÍA AGRÍCOLA DEPTO. DE AGROINDUSTRIAS Juan Carlos Sandoval Avendaño PAUTA TEST Nº 4 LENGUAJE DE PROGRAMACIÓN INGENIERÍA AGROINDUSTRIAL INGENIERÍA AMBIENTAL INGENIERÍA CIVIL AGRÍCOLA INGENIERÍA EN ALIMENTOS NOMBRE :__________________________________________CARRERA :________ TIEMPO MÁXIMO : 20 MINUTOS FECHA : Mi 28/10/15 Calcule y muestre por pantalla E# ß donde E es una matriz de elementos reales ingresados por el usuario, cuyo orden es un número aleatorio natural mayor o igual que # y menor que %. (60 puntos). Solución: Si suponemos que la matriz es cuadrada, entonces la codificación es: #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int n; srand(time(NULL)); n=rand()%2+2; int i,j, k; float a[n][n], a2[n][n]; for(i=0;i<=n-1;i++) for(j=0;j<=n-1;j++) { printf("\na[%i][%i] = ",i+1,j+1); scanf("%f",&a[i][j]); } 1 for(i=0;i<=n-1;i++) for(j=0;j<=n-1;j++) { a2[i][j]=0.0; for(k=0;k<=n-1;k++) a2[i][j]=a2[i][j]+a[i][k]*a[k][j]; } for(i=0;i<=n-1;i++) { printf("\n"); for(j=0;j<=n-1;j++) { printf("\t%0.2f",a2[i][j]); } } printf("\n\n"); system("PAUSE"); return 0; } Si suponemos que la matriz no necesariamente es cuadrada, entonces la codificación es: #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int n, m; srand(time(NULL)); n=rand()%2+2; m=rand()%2+2; int i,j, k; float a[n][m], a2[n][n]; for(i=0;i<=n-1;i++) for(j=0;j<=m-1;j++) { printf("\na[%i][%i] = ",i+1,j+1); scanf("%f",&a[i][j]); } 2 if(n==m) { for(i=0;i<=n-1;i++) for(j=0;j<=n-1;j++) { a2[i][j]=0.0; for(k=0;k<=n-1;k++) a2[i][j]=a2[i][j]+a[i][k]*a[k][j]; } for(i=0;i<=n-1;i++) { printf("\n"); for(j=0;j<=n-1;j++) { printf("\t%0.2f",a2[i][j]); } } } else printf("\nNo se puede calcular A al cuadrado porque la matriz no es cuadrada\n"); printf("\n\n"); system("PAUSE"); return 0; } ú 3