MATRICESfcc
MATRICESfcc
MATRICESfcc
ESTRUCTURADA EN
PSEUDÓCODIGO
Profr. M.C. Miguel Rodríguez Hernández
MATRICES
ARREGLOS BIDIMENSIONALES
Matrices 1
INTRODUCCIÓN
Supóngase que se tiene la siguientes
calificaciones de los alumnos de
Pseudocodigo de la sec. 107 arreglados de
la siguiente manera:
Alumno Parcial 1 Parcial 2 Parcial 3
Luis S B E
Carmen NA S E
Miguel E E E
Matrices 2
DEFICIÓN
MATRIZ o arreglo bidimensional es un arreglo de
arreglos, que representan una tabla, tiene filas y
columnas. Los datos de una matriz son todos del
mismo tipo y son accedidos mediante dos índices
o posiciones: uno para filas y otro para columnas.
Por ejemplo:
1 2 3
1 S (1,1) B (1,2) E (1,3)
Matrices 3
Una Matriz desde el punto de
vista matemático
Columnas
Dimensión de la matriz
Matrices 4
Vista conceptual de una matriz
Columna 0 Columna1 Columna2 Columna3
Fila 0
Fila 1
Fila 2
Matrices 5
Acceso a los elementos de una
Matriz
Acceder a los elementos de una matriz significa,
ser capaces de almacenar valores y recuperarlos de
cada elemento de la matriz.
Cada elemento de la matriz tiene asignado una
posición denotada por su fila y su columna. Por
ejemplo:
M[ 0 ][ 0 ] Se refiere al primer elemento de la
Matriz M que está localizado en la fila 0 y columna 0
Matrices 6
Acceso a los elementos de una
Matriz. Continuación
Sea la matriz M[3][4] M[2][3]
M[0][0] Columna 0 Columna1 Columna2 Columna3
Fila 0
Fila 1
Fila 2
Matrices 8
Dimensionar y leer una matriz
Cont.
El recorrido de la matriz M para su lectura se hace
de la siguiente manera:
0 1 2 3 4 5
int Tabla [ 3 ] [ 5 ];
No. de columnas
No. de filas
Nombre de la matriz
Tipo de la matriz
Matrices 12
Inicializar una matriz
Además de leer, escribir y procesar matrices,
también podemos inicializarlas con valores
para evitar leerlos desde el teclado u otro
dispositivo de E/S.
La inicialización se hace como sigue:
int tabla[2][3]={{10,20,30},{40,50,60}};
Columan0 columna1 columna2
Fila 0 10 20 30
Fila 1 40 50 60
Matrices 13
Otro ejemplo de matrices en C
Escriba un algoritmo que lea una matriz de 10x10 y sume los
Elementos de la diagonal principal
1. Inicio
2. Var entero f,c,suma=0 4. para f= 0 hasta 9 hacer
para c= 0 hasta 9 hacer
entero M[10][10] suma= suma + M[f][f]
fin_para_c
3. para f= 0 hasta 9 hacer fin_para_f
para c= 0 hasta 9 hacer
Leer M[f][c] 5. Escribir “ La suma de la
fin_para_c diagonal es”,suma
fin_para_f 6. Fin
Matrices 14
Codificación del ejemplo anterior
#include<stdio.h> For(f=0;f<FIL;f++){ /*Se realiza la suma*/
#include<conio.h> For(c=0;c<COL;c++){
#define FIL 10 suma=suma+M[f][f];
#define COL 10 }
}
Main() { For(f=0;f<FIL;f++){ /*Se escribe M*/
int f,c, M[FIL][COL]; For(c=0;c<COL;c++){
int suma=0; printf(“%d ”,M[f][c]);
Clrscr(); }
Printf(“Dame los valores”); printf(“\n”);
For(f=0;f<FIL;f++){ }
For(c=0;c<COL;c++){ Printf(“La suma de la
scanf(“%d”,&M[f][c]); diagonal es:%d”,suma);
} }
}
Matrices 15
Ejercicios
1.-Considere la siguiente declaración: char
*mensajes[5]={“Excelente”,”Bien”,”Ok”,”A casa”}; ¿Es correcto? Si, No ¿Porqué?
¿Cuál es la salida de la siguiente sentencia?
printf(“%s”,mensajes[0]);
2.-¿Cuál es la salida del siguiente segmento de programa?
char junk[4][4];
int i,k;
for(i=0;i<16;i++)
for(k=0;k<4;k++)
if (i % 2 ==0)
junk[i][k] = ‘ A ‘;
else
junk[i][k] = ‘B ‘;
Matrices 16
Ejercicios. Continuación
3. Escriba un algoritmo que lea una matriz de flotantes de
dimensión 3 x 5 y a continuación debería escribir la matriz
recién leída.
4. Elabore un algoritmo para leer una matriz de
7x7.Calcular la suma de cada renglón y almacenarla en un
vector, la suma de cada columna y almacenarla en otro
vector.
5. Algoritmo para leer una matriz de 20 x 20, sumar las
columnas e imprimir qué columna tuvo la máxima suma y
la suma de esa columna.
6. Algoritmo que asigne datos a una matriz de 10 x 10 con
1’s en la diagonal principal y 0 en las demás posiciones.
Matrices 17
7. Algoritmo para leer una matriz de 6x8 y que almacenen
toda la matriz en un vector. Imprima el vector resultante.
8. Algoritmo para leer una matriz de 5x6 y que imprima
cuántos elementos almacenados en la matriz son 0 ,
cuántos son positivos y cuántos son negativos.
9. Los resultados de las últimas elecciones a alcalde en el
pueblo de Cacalotepec han sido los siguientes:
Distrito Condado A Condado B Condado C Condado D
1 194 48 206 45
2 180 20 320 16
3 221 90 140 20
4 432 50 821 14
5 820 61Matrices 946 18 18
Ejercicio.
9. Continuación
a) Imprimir la tabla anterior con cabeceras.
b) Calcule e imprima el número total de votos recibidos
por cada candidato y el porcentaje total de votos emitidos.
Así mismo visualizar el candidato más votado.
c) Si algún candidato recibe más del 50% de los votos, el
programa imprimirá un mensaje declarándolo ganador.
d) Si ningún candidato recibe más del 50% de los votos, el
programa deberá imprimir el nombre de los dos candidatos
más votados, que serán los que pasen a la segunda ronda
de las elecciones.
Matrices 19
Ejercicios
10. Supóngase que los cuadrados de un juego del gato, se
enumeran como en la figura adjunta y se leen los números
de 3 cuadros N1,N2,N3. Sean N1<N2<N3. Si los tres
cuadros así designados están en una línea, asígnele a la
variable LINEA = 1, de otra manera asígnele a LINEA=0.
¿Habría una manera más sencilla de enumerar los cuadros
a fin de simplificar la prueba?
1 2 3
4 5 6
7 8 9
Matrices 20
Mas Ejercicios 11
Matrices 21
Ejercicios 12
Matrices 22
Ejercicio 13
Escribir un programa que pida un número n
e imprima por pantalla su tabla de sumar.
Por ejemplo si el número fuera el 3 la tabla
debería ser:
Matrices 23
Ejercicio 14
Matrices 24
Ejercicio 15
Matrices 25
Ejercicio 16
Matrices 26
Ejercicio 17
Matrices 27
Cont.
Matrices 28