Estructuras b - PowerPoint PPT Presentation

About This Presentation
Title:

Estructuras b

Description:

Tema 6 Estructuras b sicas Estructuras b sicas TEMA 6 Programacion estructurada. Estructura de selecci n. Sentencias. Sentencias anidadas. Casos particulares. – PowerPoint PPT presentation

Number of Views:65
Avg rating:3.0/5.0
Slides: 31
Provided by: Eduar57
Category:
Tags: bien | estructuras

less

Transcript and Presenter's Notes

Title: Estructuras b


1
Estructuras básicas
Tema 6
2
Estructuras básicas
  • TEMA 6
  • Programacion estructurada. Estructura de
    selección. Sentencias. Sentencias anidadas.
    Casos particulares. Estructura de control.
    Bucles. Tipo hacer mientras hacer hasta.
    Incremento o decremento. Terminaciones anormales.
    Diseño de bucles. Bucles anidados.

3
Estructuras básicas
6.1 Programación estructurada
  • La programación estructurada es una forma de
    escribir programas de computadora deforma clara,
    utilizando únicamente tres estructuras
    secuencia, selección e iteración siendo
    innecesario y no permitiéndose el uso de la
    instrucción o instrucciones de transferencia
    incondicional.
  • La programación estructurada surge a finales de
    los años 1960 con el objetivo de realizar
    programas confiables y eficientes, y que además
    fueran escritos de manera de facilitar su
    comprensión posterior.
  • Hoy en día las aplicaciones informáticas son
    mucho más ambiciosas que las necesidades de
    aquellos años, por lo que se desarrollaron nuevas
    técnicas, tales como la programación orientada a
    objetos y el desarrollo de entornos de
    programación que facilitan la programación de
    grandes aplicaciones.
  • De todas formas, el paradigma estructurado tiene
    vigencia en muchos ámbitos de desarrollo de
    programas y constituye una buena forma de
    iniciarse en la programación de computadoras.

4
Estructuras básicas
6.1 Programación estructurada
  • El teorema del programa estructurado, de
    Böhm-Jacopini, demuestra que todo programa puede
    escribirse utilizando únicamente las tres
    instrucciones de control siguientes
  • Secuencia
  • Instrucción condicional.
  • Iteración (bucle de instrucciones) con condición
    al principio.
  • Solamente con estas tres estructuras o patrones
    lógicos se pueden escribir todos los programas y
    aplicaciones posibles. Si bien los lenguajes de
    programación tienen un mayor repertorio de
    estructuras de control, éstas pueden ser
    construidas mediante las tres básicas.

5
Estructuras básicas
6.1 Programación estructurada
6
Estructuras básicas
6.1 Programación estructurada
  • El flujo de control de un programa
  • La expresión flujo de control hace referencia al
    orden en el que se ejecutarán las instrucciones
    de un programa, desde su comienzo hasta que
    finaliza. El flujo normal de ejecución es el
    secuencial. Si no se especifica lo contrario, la
    ejecución de un programa empezaría por la primera
    instrucción e iría procesando una a una en el
    orden en que aparecen, hasta llegar a la última.
  • Algunos programas muy simples pueden escribirse
    sólo con este flujo unidireccional. No obstante,
    la mayor eficacia y utilidad de cualquier
    lenguaje de programación se deriva de la
    posibilidad de cambiar el orden de ejecución
    según la necesidad de elegir uno de entre varios
    caminos en función de ciertas condiciones, o de
    ejecutar algo repetidas veces, sin tener que
    escribir el código para cada vez.
  • Con frecuencia, el programador necesita que el
    programa no se comporte sólo de modo secuencial.
    Por ejemplo, calcular una funcion f(x) para los X
    gt 0.

7
Estructuras básicas
6.1 Programación estructurada
  • El flujo de control de un programa
  • También puede ocurrir que interese que un grupo
    de instrucciones se ejecute repetidamente hasta
    que se le indique que se detenga. Por ejemplo,
    calcular el promedio de notas para cada uno de
    los alumnos de un curso, o realizar algún cálculo
    con cada uno de los elementos de un vector.
  • Para las dos situaciones planteadas existen dos
    soluciones las sentencias de control selectivas
    y las repetitivas. Éstas permiten que el flujo
    secuencial del programa sea modificado. También
    cumplen con este objetivo las sentencias
    denominadas de invocación o salto.
  • Las sentencias alternativas también son conocidas
    como sentencias selectivas porque permiten
    seleccionar uno de entre varios caminos por donde
    seguirá la ejecución del programa. En algunos
    casos esta selección viene determinada por la
    evaluación de una expresión lógica.

