Ejemplo 1: Diseñar tres subalgoritmos, en lenguaje de diseño, que

Anuncio
Resolución de Problemas y Algoritmos
Ejemplo 1: Diseñar tres subalgoritmos, en lenguaje de diseño, que permitan:
 El primero, el ingreso de 20 números enteros en un arreglo.
 El segundo, devolver VERDADERO si encuentra en el arreglo un número x (ingresado por el
usuario).
 El tercero, determinar cuántas veces aparece el “número y” (ingresado por el usuario), en
el arreglo y lo informe por pantalla.
Finalmente codificar el algoritmo que invoque a estos tres subalgoritmos.
Subalgoritmo “ingreso” (out Ar1: arreglo de entero, in Li, Ls:entero)
COMENZAR
Observe el uso de los
parámetros relacionados
con la variable arreglo.
I: entero
PARA I DESDE Li HASTA Ls CON PASO 1 HACER
ESCRIBIR “ingrese un número”
LEER Ar1[I]
Tipo de dato
FINPARA
FIN
Subalgoritmo “buscar-x” (in Ar1 arreglo de entero, in Li, Ls, x: entero, out B: logico)
Se inicializa B con
el valor FALSO
COMENZAR
i: entero
BFALSO
Clase de
parámetro
Observar la clase de parámetros y
el tipo de dato utilizados según las
entradas o salidas del subalgoritmo
PARA i DESDE Li HASTA Ls CON PASO 1 HACER
SI (Ar1[i] = x ) ENTONCES
B VERDADERO
iLs+1
Recurso utilizado para forzar la
salida de la iteración cuando se
encuentra el valor buscado
FINSI
FINPARA
FIN
Subalgoritmo “contar-y” (in Ar1 arreglo de entero, in Li, Ls, y: entero)
COMENZAR
i, cant: entero
Se pueden declarar variables dentro del
subalgoritmo, las cuales serán locales al mismo
cant0
PARA i DESDE Li HASTA Ls CON PASO 1 HACER
SI (Ar1[i] = y ENTONCES
cantcant + 1
Observar que el subalgoritmo cuenta las
apariciones del “número y” en el arreglo
y además realiza el informe por pantalla
en vez de devolverlo mediante un
parámetro de salida al algoritmo
principal.
FINSI
FINPARA
ESCRIBIR “el numero”,y, “ aparece la siguiente cantidad de veces:”
ESCRIBIR cant
FIN
1
Resolución de Problemas y Algoritmos
Algoritmo “ejemploUno”
COMENZAR
ARR1 [1..20] de entero
x, y: entero
esta-x: logico
Invocación al subalgoritmo “ingresar” con los parámetros
actuales: el arreglo, el límite inferior y superior del mismo
ingresar (ARR1, 1,20)
ESCRIBIR “Ingrese el número a buscar x”
LEER x
Para pedirle al usuario el ingreso de un valor
y luego almacenarlo en la variable x
buscar-x (ARR1,1,20, x, estax)
SI (esta-x = VERDADERO) ENTONCES
Aquí el algoritmo principal utiliza el valor devuelto por el
subalgoritmo (en esta-x) para decidir qué imprime por pantalla
ESCRIBIR “El número”, x , “se encuentra en el arreglo”
SINO
ESCRIBIR “El número”, x , “no se encuentra en el arreglo”
FINSI
ESCRIBIR “Ingrese el número a buscar y”
LEER y
contar-y (ARR1, 1, 20, y)
FIN
Ejercicio Propuesto
1.
2
Modificar el subalgoritmo contar-y para que el número de veces en las que aparece el
entero y sea mostrado por el módulo que lo invocó.
Resolución de Problemas y Algoritmos
Ejemplo 2: Escriba un algoritmo que permita ingresar no más de 100 caracteres. Luego, el
algoritmo deberá:
 Mostrar todos los caracteres ingresados.
 Mostrar todos los caracteres ubicados en posiciones pares.
 Mostrar todos los caracteres ubicados en posiciones impares
 Mostrar los caracteres ubicados desde una posición inicial hasta una posición final y con
un cierto salto.
Las tareas de ingreso y muestra deben ser implementadas mediante subalgoritmos. El
subalgoritmo Muestra deberá ser invocado, con los parámetros correspondientes, 4 veces en
el algoritmo principal.
Observar la clase de los parámetros y
el tipo de datos de los mismos.
SUBALGORITMO “INGRESO” (out Chars: arreglo de caracter, in Li: entero, out Ls: entero)
COMENZAR
I:entero
Observe el control que se realiza
ESCRIBIR “ingrese la CANTIDAD de caracteres que desea ingresar”
para establecer la cantidad de
LEER Ls
valores a ingresar.
MIENTRAS Ls<0 v Ls >100 HACER
ESCRIBIR “POR FAVOR INGRESE NUEVAMENTE LA CANTIDAD DE CARACTERES”
LEER Ls
FINMIENTRAS
PARA I DESDE Li HASTA Ls CON PASO 1 HACER
ESCRIBIR “ingrese el carácter ”
LEER Chars [I]
FINPARA
FIN
Estos parámetros son los recomendables para
utilizar en cualquier subalgoritmo que trabaje
con arreglos: arreglo, límite inferior y superior y
además el valor para el PASO
SUBALGORITMO “MUESTRA” (in chars: arreglo de caracter, in inicio, fin, pasoj: entero)
I:entero
COMENZAR
PARA I DESDE inicio HASTA fin CON PASO pasoj HACER
Observe el uso de los parámetros
relacionados con la variable arreglo y
ESCRIBIR chars [I]
la forma en que se utilizan para
FINPARA
realizar el recorrido en el mismo.
FIN
3
Resolución de Problemas y Algoritmos
ALGORITMO “CIEN_CHAR”
COMENZAR
I: entero
Arr[1..100]: arreglo de caracter
X, Y, Z,N: entero
INGRESO(Arr,1,N)
MUESTRA(Arr,1,N,1)
Permite mostrar todos los elementos del arreglo
MUESTRA(Arr,2,N,2)
Permite mostrar los elementos del arreglo ubicados en las posiciones pares del mismo
MUESTRA(Arr,1,N,2)
Permite mostrar los elementos del arreglo ubicados en las posiciones impares del mismo
ESCRIBIR “ingrese posición inicial del arreglo que desea mostrar”
LEER X
MIENTRAS X<0 v X >N HACER
ESCRIBIR “por favor ingrese nuevamente”
LEER X
FINMIENTRAS
ESCRIBIR “ingrese posición final del arreglo que desea mostrar”
LEER Y
MIENTRAS Y<X v Y >N HACER
ESCRIBIR “por favor ingrese nuevamente”
LEER Y
FINMIENTRAS
ESCRIBIR “ingrese el salto para recorrer arreglo”
LEER Z
MIENTRAS Z< 0 HACER
ESCRIBIR “por favor ingrese nuevamente”
LEER Z
FINMIENTRAS
Observar Y ANALIZAR Los
distintos controles realizados.
Podrían implementarse otros
controles y modificar las
opciones.
MUESTRA(ARR,X,Y,Z)
FIN
Ejercicio Propuesto
1. Modifique el subalgoritmo INGRESO para que permita ingresar caracteres en un arreglo de
cualquier manera: del primero al último, del último al primero, de dos en dos, de uno en uno,
entre otras.
4
Descargar