Logica para computacion Kindle

Embed Size (px)

Text of Logica para computacion Kindle

  • 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 l