estructura de control repetitivo

14

Click here to load reader

Upload: angel-avila

Post on 05-Aug-2015

26 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Estructura de Control Repetitivo

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”

Page 2: Estructura de Control Repetitivo

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:

Page 3: Estructura de Control Repetitivo

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.

Page 4: Estructura de Control Repetitivo

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á.

Page 5: Estructura de Control Repetitivo

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);

Page 6: Estructura de Control Repetitivo

...

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

Page 7: Estructura de Control Repetitivo

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

Page 8: Estructura de Control Repetitivo

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.

Page 9: Estructura de Control Repetitivo

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;

Page 10: Estructura de Control Repetitivo

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

Page 11: Estructura de Control Repetitivo

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

Page 12: Estructura de Control Repetitivo

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.

Page 13: Estructura de Control Repetitivo

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.).