View
22
Download
0
Category
Preview:
Citation preview
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 .
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
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
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.
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
Ing Alba Rossi Rocha Página 6
Lógica y Algoritmos
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
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.
Ing Alba Rossi Rocha Página 9
Lógica y Algoritmos
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
Recommended