8
Estructuras básicas
6.2 Estructura de selección. Sentencias anidadas.
  • Según lo expresado, las estructuras de decisión
    simple y doble permiten seleccionar entre dos
    alternativas posibles. Sin embargo, la
    instrucción SI-ENTONCES puede ser utilizada
    también en casos de selección de más de dos
    alternativas. Esto es posible anidando estas
    instrucciones. Es decir, una estructura
    SI-ENTONCES puede contener a otra, y esta a su
    vez a otra. La representación en pseudocódigo es
    la siguiente
  • SI ltcondición_1gt ENTONCES
  • lt sentencias_1 gt
  • SINO
  • SI ltcondición_2gt ENTONCES
  • lt sentencias_2 gt
  • SINO
  • SI ltcondición_3gt ENTONCES
  • lt sentencias_3 gt
  • SINO
  • .
  • .
  • FIN-SI
  • FIN-SI
  • FIN-SI

Como se puede observar, el anidamiento de
instrucciones alternativas permite ir descartando
valores hasta llegar al bloque de instrucciones
que se debe ejecutar. En las instrucciones SI
anidadas, las instrucciones ENTONCES y FIN-SI se
aplican automáticamente a la instrucción SI
anterior más próxima. A fin de que las
estructuras anidadas sean más fáciles de leer, es
práctica habitual aplicar sangría al cuerpo de
cada una.
9
Estructuras básicas
6.2 Estructura de selección. Sentencias anidadas.
  • Ejemplo Un sensor toma (lee) la temperatura
    ambiente y de acuerdo al rango en que se
    encuentre, debe emitir un mensaje. La escala es
    la siguiente
  • Mayor que 100 Temperatura muy alta Mal
    funcionamiento
  • Entre 91 y 100 Rango normal
  • Entre 51 y 90 Bajo el rango normal
  • Menor que 50 Muy frío Apague el equipo
  • ALGORITMO Sensor
  • INICIO
  • LEER temperatura
  • SI temperatura gt 100 ENTONCES
  • ESCRIBIR Temperatura muy alta Mal
    funcionamiento
  • SINO
  • SI temperatura gt 90 ENTONCES
  • ESCRIBIR Rango normal
  • SINO
  • SI temperatura gt 50 ENTONCES
  • ESCRIBIR Bajo el rango normal
  • SINO
  • ESCRIBIR Muy frío Apague equipo

10
Estructuras básicas
6.2 Estructura de selección. Sentencias
anidadas. Casos Particulares
  • La sentencia IR-A (go to)
  • La sentencia GO TO pertenece a un grupo de
    sentencias conocidas como sentencias de salto
    (jump). La característica de este grupo es hacer
    que el flujo de control salte a otra parte del
    programa. Otras sentencias de este grupo son
    interrumpir o romper (BREAK), continuar
    (CONTINUE), volver (RETURN), lanzar (THROW). Las
    dos primeras se utilizan generalmente con
    sentencias de alternativa múltiple. Para retornar
    de la ejecución de funciones o métodos se usa
    RETURN.
  • La sentencia GO TO se utilizaba mucho en los
    primeros lenguajes de programación porque era la
    única manera de saltar de una instrucción del
    programa a otra.
  • Esta instrucción consta de una sentencia IR_A y
    una sentencia asociada con una etiqueta.
  • Cuando se ejecuta esta instrucción, se transfiere
    el control del programa a la etiqueta asociada.

11
Estructuras básicas
6.2 Estructura de selección. Sentencias
anidadas. Casos Particulares
  • La sentencia IR-A (go to)
  • La representación en pseudocódigo es la
    siguiente
  • INICIO
  • .
  • .
  • IR_A etiqueta_1
  • .
  • .
  • FIN
  • etiqueta_1
  • . // El flujo salta aquí
  • El efecto de esta instrucción es transferir sin
    condiciones el control del programa a la etiqueta
    especificada. Es una de las operaciones más
    primitivas para traspasar el control de una parte
    del programa a otra. Sin embargo, su uso produce
    código inconsistente, incompleto o complicado de
    mantener. Justamente por ello en los años 60 y
    70, cuando surgió la programación estructurada,
    la comunidad informática se expresó a favor de
    otras sentencias de control (IF ó bucles FOR y
    DO-WHILE) en lugar del GOTO.

