5.
1 Realice y represente mediante un diagrama de flujo el algoritmo para obtener la matriz
transpuesta de cualquier matriz de orden M x N.
Nombre Descripción Tipo
c, f Variable para definir el arreglo de la matriz Entero
m Numero de columnas de la matriz Entero
n Numero de filas de la matriz Entero
matriz1 Nombre de la primera matriz Entero
matriz1 Nombre de la segunda matriz Entero
#include<stdio.h>
#include<stdlib.h>
#define ARREGLO_MAX 100
int main() {
int c;
int f;
int m;
int matriz1[ARREGLO_MAX][ARREGLO_MAX];
int matriz2[ARREGLO_MAX][ARREGLO_MAX];
int n;
printf("Ingresa las filas\n");
scanf("%i",&n);
printf("Ingresa las columnas\n");
scanf("%i",&m);
for (f=1;f<=n;f+=1) {
for (c=1;c<=m;c+=1) {
matriz1[f][c] = (rand()%9)+1;
matriz2[c][f] = matriz1[f][c];
for (f=1;f<=n;f+=1) {
for (c=1;c<=m;c+=1) {
printf("%i ",matriz1[f][c]);
printf("\n");
printf("\n");
for (f=1;f<=n;f+=1) {
for (c=1;c<=m;c+=1) {
printf("%i ",matriz2[f][c]);
printf("\n");
return 0;
}
5.2 Realice y represente mediante un diagrama de flujo el algoritmo para obtener el producto de
dos matrices de orden M x N y P x Q.
Nombre Descripción Tipo
a[MAXTALLA][MAXTALLA] Primera matriz flotante
b[MAXTALLA] Segunda matriz flotante
[MAXTALLA]
p[MAXTALLA] Matriz producto flotante
[MAXTALLA]
filas_a Numero de filas de la matriz a Entero
filas_b Numero de filas de la matriz b Entero
filas_p Numero de filas de la matriz p Entero
columnas_a Numero de columnas de la matriz a Entero
columnas_b Numero de columnas de la matriz b Entero
columnas_p Numero de columnas de la matriz p Entero
i, j, k Variable para definir el arreglo de la matriz Entero
#include <stdio.h>
#define MAXTALLA 100
int main(void)
float a[MAXTALLA][MAXTALLA], b[MAXTALLA][MAXTALLA], p[MAXTALLA][MAXTALLA];
int filas_a, columnas_a, filas_b, columnas_b;
int filas_p, columnas_p ;
int i, j, k;
printf ("Filas de a : "); scanf ("%d", &filas_a);
printf ("Columnas de a: "); scanf ("%d", &columnas_a);
for (i=0; i<filas_a; i++)
for (j=0; j<columnas_a; j++) {
printf ("Elemento (%d, %d): ", i, j); scanf ("%f", &a[i][j]);
printf ("Filas de a : "); scanf ("%d", &filas_b);
printf ("Columnas de a: "); scanf ("%d", &columnas_b);
for (i=0; i<filas_b; i++)
for (j=0; j<columnas_b; j++) {
printf ("Elemento (%d, %d): ", i, j); scanf ("%f", &b[i][j]);
if (columnas_a == filas_b) {
filas_p = filas_a;
columnas_p = columnas_b;
for (i=0; i<filas_p; i++)
for (j=0; j<columnas_p; j++) {
p[i][j] = 0.0;
for (k=0; k<columnas_a; k++)
p[i][j] += a[i][k] * b[k][j];
if (columnas_a == filas_b) {
printf ("Producto de 2 matrices de orden M x N\n");
for (i=0; i<filas_p; i++) {
for (j=0; j<columnas_p; j++)
printf ("%8.2f", p[i][j]);
printf ("\n");
else
printf ("Matrices no compatibles para el producto.\n");
return 0;
5.3 Realice y represente mediante diagrama de flujo y pseudocódigo un algoritmo que lea un
arreglo de M filas y N columnas y que calcule la suma de los elementos de la diagonal principal.
Nombre Descripción Tipo
i, j Variable para definir el arreglo de la matriz Entero
m Numero de filas de la matriz Entero
n Numero de columnas de la matriz Entero
ma Nombre de la primera matriz Entero
mb Nombre de la segunda matriz Entero
Suma1 Duma de la diagonal Entero
#include <stdio.h>
#define MAXTALLA 100
int main()
int ma[MAXTALLA][MAXTALLA], mb[MAXTALLA][MAXTALLA];
int i, j, m, n, suma1=0;
printf("INGRESE EL ORDE DE LA MATRIZ \n");
scanf("%dx%d", &m, &n);
printf("INGRESE LOS COEFICIENTES DE LA MATRIZ \n");
for (i = 0; i < m; ++i)
for (j = 0; j < n; ++j)
scanf("%d", & ma[i][j]);
for (int i = 0; i < m; i++)
printf("\n ");
for (int j = 0; j < n; j++)
printf("%d ", ma[i][j]);
if (i == j)
suma1 += ma[i][j];
printf("\n");
printf("\nSuma de la Diagonal principal es: %d", suma1);
return 0;
5.4 Realice un algoritmo para obtener una matriz como el resultado de la resta de dos matrices
de orden M x N. Represéntelo mediante diagrama de flujo y pseudocódigo.
Nombre Descripción Tipo
a[MAXTALLA][MAXTALLA] Primera matriz flotante
b[MAXTALLA] Segunda matriz flotante
[MAXTALLA]
r[MAXTALLA][MAXTALLA] Matriz resta flotante
filas_a Numero de filas de la matriz a Entero
filas_b Numero de filas de la matriz b Entero
filas_r Numero de filas de la matriz r Entero
columnas_a Numero de columnas de la matriz a Entero
columnas_b Numero de columnas de la matriz b Entero
columnas_r Numero de columnas de la matriz r Entero
i, j Variable para definir el arreglo de la matriz Entero
#include <stdio.h>
#define MAXTALLA 100
int main(void)
float a[MAXTALLA][MAXTALLA], b[MAXTALLA][MAXTALLA];
float r[MAXTALLA][MAXTALLA];
int filas_a, columnas_a, filas_b, columnas_b;
int filas_r, columnas_r;
int i, j, k;
printf ("Filas de a : "); scanf ("%d", &filas_a);
printf ("Columnas de a: "); scanf ("%d", &columnas_a);
for (i=0; i<filas_a; i++)
for (j=0; j<columnas_a; j++) {
printf ("Elemento (%d, %d): ", i, j); scanf ("%f", &a[i][j]);
printf ("Filas de a : "); scanf ("%d", &filas_b);
printf ("Columnas de a: "); scanf ("%d", &columnas_b);
for (i=0; i<filas_b; i++)
for (j=0; j<columnas_b; j++) {
printf ("Elemento (%d, %d): ", i, j); scanf ("%f", &b[i][j]);
if (filas_a == filas_b && columnas_a == columnas_b) {
filas_r = filas_a;
columnas_r = columnas_a;
for (i=0; i<filas_r; i++)
for (j=0; j<filas_r; j++)
r[i][j] = a[i][j] - b[i][j];
if (filas_a == filas_b && columnas_a == columnas_b) {
printf ("Resta de 2 matrices de M x N\n");
for (i=0; i<filas_r; i++) {
for (j=0; j<columnas_r; j++)
printf ("%8.3f", r[i][j]);
printf ("\n");
else
printf ("Matrices no compatibles para la resta.\n");
return 0;
5.5 Realice un diagrama de flujo que represente el algoritmo para determinar si una matriz es
de tipo diagonal: es una matriz cuadrada en la cual todos sus elementos son cero, excepto los
electos de la diagonal principal.
Nombre Descripción Tipo
a, b Variable para definir el arreglo de la matriz Entero
m Numero de columnas de la matriz Entero
n Numero de filas de la matriz Entero
matriz Nombre de la matriz Entero
#include<stdio.h>
#define ARREGLOMAX 100
int main() {
int a, b, c, m, n; int matriz[ARREGLOMAX][ARREGLOMAX];
printf("Ingresa el numero de filas\n");
scanf("%i",&n);
printf("Ingresa el numero de columnas\n");
scanf("%i",&m);
if ((n>1 && m>1) && (n==m)) {
for (a=1;a<=n;a+=1) {
for (b=1;b<=m;b+=1) {
printf("Ingresa un numero en la fila: %i columna: %i\n",a,b);
scanf("%i",&matriz[a][b]);
printf("\n");
for (a=1;a<=n;a+=1) {
for (b=1;b<=m;b+=1) {
printf("%i ",matriz[a][b]);
printf("\n");
c = 0;
for (a=1;a<=n;a+=1) {
for (b=1;b<=m;b+=1) {
if (a==b) {
if (matriz[a][b]==0) {
c = c+1;
} else {
if (matriz[a][b]!=0) {
c = c+1;
}
}
if (c==0) {
printf("La matriz es de tipo diagonal\n");
} else {
printf("La matriz no es de tipo diagonal\n");
} else {
printf("La matriz no es cuadrada\n");
return 0;
5.6 Realice y represente mediante diagrama de flujo y pseudocódigo un algoritmo que lea los
nombres y las edades de diez alumnos, y que los datos se almacenen en dos vectores, y con base
en esto se determine el nombre del alumno con la edad mayor del arreglo.
Nombre Descripción Tipo
Mayor El que tiene mayor edad Entero
edad[10] Numero de columnas de la matriz Entero
n Nombre Entero
nombres[MAXnombre] Matriz de ingreso de caracteres nombres Caracteres
[10]
x Variable para definir el vector Entero
#include<stdio.h>
#define MAXnombre 256
int main() {
int edad[10];
int mayor, n=0;
char nombres[MAXnombre][10];
int x;
for (x=1;x<=10;x+=1) {
printf("Ingresa el nombre %i\n",x);
scanf("%s",nombres[x]);
printf("Ingresa la edad\n");
scanf("%i",&edad[x]);
mayor = 0;
for (x=1;x<=10;x+=1) {
if (edad[x]>mayor) {
mayor = edad[x];
n = nombres[x];
printf("%s tiene la edad mayor de %i años\n",n,mayor);
return 0;
5.7 Modifique el problema del ejemplo 5.12, considerando que el vector tiene N elementos y
que este número puede ser impar.
5.8 Realice un algoritmo que lea un vector y a partir de él forme un segundo vector, de tal forma
que el primer elemento pase a ser el segundo, el segundo pase a ser el tercero, el último pase a
ser el primero, y así sucesivamente. Represéntelo mediante un diagrama de flujo.
Nombre Descripción Tipo
x Variable ara el vector Entero
n Tamaño del vector Entero
vector1[ARREGLO_MAX] Nombre de vector uno ingresado Entero
Vector2[ARREGLO_MAX Nombre de vector dos resultante Entero
]
#include<stdio.h>
#define ARREGLO_MAX 100
int main() {
int n;
int vector1[ARREGLO_MAX];
int vector2[ARREGLO_MAX];
int x;
printf("Ingresa el tamaño del vector\n");
scanf("%i",&n);
for (x=1;x<=n;x+=1) {
printf("ingresar numero\n");
scanf("%i",&vector1[x]);
printf("-----------------------");
vector2[1] = vector1[n];
for (x=1;x<=n-1;x+=1) {
vector2[x+1] = vector1[x];
}
for (x=1;x<=n;x+=1) {
printf("\n%i\n",vector2[x]);
return 0;
5.9 Se tiene un arreglo de 15 filas y 12 columnas. Realice un algoritmo que permita leer el
arreglo y que calcule y presente los resultados siguientes: El menor elemento del arreglo; la
suma de los elementos de las cinco primeras filas del arreglo; y el total de elementos negativos
en las columnas de la quinta a la nueve.
Nombre Descripción Tipo
i,j Variable para el vector en fila y columna Entero
matriz[15][12] Matriz de 15 filas y 12 columnas Entero
numero_menor Numero menos dentro de la matriz Entero
suma Suma de la cinco primeras filas flotante
Contador Contador de números negativos de la columna Entero
5 hasta la 9
#include<stdio.h>
#include<stdlib.h>
int main() {
int i; int contador; int j;
int matriz[15][12];
int numero_menor; float suma;
for (i=1;i<=15;i+=1) {
printf("\n\n\n");
for (j=1;j<=12;j+=1) {
matriz[i][j] = (rand()%10);
printf("%i\n",matriz[i][j]);
numero_menor = 0;
for (i=1;i<=15;i+=1) {
for (j=1;j<=12;j+=1) {
if (i==0 && j==0) {
numero_menor = matriz[i][j];
} else {
if (matriz[i][j]<numero_menor) {
numero_menor = matriz[i][j];
suma = 0;
for (i=1;i<=5;i+=1) {
for (j=1;j<=12;j+=1) {
suma = suma+matriz[i][j];
contador = 0;
for (i=1;i<=15;i+=1) {
for (j=5;j<=9;j+=1) {
if (matriz[i][j]<0) {
contador = contador+1;
printf("\n");
printf("El menor elemento de la matriz es: %i\n",numero_menor);
printf("La suma de las 5 primeras filas es: %.2f\n",suma);
printf("Los numeros negativos de la columnas 5 a la 9 es: %i\n",contador);
return 0;
5.10 Realice un algoritmo que lea dos vectores de cien elementos y que calcule la suma de éstos
guardando su resultado en otro vector, el cual se debe presentar en forma impresa
Nombre Descripción Tipo
x Variable para el vector Entero
vector1[100] Nombre de vector uno Entero
Vector2[100] Nombre de vector dos Entero
Vector3[100] Nombre de vector tres resultante Entero
#include<stdio.h>
#include<stdlib.h>
int main () {
int vector1[100]; int vector2[100];int vector3[100];
int x;
for (x=1;x<=100;x+=1) {
vector1[x] = (rand()%100)+1;
vector2[x] = (rand()%100)+1;
vector3[x] = vector1[x]+vector2[x];
}
for (x=1;x<=100;x+=1) {
printf("vector1:%i vector2:%i vector3:%i\n",vector1[x],vector2[x],vector3[x]);
return 0;
5.11 Se tienen dos matrices cuadradas (de 12 filas y 12 columnas cada una). Realice un
algoritmo que lea los arreglos y que determine si la diagonal principal de la primera
es igual a la diagonal principal de la segunda. (Diagonal principal es donde los
subíndices I, J son iguales). Represente la solución mediante el diagrama de flujo y el
pseudocódigo.
Tabla de variables
Nombre de la variable Características Tipo
A[12][12] Matriz A Flotante
B[12][12] Matriz B Flotante
i Contador matriz A Entero
j Contador matriz B Entero
d Contador diagonal Entero
Diagrama de flujo
Código
#include <stdio.h>
int main(void)
{
int i, j, d=0;
float A[12][12], B[12][12];
printf("Ingrese los elementos de la matriz A \n");
for (i=0;i<12;i++){
for (j=0;j<12;j++)
{
printf("Elemento (%d, %d):" ,i,j);
scanf("%f", &A[i][j]);
}
}
printf("Ingrese los elementos de la matriz B \n");
for (i=0;i<12;i++)
for (j=0;j<12;j++)
{
printf("Elemento (%d, %d):" ,i,j);
scanf("%f", &B[i][j]);
}
printf("La Matriz A es: \n" );
for (i=0;i<12;i++){
for (j=0;j<12;j++)
{
printf("%0.3f \t", A[i][j]);
}
printf("\n");
}
printf("La Matriz B es: \n" );
for (i=0;i<12;i++){
for (j=0;j<12;j++)
{
printf("%0.3f \t", B[i][j]);
}
printf("\n");
}
for (i=0;i<12;i++){
for (j=0;j<12;j++)
{
if(i==j)
{
if(A[i][j]==B[i][j])
{
d=d+1;
}
}
}
}
if(d==12)
{
printf("Las Diagonales Principales son Iguales\n" );
}
else
{
printf("Las Diagonales Principales no son Iguales \n" );
}
return(0);
}
5.12 Se tiene una matriz de 12 filas por 19 columnas y se desea un algoritmo para
encontrar todos sus elementos negativos y para que les cambie ese valor negativo por
un cero. Realice un algoritmo para tal fin y represéntelo mediante diagrama N/S y
pseudocódigo.
Tabla de variables
Nombre de la variable Características Tipo
A[12][19] Matriz A Flotante
i Contador fila Entero
j Contador columna Entero
Diagrama de flujo
Código
#include <stdio.h>
int main(void)
{
int i, j;
float A[12][19];
printf("Ingrese los elementos de la matriz A \n");
for (i=0;i<12;i++){
for (j=0;j<19;j++)
{
printf("Elemento (%d, %d):" ,i,j);
scanf("%f", &A[i][j]);
}
}
printf("La Matriz A es: \n" );
for (i=0;i<12;i++){
for (j=0;j<19;j++)
{
printf("%0.3f \t", A[i][j]);
}
printf("\n");
}
printf("\n");
for (i=0;i<12;i++){
for (j=0;j<19;j++)
{
if(A[i][j]<0)
{
printf("Elemento negativo (%d,%d): %0.3f \n", i, j, A[i][j]);
A[i][j]=0;
}
}
}
printf("\n");
printf("La Matriz transformada: \n" );
for (i=0;i<12;i++){
for (j=0;j<19;j++)
{
printf("%0.3f \t", A[i][j]);
}
printf("\n");
}
return(0);
}
5.13 Se tiene en un arreglo cien elementos representando calificaciones de los
estudiantes de una escuela. Realice un algoritmo que lea el arreglo y calcule la
calificación promedio del grupo, además, que cuente los estudiantes que obtuvieron
calificaciones arriba del promedio del grupo. Represéntelo mediante diagrama de
flujo, diagrama N/S y pseudocódigo.
Tabla de variables
Nombre de la variable Características Tipo
A[100] Arreglo de 100 alumnos Flotante
i Contador filas Entero
j Contador columnas Entero
s Suma de todas las notas Flotante
Pr Promedio de notas Flotante
es Estudiantes con mayor nota Flotante
Diagrama de flujo
Código
#include <stdio.h>
int main(void)
{
int i, j;
float A[100],s=0, Pr, es=0;
printf("Ingrese las Notas de los Estudiantes \n");
for (i=0;i<100;i++){
printf("Elemento (%d):" ,i);
scanf("%f", &A[i]);
}
for (i=0;i<100;i++){
s=s+A[i];
}
Pr=s/100;
for (i=0;i<100;i++){
if(A[i]>Pr)
es=es+1;
}
printf("\n");
printf("El promedio de calificaciones es: %0.2f \n" ,Pr);
printf("Los estudiantes que obtuvieron mayor nota que el promedio son: %0.2f " ,es);
return(0);
}
5.14 Realice un algoritmo que lea un vector de cien elementos y que calcule su
magnitud y represéntelo mediante diagrama de flujo, diagrama N/S y pseudocódigo.
Tabla de variables
Nombre de la variable Características Tipo
A[100] Vector Flotante
i Contador filas Entero
j Contador columnas Entero
s Suma filas y columnas Flotante
mg Magnitud del vector Flotante
Diagrama de flujo
Código
#include <stdio.h>
int main(void)
{
int i, j;
float A[100],s=0, mg;
printf("Ingrese los elementos del vector\n");
for (i=0;i<100;i++){
printf("Elemento (%d):" ,i);
scanf("%f", &A[i]);
}
for (i=0;i<100;i++){
s=s+(A[i]*A[i]);
}
mg=sqrt(s);
printf("\n");
printf("La magnitud del vector es: %0.2f \n" ,mg);
return(0);
}
5.15 Realice un algoritmo que lea una matriz de cinco filas y seis columnas y que
cuente los elementos negativos que contiene, así como también cuántos elementos de la
diagonal principal son igual a cero. Represéntelo mediante diagrama de flujo,
diagrama N/S y pseudocódigo.
Tabla de variables
Nombre de la variable Características Tipo
A[5][6] Matriz Flotante
i Contador filas Entero
j Contador columnas Entero
n Contador ceros Entero
ne Contador números negativos Entero
Diagrama de flujo
Código
#include <stdio.h>
int main(void)
{
int i, j, n=0, ne=0;
float A[5][6];
printf("Ingrese los elementos de la matriz A \n");
for (i=0;i<5;i++){
for (j=0;j<6;j++)
{
printf("Elemento (%d, %d):" ,i,j);
scanf("%f", &A[i][j]);
}
}
printf("La Matriz A es: \n" );
for (i=0;i<5;i++){
for (j=0;j<6;j++)
{
printf("%0.3f \t", A[i][j]);
}
printf("\n");
}
printf("\n");
for (i=0;i<5;i++){
for (j=0;j<6;j++)
{
if(A[i][j]<0)
{
printf("Elemento negativo (%d,%d): %0.3f \n", i, j, A[i][j]);
ne=ne+1;
}
}
}
for (i=0;i<5;i++){
for (j=0;j<6;j++)
{
if(i==j)
{
if(A[i][j]==0)
{
printf("Elemento nulo en la Diagonal Principal (%d,%d): %0.3f \n", i, j, A[i][j]);
n=n+1;
}
}
}
}
printf("\n");
printf("La cantidad de elementos negativos es: %d \n" ,ne);
printf("La cantidad de elementos nulos en la diagonal principal es: %d \n" ,n);
return(0);
}
5.16 Realice un algoritmo que calcule el producto de dos vectores. Uno de ellos es de
una fila con diez elementos y el otro con una columna de diez elementos. Represéntelo
mediante diagrama, diagrama N/S y pseudocódigo.
Tabla de variables
Nombre de la variable Características Tipo
A[1][10] Matriz A Flotante
B[10][1] Matriz B Flotante
P[1][1] Producto de matrices Flotante
i Contador filas Entero
j Contador columnas Entero
k Contador producto Entero
Diagrama de flujo
Código
#include <stdio.h>
int main(void)
{
int i, j, k;
float A[1][10],B[10][1], P[1][1];
printf("Ingrese los elementos del Vector A \n");
for (i=0;i<1;i++){
for (j=0;j<10;j++)
{
printf("Elemento (%d, %d):" ,i,j);
scanf("%f", &A[i][j]);
}
}
printf("Ingrese los elementos del Vector B \n");
for (i=0;i<10;i++){
for (j=0;j<1;j++)
{
printf("Elemento (%d, %d):" ,i,j);
scanf("%f", &B[i][j]);
}
}
printf("El Vector A es: \n" );
for (i=0;i<1;i++){
for (j=0;j<10;j++)
{
printf("%0.3f \t", A[i][j]);
}
printf("\n");
}
printf("El Vector B es: \n" );
for (i=0;i<10;i++){
for (j=0;j<1;j++)
{
printf("%0.3f \t", B[i][j]);
}
printf("\n");
}
printf("El Producto entre Vectores es: \n" );
for (i=0;i<1;i++)
for (j=0;j<1;j++)
{
P[i][j]=0.0;
for (k=0;k<10;k++)
P[i][j]=A[i][k]*B[k][j]+P[i][j];
}
for (i=0;i<1;i++)
{
for (j=0;j<1;j++)
{
printf("%0.3f \t", P[i][j]);
}
printf("\n");
}
return(0);
5.17 Una compañía de transporte cuenta con cinco choferes, de los cuales se conoce:
nombre, horas trabajadas cada día de la semana (seis días) y sueldo por hora. Realice
un algoritmo que:
a) Calcule el total de horas trabajadas a la semana para cada trabajador.
b) Calcule el sueldo semanal para cada uno de ellos.
c) Calcule el total que pagará la empresa.
d) Indique el nombre del trabajador que labora más horas el día lunes.
e) Imprima un reporte con todos los datos anteriores.
5.18 Se tiene un arreglo de seis filas y ocho columnas y se sabe que se tiene un
elemento negativo. Realice un algoritmo que indique la posición que ese elemento
ocupa en el arreglo (en la fila y la columna en la que se encuentra ese elemento).
Represéntelo mediante diagrama, diagrama N/S y pseudocódigo.
Tabla de variables
Nombre de la variable Características Tipo
A[6][8] Matriz A Flotante
i Contador filas Entero
j Contador columnas Entero
Diagrama de flujo
Código
#include <stdio.h>
int main(void)
{
float A[6][8]={{2.3,4.5,3.3,1.2,6.5,3.2,0.4,9.6},{3.4,2.65,4.2,1.2,8.5,3.4,5.4,2.1},
{2,4.5,6.3,7.2,3,5,6.3,4.5},{5.3,3.4,1.2,3.2,5.6,2,5.1,1},{4,2.3,-6.3,7.2,5.6,4.5,2,4.32},
{5.3,3.4,1.2,3.2,3,4,1.5,2.34}};
int i, j;
printf("Imprimir el Arreglo en Forma de Matriz");
printf("\n");
printf("\n");
for (i=0;i<6;i++){
for (j=0;j<8;j++)
{
printf("%0.3f \t", A[i][j]);
}
printf("\n");
}
printf("\n");
for (i=0;i<6;i++){
for (j=0;j<8;j++)
{
if(A[i][j]<0)
{
printf("El elemento negativo se encuentra en la posicion (%d,%d): %0.3f
",i,j,A[i][j]);
}
}
}
return(0);
5.19 Realice un algoritmo que lea una matriz de C columnas y R renglones. A partir de ella
genere dos vectores que contengan la suma de sus renglones y la suma de sus columnas.
Represéntelo mediante diagrama, diagrama N/S y pseudocódigo.
Tabla de variables
Nombre de la variable Características Tipo
A[R][C] Matriz A Flotante
S[R] Matriz suma de filas Flotante
Su[C] Matriz suma de columnas Flotante
i Contador filas Entero
j Contador columnas Entero
R Reglones Entero
C Columnas Entero
Diagrama de flujo
Código
#include <stdio.h>
int main(void)
{
int i, j, R ,C;
printf("Ingrese el numero de Filas de la Matriz: ");
scanf("%d",&R);
printf("Ingrese el numero de Columnas de la Matriz: ");
scanf("%d",&C);
float A[R][C], S[R], Su[C] ;
printf("Ingrese los elementos de la matriz \n");
for (i=0;i<R;i++){
for (j=0;j<C;j++)
{
printf("Elemento (%d, %d):" ,i,j);
scanf("%f", &A[i][j]);
}
}
printf("La matriz ingresada es\n");
for (i=0;i<R;i++){
for (j=0;j<C;j++)
{
printf("%0.3f \t", A[i][j]);
}
printf("\n");
}
printf("Suma de elementos de las Filas y Columnas \n");
for (i=0;i<R;i++){
S[i]=0;
for (j=0;j<C;j++)
{
S[i]=S[i]+A[i][j];
Su[j]=Su[j]+A[i][j];
}
}
for (i=0;i<R;i++){
printf("Suma Fila (%d): %0.3f \n",i,S[i]);
}
for (j=0;j<C;j++){
printf("Suma Columna (%d): %0.3f \n",j,Su[j]);
}
return(0);
}
5.20 Realice un algoritmo que calcule el valor que se obtiene al multiplicar entre sí los
elementos de la diagonal principal de una matriz de 5 por 5 elementos, represéntelo
mediante diagrama, diagrama N/S y pseudocódigo.
Tabla de variables
Nombre de la variable Características Tipo
A[5][5] Matriz A Flotante
m Multiplicación Flotante
i Contador filas Entero
j Contador columnas Entero
Diagrama de flujo
Código
#include <stdio.h>
int main(void)
{
int i, j;
float A[5][5], m=1;
printf("Ingrese los elementos de la matriz \n");
for (i=0;i<5;i++){
for (j=0;j<5;j++)
{
printf("Elemento (%d, %d):" ,i,j);
scanf("%f", &A[i][j]);
}
}
printf("\n");
printf("La matriz ingresada es\n");
for (i=0;i<5;i++){
for (j=0;j<5;j++)
{
printf("%0.3f \t", A[i][j]);
}
printf("\n");
}
for (i=0;i<5;i++){
for (j=0;j<5;j++)
{
if(i==j)
m=m*A[i][j];
}
}
printf("\n");
printf("La multiplicacion de elementos de la diagonal principal es: %0.3f \n",m);
return(0);
5.21 Realice un algoritmo que a partir de la matriz del problema anterior encuentre cuántos
elementos tienen valor par y cuántos valores impares. Represéntelo mediante diagrama,
diagrama N/S y pseudocódigo.
Tabla de variables
Nombre de la variable Características Tipo
A[5][5] Matriz A Flotante
m Operación Entero
s Posición Entero
impar Contador impares Entero
par Contador pares Entero
i Contador filas Entero
j Contador columnas Entero
Diagrama de flujo
Código
#include <stdio.h>
int main(void)
{
int i, j, par=0, impar=0, m, s;
float A[5][5];
printf("Ingrese los elementos de la matriz \n");
for (i=0;i<5;i++){
for (j=0;j<5;j++)
{
printf("Elemento (%d, %d):" ,i,j);
scanf("%f", &A[i][j]);
}
}
printf("\n");
printf("La matriz ingresada es\n");
for (i=0;i<5;i++){
for (j=0;j<5;j++)
{
printf("%0.3f \t", A[i][j]);
}
printf("\n");
}
for (i=0;i<5;i++){
for (j=0;j<5;j++)
{
s=A[i][j];
m=s%2;
if(m==0)
{
par=par+1;
}
else
{
impar=impar+1;
}
}
}
printf("\n");
printf("Los elementos pares de la matriz son: %d \n",par);
printf("Los elementos impares de la matriz son: %d \n",impar);
return(0);