Вы находитесь на странице: 1из 4

CI-2125 Computación I

Práctica 1

1. Para los siguientes enunciados de problemas, determine las especificaciones de entrada,


especificaciones de salida y casos especiales que pueden aclarar dicho enunciado.

a) Una de las actividades que realiza la Coordinación de Ingeniería Electrónica, es llevar el archivo
de los libros de tesis y pasantías larga que son parte de los requisitos para optar al título de
Ingeniero Electrónico. Además de llevar un control, se provee a los estudiantes de esta carrera
de una biblioteca que puede ser consultada con fines académicos. Se desea que usted realice un
programa que permita controlar la entrada de libros y los préstamos de los mismos.
 Especificaciones de entrada:
o Para cada libro, se solicita
Tipo (tesis o pasantía), título, fecha, autor(es)
o Para cada estudiante que hace un préstamo, se solicita
Carnet, Nombre y apellido, Título de libro, autor(es), fecha del préstamo, fecha de
devolución
o Los nombres, títulos y autores tienen formato texto
o Las fechas tienen formato dd/mm/aa, donde dd está en el rango 1-31, mm en el rango 1-
12, y aa en el rango 1970
o El carnet es formato numérico
o El tipo (tesis o pasantía) puede ser un caracter o un booleano
 Especificaciones de salida:
Se pueden producir los siguientes reportes
o Lista de Tesis o pasantías ordenadas por mes y año. El cual contiene título, autor(es) y
fecha
o Lista de estudiantes con préstamos activos ordenados por fecha del préstamo. El cual
contiene: fecha del préstamo, carnet y nombre del estudiante, fecha de devolución, si
está o no moroso.
o Cada reporte debe llevar el logo de la universidad y el nombre de la coordinación de
Ingeniería Electrónica como encabezado.
o Los reportes deben tener salida por pantalla, por impresora o enviarlo a alguna dirección
email

b) Usted es un fanático de beisbol y desea llevar un registro de todos los eventos ocurridos en las
finales de la liga nacional e internacional. Para ello se plantea hacer un programa que
simplifique este registro.

 Especificaciones de entrada:
o Se almacenarán datos de los equipos, los jugadores y los encuentros
o Para cada jugador, se solicita
Nombre Jugador, posición que juega, fecha en que entró al equipo, average, hits
conectados, etc.
o Para cada equipo, se solicita
Nombre del equipo, localidad o estado al que pertenece, liga (nacional o internacional),
logo, número de jugadores activos, lista de patrocinantes, etc
o Para cada encuentro, se solicita
Equipos participantes, lugar y fecha del encuentro, número de entradas vendidas, etc.
o Los nombres, lugares y posición tienen formato texto

1
o Las fechas tienen formato dd/mm/aa, donde dd está en el rango 1-31, mm en el rango 1-
12, y aa en el rango 1970
o Los demás campos son formato numérico
o El logo es un archivo gráfico

 Especificaciones de salida:
Se pueden producir los siguientes reportes
o Lista de jugadores por equipos ordenados por average. El cual contiene nombre del
jugador, posición y average. En este reporte debe ir el logo del equipo.
o Lista de patrocinantes por equipo. En este reporte debe ir el logo del equipo.
o Lista de equipos por liga. El cual contiene: la liga, los nombres de los equipos y sus
localidades, número de jugadores por equipo.
o Dado el mes y año, lista de encuentros, en la cual se detalla, la fecha del encuentro, el
lugar y los equipos participantes
o Los reportes deben tener salida por pantalla, por impresora o enviarlo a alguna dirección
email

2. Diseñe un algoritmo para resolver cada uno de los siguientes problemas, indique entradas,
salidas

a) Dados dos números naturales, decidir si uno es divisor del otro

Entradas: a,b (enteros)


Salidas: resultado (lógico: si o no)

Algoritmo:
Si b=0
Escribir “no existe división por cero”
Fin
Si el resto de dividir a entre b es cero
Resultado = si
En caso contrario
Resultado = no

b) Hallar la solución de una ecuación de segundo grado


Entradas: A,B,C (reales)
Salidas: raiz1, raiz2 (reales)

Algoritmo:
Si A es cero (la ecuación es de primer grado)
raiz1=0 y raiz2=(-C)/B
En caso contrario: Se calcula B2-4AC
Si el resultado es negativo
Escribir “las raíces son complejas”
Si el resultado es cero
raiz1=raiz2=(-B)/(2A)
Si el resultado es mayor que cero
raiz1=(-B)+(B2-4AC) y raiz2=(-B)-(B2-4AC)

c) Decidir si una palabra es palíndromo


Entradas: pal (cadena de caracteres)

2
Salidas: resultado (lógico: si o no)

Algoritmo:
N = longitud(pal)
Si N=0
Escribir “Cadena vacia”
Fin
En caso contrario
Hacer desde i=0 hasta N/2
Si la posición i de pal es diferente a la posición N-i
resultado=no
Fin
Si todos son iguales
resultado=si

3. Dadas las siguientes secuencias de pasos, decir si son o no algoritmos (justifique). En caso de
que no sean indique si se pueden modificar para obtener un algoritmo y realice los cambios
pertinentes.

a) Para hornear una torta realice los siguientes pasos:


i) Prenda el Horno a 350°
ii) Meta la torta en el horno
iii) Espere hasta que esté cocida
iv) Saque la torta del horno

El paso (iii) es ambiguo, por lo cual no puede ser un algoritmo. Debe ser más preciso, por ejemplo,
“espere una hora”. Este si es preciso, pero no garantiza que la torta esté cocida, ¿cómo podemos
hacerlo?

4.- Escriba algoritmos para los siguientes problemas. Utilice como formas de representación
diagramas de flujo y pseudocódigo
a) Dados tres números naturales, calcular el máximo y el mínimo de esos números

Ingresar a
Ingresar número a
Ingresar b Ingresar número b

Si a > b entonces
a>b max = a
min = b
maxa maxb Sino
minb mina max = b
min = a
FinSi

Devolver
max,min

3
b) Dados dos vectores A y B calcular su suma de ellos

En pseudocódigo:
Ingresar tamaño N
Ingresar vectores A,B

Inicializar k en 1
Mientras kN hacer
SkAk+Bk
kk+1
FinMientras

En diagramas de flujo:

Ingresar tamaño N
Ingresar vectores A y B

K0

no Devolver
k Vector S
N
si

SkAk+Bk
kk+1

Вам также может понравиться