estructura de control repetitivo
TRANSCRIPT
República Bolivariana De Venezuela
Ministerio Del Poder Popular Para La Defensa
Universidad Nacional Experimental Politécnica De La Fuerza Armada Bolivariana
Sede San Tome - Núcleo Anzoátegui
Cátedra Programación
Escuela De Petróleo
Estructura de Control Repetitivo
Profesora: Bachilleres:
Ing. Marioxy Gonzalez Patricia Ron C.I.20547444 “3AN”
Daniela LLovera C.I. 25268161 “3AN”
Jonathan Guevara C.I. 21176210 “3AN”
Adriana Marin C.I. 20549484 “3BN”
Biankelys Perdomo C.I. 20739971 “3BN”
Leonardo Waldrop C.I. 18417179 “3BN”
Angel Avila C.I. 24227182 “3BN”
Francisco Guillen C.I. 17746581 “3BN”
Enero 2012
Introducción
Los algoritmos vistos hasta el momento han consistido en simples
secuencias de instrucciones; sin embargo, existen tareas más complejas
que no pueden ser resueltas empleando un esquema tan sencillo, en
ocasiones es necesario repetir una misma acción un número
determinado de veces o evaluar una expresión y realizar acciones
diferentes en base al resultado de dicha evaluación. Para resolver estas
situaciones existen las denominadas estructuras de control que poseen
las siguientes características:
Una estructura de control tiene un único punto de entrada y un
único punto de salida.
Una estructura de control se compone de sentencias o de otras
estructuras de control.
Tales características permiten desarrollar de forma muy flexible todo
tipo de algoritmos aún cuando sólo existen tres tipos fundamentales de
estructuras de control:
Secuencial.
Alternativa.
Repetitiva.
A lo largo de esta lección se presentará solo una estructura de
control, la forma de representarla en la notación algorítmica y las
correspondientes sentencias “fortran” para poder utilizarlas en nuestros
programas.
Dicha estructura será la repetitiva que como su propio nombre
indica, repetir una acción (o grupo de acciones); dicha repetición puede
llevarse a cabo un número prefijado de veces o depender de la
evaluación de una expresión lógica. Existen tres tipos de estructuras
repetitivas: desde-hasta, mientras y repetir-hasta.
A parte se hablara de los arreglos de lo cual se podría mencionar
que son una colección de datos del mismo tipo, que se almacenan en
posiciones consecutivas de memoria y reciben un nombre común. Para
referirse a un determinado elemento de un arreglo se deberá utilizar el
nombre del arreglo acompañado de un índice el cual especifica la
posición relativa en que se encuentra el elemento.
Marco teórico
Estructura repetitiva
Son aquellas que permiten ejecutar una acción, un número
determinado de veces, es decir repetir esta acción una o más veces
consecutivamente. Las estructuras repetitivas se pueden llamar lazos o
bucles, todas las instrucciones incluidas en los bucles se repiten un
número determinados de veces el cual puede ser fijo o puede ser
variable. Se denomina iteración o repetición a cada una de las diferentes
pasadas o ejecuciones de todas las instrucciones obtenidas en un bucle.
Sentencia While (Estructura Mientras)
Indica al ordenador que se ejecuten una o más sentencias mientras
se cumpla una determinada condición. La condición viene determinada
por una variable o expresión booleana.
Formato:
WHILE condición DO
BEGIN
(sentencia1);
...
(sentenciaN);
END;
WHILE condición DO
(sentencia);
Esta sentencia comprueba inicialmente si la condición es verdadera.
Si la condición es verdadera se ejecutan las sentencias mientras la
condición de su enunciado sea verdadera y finaliza cuando la condición
es falsa. Dado que la condición puede ser falsa inicialmente, es decir
antes de comenzar el bucle, habrá casos en que el bucle no se ejecute.
Características del bucle WHIILE:
Se ejecuta mientras la condición sea verdadera, y dentro del bucle
debe existir, por lo menos, una sentencia que modifique el valor de la
variable o expresión, de lo contrario se puede producir una situación de
bucle infinito. Si la expresión lógica es falsa al comenzar el bucle, éste
no se realizará.
Ejemplo.
Escribir los N primeros números naturales, donde N es un valor introducido por el usuario.
Program escribeenteros; Var N,contador: integer; Begin Write ('Introduzca numero máximo de enteros: '); Readln (N); Contador:=1; While contador<=N do Begin Write (contador:5); Contador:=contador+1; End; Writeln; Writeln ('Fin de programa. Contador = ',contador); End.
Sentencia Repeat Until (Estructura Repita-Hasta)
Ejecuta las sentencias comprendidas entre las palabras reservadas
REPEAT y UNTIL hasta que la expresión o variable sea verdadera.
Formato:
REPEAT
begin
(Sentencia);
(Sentencia);
...
end;
UNTIL condición;
Características del bucle REPEAT:
Se ejecutan siempre una vez, por lo menos, y la terminación del
bucle se produce cuando el valor de la expresión lógica o condición de
salida es verdadera. Se ejecuta hasta que la expresión es verdadera, es
decir, se ejecuta mientras la expresión sea falsa.
Ejemplo.
El mismo que con la sentencia WHILE.
Program escribeenteros; Var N,contador:integer; Begin Write ('Introduzca número máximo de enteros: '); Readin (N); Contador:= O; Repeat Contador:=contador+1; Write (contador:5) Until contador = N; Writeln ('Fin de programa. Contador = ',contador) End.
Sentencia For (Estructura Para)
Repite la ejecución de una o varias sentencias un número fijo de
veces. Previamente establecido. Necesita una variable de control del
bucle que es necesariamente de tipo ordinal, ya que el bucle se ejecuta
mientras la variable de control toma una serie consecutiva de valores de
tipo ordinal, comprendidos entre dos valores extremos (inferior y
superior).
Formato ascendente:
FOR variablecontrol:=valorinicial TO valorfinal DO
(sentencia);
Formato descendente:
FOR variablecontrol:=valorincial DOWNTO valorfinal DO
(sentencia);
donde (sentencia) puede ser una sentencia simple o compuesta.
Ejemplo:
El mismo que con la sentencia WHILE.
Program escribeenteros;
Mar
N,contador: integer;
Begin
Write ('Introduzca numero maximo de enteros: ');
Readln (N);
For contador:=1 to n do
Write (contador:5);
Writeln
End.
Características del bucle FOR:
Aunque a primera vista pueda resultar más atractivo FOR, existen
limitaciones en su aplicación ya que en el bucle FOR siempre se
incrementa o decrementa (de uno en uno) los valores de la variable de
control de bucle y no de dos en dos o de tres en tres, o con valores
fraccionarios.
El número de iteraciones de un bucle FOR siempre es fijo y se
conoce de antemano:
Valor final - Valor inicial +1.
Cuándo Utilizar While/Repeat/For
Utilizar la sentencia o estructura FOR cuando se conozca el número de iteraciones, y siempre que la variable de control de bucle sea de tipo ordinal.
Utilizar la estructura REPEAT-UNTIL cuando el bucle se realice por lo menos una vez.
En todos los demás casos utilizar la sentencia WHILE.
Arreglos
Un arreglo puede definirse como un grupo o una colección finita,
homogénea y ordenada de elementos. Los arreglos pueden ser de los
siguientes tipos:
De una dimensión.
De dos dimensiones.
De tres o más dimensiones.
Arreglos Unidimensionales:
Un arreglo unidimensional es un tipo de datos estructurado que
está formado de una colección finita y ordenada de datos del mismo
tipo. Es la estructura natural para modelar listas de elementos iguales.
Arreglos Bidimensionales
Este tipo de arreglos al igual que los anteriores es un tipo de dato
estructurado, finito ordenado y homogéneo. El acceso a ellos también es
en forma directa por medio de un par de índices.
Arreglos Multidimensionales
Este también es un tipo de dato estructurado, que está compuesto
por n dimensiones. Para hacer referencia a cada componente del arreglo
es necesario utilizar n índices, uno para cada dimensión.
Tipos estructurados
Cada constante es un conjunto de valores (una estructura)
Tipos estructurados de Pascal:
Arreglos (array)
Registros (record)
Conjuntos (set)
Arreglo. Motivación
Almacenar un conjunto de valores bajo un mismo nombre de variable.
Cada uno de los valores se puede acceder independientemente
utilizando un índice (generalmente un subrango)
Está inspirado en la notación habitual en matemáticas para
secuencias finitas:
donde a sería el nombre genérico de todos los valores y el subíndice es
utilizado para identificar un valor en particular.
Declaración de un arreglo
Los tipos arreglo se declaran en la sección type del programa:
nombre = array [tipo_indice] of tipo_base;
tipo_indice debe ser un tipo ordinal, generalmente es un subrango de enteros.
tipo_base es cualquier tipo de Pascal.
Representación de un arreglo en la memoria
Un arreglo ocupa tantas celdas de memoria como el cardinal de su tipo
índice:
const MaxArreglo = 9;type RangoArreglo = 1..MaxArreglo; Arreglo1 = array [RangoArreglo] of integer;var a : Arreglo1; (* ocupa 9 celdas *)
La variable a ocupa 9 celdas:
*------*------*------*------*-----*-----*-----*-----*-----* | 23 | 34 | 0 | -12 | 6 | 9 | 11 | -2 | 34 | *------*------*------*------*-----*-----*-----*-----*-----* 1 2 3 4 5 6 7 8 9
Tipos Anónimos
Son tipos que se utilizan sin asignarles un nombre.
type (* indice anonimo *) arreglo = array [0..9] of real;var (* arreglo anonimo *) a : array ['A'..'Z'] of boolean;
Los tipos anónimos se utilizan comúnmente cuando un tipo sólo aparece una vez.
Ejemplos de arreglos
type
rango = 33..90; arr1 = array [char] of integer; (* 256 celdas *) arr2 = array [33..90] of real; arr3 = array [integer] of char; (* demasiado grande! *) arr4 = array ['0'..'9'] of arr3;(* matriz *) arr5 = array [rango] of boolean;
Su Finalidad
Ordenar, estructurar datos que responden a una misma realidad o
entidad, pero donde cada uno hace referencia a una "instancia". De este
modo nos evitamos tener n variables de un mismo tipo. Por ejemplo:
deseamos tener registrada las temperaturas promedio de los días de la
semana. Una opción sería disponer de 7 variables tem_diaX, siendo X =
1..7 ó Domingo..Sábado.
La otra opción es disponer de un vector de tamaño 7 y en el hacer
corresponder a cada posición o índice un día:
temp(1) = hace referencia al domingo
temp(7) = hace referencia al sábado
Conclusión
El proceso de escribir código requiere frecuentemente conocimientos en varias áreas
distintas, además del dominio del lenguaje a utilizar, algoritmos especializados y lógica
formal.
Programar no involucra necesariamente otras tareas tales como el análisis y diseño de la
aplicación, aunque sí suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.
Un algoritmo puede expresarse de distintas maneras: en forma gráfica, como un diagrama
de flujo, en forma de código como en pseudocódigo o un lenguaje de programación, en
forma explicativa, etc.
El proceso de creación de software, desde el punto de vista de la ingeniería, incluye los
siguientes pasos:
1. Reconocer la necesidad de un programa para solucionar un problema o identificar
la posibilidad de automatización de una tarea.
2. Recoger los requisitos del programa. Debe quedar claro qué es lo que debe hacer
el programa y para qué se necesita.
3. Realizar el análisis de los requisitos del programa. Debe quedar claro cómo debe
realizar el programa las cosas que debe hacer.
4. Diseñar la arquitectura del programa. Se debe descomponer el programa en partes
de complejidad abordable.
5. Implementar el programa. Consiste en realizar un diseño detallado, especificando
completamente todo el funcionamiento del programa, tras lo cual la codificación
debería resultar inmediata.
6. Implantar (instalar) el programa. Consiste en poner el programa en
funcionamiento junto con los componentes que pueda necesitar (bases de datos,
redes de comunicaciones, etc.).