12
Estructuras básicas
6.2 Estructura de selección. Sentencias
anidadas. Casos Particulares
  • La sentencia IR-A (go to)
  • Tal creencia está tan arraigada que el GOTO es
    muy criticado y desaconsejado por todos los que
    se dedican a la enseñanza de la programación.
  • Si bien la instrucción GOTO puede parecer útil y
    muy flexible, es precisamente en esa flexibilidad
    donde radica su peligro y los motivos de su
    obsolescencia.

13
Estructuras básicas
6.3 Estructuras de Control. Bucles
  • En muchas ocasiones la forma más apropiada de
    expresar un algoritmo consiste en la repetición
    de una misma instrucción de manera controlada,
    una cantidad finita de veces determinada de
    antemano (al diseñar el programa) o en tiempo de
    ejecución (cada vez que se corre el programa).
  • Por ejemplo, podría ser necesario diseñar un
    algoritmo similar al de los cajeros automáticos,
    que solicite una clave al usuario y bloquee el
    acceso en caso de no ingresar la contraseña
    correcta luego de tres intentos. O bien, si se
    desea procesar grupos de datos ingresados por
    teclado o leídos desde un archivo, hasta que no
    se encuentren más datos.
  • Las estructuras algorítmicas que permiten
    realizar operaciones de este tipo se conocen con
    el nombre de estructuras repetitivas o
    iterativas.
  • Definicion Las estructuras que repiten una
    secuencia de instrucciones un número determinado
    de veces se denominan repetitivas o bucles y se
    denomina iteración a la ejecución de cada
    repetición.

14
Estructuras básicas
6.3 Estructuras de repeticion. Bucles
  • Ejemplo
  • Se desea sumar una lista de números que ingresa
    desde teclado (por ejemplo, edades de los alumnos
    de una clase). El algoritmo debería ingresar el
    valor y sumarlo a una variable SUMA que contenga
    las sucesivas sumas parciales.
  • ALGORITMO suma
  • INICIO
  • Suma0
  • LEER número
  • Suma suma número
  • LEER número
  • Suma suma número
  • .
  • FIN
  • Como podemos observar, si no utilizamos alguna
    instrucción de repetir, el algoritmo deberá
    realizar tantas lecturas y sumas como alumnos se
    procesen 10, 100, 1000,...

15
Estructuras básicas
6.3 Estructuras de repeticion. Bucles
  • Es evidente que el método no es óptimo, pero el
    ejemplo sirve para identificar las instrucciones
    que se repiten. En este caso, el bucle está
    formado por las instrucciones
  • LEER número
  • suma suma número
  • y la cantidad de iteraciones estará relacionada
    con el número de alumnos que se procesen durante
    la ejecución.
  • Entonces, las dos cuestiones importantes cuando
    se utilizan estructuras repetitivas son qué
    contiene el bucle? y cuántas veces se repite?
  • Las estructuras repetitivas se diferencian en la
    forma en que se produce la condición de fin del
    bucle y deberá utilizarse aquella más apropiada
    al problema particular de que se trate.
  • A continuación, veremos las más usuales

16
Estructuras básicas
6.3 Estructuras de repeticion. Bucles
  • 6.3.1 La estructura PARA (for)
  • Problema Se desea un programa que muestre en
    pantalla los números pares entre 1 y 99.
  • INICIO
  • ESCRIBIR 2
  • ESCRIBIR 4
  • ESCRIBIR 96
  • ESCRIBIR 98
  • FIN
  • Se dijo que la computadora es muy hábil para
    repetir tareas sencillas, como la del problema.
    Cuando se necesita que la computadora repita una
    operación, con una pequeña variación cada vez, se
    deben identificar las condiciones para la
    repetición, y expresar esta variación de una
    forma comprensible para la máquina.

17
Estructuras básicas
6.3 Estructuras de repeticion. Bucles
  • 6.3.1 La estructura PARA (for)
  • Problema Se desea un programa que muestre en
    pantalla los números pares entre 1 y 99.
  • En este caso, lo que se desea es una secuencia de
    números pares, que van desde 2 hasta 98. Estos
    números pueden expresarse como 2 x k, siendo k un
    entero que varía entre 1 y 98/2 49.
  • Cuando se conoce exactamente la cantidad de veces
    que es necesario repetir una instrucción, la
    estructura más apropiada para expresarlo como
    algoritmo es la estructura PARA. En este caso se
    puede escribir
  • INICIO
  • PARA k DESDE 1 HASTA 49
  • ESCRIBIR k 2
  • FIN-PARA
  • FIN

