10
Ing Alba Rossi Rocha Página 1 Lógica y Algoritmos Estructuras repetitivas y arrays Lección 1 Estructuras Repetitivas Anidadas Las estructuras repetición implican que una acción o proceso se debe realizar un número determinado o indeterminado de veces según sea el caso. Es posible utilizar estas instrucciones para diseñar estructuras de repetición que contengan otros bucles insertados dentro de un bucle. Algo importante es que uno debe estar dentro del otro totalmente sin que se presente solapamiento. Las variables de control del ciclo deben ser independientes y la interna debe ejecutarse totalmente por cada ciclo de la externa. Ejemplo 1: En un campo petrolero, se tiene la información sobre las cantidades producidas de cada tipo de gas, a lo largo de los últimos N años. Haga un diagrama de flujo que calcule e imprima lo siguiente: El total producido de cada tipo de gas (son 5 tipos) a lo largo de N años El total producido de gas por cada año Año en que se produjo la mayor cantidad de litros de Gas 2. Imprimir también la cantidad de litros. Verificar si hubo algún año en el cual no se produjo el Gas 3. Si existe dicho año imprimirlo Entrada: Número de años sobre la información pedida (N), variable que controla el ciclo de los años (I), Variable que controla el ciclo de los gases (J) de tipo entero; Cantidad de gas producida en el campo (GAS), de tipo real .

Estructuras repetitivas y arrays

  • Upload
    others

  • View
    17

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Estructuras repetitivas y arrays

Ing Alba Rossi Rocha Página 1

Lógica y Algoritmos

Estructuras repetitivas y arrays

Lección 1 Estructuras Repetitivas Anidadas

Las estructuras repetición implican que una acción o proceso se debe realizar

un número determinado o indeterminado de veces según sea el caso. Es

posible utilizar estas instrucciones para diseñar estructuras de repetición que

contengan otros bucles insertados dentro de un bucle.

Algo importante es que uno debe estar dentro del otro totalmente sin que se

presente solapamiento.

Las variables de control del ciclo deben ser independientes y la interna debe

ejecutarse totalmente por cada ciclo de la externa.

Ejemplo 1:

En un campo petrolero, se tiene la información sobre las cantidades producidas

de cada tipo de gas, a lo largo de los últimos N años. Haga un diagrama de

flujo que calcule e imprima lo siguiente:

El total producido de cada tipo de gas (son 5 tipos) a lo largo de N años

El total producido de gas por cada año

Año en que se produjo la mayor cantidad de litros de Gas 2. Imprimir

también la cantidad de litros.

Verificar si hubo algún año en el cual no se produjo el Gas 3. Si existe

dicho año imprimirlo

Entrada: Número de años sobre la información pedida (N), variable que controla el ciclo de los años (I), Variable que controla el ciclo de los gases (J) de tipo entero; Cantidad de gas producida en el campo (GAS), de tipo real .

Page 2: Estructuras repetitivas y arrays

Ing Alba Rossi Rocha Página 2

Lógica y Algoritmos

Estructuras repetitivas y arrays

Salida: Gas tipo 1 (GAS1), Gas tipo 2 (GAS2), Gas tipo 3 (GAS3), Gas tipo 4

(GAS4), Gas tipo 5 (GAS5), Mayor cantidad de Gas 2 producida en el año

(MAY2), Total de gas producido por año (TGAS), variables de tipo real; Año

que representa la mayor producción de Gas 2 (CONT), de tipo entero

Page 3: Estructuras repetitivas y arrays

Ing Alba Rossi Rocha Página 3

Lógica y Algoritmos

Estructuras repetitivas y arrays

CAMPO_PETROLERO

{Programa que obtiene información de utilidad de un campo petrolero}

{GAS1, GAS2, GAS3, GAS4, GAS5, MAY2, TGAS, GAS variables de tipo real; I, J, AÑO, N

variable de tipo entero}

1. Hacer GAS1 0

Hacer GAS2 0

Hacer GAS3 0

Hacer GAS4 0

Hacer GAS5 0

Hacer MAY2 0

2. Leer N

