Académique Documents
Professionnel Documents
Culture Documents
Clase Anterior
Datos Agrupados del mismo tipo Arreglos Un arreglo esta definido: Nombre. Tipo. Tamao. Arreglos en C: Declaracin: tipo nombre[TAMAO] Manejo: nombre[ndice]
ndice [0, cantidad)
Programacin Prof. Gonzalo Mller Clase 19 GM - 2
Clase Anterior
Manejo de un arreglo:
Tamao Cantidad Tamao. Bucle. Contador < Cantidad
Asignacin = NO realiza la asignacin de todos los valores del arreglo. Arreglos como retorno: NO. Arreglos como parmetros: entrada y retorno. Constantes Simblicas.
Programacin Prof. Gonzalo Mller Clase 19 GM - 3
Arreglos Unidimensionales
Conocidos tambin como vectores.
Arreglos Bidimensionales
Conocidos tambin como matrices.
Arreglos Bidimensionales
Ejemplo:
// Matriz de 2 Filas y 9 Columnas float matriz[2][9];
Arreglos Bidimensionales
Manejo: ndices: Establecen la posicin de un elemento en la matriz.
Puede ser una variable, constante o expresin.
Debe ser tipo entero sin signo.
Su forma de uso:
ndices
identificador[fila] [columna]
Arreglos Bidimensionales
Ejemplo:
matriz[0][1]
matriz[1][5]
Programacin Prof. Gonzalo Mller Clase 19 GM - 8
Arreglos Bidimensionales
Ejemplo:
1 Fila matriz[0][]
Arreglos Bidimensionales
Tamao real de la Matriz: filas FILAS columnas COLUMNAS
Arreglos Bidimensionales
Rango de los ndices: fila [0, filas) columna [0, columnas)
Lmites Inferiores matriz[0][0] matriz[0][4]
matriz[2][0]
Arreglos Bidimensionales
Bucles: Se necesitaran al menos 2 bucles para manejar un arreglo bidimensional, los cuales estn anidados: 1 Bucle permitir desplazarse de una fila a otra.
Se utilizar un contador como ndice fila para establecer en que fila se encuentra.
Arreglos Bidimensionales
Antes del bucle el contador debe ser iniciado en 0.
fila = 0
Arreglos Bidimensionales
fila = 0 Mientras (fila < filas) fila = fila + 1 Siguiente Fila 1 Fila
Arreglos Bidimensionales
2 Bucle permitir desplazarse de una columna a otra.
Se utilizar un contador como ndice columna para establecer en que columna se encuentra.
Arreglos Bidimensionales
Antes del bucle el contador debe ser iniciado en 0.
columna = 0
Arreglos Bidimensionales
columna = 0 Mientras (columna < columnas) columna = columna + 1 Siguiente Columna 1 Columna
Arreglos Bidimensionales
Bucles clsico
fila = 0 Mientras (fila < filas) columna = 0 Mientras (columna < columnas) columna = columna + 1 fila = fila + 1
Programacin Prof. Gonzalo Mller Clase 19 GM - 18
Arreglos Bidimensionales
columna = 0 fila = 0 fila = 0 columna = columna + 1
Bucles clsico
Programacin Prof. Gonzalo Mller Clase 19 GM - 19
Arreglos Bidimensionales
Ejemplo:
unsigned short f, c; f = 0; while(f < filas) { c = 0; while(c < columnas) { printf("\nMatriz(%u, matriz[f][c]); c = c + 1; } f = f + 1; }
%u):
%f",
f,
c,
Arreglos Bidimensionales
Ejemplo:
unsigned short f, c; f = 0; while(f < filas) { c = 0; while(c < columnas) { printf("\nMatriz(%u, matriz[f][c]); c = c + 1; } f = f + 1; }
%u):
%f",
f,
c,
Arreglos Bidimensionales
Ejemplo:
unsigned short f, c; f = 0; while(f < filas) { c = 0; while(c < columnas) { printf("\nMatriz(%u, matriz[f][c]); c = c + 1; } f = f + 1; }
%u):
%f",
f,
c,
Arreglos Bidimensionales
Ejemplo:
unsigned short f, c; f = 0; while(f < filas) { c = 0; while(c < columnas) { printf("\nMatriz(%u, matriz[f][c]); c = c + 1; } f = f + 1; }
%u):
%f",
f,
c,
Arreglos Bidimensionales
Ejemplo: Construir un programa estructurado en C para leer y escribir una matriz de tamao dado por el usuario.
Fase 1: Diseo y Anlisis: DES DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa estructurado en C.
Programacin Prof. Gonzalo Mller Clase 19 GM - 24
Ejercicio
Construir un programa estructurado en C para: Leer una matriz y mostrar la misma y la transpuesta en la salida.
1,1 2,1 3,1 1,2 2,2 3,2 1,3 2,3 3,3
Fase 1: Diseo y Anlisis: DES DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa estructurado C.
Programacin Prof. Gonzalo Mller Clase 19 GM - 25
Arreglos Bidimensionales
Elementos indispensables en el manejo de una matriz: Tipo. Tamaos: FILAS y COLUMNAS.
Constantes Enteras sin Signo. Debe ser sobredimesionada.
Bucles.
2 bucles que permiten desplazarse a travs de la matriz.
void leeNotas(, double notas[20]) { scanf(%lf, ¬as[0]); scanf(%lf, ¬as[1]); Uso de arreglo como } parmetro de entrada double mediaNotas(, double notas[20]) { double media = 0; media = notas[0] + notas[1]; }
Programacin Prof. Gonzalo Mller Clase 19 GM - 28
Ejemplo:
void mediaNotas(, double notas[20]); main() { double notas[20]; Argumento Variable leeNotas(cantidad, notas); Argumento Variable mediaNotas(cantidad, notas); }
Programacin Prof. Gonzalo Mller Clase 19 GM - 29
nombre(unsigned tipo &cantidadFilas, unsigned tipo &cantidadColumnas, tipo parmetro1[FILAS] [COLUMNAS], ) parmetro
de retorno
Fase 1: Diseo y Anlisis: DES y DTD DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 19 GM - 33
Ejercicio
Construir un programa modular con acoplamiento de datos estndar en C++ para: a) Transponer una matriz. b) Determinar si dos matrices son iguales o no. c) Realizar el producto de dos matrices. d) Determinar si una matriz es la identidad. Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 19 GM - 34
Ejercicio
Construir un programa modular con acoplamiento de datos estndar en C++ para: e) Determinar si una matriz es simtrica. f) Determinar la norma Frobenius de una matriz. g) Intercambiar dos columnas de la matriz. Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 19 GM - 35
Ejercicio
Construir un programa modular con acoplamiento de datos estndar en C++ para: h) Desplazar una malla de N vrtices en una direccin dada. Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Resumen
Arreglo unidimensional: vectores. Arreglo bidimensionales: matrices. Declaracin: tipo identificador[FILAS] [COLUMNAS] Manejo:
identificador[fila] [columna] 1 Bucle permitir desplazarse de una fila a otra. 2 Bucle permitir desplazarse de una columna a otra.
Lectura Extra
Arreglo Multidimensionales
Conocidos tambin como Arreglos N-dimensionales
Arreglos Multidimensionales
Declaracin: tipo nombre[TAMAO1] [TAMAO2] [TAMAON] Ejemplo:
// Arreglo de 4 dimensiones // de 2 x 9 x 5 x 3 double arreglo[2][9][5][3];
Arreglos Multidimensionales
Manejo: ndices: Se utilizaran tantos dimensiones tengan el arreglo. ndices como
Arreglos Multidimensionales
Tamao real del Arreglo: cantidad1 TAMAO1 cantidad2 TAMAO2 cantidadN TAMAON
Arreglos Multidimensionales
Rango de los ndices: ndice1 [0, cantidad1 1] ndice2 [0, cantidad2 1] ndiceN [0, cantidadN 1]
Arreglos Multidimensionales
Bucles: Se utilizaran tantos bucles anidados como dimensiones tengan el arreglo.
Se utilizaran tantos contadores para ndice como dimensiones tengan el arreglo.
Ejemplo:
double arreglo[2][9][5][3]; 4 Bucles anidados. unsigned short e1, e2, ; 4 Contadores. while(e1 < cantidad1) 4 Cantidades. while(e2 < cantidad2) while(e3 < cantidad3) while(e4 < cantidad4)
Programacin Prof. Gonzalo Mller Clase 19 GM - 43
nombre(unsigned tipo &cantidad1, unsigned tipo &cantidad2, , tipo parmetro1[TAMAO1] parmetro [TAMAO2], )
de retorno
Arreglos Multidimensionales
Ejemplo: Disear y construir un programa modular en C++ con acoplamiento de datos que sume N matrices.
Resumen
Arreglos Multidimensionales. Arreglo unidimensional: vectores.
Declaracin:
tipo identificador[TAMAO]
Manejo: identificador[ndice]
1 Bucle permitir desplazarse a lo largo del vector. ndice [0, cantidad)
Resumen
Arreglo bidimensionales: matrices.
Declaracin:
Resumen
Arreglo N-dimensionales.
Declaracin: tipo nombre[TAMAO1] [TAMAO2] [TAMAON] Manejo: identificador[ndice1] [ndice2] [ndiceN]
Tantos bucles anidados como dimensiones tengan el arreglo. Tantos contadores para ndice como dimensiones tengan el arreglo.