18
Estructuras básicas
6.3 Estructuras de repeticion. Bucles
  • 6.3.1 La estructura PARA (for)
  • Problema Se desea un programa que muestre en
    pantalla los números pares entre 1 y 99.
  • En este caso, lo que se desea es una secuencia de
    números pares, que van desde 2 hasta 98. Estos
    números pueden expresarse como 2 x k, siendo k un
    entero que varía entre 1 y 98/2 49.
  • Cuando se conoce exactamente la cantidad de veces
    que es necesario repetir una instrucción, la
    estructura más apropiada para expresarlo como
    algoritmo es la estructura PARA. En este caso se
    puede escribir
  • INICIO
  • PARA k DESDE 1 HASTA 49
  • ESCRIBIR k 2
  • FIN-PARA
  • FIN

Otra opción sería INICIO PARA i DESDE 2 HASTA
98 INCREMENTO 2 ESCRIBIR i FIN-PARA FIN
19
Estructuras básicas
6.3 Estructuras de repeticion. Bucles
  • 6.3.1 La estructura PARA (for)
  • Si ahora se solicita
  • Problema Se desea un programa que muestre en
    pantalla los números pares entre 1 y 200.
  • la solución mantiene su sencillez de expresión
  • INICIO
  • PARA N DESDE N HASTA 200 INCREMENTO 2
  • ESCRIBIR i
  • FIN-PARA
  • FIN

20
Estructuras básicas
6.3 Estructuras de repeticion. Bucles
  • 6.3.1 La estructura PARA (for)
  • La estructura PARA en forma general es
  • PARA variable DESDE inicial HASTA final
    INCREMENTO incremento
  • INSTRUCCIÓN
  • INSTRUCCIÓN
  • FIN-PARA
  • Donde
  • variable es el nombre de una variable de tipo
    numérico, en particular entero, definida en el
    programa, cuyos valores se irán modificando en
    cada repetición. Es común utilizar como nombre de
    esta variable i, que proviene de la palabra
    índice (index en inglés), y si se utilizan varias
    instrucciones PARA, emplear las letras siguientes
    del abecedario j, k, l.
  • inicial es el valor que toma la variable en la
    primera repetición.
  • final es el valor que toma la variable en la
    última repetición.
  • incremento es el incremento que recibirá la
    variable entre repeticiones, es decir, el valor
    que se le sumará a variable cada vez que se
    termine una repetición y antes de iniciar la
    siguiente. Si se omite, se considera que vale 1.
    También puede tomar valores negativos.

21
Estructuras básicas
6.3 Estructuras de repeticion. Bucles
  • 6.3.2 La estructura MIENTRAS (whiledo) y la
    estructura HASTA (repeatuntil)
  • En algunos casos no se conoce de antemano la
    cantidad de veces que será necesario repetir un
    conjunto de instrucciones para solucionar el
    problema, o bien es conveniente que estas
    instrucciones sean repetidas hasta alcanzar una
    determinada condición (llamada condición de
    parada). En estas situaciones se emplean
    estructuras repetitivas más generales que PARA,
    como las estructuras
  • MIENTRAS y HASTA.

22
Estructuras básicas
6.3 Estructuras de repeticion. Bucles
  • 6.3.2 La estructura MIENTRAS (whiledo) y la
    estructura HASTA (repeatuntil)
  • Problema Se desea un programa que calcule e
    informe el precio de una llamada telefónica, a
    partir del número de minutos ingresado por el
    operador, sabiendo que el precio por minuto es de
    0,23. Esta operación debe repetirse cada vez que
    el operador ingrese una cantidad de minutos mayor
    que 0, y detenerse en caso contrario.
  • Como se desconoce la cantidad de veces que se
    repetirá el cálculo del precio, y tampoco puede
    solicitarse al operador que indique este dato al
    inicio del programa, la estructura PARA no es
    apropiada para resolver el problema.
  • INICIO
  • LEER minutos
  • HACER
  • precio minutos 0,23
  • ESCRIBIR precio
  • LEER minutos
  • HASTA minutos lt 0
  • FIN

23
Estructuras básicas
6.3 Estructuras de repeticion. Bucles
  • 6.3.2 La estructura MIENTRAS (whiledo) y la
    estructura HASTA (repeatuntil)
  • Puede cuestionarse que si el operador ingresa un
    número menor que 0 la primera vez, el programa
    mostrará un valor incorrecto y solicitará un
    nuevo dato antes de detenerse.
  • Una solución alternativa sería
  • INICIO
  • LEER minutos
  • MIENTRAS minutos gt 0
  • precio minutos 0,23
  • ESCRIBIR precio
  • LEER minutos
  • FIN-MIENTRAS
  • FIN

