49
5 ARREGLOS Y MÉTODOS 5.1 ARREGLOS El arreglo es un tipo de dato estructurado formado por un conjunto de elementos de un mismo tipo de datos.

Logica para computacion Kindle

Embed Size (px)

Citation preview

  • 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