Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Resolución de Problemas y Algoritmos - Ing. en Computación e Ing. en Informática Año 2017
Primera Rec.- Segundo Parcial- - 1- - Dpto. de Informática-
RESOLUCIÓN DE LA PRIMERA RECUPERACIÓN DEL SEGUNDO PARCIAL
Nota: Entregar cada ejercicio escrito en tinta y en hoja separada. El parcial se aprueba con el 70 % y para promocionar se necesita obtener al menos un 80 %.
TEMA 1
Ejercicio 1: Dado el siguiente algoritmo y subalgoritmo:
SUBALGORITMO "CARGAR"(out Datos: arreglo de real , in Li:entero, in Lf:entero, in
Incre:entero)
COMENZAR
j : entero
PARA j DESDE Li HASTA Lf CON PASO Incre HACER
Si j / /2 = 0 ENTONCES
LEER Datos[ j]
SINO
Datos[ j] ← Datos [ j+1] *3
FINSI
FINPARA
FIN
ALGORITMO "EJEMPLO"
COMENZAR
Nros: arreglo [1 . . 6 ] de real
i , Aux: entero
Aux ← 1
MIENTRAS (Aux = 1) HACER
CARGAR (Nros, 6, 1,-1)
PARA i DESDE 1 HASTA 6 CON PASO 2 HACER
ESCRIBIR " El valor ca lculado en la posic ión:" , i
ESCRIBIR " es:" , Nros[ i]
FINPARA
ESCRIBIR " Para seguir ingrese 1"
LEER Aux
FINMIENTRAS
FIN
Se pide:
a) Realice el diagrama de flujo del programa completo.
Resolución de Problemas y Algoritmos - Ing. en Computación e Ing. en Informática Año 2017
Primera Rec.- Segundo Parcial- - 2- - Dpto. de Informática-
SUBALGORITMO “CARGAR”
Resolución de Problemas y Algoritmos - Ing. en Computación e Ing. en Informática Año 2017
Primera Rec.- Segundo Parcial- - 3- - Dpto. de Informática-
ALGORITMO “EJEMPLO”
Resolución de Problemas y Algoritmos - Ing. en Computación e Ing. en Informática Año 2017
Primera Rec.- Segundo Parcial- - 4- - Dpto. de Informática-
b) Ejecute el programa para los valores de entrada: 23,5 – 45,7 -12,6 - 0 (en ese orden).
ACCIONES
ALGORITMO "EJEMPLO" SUBALGORITMO "CARGAR"
PANTALLA i Aux
Nros Li Lf Incre j
Datos
1 2 3 4 5 6 1 2 3 4 5 6
Aux ← 1 1
Aux = 1 ? V
CARGAR (Nros,6,1,-1) 6 1 -1
j ← Li 6
j >= Lf ? V
j //2 =0 ? V
LEER Datos [j] 23,5
j ← j – Incre 5
j >= Lf ? V
j //2 =0 ? F
Datos[j] ← Datos[j+1]*3 70,5
j ← j – Incre 4
j >= Lf ? V
j //2 =0 ? V
LEER Datos [j] 45,7
j ← j – Incre 3
j >= Lf ? V
j //2 =0 ? F
Datos[j] ← Datos[j+1]*3 137,1
j ← j – Incre 2
j >= Lf ? V
j //2 =0 ? V
LEER Datos [j] 12,6
Resolución de Problemas y Algoritmos - Ing. en Computación e Ing. en Informática Año 2017
Primera Rec.- Segundo Parcial- - 5- - Dpto. de Informática-
j ← j – Incre 1
j >= Lf ? V
j //2 =0 ? F
Datos[j] ← Datos[j+1]*3 37,8
j ← j – Incre 0
j >= Lf ? F
retorno de CARGAR 37,8 12,6 137,1 45,7 70,5 23,5
i ← 1 1
i <= 6 ? V
ESCRIBIR "El valor calculado en la posición:", i El valor calculado en la posición: 1
ESCRIBIR " es:", Nros[i] es: 37,8
i ← i + 2 3
i <= 6 ? V
ESCRIBIR "El valor calculado en la posición:", i El valor calculado en la posición: 3
ESCRIBIR " es:", Nros[i] es: 137,1
i ← i + 2 5
i <= 6 ? V
ESCRIBIR "El valor calculado en la posición:", i El valor calculado en la posición: 5
ESCRIBIR " es:", Nros[i] es: 70,5
i ← i + 2 7
i <= 6 ? F
ESCRIBIR " Para seguir ingrese 1" Para seguir ingrese 1
LEER Aux 0
Aux = 1 ? F
Resolución de Problemas y Algoritmos - Ing. en Computación e Ing. en Informática Año 2017
Primera Rec.- Segundo Parcial- - 6- - Dpto. de Informática-
Ejercicio 2: (Lea el enunciado COMPLETO antes de comenzar a resolver)
Diseñar y codificar, en Lenguaje de Diseño, un algoritmo que permita ingresar una cadena de hasta 25
caracteres. Luego, el programa debe insertar o eliminar un carácter cualquiera x ingresado por el usuario.
Para el desarrollo del programa deberá tener en cuenta todas las premisas siguientes:
a) El usuario debe ingresar si desea insertar o eliminar un carácter.
b) El usuario debe ingresar el carácter x con el que desea trabajar.
c) Definir un único subalgoritmo que permita el ingreso de la cadena de caracteres.
d) Definir un subalgoritmo insertar que permita realizar la inserción de un carácter en la última posición
de la cadena.
e) Definir un subalgoritmo que permita eliminar el carácter x que fue indicado por el usuario. Deben
Eliminarse todas las apariciones de dicho carácter.
Ejemplo de Inserción: Carácter a insertar “P” Estado del arreglo antes de realizar la inserción
i b c o b s r i r u c i o b a l Estado del arreglo después de realizar la inserción
i b c o b s r i r u c i o b a l P Ejemplo de Eliminación: Carácter a eliminar “i” Estado del arreglo antes de realizar la eliminación
i b c o b s r i r u c i o b a l Estado del arreglo después de realizar la inserción
b c o b s r r u c o b a l
SUBALGORITMO “Ingresar” (out AR: arreglo de carácter, in li, ls, p: entero)
COMENZAR I: entero PARA I DESDE li HASTA ls CON PASO p HACER ESCRIBIR “Ingrese un carácter” LEER AR [I] FINPARA
FIN
SUBALGORITMO “Insertar” (inout AR: arreglo de carácter, inout ls: entero, in car: caracter)
COMENZAR AR [ls+ 1] ← car ls← ls +1 FIN
Resolución de Problemas y Algoritmos - Ing. en Computación e Ing. en Informática Año 2017
Primera Rec.- Segundo Parcial- - 7- - Dpto. de Informática-
SUBALGORITMO “Eliminar” (inout AR: arreglo de carácter, in li: entero, inout ls: entero, in p: entero, in car: caracter)
COMENZAR J, I: entero PARA I DESDE li HASTA ls CON PASO p HACER SI AR [I] = car ENTONCES PARA J DESDE I HASTA ls-1 CON PASO 1 HACER AR [J] ← AR [J+1] FINPARA ls← ls- 1 FINSI FINPARA
FIN ALGORITMO “Cadena”
COMENZAR Cad: arreglo [1..26] de caracter
Car: caracter
Cant, opc: entero
ESCRIBIR “Ingrese cantidad de caracteres a ingresar”
LEER Cant
MIENTRAS Cant < 0 Cant > 25 HACER
ESCRIBIR “Ingrese nuevamente la cantidad de caracteres”
LEER Cant
FINMIENTRAS
Ingresar (Cad, 1, Cant, 1)
ESCRIBIR “Ingrese la opción que desea: 1: Insertar carácter- 2: Eliminar carácter”
LEER opc
MIENTRAS opc <> 1 Λ opc <> 2 HACER
ESCRIBIR “Ingrese nuevamente la opción”
LEER opc
FINMIENTRAS
ESCRIBIR “Ingrese carácter”
LEER Car
SI opc =1 ENTONCES
Insertar (Cad, ls, Car)
SINO
Eliminar (Cad, 1, Cant, 1, Car)
FINSI
FIN
Resolución de Problemas y Algoritmos - Ing. en Computación e Ing. en Informática Año 2017
Primera Rec.- Segundo Parcial- - 8- - Dpto. de Informática-
TEMA 2
Ejercicio 3: Se necesita almacenar los datos que se gestionan en una empresa de alquiler de autos. Por cada vehículo se registran los siguientes datos:
característica (3, 4 o 5 puertas), marca (Fiat, Renault, Peugeot, Toyota) y si se encuentra disponible o no. Además se desea almacenar la información necesaria
para generar promedios de marcas más alquiladas.
Se pide diseñar y dibujar de qué manera sería apropiado estructurar el almacenamiento de los datos. Justifique su respuesta. No se pide realizar NINGÚN
algoritmo.
característica marca disponibilidad característica marca disponibilidad ……………………………….. característica marca disponibilidad
1 2 3 4 5 6
Información del auto 1 Información del auto 2 ….…………………..…………..…… Información del auto n
Se supone la existencia de 30 autos. Y como por cada auto se almacenan 3 datos, se necesitará un arreglo de 90 posiciones:
Autos: arreglo [1..90] de entero
Por cada vehículo se almacena la siguiente información, la cual se decodificará de la siguiente manera:
Característica, la cual hacía mención a la cantidad de puertas del vehículo. Se almacenará un 3, 4 o 5.
Marca: se ingresará un 1 si es Un Ford, un 2 si es un Renault, un 3 si es un Peugeot o un 4 si es de marca Toyota.
Disponibilidad: se almacenará un 1 si hay disponibilidad o un 0 si no hay disponibilidad.
Por Ejemplo:
3 1 0 5 4 1 3 2 0
1 2 3 4 5 6 88 89 90
Información del auto 1 Información del auto 2 Información del auto 30
Resolución de Problemas y Algoritmos - Ing. en Computación e Ing. en Informática Año 2017
Primera Rec.- Segundo Parcial- - 9- - Dpto. de Informática-
Además para almacenar la información referente a los promedios, se declarará un arreglo de 5 posiciones: uno por cada una de las marcas que tiene la
agencia y una posición para almacenar el acumulado de autos alquilados, independientemente de su marca.
Marcas: arreglo [1..5] de entero
Cantidad de autos alq. de la marca 1 Cantidad de autos alq. de la marca 2 Cantidad de autos alq. de la marca 3 Cantidad de autos alq. de la marca 4 Cantidad total de autos alquilados
1 2 3 4 5
Por Ejemplo:
5 8 2 3 18
1 2 3 4 5
Resolución de Problemas y Algoritmos - Ing. en Computación e Ing. en Informática Año 2017
Primera Rec.- Segundo Parcial- - 10- - Dpto. de Informática-
Ejercicio 4: Analice detenidamente el siguiente algoritmo y modifíquelo sacando ventaja de lo que hace. En
el algoritmo principal del nuevo programa solamente se realizaran las declaraciones, inicializaciones y las
invocaciones correspondientes.
ALGORITMO “ARREGLOS”
COMENZAR
PRIMERO : arreglo [1..10] de caracter
SEGUNDO : arreglo [1..20] de caracter
TERCERO : arreglo [1..100] de caracter
X: entero
JE: entero
PARA X DESDE 1 HASTA 10 CON PASO 1 HACER
LEER PRIMERO [X]
FINPARA
PARA JE DESDE 20 HASTA 10 CON PASO -2 HACER
LEER SEGUNDO [JE]
FINPARA
JE ← 15
MIENTRAS JE <= 30 HACER
LEER TERCERO [JE]
JE← JE + 1
FINMIENTRAS
FIN
ALGORITMO “ARREGLOS”
COMENZAR
PRIMERO : arreglo [1..10] de caracter
SEGUNDO : arreglo [1..20] de caracter
TERCERO : arreglo [1..100] de caracter
INGRESAR (PRIMERO, 1, 10, 1 )
INGRESAR (SEGUNDO, 20, 10, -2 )
INGRESAR (TERCERO, 15, 30, 1 )
FIN
SUBALGORITMO “Ingresar” (out AR: arreglo de caracter, in li, ls, p: entero)
COMENZAR
I: entero
PARA I DESDE li HASTA ls CON PASO p HACER
ESCRIBIR “Ingrese un carácter”
LEER AR [I]
FINPARA
FIN
Resolución de Problemas y Algoritmos - Ing. en Computación e Ing. en Informática Año 2017
Primera Rec.- Segundo Parcial- - 11- - Dpto. de Informática-
TEMA 3
Ejercicio 5:
a) Simbolizar las siguientes frases utilizando cuantificadores, variables, constantes, símbolos de función
y símbolos de predicado. Para cada una de ellas definir el vocabulario a necesario para que sean
formulas del lenguaje de primer orden La y aclarar sobre que universo trabaja:
1. Los alumnos de Lógica 1 deben regularizar la materia para poder cursas Lógica 2.
Universo: alumnos de la materia de Lógica 1
BL = {F, P, C}
F= conjunto vacío
C= conjunto vacío
P= {R, L} donde los símbolos de predicado R y L son unarios y pertenecen al universo
R (x)= {x/x regulariza Lógica 1}
L (x)= {x/x cursa Lógica 2}
(∀x (R(x) L(x)))
2. La suma de un número par y un número impar es impar.
Universo: números naturales
BL = {F, P, C}
F= {g} donde g es una función binaria y se interpreta como g(x, y) = x+ y
C= conjunto vacío
P= {R, S} donde los símbolos de predicado R y S son unarios y pertenecen al universo
R (x) = {x/x es par}
S (x)= {x/x es impar}
(∀x (∀y (R(x) S (y) S (g(x, y)))))
b) Sea el lenguaje de primer orden La cuyo vocabulario a contiene dos símbolos de función l, m (unarias),
un símbolo de constante e y dos símbolos de relación binarios R y P .Se pide: Decidir cuáles de las
siguientes expresiones pertenecen al lenguaje y cuáles no. Para el caso que pertenezcan al lenguaje
determinar si son términos, formulas atómicas o formulas. Para las que no pertenezcan al lenguaje
indique el/los motivo/s.
1. (∃x(R(l(y),m(x)) P(R(x, y), y)))
No pertenece al lenguaje, porque los argumentos de un predicado deben ser términos.
2. R(m(y),x)
Pertenece al lenguaje y es una fórmula atómica.
3. (∀y(P(y, e) R(y, x)))
Pertenece al lenguaje y es una fórmula.
4. (R(l(y),m(x)) P(x, y))
Pertenece al lenguaje y es una fórmula.