3. Hacer I 1

4. Repetir con I desde 1 hasta N

Hacer TGAS 0

Hacer J J +1

Repetir con I desde 5 hasta N

Leer GAS

Hacer TGAS TGAS + GAS

Si J igual

1: Hacer GAS1 GAS1 + GAS 2: Hacer GAS2 GAS2 + GAS

Si GAS > MAY2 entonces

Hacer MAY2 GAS Hacer AÑO I

{Fin Condicional

3: Hacer GAS3 GAS3 + GAS

Si GAS3 = 0 entonces

Escribir “En el año: “, I, “No se produjo Gas Tipo 3”

{Fin Condicional

4: Hacer GAS4 GAS4 + GAS

5: Hacer GAS5 GAS5 + GAS

{Fin Condicional

Hacer J J + 1

{Fin Repetir

Escribir “ Total litros producidos por año: “, TGAS

Hacer I I + 1

{Fin Repetir

5. Escribir “Total Gas 1: “, GAS1, “Total Gas 2: ”, GAS2”, “Total Gas 3: ”, GAS3, “Total Gas 4: ”, GAS4, “Total Gas 5: ”, GAS5. Escribir “Año en que s produjo la mayor cantidad de Gas tipo 2: “, AÑO, “ litros :“, MAY2

Page 4: Estructuras repetitivas y arrays

Ing Alba Rossi Rocha Página 4

Lógica y Algoritmos

Estructuras repetitivas y arrays

Lección 2 Arreglos Unidimensionales (Vectores)

Se define como una colección finita, homogénea y ordenada de elementos.

Finita: todo arreglo debe tener un número definido de elementos

Homogénea: todos lo elemento de un arreglo deben ser del mismo tipo

Ordenada: se puede determinar cada uno de los elementos que están

contenidos en el arreglo

Se deben tener en cuenta las siguientes partes en un arreglo: los

componentes, que son los elementos que conforman el arreglo; los índices son

las posiciones que permiten acceder a cada uno de los elementos.

Donde P son las posiciones o índices del arreglo y val son los datos que están

contenidos en el arreglo

Para definir un arreglo en un lenguaje coloquial sería de la siguiente forma:

Nombre_Arreglo = Nombre [inicio…fin] de Tipo

Inicio y fin determinan el total de elementos del arreglo; Nombre es la etiqueta

con la cual se conoce el arreglo y tipo hace referencia al tipo de datos que se

va a almacenar.

Operaciones con Arreglos

Lectura: leer o asignar valores en cada una de las posiciones del arreglo.

Escritura: imprimir o mostrar cada uno de los valores del arreglo.

Asignación: es la operación de asignar un valor directamente a una posición

del arreglo.

Actualización: operaciones para insertar, eliminar y modificar cada uno de los

elementos del arreglo o vector.

Page 5: Estructuras repetitivas y arrays

Ing Alba Rossi Rocha Página 5

Lógica y Algoritmos

Estructuras repetitivas y arrays

Ordenamiento: utilizadas para organizar un vector o arreglo de acuerdo a un

criterio de ordenación establecido.

Ejemplo 1:

Se tiene la venta de 20 estaciones de gasolina y se necesita saber cuántos de

esas estaciones tienen la venta mayor que el promedio de las 20. Realice un

diagrama de flujo que me entregue la solución:

Entrada: Ventas de la estación (VENTAS), Vector de ventas S[], de tipo real Variable que controla el ciclo repetitivo (I) de tipo entero. Salida: Suma de las ventas (SUM), Promedio de ventas (PROM), de tipo real,

Contador de mayores del promedio (CONT), de tipo entero

Inicialmente se realiza el llenado del vector o arreglo con la información de la

venta de las estaciones, para luego mediante otro diagrama realizar el proceso

del cálculo del promedio y las comparaciones del promedio con el contenido del

arreglo.

CARGA_VECTOR

{Programa que carga el arreglo o vector con la

información de ventas de las estaciones}

{VENTAS, S [] variables de tipo real, I variable de tipo entero}

6. Hacer I 1

7. Repetir con I desde 1 hasta 20

Leer VENTAS

Hacer S [I] VENTAS Hacer I I +1 {Fin Repetir

Page 6: Estructuras repetitivas y arrays

Ing Alba Rossi Rocha Página 6

Lógica y Algoritmos

Estructuras repetitivas y arrays

Page 7: Estructuras repetitivas y arrays

Ing Alba Rossi Rocha Página 7

Lógica y Algoritmos

Estructuras repetitivas y arrays

Lección 3 Arreglos multidimensionales (Matrices)

Son arreglos donde sus elementos son referenciados por 2 o más índices. Este

número de índices, está determinado por la complejidad del problema, sin

embargo los bidimensionales son los más utilizados y se convierten en un caso

especial.

La notación A(M X N), utilizada en arreglos o matrices de dos dimensiones

donde M es el número de renglones o filas y N el número de columnas.

Nombre_Arreglo = Nombre [inicio_fil…fin_fil, inicio_col….fin_col] de Tipo

Inicio_fil y fin_fin determinan el total de filas del arreglo; Inicio_col y fin_col

determinan el total de filas del arreglo; Nombre es la etiqueta con la cual se

conoce el arreglo y tipo hace referencia al tipo de datos que se va a almacenar.

CONTEO_VENTAS

{Programa que obtiene el promedio de ventas de un grupo de estaciones e imprime las

mayores al promedio}

{PROM, SUMA, VENTAS, S[] variables de tipo real; I, CONT variable de tipo entero}

1. Hacer SUMA 0

Hacer I 1

2. Repetir con I desde 1 hasta 20

Leer S[I]

Hacer SUMA SUMA + S[I] Hacer I I +1

{Fin Repetir

3. Hacer PROM SUMA/20

Hacer CONT 0

Hacer I I +1

4. Repetir con I desde 1 hasta 20

Si (S[I] > PROM) entonces

Hacer CONT CONT + 1 {Fin condicional

Hacer I I +1

{Fin Repetir

5. Escribir CONT

Page 8: Estructuras repetitivas y arrays

Ing Alba Rossi Rocha Página 8

Lógica y Algoritmos

Estructuras repetitivas y arrays

Las operaciones con matrices o arreglos multidimensionales son las que se

establecieron en la lección anterior (Lección 2) y son: Lectura, Escritura,

Actualización, Asignación, Ordenamiento

Ejemplo 1:

Construya un diagrama de flujo que, que llene de ceros una matriz cuadrada

MATRIZ [N X N], excepto la diagonal principal a la cual se le debe asignar el número 1. Si N fuera igual a 6, la matriz quedaría de la siguiente forma:

1 0 0 0 0 0

0 1 0 0 0 0

0 0 1 0 0 0

0 0 0 1 0 0

0 0 0 0 1 0

0 0 0 0 0 1

.

Entrada: Número de filas y columnas (N), variables de control de los ciclos

repetitivos (I) para las filas, (J) para las columnas de tipo entero.

Salida: Matriz de N X N posiciones (MATRIZ [ ]) de tipo entero.

Page 9: Estructuras repetitivas y arrays

Ing Alba Rossi Rocha Página 9

Lógica y Algoritmos

Estructuras repetitivas y arrays

Page 10: Estructuras repetitivas y arrays

Ing Alba Rossi Rocha Página 10

Lógica y Algoritmos

Estructuras repetitivas y arrays

Bibliografía

Cairó, O. (2003). Metodología de la Programación. México. ALFAOMEGA GRUPO

EDITOR SA de CV.

MATRIZ_CUADRADA

{Programa que llena de 1 la diagonal principal de una matriz}

{I, J, N, MATRIZ [ ] variables de tipo entero }

1. Leer N

2. Hacer I I

3. Repetir con I desde 1 hasta N Hacer J I

Repetir con I desde 1 hasta N Si (I = J) entonces

Hacer MATRIZ [I,J] 1 Else Hacer MATRIZ [I,J] 0

{Fin condicional Hacer J J +1 {Fin Repetir

Hacer I I +1 {Fin Repetir