En este caso, el operador puede ingresar un
número menor o igual a cero la primera vez que el
programa le solicita un dato, y el programa se
detendrá sin informar un precio erróneo. Es
importante notar que las condiciones de parada
son diferentes. Existen muchas posibilidades para
expresar la solución a este problema
24
Estructuras básicas
6.3 Estructuras de repeticion. Bucles
  • 6.3.2 La estructura MIENTRAS (whiledo) y la
    estructura HASTA (repeatuntil)
  • La estructura MIENTRAS tiene la forma
  • MIENTRAS condición
  • INSTRUCCIÓN
  • INSTRUCCIÓN
  • FIN-MIENTRAS
  • Al ejecutarse se evalúa condición, y en caso de
    resultar verdadera se ejecutan las instrucciones
    del bloque, mientras condición mantenga su valor
    verdadero.
  • La estructura HASTA toma la forma
  • HACER
  • INSTRUCCIÓN
  • INSTRUCCIÓN
  • HASTA condición
  • Se dice que MIENTRAS y HASTA son formas más
    generales de iterar que PARA porque esta última
    se puede expresar utilizando tanto MIENTRAS como
    HASTA.

25
Estructuras básicas
6.3 Estructuras de repeticion. Bucles
  • Problema Se desea un programa que muestre en
    pantalla los números pares entre 1 y 99.
  • que se resolvió utilizando PARA de la siguiente
    manera
  • INICIO
  • PARA k DESDE 1 HASTA 49
  • ESCRIBIR k 2
  • FIN-PARA
  • FIN
  • también puede expresarse utilizando
  • MIENTRAS
  • INICIO
  • k 1
  • MIENTRAS k lt 49
  • ESCRIBIR k 2
  • k k 1
  • FIN-MIENTRAS
  • FIN

O utilizando HASTA INICIO k 1 HACER ESCRIBIR
k 2 k k 1 HASTA k gt 49 FIN
26
Estructuras básicas
6.4 Terminaciones Anormales
  • Instrucción INTERRUMPIR (BREAK)
  • Esta instrucción se utiliza cuando se desea
    terminar un bucle en un lugar determinado del
    cuerpo del bucle sin esperar a que este termine
    de modo natural por su entrada o su salida. Esta
    instrucción corta el ciclo de ejecución, debe ser
    utilizada con precaución.
  • Ejemplo
  • LEER número
  • HACER
  • IF número lt 0 INTERRUMPIR
  • suma suma número
  • LEER número
  • HASTA número gt 100
  • La instrucción Interrumpir sale del bucle HACER y
    sigue con la instrucción siguiente a la
    instrucción HASTA.
  • La sentencia INTERRUMPIR (BREAK) se utiliza
    frecuentemente junto con una sentencia SI (IF)
    actuando como una condición interna del bucle.

27
Estructuras básicas
6.4 Terminaciones Anormales
  • Instrucción CONTINUAR (CONTINUE)
  • Esta instrucción hace que el flujo de ejecución
    salte el resto de un cuerpo del bucle para
    continuar con el siguiente bucle o iteración.
    Esta característica suele ser útil en algunas
    condiciones.
  • Ejemplo
  • PARA i DESDE 0 HASTA 20
  • SI (i mod 4 0 ) ENTONCES
  • CONTINUAR
  • FIN-SI
  • ESCRIBIR i, ,
  • FIN-PARA
  • En este ejemplo, si el valor de i es múltiplo de
    4, no escribe ese valor en la salida.
  • El resultado de este bucle será 1, 2, 3, 5, 6,
    7, 9, 10, 11, 13, 14, 15, 17, 18, 19.
  • La sentencia CONTINUAR no afecta la cantidad de
    veces que se debe ejecutar el bucle.

28
Estructuras básicas
6.5 Diseño de bucles. Bucles Anidados
  • En un algoritmo puede existir y es muy frecuente
    que existan 2 o más bucles. Dependiendo de la
    forma en que estén dispuestos, estos pueden ser
    anidados o independientes.
  • Decimos que los bucles están anidados cuando
    están dispuestos de forma tal que unos son
    interiores a otros y los bucles serán
    independientes cuando son extremos unos con
    otros.
  • Así como se podían anidar estructuras de
    selección, también es posible insertar un bucle
    dentro de otro. Las reglas para construir
    estructuras repetitivas anidadas son iguales en
    ambos casos la estructura interna debe estar
    incluida totalmente dentro de la externa y no
    puede existir solapamiento.

29
Estructuras básicas
6.5 Diseño de bucles. Bucles Anidados
30
Estructuras básicas
6.5 Diseño de bucles. Bucles Anidados
Write a Comment
User Comments (0)
About PowerShow.com