SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Junio 2013
*
*Este material ha sido desarrollado para
alumnos de la Licenciatura de Ingeniería en
Sistemas Energéticos y Sustentables que cursan
la asignatura de Programación Básica.
*Es importante resaltar que para la aplicación
de arreglos bidimensionales (matrices o
tablas), los alumnos deben tener claramente
comprendido el trabajo de las estructuras
repetitivas.
*
* Este trabajo ha sido desarrollado en su
totalidad con el uso de la estructura para
(pseudocódigo) o for (código en C), por ello
antes de iniciar con los ejercicios, se hace un
repaso de la misma.
*Se concluye con el análisis y desarrollo de un
cuadrado mágico utilizando funciones en
pseudocódigo y código en C.
*
*Objetivo general
*Objetivos particulares
*Introducción
*Definición
*Declaración de matrices
*Lectura, impresión y modificación de elementos de la
matriz
*Ejemplo “El cuadrado mágico”
*Pseudocódigo
*Conclusiones
*Bibliografía
*
*Utilizar arreglos bidimensionales para la
solución de problemas.
*
*Comprender el concepto de arreglo
bidimensional (matrices o tablas)
*Declarar e inicializar arreglos bidimensionales
*Utilizar ciclos anidados para leer, imprimir y
modificar arreglos bidimensionales
*
*Los tipos de datos
simples sólo utilizan una
casilla de memoria y
pueden ser
principalmente números
enteros, reales o
caracteres.
*Los datos de tipo
estructurado utilizan un
nombre para referirse a un
grupo de casillas de
memoria, (almacenan
varios componentes). Los
datos estructurados más
conocidos son: los arreglos,
las cadenas de caracteres y
los registros.
Es importante recordar que los tipos de datos se
clasifican en simples y estructurados.
*
*“Un arreglo bidimensional es un conjunto de n
elementos del mismo tipo almacenados en
memoria contigua en una matriz o tabla. Para
hacer referencia a cada uno de sus elementos
es necesario utilizar dos índices, el primero
indica la fila y el segundo la columna” (Corona
N., 2011).
*Un arreglo bidimensional
tendrá almacenados m x n
elementos (donde m es el
número de filas o
renglones y n el número
de columnas).
*
*
*Consiste en reservar el espacio que ocupará el
arreglo en la memoria. Una vez que el arreglo
ha sido declarado, sus valores pueden ser
almacenados mediante asignaciones o cómo
ocurre frecuentemente en la práctica
utilizando ciclos anidados. (Cairó, 2006)
*En la figura 2 se muestra el pseudocódigo y
código en C con la información requerida para
la declaración una matriz.
*
tipo_dato ident_mat [N°filas][N°col]
donde:
tipo_dato: es el tipo de dato de todo el
arreglo
ident_mat : es el nombre del arreglo
N°filas: es el total de filas
N°col: es el total de columnas
tipo_dato ident_mat [N°filas][N°col];
int mat_1 [5][7];
Pseudocódigo Código en C
Figura 2. Pseudocódigo y código en C con los pasos requeridos para declarar un arreglo bidimensional.
*
*Algunos ejemplos de declaración de arreglos serían:
int A[5][5]; /* Declaración de un arreglo
bidimensional llamado A, de tipo
entero con 5 filas y 5 columnas, el
total de elementos almacenados
será de 25.
float mat1[4][5]; /* Declaración de un arreglo
bidimensional llamado mat1, de tipo
real con 4 filas y 5 columnas, el
total de elementos almacenados
será de 20.
*Como se puede observar en
la figura, los datos
almacenados son reales, se
tienen 4 filas x 5 columnas
por lo que el total de
elementos almacenados es
20.
*
*
*La lectura, impresión y modificación de
valores, son operaciones elementales que
pueden realizarse con una matriz.
*En la figura 4 se muestra un segmento de
programa que permite leer o almacenar datos
de tipo entero en un arreglo bidimensional
llamado mat con 3 filas y 4 columnas.
* Lectura
La computadora necesita de dos ciclos anidados (para
ubicar la fila y la columna) así como la instrucción
leer (scanf) para almacenar los valores en cada celda
de la tabla o matriz.
Figura 4.
Pseudocódigo y Código en C para leer datos de
tipo entero en un arreglo bidimensional
llamado mat, con 3 filas y 4 columnas.
Pseudocódigo Código en C
*
*Es la operación que permite mostrar los valores
almacenados en una matriz.
*En la figura 5 se tiene un segmento de programa
que imprime los datos de tipo entero almacenados
en la matriz llamada mat de 3 filas y 4 columnas
*
Pseudocódigo Código en C
*Modificación de un
elemento de la matriz
*Los elementos de un arreglo bidimensional
pueden ser modificados en cualquier momento,
para realizar esta acción sólo es necesario
especificar el nombre de la matriz, la posición
tanto de la fila como de la columna y el nuevo
valor.
* En esta figura se presenta un ejemplo donde a
todos los elementos del tercer renglón del
arreglo A, se les asigna el valor de 10, el
subíndice que corresponde a la tercera fila es el
2, razón por la cual sólo variará el subíndice de
la columna.
*
entero A[4][4]
para (j 0, j< 4, j j+1)
A[2][j] 10
int A[4][4]
for (j=0; j<4; j++)
A[2][j]) = 10;
Pseudocódigo Código en C
*
*Realice un programa para generar un cuadrado
mágico de orden impar n, comprendido entre 3
y 11. Un cuadrado mágico se compone de los
números enteros comprendidos entre 1 y n. La
suma de los números que figuran en cada fila,
columna y diagonal son iguales.
8 1 6
3 5 7
4 9 2
Por ejemplo, para n=3
Suma del
renglón cero
igual a15
Suma del
renglón uno
igual a15
Suma del
renglón dos
igual a15
Suma de la
columna
cero igual
a15
Suma de la
columna uno
igual a15
Suma de la
columna dos
igual a15
Suma de la
diagonal
igual a15
Suma de la
diagonal
igual a15
*
Un método de generación considera lo siguiente:
1°. Situar el número 1 en el centro de la primera fila.
2°. El siguiente número se sitúa en la casilla por
encima y a la derecha y así sucesivamente.
3°. El cuadrado es cíclico, es decir, la línea encima de
la primera es de hecho la última y la columna a la
derecha de la última es la primera.
4°. En caso de que el número generado caiga en una
casilla ocupada, se elige la casilla que se
encuentre debajo del número que acaba de ser
situado.
*
Primera
fila
Columna
central
1
arriba
derecha
2
3
arriba
derecha
4
arriba
derecha ocupado
abajo
5
6
arriba
derecha
7
ocupado
abajo
8
9
*Un cuadrado mágico para n=3 se genera de la siguiente
forma:
Para resolver el problema del cuadrado mágico, el pseudocódigo ha sido
desarrollado empleando 4 funciones que son explicadas y mostradas a
continuación:
1. Función llenarConCeros: Tiene como propósito inicializar la matriz con
ceros para limpiarla de basura.
2. Función resuelveCuadradoMágico: Se encarga de analizar la matriz para
ir acomodando los números en la posición correcta.
3. Función imprimeCuadradoMágico: Una vez que se ha generado el
cuadrado mágico, esta función se encarga de imprimir los resultados
4. Función Principal: Es la función encargada de solicitar y validar los datos
e invocar a las funciones.
*
Función llenarConCeros
DEFINIR TAM_MAX 11
llenarConCeros(Entero mat[TAM_MAX][TAM_MAX], Entero tam)
Inicio
Entero i, j
Para (i  0; i < tam; ii + 1)
Para (j  0; j < tam; j  j + 1)
mat[i][j]  0
Fin Para
Fin Para
Regresa
*
Función resuelveCuadradoMágico
resuelveCuadradoMágico (Entero mat[TAM_MAX][TAM_MAX], Entero tam)
Inicio
Entero últimoNúmero  tam * tam
Entero filaActual  0
Entero columnaActual  tam / 2
Entero siguienteFila
Entero siguienteColumna
Entero númeroActual
mat[filaActual][columnaActual]  1
Para (númeroActual  2; númeroActual <= últimoNúmero; númeroActual  númeroActual + 1 )
siguienteFila  (filaActual + tam - 1) % tam
siguienteColumna  (columnaActual + 1) % tam
Si (mat[siguienteFila][siguienteColumna]!=0)
filaActual  filaActual + 1
Otro caso
filaActual  siguienteFila
columnaActual  siguienteColumna
Fin Si
mat[filaActual][columnaActual]  númeroActual
Fin Para
Regresa
*
Función imprimeCuadradoMágico
imprimeCuadradoMágico (Entero mat[TAM_MAX][TAM_MAX], Entero tam)
Inicio
Entero i, j
Para (i  0; i < tam; i  i + 1)
Para (j  0; j < tam; j  j + 1)
Escribe (mat[i][j])
FinPara
Escribe ("n")
Fin Para
Regresa
*
Función Principal
Principal
Inicio
Entero cuadradoMágico[TAM_MAX][TAM_MAX]
Entero orden
Escribe ("Programa que calcula cuadrados mágicos de orden 3 a 11")
Escribe ("nIndique el orden del cuadrado mágico: ")
Leer (orden)
Si (orden < 3)
Escribe ("nEl orden mínimo es 3n")
Fin Si
Si (orden % 2 != 1 )
Escribe ("nEl orden debe ser imparn")
Fin Si
Si (orden > TAM_MAX)
Escribe ("nEl orden máximo es 11n")
Fin Si
Llamar llenarConCeros(cuadradoMágico, orden)
Llamar resolverCuadradoMágico(cuadradoMágico, orden)
Llamar CuadradoMágico(cuadradoMágico, orden)
Termina
*
*
* Realice una prueba de escritorio del pseudocódigo anterior
considerando un valor de n=3 en el formato anexo:
Itera
ción
TA
M_
MA
X
tam ultimoN
umero
filaAct
ual
columna
Actual
siguiente
Fila
siguienteCo
lumna
numeroA
ctual
mat[siguienteFila][sigui
enteColumna]
mat[filaActual][co
lumnaActual]
11
*
*Un arreglo bidimensional es un conjunto de n
elementos del mismo tipo almacenados en
memoria contigua.
*A estos arreglos también se les conoce como
matrices o tablas.
*
*La declaración de la matriz consiste en
reservar el espacio que ocupará en la memoria.
Se debe especificar en el siguiente orden:
El tipo de datos que serán empleados
(entero, real, carácter, etc), el nombre del
arreglo y entre corchetes primero el
número de filas y después el de columnas.
*
*Para hacer referencia a cada uno de sus
elementos es necesario utilizar dos índices, el
primero indica la fila y el segundo la columna,
por esta razón, es necesario utilizar ciclos
anidados.
*El ciclo externo controla las filas y el interno
las columnas.
*Las operaciones elementales que se pueden
realizar son: lectura, impresión y modificación
de elementos.
*
1. Cairó, O. (2006). Fundamentos de Programación
Piensa en C. México, Pearson.
2. Corona N., M. A. (2011). Diseño de Algoritmos y su
Codificación en Lenguaje C. México, McGraw-Hill.
3. Joyanes, Luis. Zahonero, I. (2010), Programación en
C, C++, Java y UML, McGrawHill, México.
4. Joyanes, Luis. (2008), Fundamentos de
Programación, 4a. Edición, McGrawHill, México.

Weitere ähnliche Inhalte

Was ist angesagt?

Manual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datosManual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datosJuan Timoteo Cori
 
Segunda forma normal
Segunda forma normalSegunda forma normal
Segunda forma normalITCV
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos Kaneki04
 
Arreglos vectores pseint
Arreglos vectores pseintArreglos vectores pseint
Arreglos vectores pseintHEIVER CUESTA
 
Unidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datosUnidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datosUrban Skate House
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..NANO-06
 
Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansDaniel Gómez
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificaciónAlex Uhu Colli
 
Tema 1-2 identificadores - variable y constante
Tema 1-2 identificadores - variable y constanteTema 1-2 identificadores - variable y constante
Tema 1-2 identificadores - variable y constanteRufi Flores
 
conceptos de Punteros y Nodos
conceptos de Punteros y Nodosconceptos de Punteros y Nodos
conceptos de Punteros y NodosBoris Salleg
 

Was ist angesagt? (20)

Manual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datosManual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datos
 
Segunda forma normal
Segunda forma normalSegunda forma normal
Segunda forma normal
 
Estructuras Repetitivas con PSeInt (Parte 2)
Estructuras Repetitivas con PSeInt (Parte 2)Estructuras Repetitivas con PSeInt (Parte 2)
Estructuras Repetitivas con PSeInt (Parte 2)
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos
 
Arreglos vectores pseint
Arreglos vectores pseintArreglos vectores pseint
Arreglos vectores pseint
 
16 Curso de POO en java - arreglos unidimensionales
16 Curso de POO en java - arreglos unidimensionales16 Curso de POO en java - arreglos unidimensionales
16 Curso de POO en java - arreglos unidimensionales
 
Unidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datosUnidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datos
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Pilas En C++
Pilas En C++Pilas En C++
Pilas En C++
 
Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeans
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificación
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
ESTRUCTURAS ANIDADAS
ESTRUCTURAS ANIDADASESTRUCTURAS ANIDADAS
ESTRUCTURAS ANIDADAS
 
arreglos y matrices
arreglos  y matricesarreglos  y matrices
arreglos y matrices
 
17 arreglos bidimensionales java
17 arreglos bidimensionales java17 arreglos bidimensionales java
17 arreglos bidimensionales java
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
Tema 1-2 identificadores - variable y constante
Tema 1-2 identificadores - variable y constanteTema 1-2 identificadores - variable y constante
Tema 1-2 identificadores - variable y constante
 
conceptos de Punteros y Nodos
conceptos de Punteros y Nodosconceptos de Punteros y Nodos
conceptos de Punteros y Nodos
 

Ähnlich wie Aplicación de arreglos bidimensionales

Ähnlich wie Aplicación de arreglos bidimensionales (20)

Matrices
MatricesMatrices
Matrices
 
Arreglos bidimensionales o matrices
Arreglos bidimensionales o matricesArreglos bidimensionales o matrices
Arreglos bidimensionales o matrices
 
Arreglos y matrices
Arreglos y matricesArreglos y matrices
Arreglos y matrices
 
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
 
Curso matlab
Curso matlabCurso matlab
Curso matlab
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
 
MATLAB 2010
MATLAB 2010MATLAB 2010
MATLAB 2010
 
Pres arreglosmat animacion
Pres arreglosmat animacionPres arreglosmat animacion
Pres arreglosmat animacion
 
Luis Gamboa
Luis  GamboaLuis  Gamboa
Luis Gamboa
 
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructurasIng. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
 
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
Fundamentos de Programación - Unidad IV: Arreglos (Vectores)
 
Matlab
MatlabMatlab
Matlab
 
Matlab
MatlabMatlab
Matlab
 
Matlab
MatlabMatlab
Matlab
 
Matlab
MatlabMatlab
Matlab
 
Matlab
MatlabMatlab
Matlab
 
Modulo3
Modulo3Modulo3
Modulo3
 
Programacion
ProgramacionProgramacion
Programacion
 
Programacion
ProgramacionProgramacion
Programacion
 

Mehr von marigelcontreras

Estructuras de control selectivas
Estructuras de control selectivasEstructuras de control selectivas
Estructuras de control selectivasmarigelcontreras
 
Estructuras de control selectivas
Estructuras de control selectivasEstructuras de control selectivas
Estructuras de control selectivasmarigelcontreras
 
Apuntes programacion basica
Apuntes programacion basicaApuntes programacion basica
Apuntes programacion basicamarigelcontreras
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosmarigelcontreras
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosmarigelcontreras
 

Mehr von marigelcontreras (7)

Estructuras de control selectivas
Estructuras de control selectivasEstructuras de control selectivas
Estructuras de control selectivas
 
Estructuras de control selectivas
Estructuras de control selectivasEstructuras de control selectivas
Estructuras de control selectivas
 
Apuntes programacion basica
Apuntes programacion basicaApuntes programacion basica
Apuntes programacion basica
 
Estructuras iterativas
Estructuras iterativasEstructuras iterativas
Estructuras iterativas
 
Estructuras iterativas
Estructuras iterativasEstructuras iterativas
Estructuras iterativas
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestos
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestos
 

Aplicación de arreglos bidimensionales

  • 2. * *Este material ha sido desarrollado para alumnos de la Licenciatura de Ingeniería en Sistemas Energéticos y Sustentables que cursan la asignatura de Programación Básica. *Es importante resaltar que para la aplicación de arreglos bidimensionales (matrices o tablas), los alumnos deben tener claramente comprendido el trabajo de las estructuras repetitivas.
  • 3. * * Este trabajo ha sido desarrollado en su totalidad con el uso de la estructura para (pseudocódigo) o for (código en C), por ello antes de iniciar con los ejercicios, se hace un repaso de la misma. *Se concluye con el análisis y desarrollo de un cuadrado mágico utilizando funciones en pseudocódigo y código en C.
  • 4. * *Objetivo general *Objetivos particulares *Introducción *Definición *Declaración de matrices *Lectura, impresión y modificación de elementos de la matriz *Ejemplo “El cuadrado mágico” *Pseudocódigo *Conclusiones *Bibliografía
  • 5. * *Utilizar arreglos bidimensionales para la solución de problemas.
  • 6. * *Comprender el concepto de arreglo bidimensional (matrices o tablas) *Declarar e inicializar arreglos bidimensionales *Utilizar ciclos anidados para leer, imprimir y modificar arreglos bidimensionales
  • 7. * *Los tipos de datos simples sólo utilizan una casilla de memoria y pueden ser principalmente números enteros, reales o caracteres. *Los datos de tipo estructurado utilizan un nombre para referirse a un grupo de casillas de memoria, (almacenan varios componentes). Los datos estructurados más conocidos son: los arreglos, las cadenas de caracteres y los registros. Es importante recordar que los tipos de datos se clasifican en simples y estructurados.
  • 8. * *“Un arreglo bidimensional es un conjunto de n elementos del mismo tipo almacenados en memoria contigua en una matriz o tabla. Para hacer referencia a cada uno de sus elementos es necesario utilizar dos índices, el primero indica la fila y el segundo la columna” (Corona N., 2011).
  • 9. *Un arreglo bidimensional tendrá almacenados m x n elementos (donde m es el número de filas o renglones y n el número de columnas). *
  • 10. * *Consiste en reservar el espacio que ocupará el arreglo en la memoria. Una vez que el arreglo ha sido declarado, sus valores pueden ser almacenados mediante asignaciones o cómo ocurre frecuentemente en la práctica utilizando ciclos anidados. (Cairó, 2006) *En la figura 2 se muestra el pseudocódigo y código en C con la información requerida para la declaración una matriz.
  • 11. * tipo_dato ident_mat [N°filas][N°col] donde: tipo_dato: es el tipo de dato de todo el arreglo ident_mat : es el nombre del arreglo N°filas: es el total de filas N°col: es el total de columnas tipo_dato ident_mat [N°filas][N°col]; int mat_1 [5][7]; Pseudocódigo Código en C Figura 2. Pseudocódigo y código en C con los pasos requeridos para declarar un arreglo bidimensional.
  • 12. * *Algunos ejemplos de declaración de arreglos serían: int A[5][5]; /* Declaración de un arreglo bidimensional llamado A, de tipo entero con 5 filas y 5 columnas, el total de elementos almacenados será de 25. float mat1[4][5]; /* Declaración de un arreglo bidimensional llamado mat1, de tipo real con 4 filas y 5 columnas, el total de elementos almacenados será de 20.
  • 13. *Como se puede observar en la figura, los datos almacenados son reales, se tienen 4 filas x 5 columnas por lo que el total de elementos almacenados es 20. *
  • 14. * *La lectura, impresión y modificación de valores, son operaciones elementales que pueden realizarse con una matriz. *En la figura 4 se muestra un segmento de programa que permite leer o almacenar datos de tipo entero en un arreglo bidimensional llamado mat con 3 filas y 4 columnas.
  • 15. * Lectura La computadora necesita de dos ciclos anidados (para ubicar la fila y la columna) así como la instrucción leer (scanf) para almacenar los valores en cada celda de la tabla o matriz. Figura 4. Pseudocódigo y Código en C para leer datos de tipo entero en un arreglo bidimensional llamado mat, con 3 filas y 4 columnas. Pseudocódigo Código en C
  • 16. * *Es la operación que permite mostrar los valores almacenados en una matriz. *En la figura 5 se tiene un segmento de programa que imprime los datos de tipo entero almacenados en la matriz llamada mat de 3 filas y 4 columnas
  • 18. *Modificación de un elemento de la matriz *Los elementos de un arreglo bidimensional pueden ser modificados en cualquier momento, para realizar esta acción sólo es necesario especificar el nombre de la matriz, la posición tanto de la fila como de la columna y el nuevo valor.
  • 19. * En esta figura se presenta un ejemplo donde a todos los elementos del tercer renglón del arreglo A, se les asigna el valor de 10, el subíndice que corresponde a la tercera fila es el 2, razón por la cual sólo variará el subíndice de la columna. * entero A[4][4] para (j 0, j< 4, j j+1) A[2][j] 10 int A[4][4] for (j=0; j<4; j++) A[2][j]) = 10; Pseudocódigo Código en C
  • 20. * *Realice un programa para generar un cuadrado mágico de orden impar n, comprendido entre 3 y 11. Un cuadrado mágico se compone de los números enteros comprendidos entre 1 y n. La suma de los números que figuran en cada fila, columna y diagonal son iguales.
  • 21. 8 1 6 3 5 7 4 9 2 Por ejemplo, para n=3 Suma del renglón cero igual a15 Suma del renglón uno igual a15 Suma del renglón dos igual a15 Suma de la columna cero igual a15 Suma de la columna uno igual a15 Suma de la columna dos igual a15 Suma de la diagonal igual a15 Suma de la diagonal igual a15
  • 22. * Un método de generación considera lo siguiente: 1°. Situar el número 1 en el centro de la primera fila. 2°. El siguiente número se sitúa en la casilla por encima y a la derecha y así sucesivamente. 3°. El cuadrado es cíclico, es decir, la línea encima de la primera es de hecho la última y la columna a la derecha de la última es la primera. 4°. En caso de que el número generado caiga en una casilla ocupada, se elige la casilla que se encuentre debajo del número que acaba de ser situado.
  • 24. Para resolver el problema del cuadrado mágico, el pseudocódigo ha sido desarrollado empleando 4 funciones que son explicadas y mostradas a continuación: 1. Función llenarConCeros: Tiene como propósito inicializar la matriz con ceros para limpiarla de basura. 2. Función resuelveCuadradoMágico: Se encarga de analizar la matriz para ir acomodando los números en la posición correcta. 3. Función imprimeCuadradoMágico: Una vez que se ha generado el cuadrado mágico, esta función se encarga de imprimir los resultados 4. Función Principal: Es la función encargada de solicitar y validar los datos e invocar a las funciones. *
  • 25. Función llenarConCeros DEFINIR TAM_MAX 11 llenarConCeros(Entero mat[TAM_MAX][TAM_MAX], Entero tam) Inicio Entero i, j Para (i  0; i < tam; ii + 1) Para (j  0; j < tam; j  j + 1) mat[i][j]  0 Fin Para Fin Para Regresa *
  • 26. Función resuelveCuadradoMágico resuelveCuadradoMágico (Entero mat[TAM_MAX][TAM_MAX], Entero tam) Inicio Entero últimoNúmero  tam * tam Entero filaActual  0 Entero columnaActual  tam / 2 Entero siguienteFila Entero siguienteColumna Entero númeroActual mat[filaActual][columnaActual]  1 Para (númeroActual  2; númeroActual <= últimoNúmero; númeroActual  númeroActual + 1 ) siguienteFila  (filaActual + tam - 1) % tam siguienteColumna  (columnaActual + 1) % tam Si (mat[siguienteFila][siguienteColumna]!=0) filaActual  filaActual + 1 Otro caso filaActual  siguienteFila columnaActual  siguienteColumna Fin Si mat[filaActual][columnaActual]  númeroActual Fin Para Regresa *
  • 27. Función imprimeCuadradoMágico imprimeCuadradoMágico (Entero mat[TAM_MAX][TAM_MAX], Entero tam) Inicio Entero i, j Para (i  0; i < tam; i  i + 1) Para (j  0; j < tam; j  j + 1) Escribe (mat[i][j]) FinPara Escribe ("n") Fin Para Regresa *
  • 28. Función Principal Principal Inicio Entero cuadradoMágico[TAM_MAX][TAM_MAX] Entero orden Escribe ("Programa que calcula cuadrados mágicos de orden 3 a 11") Escribe ("nIndique el orden del cuadrado mágico: ") Leer (orden) Si (orden < 3) Escribe ("nEl orden mínimo es 3n") Fin Si Si (orden % 2 != 1 ) Escribe ("nEl orden debe ser imparn") Fin Si Si (orden > TAM_MAX) Escribe ("nEl orden máximo es 11n") Fin Si Llamar llenarConCeros(cuadradoMágico, orden) Llamar resolverCuadradoMágico(cuadradoMágico, orden) Llamar CuadradoMágico(cuadradoMágico, orden) Termina *
  • 29. * * Realice una prueba de escritorio del pseudocódigo anterior considerando un valor de n=3 en el formato anexo: Itera ción TA M_ MA X tam ultimoN umero filaAct ual columna Actual siguiente Fila siguienteCo lumna numeroA ctual mat[siguienteFila][sigui enteColumna] mat[filaActual][co lumnaActual] 11
  • 30. * *Un arreglo bidimensional es un conjunto de n elementos del mismo tipo almacenados en memoria contigua. *A estos arreglos también se les conoce como matrices o tablas.
  • 31. * *La declaración de la matriz consiste en reservar el espacio que ocupará en la memoria. Se debe especificar en el siguiente orden: El tipo de datos que serán empleados (entero, real, carácter, etc), el nombre del arreglo y entre corchetes primero el número de filas y después el de columnas.
  • 32. * *Para hacer referencia a cada uno de sus elementos es necesario utilizar dos índices, el primero indica la fila y el segundo la columna, por esta razón, es necesario utilizar ciclos anidados. *El ciclo externo controla las filas y el interno las columnas. *Las operaciones elementales que se pueden realizar son: lectura, impresión y modificación de elementos.
  • 33. * 1. Cairó, O. (2006). Fundamentos de Programación Piensa en C. México, Pearson. 2. Corona N., M. A. (2011). Diseño de Algoritmos y su Codificación en Lenguaje C. México, McGraw-Hill. 3. Joyanes, Luis. Zahonero, I. (2010), Programación en C, C++, Java y UML, McGrawHill, México. 4. Joyanes, Luis. (2008), Fundamentos de Programación, 4a. Edición, McGrawHill, México.