Download pdf - AnaLisis de Enunciados 3

Transcript
  • Pgina 1 de 3 Resolucin de Problemas y Algoritmos -- 2015

    Recomendaciones para la resolucin de los ejercicios del Prctico 7

    El Prctico 7, Lenguaje de Diseo (Segunda Parte), tiene como objetivo principal continuar

    resolviendo problemas utilizando Lenguaje de Diseo, que en particular involucren el uso de

    estructuras de datos. Por lo tanto, para resolver los problemas enunciados en dicho prctico se deben

    elaborar soluciones que incorporen la utilizacin de variables estructuradas (arreglos).

    As, con el fin de abordar correctamente las soluciones, se presentan aqu algunas recomendaciones

    sobre cmo deben analizarse los enunciados de los ejercicios, para determinar todos los aspectos a

    considerar al plantear la solucin.

    1- Para ello es necesario preguntarse, por ejemplo:

    Cules son los procesos que debo implementar para dar solucin a lo planteado en el

    enunciado? Qu debe hacer el algoritmo?

    Qu datos se le piden al usuario? Qu datos deben ser resultado del proceso?

    Qu controles debo realizar sobre los datos?

    Necesito utilizar una variable estructurada o ms de una? Qu dice el enunciado al

    respecto?

    De qu dimensiones y de qu tipo deben ser las variables estructuradas a utilizar?

    Qu controles debo realizar al manipular las estructuras de datos?

    Es necesario implementar alguna estrategia o proceso especial para resolver el

    problema?

    2- Tambin es til graficar la/s estructura/s y analizar los diferentes procesos que se realizan sobre la/s

    misma/s, analizando:

    Cantidad de ndices necesarios para trabajar

    Valores iniciales que deben tomar los ndices

    Valores finales de los ndices en los recorridos

    Condiciones a evaluar y controles

    3- En general los diferentes procesos a realizar en una estructura de datos, en nuestro caso en un

    arreglo se implementan por medio de iteraciones, para lo cual es importante analizar:

    Cuntas veces se debe repetir la secuencia de pasos establecidas para el proceso?

    Utilizaremos la sentencia MIENTRAS o la sentencia PARA? Qu necesitamos para cada una de

    ellas?

    Cul es la condicin o las condiciones que deben evaluarse en la iteracin? Qu variables y qu

    datos utilizo para implementarlas?

    Es necesario forzar la salida de la iteracin en algn momento en particular? Cmo es posible

    hacerlo?

  • Pgina 2 de 3 Resolucin de Problemas y Algoritmos -- 2015

    Ejemplo 1:

    Escriba un algoritmo que calcule y almacene los 10 nmeros siguientes a un nmero entero

    positivo mayor que 7 ingresado por el usuario. Luego deber mostrar los valores calculados y

    las posiciones en las que se encuentran. Codifique en Lenguaje de Diseo.

    a) El algoritmo debe: o Calcular y almacenar los 10 nmeros siguientes a un nmero entero positivo mayor que 7. o Mostrar los valores calculados y las posiciones en las que se encuentran.

    b) El usuario ingresa el nmero inicial, el algoritmo calcula sus 10 nmeros siguientes y los almacena a medida que los va calculando

    c) Se debe controlar que el nro ingresado sea mayor que 7.

    d) Basta con la utilizacin de una nica estructura de datos, en la misma se almacenarn los 10 nmeros calculados por el algoritmo. Por lo tanto la dimensin debe ser 10 y el tipo entero. Para manipular el arreglo se debe utilizar un ndice (variable).

    e) Grficamente: Dado un Nro (mayor a 7), se calcular y almacenar de la siguiente manera:

    f) La repeticin debe realizarse 10 veces. En cada iteracin se debe sumar al nmero original el valor de una variable, la cual a su vez es incrementada en 1, para lograr el Nro+1, Nro+2, Nro+3, etc.

    Supongamos que en la variable numero se ha ingresado un valor correcto y se decide utilizar la sentencia PARA para implementar ambos procesos juntos (calcular y almacenar)

    PARA n DESDE 1 HASTA 10 CON PASO 1 HACER Arreglo1[i] numero + incremento Incremento incremento +1 I i+1

    FINPARA

    PARA n DESDE 1 HASTA 10 CON PASO 1 HACER Arreglo1[n] numero + n

    FINPARA

    En este caso se han utilizado 3 variables diferentes, n para controlar la cantidad de veces que se ejecuta la iteracin, i para ndice del arreglo (que debe ser inicializada en 1) e incremento para el clculo del

    nmero siguiente (tambin inicializada en 1)

    En este segundo caso se ha utilizado la variable n para el control de la iteracin, como ndice del arreglo y con

    incremento, esto es posible por las caractersticas de la solucin pero NO siempre es as.

  • Pgina 3 de 3 Resolucin de Problemas y Algoritmos -- 2015

    Ejemplo 2:

    Disear y codificar, en Lenguaje de Diseo, un algoritmo que concatene dos cadenas de

    caracteres ingresadas por el usuario. La longitud de cada cadena no debe superar los 20

    caracteres. Por ltimo, mostrar, las cadenas ingresadas y la concatenacin de las mismas.

    a) El algoritmo debe:

    o Permitir el ingreso de 2 cadenas de caracteres o Concatenar las 2 cadenas ingresadas o Mostrar las cadenas ingresadas y la cadena concatenada

    b) El usuario define la longitud de dichas cadenas e ingresa los caracteres de las misma. El algoritmo concatena ambas cadenas generando la cadena resultante

    c) Se debe controlar que la longitud de cada cadena no supere los 20 caracteres. Notar que ambas cadenas pueden ser de igual o diferente longitud.

    d) Es posible pensar la solucin con un arreglo para cada cadena y un tercer arreglo para la cadena concatenada. En este caso los tres arreglos sern de tipo carcter. De los tres arreglos, 2 sern de dimensin 20 y el tercero de dimensin 40 (ya que contendr las 2 cadenas ingresadas por el usuario). Podran utilizarse 3 ndices, uno para cada arreglo y 2 variables auxiliares que contengan la longitud real de cada cadena.

    e) Grficamente:

    EJEMPLO:

    f) Cmo seran los procesos para cargar cada cadena? Cmo sera el proceso para concatenar ambas cadenas?

    Ejercicio propuesto

    Piense si el enunciado del problema planteara utilizar UN NICO arreglo, De qu dimensin debera ser? Cmo identificara cada cadena por separado? Grafique la estructura y los elementos necesarios para implementar su solucin.