Descargar

Ciclos y estructuras en programación

Enviado por Pablo Turmero


Partes: 1, 2

    edu.red

    Máquina de acceso secuencial Una secuencia es una colección de elementos del mismo tipo. Pueden representarse de diferentes formas. Para acceder al elemento de la posición p, hay que recorrer los p-1 elementos anteriores. El recorrido termina cuando se alcanza la marca de fin de secuencia.

    edu.red

    Primitivas para el acceso secuencial Nombre_Tipo = TIPO Secuencia de Tipo_Base SC = TIPO Secuencia de Carácter SR = TIPO Secuencia de Real Comenzar (S), Avanzar (S), EA (S), Crear(S), Registrar (S, e), Marcar (S)

    edu.red

    PROBLEMA: Dada una secuencia con solo ceros y unos, calcular el número de ceros y unos que contiene. LÉXICO S: Secuencia de carácter; NumCeros, NumUnos : Entero; ALGORITMO NumCeros = 0; NumUnos = 0; Comenzar (S); MIENTRAS EA (S) < > MarcaFin HACER SI EA (S) = ‘0’ ENTONCES numCeros = numCeros + 1 SI_NO numUnos = numUnos + 1 FIN_SI; AVANZAR (S) FIN_MIENTRAS; Escribir(“Ceros = ” , numCeros,unos = ” , numUnos) FIN

    edu.red

    Componentes de una iteración ü    Inicialización: instrucciones que se ejecutan para inicializar las variables que participan de la iteración. ü    Condición de terminación: expresión booleana que determina cuando acaba la iteración. ü    Cuerpo: conjunto de instrucciones que se ejecutan mientras no se cumple la condición de terminación. ü    Finalización: conjunto de instrucciones que deben ejecutarse cuando la iteración termina.

    edu.red

    Se presentan tres composiciones iterativas en las que la finalización viene determinada por una condición. Estas son la composición MIENTRAS, REPETIR, ITERAR. Lo que las diferencia es el lugar donde se comprueba la condición: al principio, al final, en un punto intermedio del ciclo. Y también si es una condición de terminación o de continuación. Composiciones iterativas condicionales

    edu.red

    Diseño iterativo: noción de invariante El invariante de un ciclo, INV, es una condición que se cumple al inicio y a cada paso de la iteración. Cuando finaliza la iteración, el hecho de que se satisfaga el invariante y la condición de terminación implica que se alcanzó la solución.

    edu.red

    Pasos para una solucion iterativa Dada una especificación de un problema de recorrido de secuencias, la estrategia de una solución iterativa consta de los siguientes pasos: Identificar qué variables son necesarias a partir de la poscondición. Establecer el invariante del ciclo. Aplicar un razonamiento inductivo. Escribir el algoritmo iterativo.

    edu.red

    Composicion MIENTRASEsquema General Aini; //E0 MIENTRAS Cc HACER //Ek Acuerpo //Ek+1 FIN_MIENTRAS; //En Afin

    edu.red

    EJERCICIO Dado un conjunto de valores enteros, calcular e imprimir : promedio de los valores positivos, sumatoria de negativos. El lote termina cuando se ingresa un valor cero.

    edu.red

    LEXICO SumaPos, CanPos, SumaNeg, Numero : Entero; ALGORITMO SumaPos? 0; CanPos ? 0; SumNeg ? 0; Leer(Numero); MIENTRAS Numero < > 0 HACER SI Numero > 0 ENTONCES Inc(CanPos); SumaPos = SumaPos + Numero; SI_NO SumaNeg = SumaNeg + Numero FIN_SI FIN_MIENTRAS; Escribir(SumaPos, SumaNeg); FIN.

    edu.red

    Otros Ejemplos Escriba algoritmos que : Dado un numero entero en pesos lo desglose según los billetes legales. Dado un numero entero < = 106 descomponerlo en dd hh mm ss.

    edu.red

    LEXICO B100, B50, B20, B10, B5, B2, Monedas, Num : Entero; MAXIMO = 65000; Leer(Num) MIENTRAS Numero > 0 HACER SEGÚN Num Num 100 .. MAXIMO : B100?Num Div 100; Num?Num – B100*100; Num 50 .. 99 : B50?Num Div 50; Num?Num – B50*50; Num 20 .. 49 : B20?Num Div 20; Num?Num – B20*20; Num 10 .. 19 : B10?Num Div 10; Num?Num – B10*10; Num 5 .. 9 : B5?Num Div 5; Num?Num – B5*5; Num 2 .. 4 : B2?Num Div 2; Num?Num – B2*2; Num 1 : Monedas = 1; Num = 0; FIN_SEGUN FIN_MIENTRAS

    Partes: 1, 2
    Página siguiente