Post on 13-Nov-2015
5ARREGLOSY MTODOS
5.1 ARREGLOS
El arreglo es un tipo de dato estructurado formado por un conjuntode elementos de un mismo tipo de datos.
En los captulos anteriores hemos utilizado los tipos dedatos Entero, Real, Cadena, Carcter y Boolean, los cuales sonconsiderados como datos de tipo simple, puesto que una variableque se define con alguno de estos tipos slo puede almacenar unvalor a la vez, es decir, existe una relacin de uno a uno entrela variable y el nmero de elementos (valores) que es capaz dealmacenar.
En cambio, un dato de tipo estructurado como el arreglo,puede almacenar a ms de un elemento (valor) a la vez, con lacondicin de que todos los elementos deben ser del mismo tipo dedato, es decir, que se puede tener un arreglo de datos
LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMN / FELIPE RAMREZ
208 5. ARREGLOS Y METODOS
enteros, reales, etc. Los arreglos se clasifican de acuerdo conel nmero de dimensiones que tienen. As, se tienen losunidimensionales (de una dimensin), los bidimensionales (dosdimensiones) y los multidimensionales (de ms de dosdimensiones); dentro de stos estn los tridimensionales (tresdimensiones), tetradimensionales (cuatro dimensiones), etc. Eneste libro se tratarn los unidimensionales, bidimensionales,tridimensionales y tetradimensionales.
1111 Arreglos unidimensionalesArreglos unidimensionalesArreglos unidimensionalesArreglos unidimensionales
El arreglo unidimensional o de una dimensin, est formado porun conjunto de elementos de un mismo tipo de datos que sealmacenan bajo un mismo nombre y se diferencian por la posicin
que tiene cada elemento dentro del arreglo de datos.
Veamos el siguiente ejemplo:
Se tiene el nmero de unidades producidas por un obrero encada uno de los 30 das del mes. Elaborar un algoritmo que permitaleer la produccin de cada uno de los 30 das, sin que se pierda laproduccin de ninguno de los das; esto es, se lee la produccin delprimer da, se lee la produccin del segundo da, sin que se pierda ladel primero, y as sucesivamente, al leer la produccin del da 30,que no se pierda la de ninguno de los 29 das anteriores.
a) Una opcin sera usar 30 variables, una para cada da, dela siguiente manera:
produccion1, produccion2, produccion3, --, produccion30
b) Otra opcin es usar un arreglo con una dimensin de30 elementos,
como se muestra en la siguiente figura:
En la figura tenemos un arreglo llamado produccion con 30elementos, el primero de ellos se identifica con la posicin 0, elsegundo tiene la posicin 1, el tercero la posicin 2, y
as sucesivamente hasta el elemento 30 que tiene la posicinnmero 29. As, la produccin del da 1 se almacena en elelemento nmero 0, la
ALFAOMEGA LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMNALFAOMEGA
5. ARREGLOS Y MTODOS 209
produccin del da 2 se almacena en el elemento 1, y assucesivamente hasta la produccin del da 30 se almacena en elelemento 29.
Sin embargo, los lenguajes C, C++, Java y derivados tienen lapeculiaridad de que el primer elemento de un arreglo es elnmero 0 (cero), el segundo es el nmero 1, el tercero el 2, y assucesivamente hasta el elemento N-1; donde N es el nmero deelementos del arreglo. Por ejemplo, un arreglo de 50elementos tendr desde el elemento 0 hasta el elemento49; y un arreglo de 100 elementos tendr desde el elemento 0hasta el elemento 99. En la metodologa que se est presentandoen este libro se utilizar este concepto.
Definicin del arreglo unidimensionalDefinicin del arreglo unidimensionalDefinicin del arreglo unidimensionalDefinicin del arreglo unidimensional
Cuando se define un arreglo, es necesario hacerlo como unavariable. En la parte de declaraciones de variables se utiliza el
siguiente formato:
nombreVariable: Arreglo[Tamao] Tipo de dato
Donde:
nombreVariable Es el nombre de identificacin de la variable.Arreglo Es la palabra reservada que indica que lavariable es un arreglo.Tamao Es un nmero entero que indica lacantidad de
elementos que tendr el arreglo, por ejemplo, 10, 20,50, 100, 500, 1000, etctera.
Tipo de dato Es el tipo de dato que tendr el conjunto deelementos
del arreglo que se est definiendo, puede ser Entero,Real, Cadena, etctera.
Si aplicamos los conceptos anteriores para definir unarreglo que nos sirva para almacenar la produccin de los 30 dasdel mes, tenemos:
Declaraciones
Variables
produccion: Arreglo[30] Entero
LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMN / FELIPE RAMREZELIPE RAMREZ
210 5. ARREGLOS Y METODOS
Produccin es el nombre de la variable que se est declarando Es un arreglo que contiene 30 elementos (del 0 al 29) Cada elemento del arreglo es un dato de tipo entero
Manejo de los elementos del arreglo unidimensionalManejo de los elementos del arreglo unidimensionalManejo de los elementos del arreglo unidimensionalManejo de los elementos del arreglo unidimensional
Cada elemento individual de un arreglo se relaciona con el nombrede la variable y un nmero que indica la posicin que ocupa elelemento dentro del arreglo. Dicho nmero se pone entre [ ] yse le llama subndice, ndice o suscrito. De acuerdo con loanterior, en nuestro ejemplo tenemos que:
El subndice puede ser un valor constante de tipo entero como: 0,1,2,.., 29. Tambin puede ser una variable de tipo entero, como:
produccion[i]
O bien, puede ser una expresin algebraica que d un resultadode tipo entero, como:
produccion[i+3]produccion[(i*4)-j]
Como toda variable, una de tipo arreglo puede usarsepara leer datos, asignarle valores mediante expresionesaritmticas, imprimir su contenido, formar parte de expresioneslgicas, etctera, por ejemplo:
produccion[0] = 20Leer produccion[i]Leer produccion[10]produccion[20] = produccion[0] + produccion[5]Imprimir produccion[20]
ALFAOMEGA LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMN
ALFAOMEGA
5. ARREGLOS Y MTODOS 211
Elaborar un algoritmo que lea la produccin de un obrero en cadauno de los 30 das del mes y que lo imprima.
La lectura se podra hacer de la siguiente manera:
Leer produccion[0]Leer produccion[1]Leer produccion[29]
O bien, planteando un ciclo repetitivo, se hace la lectura ms
eficiente:
FOR i=0; i
Se plantea el ciclo desde que i tome el valor de 0 hasta 29, por cadavalor de i entra al ciclo; donde se solicita y lee la produccin del danmero i+1, es decir, la primera vez solicita la produccin del danmero 1 y lo lee en el elemento produccion[i], es decir, en elelemento 0 del arreglo produccin, la produccin del da 2 lo leeen el elemento 1, y as, hasta llegar a leer la produccin del da 30 enel elemento 29.
Por qu se solicita la produccin del da i+1 y se lee en elelemento i? Porque se tiene la produccin del da 1, del da 2, del da3 y as hasta la produccin del da 30; pero en el arreglo se tiene elelemento 0, el 1, el 2, el 3 y as hasta el elemento 29; y lo que sehace es: la produccin del da 1 leerla en el elemento 0, laproduccin del da 2 leerla en el elemento 1 y as, hasta laproduccin del da 30 leerla en el elemento 29.
El algoritmo completo quedara de la siguiente manera:
Algoritmo PRODUCCION 30 DiaS
Produccion
1. Mtodo principal
a. Declaraciones
Variables
produccion: Arreglo[30] Enteroi: Entero
b. FOR i=0; i
212 5. ARREGLOS Y METODOS
d. FOR i=0; i
Forma ms general de definir arreglosForma ms general de definir arreglosForma ms general de definir arreglosForma ms general de definir arreglos
Un arreglo puede definirse de una forma ms general utilizando ladeclaracin de tipos, para definir un nuevo tipo de dato de tipoarreglo, por ejemplo:
Declaraciones
Tipos
DiezEnteros = Arreglo[10] Entero
Se ha definido un nuevo tipo de dato llamado DiezEnteros,que es un arreglo de 10 elementos de tipo Entero cada uno.
Ahora, ese tipo de dato puede ser utilizado en la definicinde variables, por ejemplo:
Declaraciones
Variables
ALFAOMEGA LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMN
ALFAOMEGA
5. ARREGLOS Y MTODOS 213
a: DiezEnteros
b: DiezEnteros
s: DiezEnteros
Otra forma de definir las variables anteriores:
Declaraciones
Variables
a, b, s: DiezEnteros
Donde:
a, b, s Son variables de tipo DiezEnteros, es decir, son
arreglos de 10 elementos de tipo Entero cada uno.
1.11.11.11.1 Ejercicios resueltos para unidimensionalesEjercicios resueltos para unidimensionalesEjercicios resueltos para unidimensionalesEjercicios resueltos para unidimensionalesEjercicioEjercicioEjercicioEjercicio 1.1.11.1.11.1.11.1.1Elaborar un algoritmo que lea el nombre de un vendedor y lasventas realizadas en cada uno de los 30 das del mes, que lasalmacene en un arreglo y que imprima el reporte siguiente:
Nombre del vendedor : XXXXXXXXXXXXXXXXXXXXXXXXXXVenta del da 1: 999,999.99Venta del da 2 : 999,999.99
Venta del da 30: 999,999.99
Venta total del mes: 9,999,999.99
Donde la venta total del mes se calcula mediante la suma
de las ventasrealizadas en cada uno de los 30 das.
(Primero hgalo usted...despus compare la solucin)
Algoritmo VENTAS MES
Venta
1. Mtodo principal
a. Declaraciones
Variables
LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMN / FELIPE RAMREZELIPE RAMREZ
214 5. ARREGLOS Y METODOS
nombreVend: Cadena
ventas: Arreglo[30] Reali: Entero
totVenta: Real
b. Solicitar nombre del vendedor
c. Leer nombreVend
d. FOR i=0; i
las ventasde los 30 das
b. Se solicita el nombre del vendedorc. Se lee en nombreVend
d. Inicia ciclo FOR desde i=0 hasta 29 con incrementos de 11. Solicita la venta del da nmero i+12. Se lee en ventas[i]
e. Fin del FOR
f. Inicia totVenta en 0g. Imprime nombreVendh. Inicia ciclo FOR desde i=0 hasta 29 con incrementos de 1
1. Imprime ventas[i]2. Incrementa totVenta con ventas[i]
i. Fin del FORj. Imprime totVentak. Fin del Mtodo principal
ALFAOMEGA LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMN
ALFAOMEGA
5. ARREGLOS Y MTODOS 215
Luego se tiene el fin del algoritmo.
EjercicioEjercicioEjercicioEjercicio 1111... .1111.2.2.2.2
Elaborar un algoritmo que lea los elementos de dos arreglos,cada uno con 10 nmeros enteros. Calcular los elementos deun tercer arreglo, sumando los elementos correspondientes delos dos primeros, de la siguiente manera: que se sume elelemento 1 del primer arreglo y el 1 del segundo y que elresultado se almacene en el 1 del terceroy as sucesiva- mente. Adems, se requiere que al final imprima los
tres arreglos de la siguiente forma:
(Primero hgalo usted...despus compare la solucin)
Algoritmo SUMA ARREGLOS
SumaArreglos
1. Mtodo principal
a. Declaraciones
Variables
a, b, s: Arreglo[10] Enteroi: Entero
b. FOR i=0; i
LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMN / FELIPE RAMREZELIPE RAMREZ
216 5. ARREGLOS Y METODOS
En el Mtodo SumaArreglos, se tienen las acciones:
a. Se declaran las variablesa, b, s como arreglos de 10 elementos cada uno.i : Entero
b. Inicia ciclo FOR desde i=0 hasta 9 con incrementos de 11. Solicita elemento i del arreglo a2. Se lee en a[i]3. Solicita elemento i del arreglo b4. Se lee en b[i]5. Calcula s[i]=a[i]+b[i]
c. Fin del FORd. Imprime encabezadoe. Inicia ciclo FOR desde i=0 hasta 9 con incrementos de 1
1. Imprime a[i], b[i], s[i]f. Fin del FORg. Fin del Mtodo principal
Luego se tiene el fin del algoritmo.
EjercicioEjercicioEjercicioEjercicio 111 1... .1111.3.3.3.3
Elaborar un algoritmo que permita leer un vector de 10 nmeros enun arreglo A de 10 elementos, lo mismo para un arreglo B; calcular eimprimir el producto de A B. Para obtener el producto de dos
vectores se multiplica el elemento 1del vector A por el elemento1del vector B, el 2 de A por el 2 de B, y as sucesivamente,obtenindose la sumatoria de los productos; el resultado no es unvector, sino un valor simple.
(Primero hgalo usted...despus compare la solucin)
Algoritmo PRODUCTO DE VECTORES
ProductoVectores
1. Mtodo principal
a. Declaraciones
Variables
vectorA, vectorB: Arreglo[10] Enteror, producto: Entero
b. FOR r=0; r
vectorB[r])i. ENDFOR
j. Imprimir productok. Fin Mtodo principal
Fin ProductoVectores
Fin
En el Mtodo ProductoVectores, se tienen las acciones:
a. Se declaran las variablesb. Inicia ciclo FOR desde r=0 hasta 9
1. Solicita vectorA[r]2. Se lee en vectorA[r]
c. Fin del FORd. Inicia ciclo FOR desde r=0 hasta 9
1. Solicita elemento r del vectorB2. Se lee en vectorB[r]
e. Fin del FORf. Imprime encabezadog. Inicia producto en 0h. Inicia ciclo FOR desde r=0 hasta 9
1. Imprime vectorA[r], vectorB[r]2. Incrementa producto con (vectorA[r] * vectorB[r])
i. Fin del FORj. Imprime productok. Fin del Mtodo principal
Luego se tiene el fin del algoritmo.
LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMN / FELIPE RAMREZELIPE RAMREZ
218 5. ARREGLOS Y METODOS
2 Arreglos bidimensionales2 Arreglos bidimensionales2 Arreglos bidimensionales2 Arreglos bidimensionales
El arreglo bidimensional o de dos dimensiones, est formado porun conjunto de elementos de un mismo tipo de dato que sealmacenan bajo un mismo nombre y que al igual que en elunidimensional, se diferencian por la posicin que tiene cadaelemento dentro del arreglo de datos, con la aclaracin de que ladisposicin de los elementos es en forma rectangular o cuadrada,donde la primera dimensin est dada por los renglones, y lasegunda, por las columnas. Un arreglo de este tipo, tambinconocido como matriz, es de orden M N, donde M es elnmero de renglones y N el nmero de columnas, es decir, en formade tabla.
Un arreglo de orden 4 5 tiene 4 renglones y 5 columnas, es decir,cada rengln se divide en 5 columnas, como se muestra acontinuacin:
Para esta matriz tenemos:
Es decir, el elemento rengln 0, columna 0; el elemento rengln0, columna 1; y as hasta el elemento rengln 3, columna 4.
ALFAOMEGA LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMNALFAOMEGA
5. ARREGLOS Y MTODOS 219
DefiniciDefiniciDefiniciDefinicin nnn deldeldeldel arregloarregloarregloarreglo bidimensionalbidimensionalbidimensionalbidimensional
Al definir un arreglo es necesario hacerlo como una variable,
por lo cual en la parte de declaraciones de variables se utiliza elsiguiente formato:
nombreArreglo: Arreglo[tamRenglones][tamColumnas] Tipo
de dato
Donde:
nombreArreglo Es el nombre de identificacin de la variable.
Arreglo Es la palabra reservada que indica que lavariable es un tamRenglonesarreglo.Indica el nmero de renglones que tendr el arreglo. tamColumnasIndica el nmero de columnas que tendr el arreglo. Tipo de datoEs el tipo de dato que tiene el conjunto de elementos
del arreglo que se est definiendo; pueden ser Entero, Real,Cadena, etctera.
Si aplicamos los conceptos del formato anterior para definir lamatriz de orden 4 5 de nmeros enteros, tenemos:Declaraciones
Variables
matriz: Arreglo[4][5] Entero
Matriz es el nombre de la variable Es un arreglo que contiene 4 renglones y 5 columnas (20elementos) Cada elemento del arreglo es un dato de tipo entero
Manejo de los elementos del arreglo bidManejo de los elementos del arreglo bidManejo de los elementos del arreglo bidManejo de los elementos del arreglo bidimensionalimensionalimensionalimensional
Para relacionar cada elemento individual de una matriz se usandos subndices; el primero indica el rengln y el segundo la columna,como sigue:
matriz[renglon][columna]
Donde:
renglon indica el nmero de rengln y columna indica el nmerode columna que ocupa el elemento relacionado.
LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMN / FELIPE RAMREZELIPE RAMREZ
220 5. ARREGLOS Y METODOS
Los subndices pueden ser constantes, variables o expresionesde tipo entero, como se explic para el caso de los unidimensionales.
Como toda variable, una de tipo matriz puede usarse para leerdatos, asignarle valores mediante expresiones aritmticas, imprimirsu contenido, formar parte de expresiones lgicas, etctera.
matriz[1][1] = 20Leer matriz[r][c]Leer matriz[3][4]matriz[1][2] = matriz[1][2] + matriz[2][3]Imprimir matriz[1][2]
Elaborar un algoritmo que lea nmeros de tipo entero parauna matriz de 4 renglones por 5 columnas y adems que losimprima.
Para leer los elementos de una matriz es necesarioutilizar dos ciclos repetitivos anidados, el primero y ms externo,para procesar los renglones, y el segundo, que estar anidadodentro del primero, para procesar las columnas.
Si definimos:
Declaraciones
Variables
numeros: Arreglo[4][5] Entero
la lectura se hace as:
FOR ren=0; ren
del ciclo ms interno se solicita el elemento ren,col; y luego se lee.Para imprimir los elementos de la matriz se hace un proceso similar,slo que en lugar de leer se imprime.
A continuacin tenemos el algoritmo completo:
Algoritmo MATRIZ NUMEROS
MatrizNumeros
1. Mtodo principal
a. Declaraciones
Variables
numeros: Arreglo[4][5] Enteroren, col: Entero
b. FOR ren=0; ren
tipo Entero
ren, col para controlar los ciclosb. Inicia ciclo FOR desde ren=0 hasta 3
1. Inicia ciclo FOR desde col=0 hasta 4a. Solicita elemento ren,col de numeros
b. Se lee en numeros[ren][col]2. Fin del FOR
c. Fin del FOR
LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMN / FELIPE RAMREZELIPE RAMREZ
222 5. ARREGLOS Y METODOS
d. Inicia ciclo FOR desde ren=0 hasta 31. Inicia ciclo FOR desde col=0 hasta 4
a. Imprime numeros[ren][col]2. Fin del FOR
e. Fin del FORf. Fin del Mtodo principal
Luego se tiene el fin del algoritmo.
2.1 Ejercicios resueltos para bidimensionales2.1 Ejercicios resueltos para bidimensionales2.1 Ejercicios resueltos para bidimensionales2.1 Ejercicios resueltos para bidimensionales
EjercicioEjercicioEjercicioEjercicio .2.1.1.2.1.1.2.1.1.2.1.1
Elaborar un algoritmo que lea nmeros enteros para una matrizde 5 7, que imprima los elementos de la matriz y que al final decada rengln imprima la suma de todos sus elementos.
(Primero hgalo usted...despus compare la solucin)
Algoritmo SUMA POR RENGLONES
SumaRenglones
1. Mtodo principal
a. Declaraciones
Variables
matriz: Arreglo[5][7] Enteroren, col, suma: Entero
b. FOR ren=0; ren
En el Mtodo SumaRenglones, se tienen las acciones:
a. Se declaran las variablesmatriz como arreglo de 5 renglones por 7 columnassuma para calcular la sumatoria por rengln
b. Inicia ciclo FOR desde ren=0 hasta 41. Inicia ciclo FOR desde col=0 hasta 6
a. Solicita matriz[ren][col]b. Se lee en matriz[ren][col]
2. Fin del FORc. Fin del FORd. Inicia ciclo FOR desde ren=0 hasta 4
1. Inicia suma en 02. Inicia ciclo FOR desde col=0 hasta 6
a. Imprime matriz[ren][col]b. Incrementa suma con matriz[ren][col]
3. Fin del FOR
4. Imprime sumae. Fin del FOR
f. Fin del Mtodo principal
Luego se tiene el fin del algoritmo.
EjerEjerEjerEjerciciociciociciocicio 2.1.22.1.22.1.22.1.2
Elaborar un algoritmo que lea nmeros enteros para los elementosde dos matrices de 5 5, que calcule cada elemento de una terceramatriz sumando los elementos correspondientes de las dosanteriores. Al final imprimir las tres matrices.
(Primero hgalo usted...despus compare la solucin)
Algoritmo SUMA MATRICES
SumaMatrices
1. Mtodo principal
a. Declaraciones
Variables
matriz1, matriz2, matriz3: Arreglo[5][5] Enteroren, col: Entero
b. FOR ren=0; ren
2. ENDFOR
i. ENDFOR
j. FOR ren=0; ren
2. Fin del FORc. Fin del FOR
d. Inicia ciclo FOR desde ren=0 hasta 41. Inicia ciclo FOR desde col=0 hasta 4
a. Solicita matriz2[ren][col]b. Se Lee en matriz2[ren][col]
2. Fin del FORe. Fin del FOR
f. Inicia ciclo FOR desde ren=0 hasta 41. Inicia ciclo FOR desde col=0 hasta 4
a. Calculamatriz3[ren][col]=matriz1[ren][col]+matriz2[ren][col]
2. Fin del FORg. Fin del FORh. Inicia ciclo FOR desde ren=0 hasta 4
1. Inicia ciclo FOR desde col=0 hasta 4a. Imprime matriz1[ren][col]
2. Fin del FORi. Fin del FORj. Inicia ciclo FOR desde ren=0 hasta 4
1. Inicia ciclo FOR desde col=0 hasta 4
a. Imprime matriz2[ren][col]2. Fin del FOR
k. Fin del FORl. Inicia ciclo FOR desde ren=0 hasta 4
1. Inicia ciclo FOR desde col=0 hasta 4a. Imprime matriz3[ren][col]
2. Fin del FORm. Fin del FOR
n. Fin del Mtodo principal
Luego se tiene el fin del algoritmo.
EjercicioEjercicioEjercicioEjercicio 2.1.32.1.32.1.32.1.3
Se tienen los siguientes datos:
Nombre obrero 1 : XXXXXXXXXXXXXXXXXXXXXXXXXXXXProduccin mes 1: 999Produccin mes 2 : 999.
Produccin mes 6: 999
Nombre obrero 2 : XXXXXXXXXXXXXXXXXXXXXXXXXXXX
LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMN / FELIPE RAMREZELIPE RAMREZ
226 5. ARREGLOS Y METODOS
Produccin mes 1: 999Produccin mes 2 : 999
Produccin mes 6: 999
---
---
Nombre obrero 20 : XXXXXXXXXXXXXXXXXXXXXXXXXXXX
Produccin mes 1: 999Produccin mes 2 : 999Produccin mes 6: 999
Elaborar un algoritmo que lea estos datos en dos arreglos, unounidimensional, para los nombres de los 20 obreros; otro,bidimensional, en el que se tendrn 20 renglones (uno para cadaobrero) por 6 columnas (una para la produccin de cada mes):
Adems, se requiere que imprima el reporte siguiente:
(Primero hgalo usted...despus compare la solucin)
Algoritmo PRODUCCION 20 OBREROS
ObrerosMatrices
1. Mtodo principal
ALFAOMEGA LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMN
ALFAOMEGA
5. ARREGLOS Y MTODOS 227
a. Declaraciones
Variables
obreros: Arreglo[20] Cadenaproduccion: Arreglo[20][6] Entero
ren, col, totProd, toTotProd: Entero
b. Imprimir encabezado
c. FOR ren=0; ren
a. Se declaran las variablesb. Imprimir encabezadoc. Inicia ciclo FOR desde ren=0 hasta 19
1. Solicita obrero ren2. Se lee en obreros[ren]3. Inicia ciclo FOR desde col=0 hasta 5
a. Solicita produccin[ren][col]b. Se lee en produccin[ren][col]
4. Fin del FOR
LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMN / FELIPE RAMREZELIPE RAMREZ
228 5. ARREGLOS Y METODOS
d. Fin del FORe. Inicia toTotProd en 0f. Inicia ciclo FOR desde ren=0 hasta 19
1. Imprime obreros[ren]2. Inicia totProd en 0
3. Inicia ciclo FOR desde col=0 hasta 5a. Imprime produccion[ren][col]b. Incrementa totProd con produccin[ren][col]
4. Fin del FOR
5. Imprime totProd6. Incrementa toTotProd con totProd g. Fin del FOR
h. Imprime toTotProdi. Fin del Mtodo principal
Luego se tiene el fin del algoritmo.
ALFAOMEGA LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMNALFAOMEGA
5. ARREGLOS Y MTODOS 229
5.2 MTODOS
5.25.25.25.2.1.1.1.1 MtodosMtodosMtodosMtodos quequequeque nononono regresanregresanregresanregresan valorvalorvalorvalorUn mtodo es una funcin, segmento, rutina, subrutina osubalgoritmo que puede ser definido con el propsito de ejecutar
una funcin, comportamiento o tarea especfica, pudiendo serllamado o invocado desde el mtodo principal u otro mtodo,cuando se requiera. Existen dos tipos de mtodos: mtodosque no regresan valor y mtodos que regresan valor. En estepunto se estudian los mtodos que no regresan valor, msadelante en otro punto se tratarn los mtodos que regresanvalor.
En los captulos precedentes se han planteado problemaspequeos, es decir, que hacen una sola cosa o tienen una solafuncin; y en consecuencia, se han diseado algoritmos que tienenun elemento y se tiene slo el mtodo principal, en el cual seimplementa la lgica que resuelve el problema.
Sin embargo, en ocasiones se tienen problemasms grandes y complejos que involucran a ms de una tareao funcin, lo cual complica la solucin en un solo mtodo; ahoraestudiaremos cmo utilizar ms de un mtodo, la idea es que sedefina un mtodo por separado para implementar cada funcin; y ensu momento, desde el mtodo principal se llama o invoca a cadamtodo para que haga su tarea o funcin; el mtodo principal,que es donde inicia el funcionamiento del algoritmo, dirigir lalgica general de la solucin y se apoyar llamando a los otrosmtodos para que realicen sus funciones especficas, en elmomento que se requieran, as, el formato ser el siguiente:
Algoritmo ALGO
Nom
1. Mtodo principal
a. Acci n a
LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMN / FELIPE RAMREZ
ELIPE RAMREZ
230 5. ARREGLOS Y METODOS
b. Accin bc. Accin cd. Fin Mtodo principal
2. Mtodo funcionUno
a. Accin ab. Accin bc. Accin cd. Fin Mtodo funcionUno
3. Mtodo funcionDos
a. Accin ab. Accin bc. Accin cd. Fin Mtodo funcionDos
4. Mtodo funcionTres
a. Accin ab. Accin bc. Accin cd. Fin Mtodo funcionTres
Fin Nom
Fin
Donde:
Se tiene el esquema de un algoritmo que tiene cuatro mtodos:el Mtodo principal, el Mtodo funcinUno, el Mtodo funcinDos y elMtodo funcinTres.
Los mtodos funcinUno, funcinDos y funcinTres; cada unotiene la lgica necesaria para implementar una funcin especficapara resolver el problema. Sin embargo, en el Mtodo principal esdonde inicia el funcionamiento del algoritmo, y es el que tiene lalgica general que resuelve el problema; y en su momento deberllamar a cada uno de los otros mtodos, es decir, al Mtodo
funcinUno, al Mtodo funcinDos y al Mtodo funcinTres.
Elaborar un algoritmo que ayude a un nio a revisar sus tareasreferentes a las operaciones aritmticas fundamentales: sumar,restar, multiplicar y dividir.
El proceso es el siguiente:
ALFAOMEGA LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMNALFAOMEGA
5. ARREGLOS Y MTODOS 231
Se ofrecer un men de opciones para escoger lo que desee hacerde acuerdo con el siguiente formato:
En caso de que el nio escoja la opcin 1; est indicando
que desea revisar operaciones de sumar, enseguida se debeestablecer un proceso interactivo para que el nio introduzca losdos nmeros a sumar y su resultado, luego que la computadorale indique si la suma est correcta o incorrecta, enseguidapreguntar si desea revisar otra suma, si es as, deber repetir todo elproceso para revisar una nueva operacin de sumar, algo parecido alo siguiente:
La suma est correcta
Desea revisar otra suma(S/N)?
Para el caso de resta, multiplicacin y divisin se seguir unproceso similar, pero con las diferencias correspondientes.
Qu se requiere para solucionar este problema?
El problema tiene cuatro funciones o tareas especficas:
Sumar Es la parte que permite ayudar a revisaroperaciones de sumar. Restar Es la parte que permite ayudar arevisar operaciones de restar. Multiplicar Es la parte que permiteayudar a revisar operaciones de multiplicar. Dividir Es la parteque permite ayudar a revisar operaciones de dividir.
Por tanto, se requiere un mtodo para implementar lasolucin de cada una de esas funciones, es decir, un mtodo
para sumar, otro mtodo para restar, otro mtodo para multiplicar
y otro mtodo para dividir; adems del mtodo principal quedirigir el funcionamiento general del algoritmo, que llamar alos mtodos sumar, restar, multiplicar y dividir cuando requiera quecada uno haga su tarea o funcin.
LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMN / FELIPE RAMREZ
ELIPE RAMREZ
232 5. ARREGLOS Y METODOS
A continuacin se presenta el algoritmo de la solucin.
Algoritmo AYUDA
Ayuda
1. Declaraciones
Variables
num1, num2, resuNi, resuMaq: Entero
desea: Car cter
opcion: Entero
2. Mtodo principal
a. DO
1.
2.
Imprimir el men de opciones
Leer opcion3. SWITCH opcion
1: Llamar ayudaSumar
2: Llamar ayudaRestar
3: Llamar ayudaMultiplicar
4: Llamar ayudaDividir
4. ENDSWITCH
b. WHILE opcion 5
c. Fin Mtodo principal
3. Mtodo ayudaSumar
a. DO
1. Solicitar nmero uno, nmero dos y resultado 2. Leernum1, num2, resuNi
3. Calcular resuMaq = num1 + num2
4. IF resuMaq = resuNi THEN
a. Imprimir La suma est correcta 5.
ELSE
a. Imprimir La suma est incorrecta 6.
ENDIF
7. Preguntar Desea revisar otra suma (S/N)? 8. Leerdesea
ALFAOMEGA LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMNALFAOMEGA
5. ARREGLOS Y MTODOS 233
b. WHILE desea = S
c. Fin Mtodo ayudaSumar
4. Mtodo ayudaRestar
a. DO
1. Solicitar nmero uno, nmero dos yresultado
2. Leer num1, num2, resuNi
3. Calcular resuMaq = num1 - num2
4. IF resuMaq = resuNi THEN
a. Imprimir La resta est correcta
5. ELSE
a. Imprimir La resta est incorrecta6. ENDIF
7. Preguntar Desea revisar otra resta
(S/N)?8. Leer desea
b. WHILE desea = S
c. Fin Mtodo ayudaRestar
5. Mtodo ayudaMultiplicar
a. DO
1. Solicitar nmero uno, nmero dos yresultado
2. Leer num1, num2, resuNi
3. Calcular resuMaq = num1 * num2
4. IF resuMaq = resuNi THEN
a. Imprimir La multiplicaci nest
correcta
5. ELSE
a. Imprimir La multiplicaci nest
incorrecta
6. ENDIF
7. Preguntar Desea revisar otra
multiplicaci n(S/N)?8. Leer desea
b. WHILE desea = S
c. Fin Mtodo ayudaMultiplicar
6. Mtodo ayudaDividir
a. DO
1. Solicitar nmero uno, nmero dos yresultado
2. Leer num1, num2, resuNi
3. Calcular resuMaq = num1 / num2
4. IF resuMaq = resuNi THEN
a. Imprimir La divisi n est correcta5. ELSE
LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMN / FELIPE RAMREZ
ELIPE RAMREZ
234 5. ARREGLOS Y METODOS
a. Imprimir La divisi n est incorrecta6. ENDIF
7. Preguntar Desea revisar otra
divisi n (S/N)?8. Leer desea
b. WHILE desea = S
c. Fin Mtodo ayudaDividir
Fin Ayuda
Fin
Algoritmo AYUDAEs el encabezado del algoritmo
1. Declaraciones deVariables
num1, num2, resuNi, resuMaq: Enterodesea : Carcteropcion : Entero
En esta parte se hacen las declaraciones, se pueden declarartipos, constantes y variables; y podrn ser utilizadas en cualquiermtodo.
2. Mtodo principala. Inicia ciclo DO
1. Imprimir el men de opciones donde se solicita la opcin.2. Se lee en opcion la respuesta3. Inicia SWITCH opcion
Si opcion es 1, entonces : Llama ayudaSumar
Si opcion es 2, entonces : Llama ayudaRestarSi opcion es 3, entonces : Llama ayudaMultiplicar
Si opcion es 4, entonces : Llama ayudaDividir4. Fin del SWITCH
b. Fin ciclo WHILE opcion 5 va al DOc. Fin Mtodo principal
Todo algoritmo diseado con mtodos, inicia su funcionamientoen el mtodo principal, que ser el que dirigir la operacin delresto de los mtodos, es decir, los llamar para que realicen la tareaque les corresponde.
3. Mtodo ayudaSumara. Inicia ciclo DO
1. Solicita nmero uno, nmero dos y resultado del nio
ALFAOMEGA LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMNALFAOMEGA
5. ARREGLOS Y MTODOS 235
2. Lee en num1, num2, resuNi3. Calcula resultado de la mquina4. Si resuMaq = resuNi Entonces
a. Imprime La suma est correcta5. Si no
a. Imprime La suma est incorrecta6. Fin IF
7. Pregunta Desea revisar otra suma (S/N)?8. Lee en desea
b. Fin ciclo WHILE desea = S; Regresa al DOc. Fin Mtodo ayudaSumar
En este mtodo se ayuda a revisar operaciones de sumar.
4. Mtodo ayudaRestara. Inicia ciclo DO
1. Solicita nmero uno, nmero dos y resultado del nio2. Lee en num1, num2, resuNi3. Calcula resultado de la mquina4. Si resuMaq = resuNi Entonces
a. Imprime La resta est correcta5. Si no
a. Imprime La resta est incorrecta6. Fin del IF
7. Pregunta Desea revisar otra resta (S/N)?8. Lee en desea la respuesta
b. Fin ciclo WHILE desea = S; Regresa al DOc. Fin Mtodo ayudaRestar
En este mtodo se ayuda a revisar operaciones de restar.
5. Mtodo ayudaMultiplicara. Inicia ciclo DO
1. Solicita nmero uno, nmero dos y resultado del nio2. Lee en num1, num2, resuNi3. Calcula resultado de la mquina4. Si resuMaq = resuNi Entonces
a. Imprime La multiplicacin est correcta5. Si no
a. Imprime La multiplicacin est incorrecta6. Fin del IF7. Pregunta Desea revisar otra multiplicacin (S/N)?8. Lee en desea
LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMN / FELIPE RAMREZELIPE RAMREZ
236 5. ARREGLOS Y METODOS
b. Fin ciclo WHILE desea = S; Regresa al DOc. Fin Mtodo ayudaMultiplicar
En este mtodo se ayuda a revisar operaciones de multiplicar.
6. Mtodo ayudaDividira. Inicia ciclo DO
1. Solicita nmero uno, nmero dos y resultado del nio2. Lee en num1, num2, resuNi3. Calcula resultado de la mquina4. Si resuMaq = resuNi Entonces
a. Imprime La divisin esta correcta5. Si no
a. Imprime La divisin est incorrecta6. Fin del IF7. Pregunta Desea revisar otra divisin (S/N)?8. Lee en desea
b. Fin ciclo WHILE desea = S; Regresa al DOc. Fin Mtodo ayudaDividir
En este mtodo se ayuda a revisar operaciones de dividir.
5.2 Formato general de mtodo.2 Formato general de mtodo.2 Formato general de mtodo.2 Formato general de mtodo
A continuacin se explica el formato general de un algoritmopara cuando se presenta esta situacin.
Nom
ParteParteParteParte 1.1.1.1. Se tiene una parte de declaraciones:
1. Declaraciones
Constantes
Tipos
Variables
Estas son declaraciones globales, es decir, se pueden utilizar encualquier mtodo. Esta parte es opcional; es decir, puede estarpresente o no.
ALFAOMEGA LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMN
ALFAOMEGA
5. ARREGLOS Y MTODOS 237
Parte 2Parte 2Parte 2Parte 2. Se tiene el mtodo principal, es el paso 2 si haydeclaraciones; pero si no
hay declaraciones, este es el paso 1. Como ya se indicanteriormente,
este es el mtodo obligatorio; y es donde inicia elfuncionamiento:
2. Mtodo principal
a. Declaraciones
Constantes
Tipos
Variables
b. Acci n1
c. Acci n2
d. Acci nN
e. Fin Mtodo Principal
Parte 3.Parte 3.Parte 3.Parte 3. Se tiene uno o ms mtodos subordinados; que sonopcionales:
3. Mtodo funcionUno
a. Declaraciones
Constantes
Tipos
Variables
b. Accin1
c. Accin2
d. Acci nN
e. Fin Mtodo funcionUno
4. Mtodo funcionDos
a. Declaraciones
Constantes
Tipos
Variables b.
Accin1
c. Accin2
d. Acci nN
e. Fin Mtodo funcionDos
5. Mtodo funcionTres
a. Declaraciones
Constantes
Tipos
Variables
b. Accin1
c. Accin2
LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMN / FELIPE RAMREZELIPE RAMREZ
238 5. ARREGLOS Y METODOS
d. AccinN
e. Fin Mtodo funcionTres
Fin Nom
Por ltimo se tiene el fin.
ALFAOMEGA LGICA PARA COMPUTACIN LEOBARDO LPEZ ROMN/ FELIPE RAMREZ