resoluciÓn de la primera recuperaciÓn del segundo parcial...

11
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 calculado en la posició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.

Upload: others

Post on 11-Mar-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RESOLUCIÓN DE LA PRIMERA RECUPERACIÓN DEL SEGUNDO PARCIAL …dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2017-11-09 · Primera Rec.- Segundo Parcial- - 10- - Dpto

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.

Page 2: RESOLUCIÓN DE LA PRIMERA RECUPERACIÓN DEL SEGUNDO PARCIAL …dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2017-11-09 · Primera Rec.- Segundo Parcial- - 10- - Dpto

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”

Page 3: RESOLUCIÓN DE LA PRIMERA RECUPERACIÓN DEL SEGUNDO PARCIAL …dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2017-11-09 · Primera Rec.- Segundo Parcial- - 10- - Dpto

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”

Page 4: RESOLUCIÓN DE LA PRIMERA RECUPERACIÓN DEL SEGUNDO PARCIAL …dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2017-11-09 · Primera Rec.- Segundo Parcial- - 10- - Dpto

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

Page 5: RESOLUCIÓN DE LA PRIMERA RECUPERACIÓN DEL SEGUNDO PARCIAL …dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2017-11-09 · Primera Rec.- Segundo Parcial- - 10- - Dpto

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

Page 6: RESOLUCIÓN DE LA PRIMERA RECUPERACIÓN DEL SEGUNDO PARCIAL …dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2017-11-09 · Primera Rec.- Segundo Parcial- - 10- - Dpto

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

Page 7: RESOLUCIÓN DE LA PRIMERA RECUPERACIÓN DEL SEGUNDO PARCIAL …dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2017-11-09 · Primera Rec.- Segundo Parcial- - 10- - Dpto

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

Page 8: RESOLUCIÓN DE LA PRIMERA RECUPERACIÓN DEL SEGUNDO PARCIAL …dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2017-11-09 · Primera Rec.- Segundo Parcial- - 10- - Dpto

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

Page 9: RESOLUCIÓN DE LA PRIMERA RECUPERACIÓN DEL SEGUNDO PARCIAL …dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2017-11-09 · Primera Rec.- Segundo Parcial- - 10- - Dpto

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

Page 10: RESOLUCIÓN DE LA PRIMERA RECUPERACIÓN DEL SEGUNDO PARCIAL …dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2017-11-09 · Primera Rec.- Segundo Parcial- - 10- - Dpto

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

Page 11: RESOLUCIÓN DE LA PRIMERA RECUPERACIÓN DEL SEGUNDO PARCIAL …dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2017-11-09 · Primera Rec.- Segundo Parcial- - 10- - Dpto

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.