Publicado el 25 de Junio del 2018
4.324 visualizaciones desde el 25 de Junio del 2018
292,9 KB
4 paginas
Creado hace 7a (05/06/2017)
Ejemplo 1:
Dado el siguiente trozo de algoritmo analice y determine la validez de cada llamada a un
subalgoritmo.
Justifique cada una de sus respuestas.
SUBALGORITMO "UNO" (in x: entero, inout y: real)
SUBALGORITMO "DOS" (out x: lógico, in y: entero)
SUBALGORITMO "TRES" (inout x: entero)
:
ALGORITMO "PRINCIPAL"
COMENZAR
a: entero
b: real
c: lógico
:
DOS (a; b + 3)
TRES (x)
UNO (b/2.0, a)
TRES (4,c)
UNO (a, 2.3)
DOS(c, y)
Uno (a, b)
:
FIN
Primera llamada: DOS (a; b + 3) No es válida ya que a es de tipo entero y el primer
parámetro que pide DOS debe ser de tipo lógico. Por otra parte, el segundo parámetro de
DOS debe ser de tipo entero mientras que b+3 es de tipo real….real más entero da un
real
Segunda llamada: TRES(x) No es válida, x no está declarada.
Tercera llamada: UNO (b/2.0, a). No válida ya que b/2.0 es de tipo real y el primer
parámetro de UNO debe ser de tipo entero. Por otro lado a es de tipo entero y UNO pide
un real como segundo parámetro.
Cuarta llamada: TRES (4,c). No válida ya que TRES sólo tiene un parámetro.
Quinta llamada: UNO( a, 2.3). No válida. UNO pide el segundo como inout y 2.3 es una
constante
Sexta llamada: DOS( c,y). No válida ya que y no está declarada.
Séptima llamada: Uno (a,b). Válida.
nota: REPASAR ÁMBITO y VER EJECUCIÓN PROPUESTA EN TEORÍA Y PRACTICA
Ejemplo 2
Diseñe un algoritmo, en lenguaje de diseño, que permita ingresar en 10 números enteros
positivos y luego muestre por pantalla aquellos números que sean múltiplos de 8. Realice tres
subalgoritmos (Ingreso, MulDeOcho, Mostrar)
SUBALGORITMO “INGRESO” (out A: arreglo de entero, in LI, LS: entero)
COMENZAR
I: entero
I ← LI
MIENTRAS I <= LS HACER
ESCRIBIR ¨Ingrese un número entero”
LEER A[I]
MIENTRAS LEER A[I] < 0 HACER
ESCRIBIR ¨Ingrese un número entero”
LEER A[I]
FINMIENTRAS
I ← I+1
FINMIENTRAS
FIN
SUBALGORITMO “MulDeOcho” (in nro: entero, out es: lógico)
COMENZAR
SI nro // 8 = 0 ENTONCES
es ← VERDADERO
SINO
es ← FALSO
FINSI
FIN
SUBALGORITMO “MUESTRA” (in A: arreglo de entero, in LI, LS: entero)
COMENZAR
I: entero
SALIDA: lógico
PARA I DESDE li HASTA ls CON PASO 1 HACER
CALCULO( A[I], SALIDA)
SI salida = VERDADERO ENTONCES
ESCRIBIR “número:”, A[I]
FINSI
FINPARA
FIN
ALGORITMO “PRINCIPAL”
COMENZAR
ARR: arreglo[1..10] de entero
INGRESO (ARR, 1, 10)
MUESTRA (ARR, 1, 10)
FIN
Ejemplo 3:
Escriba un algoritmo que permita: Ingresar no más de 100 enteros positivos en un arreglo.
Ordenar los elementos ingresados en forma creciente. Mostrar los elementos del arreglo
ordenado. Buscar un elemento en el arreglo ordenado. Para ello se deberán definir 4
subalgoritmos además del algoritmo principal:
1. El subalgoritmo INGRESO que permite ingresar los valores enteros positivos.
2. El subalgoritmo ORDENO que permite ordenar los valores ingresados.
3. El subalgoritmo MOSTRAR que permita mostrar los elementos del arreglo.
4. El subalgoritmo BUSCAR que permite buscar un elemento x en el arreglo, informando
correctamente el resultados de la búsqueda.
SUBALGORITMO “INGRESO” (out A: arreglo de entero, in LI: entero, out
LS: entero) COMENZAR
I: entero
ESCRIBIR “Ingrese la cantidad de números a cargar”
LEER LS
MIENTRAS LS <= 0 v LS > 100 HACER
ESCRIBIR “ Ingrese un valor válido para la cantidad de
números a cargar”
LEER LS
FINMIENTRAS
PARA I DESDE LI HASTA LS CON PASO 1 HACER
ESCRIBIR ¨Ingrese un número entero”
LEER A[I]
MIENTRAS LEER A[I] < 0 HACER
ESCRIBIR ¨Ingrese un número entero”
LEER A[I]
FINMIENTRAS
FINPARA
FIN
SUBALGORITMO “ORDENO” (inout A: arreglo de entero, in LI, LS: entero)
COMENZAR
I, J, AUX: entero
PARA I DESDE LI HASTA LS-1 CON PASO 1 HACER
PARA J DESDE I+1 HASTA LS CON PASO 1 HACER
SI A[J] < A[I] ENTONCES
AUX A[I]
A[I] A[J]
A[J] AUX
FINSI
FINPARA
FINPARA
FIN
SUBALGORITMO “MOSTRAR” (in A: arreglo de entero, in LI, LS: entero)
COMENZAR
I: entero
PARA I DESDE li HASTA ls CON PASO 1 HACER
ESCRIBIR “-- ”, A[I]
FINPARA
FIN
SUBALGORITMO “BuscarEnOrdenados” (in A: arreglo de entero, in LI, LS,
X: entero, out es: lógico)
COMENZAR
I: entero
es ← FALSO
PARA I DESDE li HASTA lS CON PASO 1 HACER
SI A[I] = X ENTONCES
es VERDADERO
I LS +1
SINO
SI A[I] > X ENTONCES
I LS +1
FINSI
FINSI
FINPARA
FIN
ALGORITMO “PRINCIPAL”
COMENZAR
Como los elementos están
ordenados, si encuentro
uno mayor al que busco,
entonces ya puedo decir
que el elemento buscado
no se encuentra.
ARR: arreglo[1..100] de entero
LI, LS, X: entero
ES: LÓGICO
Li 1
INGRESO (ARR, LI, LS)
ORDENAR (ARR, LI, LS)
MOSTRAR (ARR, LI, LS)
ESCRIBIR “ Ingrese el número a buscar”
LEER X
BuscarEnOrdenados (ARR, LI, LS, X, ES)
SI ES = VERDADERO ENTONCES
ESCRIBIR “El número “, X, “si se encuentra”
SINO
ESCRIBIR “El número “, X, “NO se encuentra”
FINSI
FIN
Comentarios de: Algoritmos - Ejemplos resueltos (0)
No hay comentarios