Está en la página 1de 31

Universidad Catlica Del Norte

Facultad de Ingeniera y Ciencias Geolgicas


Departamento de Ingeniera en Sistemas y Computacin
Computacin Bsica (CC-434)
Gua de Ejercicios Primera Prueba
I Semestre 2006
Algoritmos Bsicos, Series y Productorias
Profesor: Carlos Monardes C.

Ayudante: Hernn Cceres V.

Problema 1 (Prueba1, Introduccin a la Computacin, 10/05/2000)


La direccin de trnsito de la municipalidad de Antofagasta tiene la informacin
de los autos existentes en la ciudad. Considerando que los datos se ingresan por
pantalla y que cada registro tiene el siguiente formato:
Patente, marca, modelo, ao, nombre _ dueo, precio, color, uso
Donde uso puede tener 2 valores, 1 2. Si es 1 significa que es un auto particular,
si es 2 es colectivo. Fin de datos: Patente = AAA.
Se le pide que disee un algoritmo en pseudocdigo que entregue los siguientes
resultados:
a) Cantidad de autos existentes en la ciudad.
b) Cantidad de autos de color amarillo.
c) Antigedad media del parque automotriz antofagastino.
d) Valor de cada permiso de circulacin. El valor del permiso de circulacin
corresponde al 5% del precio del auto. Considere que para los autos del
ao 1999 y posterior, se le debe agregar un 3% extra sobre el precio del
auto (es decir un 8%).
e) Total de ingresos de la municipalidad por concepto de permisos de
circulacin.
f) Cantidad de autos que tiene Juan_Perez.
g) Porcentaje de autos particulares.

Solucin:
Program Autos
Begin
CAC 0
{Se inicializa el contador de autos colectivos}
CAA 0
{Se inicializa el contador de autos amarillos}
ACA 0
{Se inicializa el acumulador de aos}
IN 0
{Se inicializa el acumulador de ingresos}
CAJP 0
{Se inicializa el contador de autos de Juan Perez}
CAP 0
{Se inicializa el contador de autos particulares}
Read (PAT)
While (PAT <> AAA) do
Read (MAR, MOD, AO, ND, PRE, COL, USO)
If (USO = 1) then
CAP CAP + 1
Else
CAC CAC + 1
End if
Pgina 1 de 31

If (COL = Amarillo) then


CAA CAA + 1
End if
ACA ACA + 1
If (AO >= 1999) then
VPC PRE * 0.08
Else
VPC PRE * 0.05
End if
Write (el valor del permiso de circulacin es:, VPC)
IN IN + VPC
If (ND = Juan_Perez) then
CAJP CAJP + 1
End if
Read (PAT)
End while
CTA CAP + CAC
Write (en Antofagasta hay:, CTA, autos)
Write (en Antofagasta hay:, CAA, autos amarillos)
If (CTA > 0) then
AM ACA / CTA
Else
AM 0
End if
Write (la antigedad media es:, AM, aos)
Write (Los ingresos de la municipalidad son:, IN, pesos)
Write (Juan_Perez tiene:, CAJP, autos)
If (CTA > 0) then
PAP (CAP / CTA)*100
Else
PAP 0
End if
Write (el porcentaje de autos particulares es:, PAP, %)
End
Problema 2 (Prueba1, Introduccin a la Computacin , 19/05/1999)
Se debe disear un algoritmo en pseudocdigo que se encargue de obtener e
imprimir, entre otras cosas los sueldos de los empleados de la empresa FINSAL
S.A.. Por cada empleado, viene un registro con su RUT, sexo (1: hombre, 2: mujer),
nombre, sueldo base, categora y cantidad de cargas de ese empleado. A
continuacin, por cada carga de ese empleado viene un registro con el RUT de la
carga, nombre, sexo (1: nombre, 2: mujer) y edad. Fin De Datos: sueldo base =
9999999.
Se sabe que el sueldo de cada empleado es el sueldo base + asignacin de zona
+ bono por cargas familiares. Si la categora del empleado es A, la asignacin de
zona es $20.000; si es B es de $30.000; si es C es de $40.000. En cualquier otro caso
es el 5% del sueldo base.

Pgina 2 de 31

En tanto, con respecto al bono por cargas familiares, si la edad de la carga es


menor o igual a 2, entonces el bono es de $5.000; si la edad de la carga es mayor
que 2 y menor o igual a 21, entonces el bono es de $10.000; si la edad de la carga
es mayor que 21, entonces no hay bono (el bono es $0). Se debe calcular e
imprimir adems:
a) Porcentaje de empleados hombres.
b) Porcentaje de empleadas mujeres con sueldo sobre $1.000.000 (con
respecto al total de mujeres).
c) Cantidad de trabajadores con ms de 5 cargas familiares.
d) Empleado con menor sueldo.
e) Empleada mujer con mayor sueldo y que posea al menos una carga
familiar.

Solucin:
Program FINSAL S.A.
Begin
CTH 0
{Se inicializa el contador total de hombres}
CTM 0
{Se inicializa el contador total de mujeres}
CMSA 0 {Se inicializa el contador de mujeres con sueldo alto}
CT5C 0 {Se inicializa el contador de trabajadores con ms de 5
cargas familiares}
Mayor -999, Menor 10000000
Read (RUT, Sexo, NOM, SB)
While (SB <> 9999999) do
Read (CAT, CCF)
If (Sexo = 1) then
CTH CTH + 1
Else
CTM CTM + 1
If (SB > 1000000) then
CMSA CMSA + 1
End if
If (SB > Mayor) and (CCF >= 1) then
Mayor SB
NMayor NOM
End if
End if
Case CAT of
A: AZ 20000
B: AZ 30000
C: AZ 40000
Else
AZ SB*0.05
End case
Bono 0

Pgina 3 de 31

For I = 1 to CCF do
Read (RUTC, NOMC, SexoC, Edad)
If (Edad <= 2) then
Bono Bono + 5000
Else
If (Edad <= 21) then
Bono Bono + 10000
Endif
End if
End for
SF SB + AZ + Bono
Write (el sueldo de:, NOM, es:, SF)
If (CCF > 5) then
CT5C CT5C + 1
End if
If (SB < Menor) then
Menor SB
NMenor NOM
End if
Read (RUT, Sexo, NOM, SB)
End while
CTT CTM + CTH
If (CTT > 0) then
PEH (CTH / CTT)*100
Else
PEH 0
End if
Write (el porcentaje de empleados hombres es:, PEH, %)
If (CTM > 0) then
PMSA (CMSA / CTM)*100
Else
PMSA 0
End if
Write (el porcentaje de mujeres con sueldo mayor a $1.000.000 es:
PMSA, %)
Write (existen, CT5C, trabajadores con ms de 5 cargas familiares)
Write (el empleado con menor sueldo es:, NMenor)
Write (la empleada mujer con mayor sueldo y con al menos una
carga familiar es:, NMayor)
End
Problema 3 (Prueba1, Computacin Bsica, 10/05/2000)
Una empresa constructora de Antofagasta le encarga a Ud. que le desarrolle un
algoritmo en pseudocdigo para manejar informacin de los N edificios que
construir en los prximos 5 aos. Los departamentos pueden ser de 3 tipos, los del
tipo 1 tienen menos de 100 [m2], los del tipo 2 tienen entre 100 y 140 [m2] y los del
tipo 3 sobre 140 [m2].

Pgina 4 de 31

Los datos se ingresan por teclado, donde como primer dato viene N. Luego
se debe ingresar la siguiente informacin por edificio:
Nombre del edificio
Metros cuadrados del edificio
Cantidad total de departamentos tipo 1
Cantidad total de departamentos tipo 2
Cantidad total de departamentos tipo 3
Se pide desplegar por pantalla:

Para cada edificio:

Nombre del edificio.

Cantidad total de departamentos de ese edificio.

Valor de ese edificio:


Valor = Cantidad de departamentos * 1500 * (1 + Porcentaje), donde:
Porcentaje = 10%, si hay ms departamentos del tipo 1 en el edificio
Porcentaje = 20%, si hay ms departamentos del tipo 2 en el edificio
Porcentaje = 30%, si hay ms departamentos del tipo 3 en el edificio

Metros cuadrados totales (de todos los edificios).

Cantidad promedio de departamentos por edificios.

Cantidad de edificios que tengan departamentos de los tres tipos (1, 2 y 3).

Nombre del edificio con mayor cantidad de metros cuadrados de


construccin.

Solucin:
Program Edificios
Begin
Mayor 0 {No es necesario inicializar esta variable en un nmero
ms pequeo, ya que slo va a ser comparada con
nmeros positivos}
ACMC 0 {Se inicializa el acumulador de metros cuadrados}
ACCD 0 {Se inicializa el acumulador de cant. de departamentos}
CETD 0
Read (N)
For I = 1 to N do
Read (NE, MC, CDT1, CDT2, CDT3)
CTD CDT1 + CDT2 + CDT3
Write (nombre del edificio:, NE, cantidad total de
departamentos:, CTD)
If (CDT1 > CDT2) then
If (CDT1 > CDT3) then
Por 0.1
Else
Por 0.3
End if
Else
If (CDT2 > CDT3) then
Por 0.2
Else
Por 0.3
Pgina 5 de 31

End if
End if
Valor CTD * 1500 * (1 + Por)
Write (el valor de este edificio es:, Valor)
ACMC ACMC + MC
ACCD ACCD + CTD
If (CDT1 > 0) and (CDT2 > 0) and (CDT3 > 0) then
CETD CETD + 1
End if
If (MC > Mayor) then
Mayor MC
EDM NE
End if
End for
Write (el total de metros cuadrados es:, ACMC)
If (N > 0) then
Prom ACCD / N
Else
Prom 0
End if
Write (el promedio de departamentos por edificio es:, Prom)
Write (existen, CETD, edificios que tienen los tres tipos de
departamentos)
Write (el edificio con ms metros cuadrados es:, EDM)
End
Problema 4 (Prueba1, Introduccin a la Computacin, 14/05/2001)
Desarrolle un algoritmo en pseudocdigo, que permita resolver la siguiente
problemtica. Una multitienda necesita calcular algunas estadsticas sobre sus
clientes, para lo cual cuenta con la siguiente informacin por cada uno de ellos:
Rut, nombre, sexo (M o F), edad, sueldo, compras acumuladas
Los datos de los clientes se ingresan hasta que aparece un RUT = -1. Se requiere
conocer:
a) Edad promedio de los clientes por sexo.
b) Rut del cliente de menor edad, que tiene el sueldo mayor (Suponga que para
los clientes de la misma edad, no se repite el mismo sueldo)
c) Porcentaje de clientes, respecto del total, que tienen un sueldo mayor a
$750.000.
d) Compras promedio de los clientes.
e) Promedio de edad de los clientes cuyo sueldo est entre $250.000 y $500.000
Imprimir el RUT y nombre de todos los clientes varones, menores de 35 aos.

Solucin:
Program Multitienda
Begin
Ch 0, Cm 0, Sh 0, Sm 0, Menor 150, Maysuel -1, Ct 0,
C750 0, Comtot 0, Cedad 0, Sedad 0
Read (rut)
Pgina 6 de 31

While (rut <> -1) do


Read (nom, sex, edad, sueldo, compras)
Case sex of
M : Ch Ch + 1
Sh Sh + edad
F : Cm Cm + 1
Sm Sm + edad
End case
If (edad < Menor) then
Menor edad
Maysuel sueldo
Menrut rut
Else
If (edad = Menor) then
If (sueldo > Maysuel) then
Maysuel sueldo
Menrut rut
End if
End if
End if
If (sueldo > 750000) then
C750 C750 + 1
End if
Ct Ct + 1
Comtot Comtot + compras
If (sueldo >= 250000) and (sueldo <= 500000) then
Cedad Cedad + 1
Sedad Sedad + edad
End if
If (sex = M) and (edad < 35) then
Write(rut, nom)
End if
Read (rut)
End while
If (Ct > 0 ) then
If (Ch > 0) then
Promh Sh / Ch
Write (la edad promedio de varones es:, Promh)
Else
Write (no hay clientes varones)
End if
If (Cm > 0) then
Promm Sm / Cm
Write (la edad promedio de damas es:, Promm)
Else
Write (no hay clientes damas)
End if
Pgina 7 de 31

Porc (C750 / Ct) * 100


Write (el porcentaje de clientes con sueldo mayor a $750.000 es:,
Porc)
Comprom Comtot / Ct
Write (Compras promedio:, Comprom)
Write (el RUT del cliente de menor edad y que tiene el mayor sueldo
es:, Menrut)
If (Cedad > 0) then
Eprom Sedad / Cedad
Write (la edad promedio de clientes con sueldo entre
$250.000 y $500.000 , Eprom)
Else
Write (no hay clientes con sueldo entre $250.000 y $500.000)
End if
Else
Write (no existen clientes)
End if
End
Problema 5 (Prueba1, Introduccin a la Computacin, 08/10/1999)
El rea de Registro curricular de la UCN, debe contestar una encuesta enviada
por el Ministerio de Educacin. Para esto, cuenta con la informacin de los
alumnos, que debe ser ingresada por teclado. Por cada alumno, la informacin
es la siguiente:
nmero de matrcula, nombre alumno, sigla carrera, PPA, ao de ingreso
Se pide procesar la informacin de todos los alumnos, hasta encontrar un
nmero de matrcula igual a 9999, y responder:
a) Identificar mediante su nmero de matrcula al alumno con mayor PPA.
b) Determinar cuntos alumnos estn matriculados en la carrera de ICCI.
c) Porcentaje de alumnos, con respecto al total de la UCN, que no estudia
ICCI.
d) PPA promedio de los alumnos de ICQ.
e) Obtener cuntos aos llevan en la UCN, los alumnos con mayor
permanencia en ella.
f) Adems, mediante estudios cientficos se ha determinado que los alumnos
llamados Juan Prez poseen un factor de aprendizaje dado por:
FA = PPA * ao de ingreso / 1000
Como en la UCN existen muchos Juan Prez, se requiere saber cul es el
que tiene el factor de aprendizaje mayor.

Solucin:
Program UCN
Begin
MayorPPA 0, TA 0, CAICCI 0, ACPPA 0, CAICQ 0,
MenorAI 3000, MayorFA 0
Read (NM)
While (NM <> 9999) do
Read (NA, SC, PPA, AI)
Pgina 8 de 31

TA TA + 1
If (PPA > MayorPPA) then
MayorPPA PPA
NMPPA NM
End if
If (SC = ICCI) then
CAICCI CAICCI + 1
Else
If (SC = ICQ) then
CAICQ CAICQ + 1
ACPPA ACPPA + PPA
End if
End if
If (AI < MenorAI) then
MenorAI AI
End if
If (NA = Juan Prez) then
FA PPA * AI / 1000
If (FA > MayorFA) then
MayorFA FA
NMFA NM
Carrera SC
End if
End if
Read (NM)
End while
Write (el nmero de matrcula del alumno con mayor PPA es:, NMPPA)
Write (hay, CAICCI, alumnos matriculados en la carrera de ICCI)
If (TA > 0) then
PCT (1 CAICCI / TA) * 100
Else
PCT 0
End if
Write (el porcentaje de alumnos que no estudia ICCI es de un:, PCT, %)
If (CAICQ > 0) then
PRO ACPPA / CAICQ
Else
PRO 0
End if
Write (el PPA promedio de los alumnos que estudian ICQ es:, PRO)
Write (los alumnos ms antiguos llevan, 2003 MenorAI + 1, aos en la
UCN)
Write (el nmero de matricula y la carrera en que estudia el alumno Juan
Prez con mayor factor de aprendizaje son:, NMFA, Carrera)
End

Pgina 9 de 31

Problema 6 (Prueba1, Introduccin a la Computacin, 14/05/2003)


A partir de un conjunto de datos de alumnos de la Universidad, calcular las
estadsticas que la Institucin necesita para orientar sus estrategias de mejora de
la docencia. La informacin ser ingresada por teclado por un digitador de
datos. Para cada alumno se ingresar: Nombre del Alumno, Gnero (M, F),
Carrera (ICI, ICPC, ICCI, IC), y Cantidad de asignaturas cursadas. Inmediatamente
y junto a los datos de cada alumno, se ingresar la informacin de todas las
asignaturas cursadas, considerando, para cada asignatura cursada: Cdigo de la
Asignatura, Cantidad de Crditos de la asignatura y la Nota Final. Se considerar
como Fin de Datos, Nombre del Alumno = FIN. Los registros vienen de la
siguiente forma:
Nombre, Gnero, Carrera, CantAsig(2).
CodAsig, Crditos, Nota
CodAsig, Crditos, Nota

FIN
Determinar:
1. Promedio ponderado acumulado de cada alumno.
2. Cantidad de alumnos por las diferentes carreras del estudio.
3. Porcentaje de alumnos de ICPC con todas las asignaturas aprobadas, sobre
total de alumnos de la carrera.
4. Promedio de crditos aprobados para alumnos con ms de 3 asignaturas
aprobadas.
5. El nombre del o de la mejor estudiante de Introduccin a la Computacin (CC
471) y su correspondiente gnero, escogida entre los estudiantes con PPA
sobre 4.0
6. La cantidad de alumnos, que teniendo un PPA sobre 6.0, y haya cursado y
aprobado Introduccin a la Computacin, pertenezcan a ICI o ICCI.
El promedio ponderado acumulado de un alumno, se obtiene al sumar los
productos de las notas con los crditos ( Notasi Creditosi ) , y posteriormente
dividiendo esta suma por el total de asignaturas cursadas.

Solucin:
Program Docencia
Begin
Cicpc 0, Cici 0, Cicci 0, Cic 0, C3aprobados 0,
C4aprobados 0, S4aprobados 0, Mejorcc471 0, C6introduccin 0
Write (Ingrese el nombre del alumno)
Read (Nombre)
While (Nombre <> FIN) do
Write (ingrese datos de carrera, gnero y asignaturas cursadas)
Read (Carrera, Genero, Cursadas)
Pgina 10 de 31

Case Carrera of
ICI : Cici Cici + 1
ICPC Cicpc Cicpc + 1
ICCI : Cicici Cicci + 1
IC :
Cici Cic + 1
End case
Cnotas4 0, Scredit4 0, Sumpon 0, Cursocc471 false
For I = 1 to Cursadas do
Write (ingrese datos de la asignatura cursada (Cdigo,
Crdito, Nota))
Read (Codigo, Credito, Nota)
Sumpon Sumpon + Credito * Nota
If (Nota >= 4.0) then
Cnotas4 Cnotas4 + 1
Scredit4 Scredir4 + Credito
End if
If (Codigo = CC471) then
Cursocc471 true
Notacc471 Nota
End if
End for
PPA Sumpon / Cursadas
Write (PPA del alumno es:, PPA)
If (Carrera = ICPC) and (Cnotas4 = Cursadas) then
C3aprobados C3aprobados + 1
End if
If (Cnotas4 > 3) then
C3aprobados C3aprobados + 1
S3aprobados C3aprobados + Scredit4
End if
If (Cursocc471) and (PPA >= 4.0) and (Notacc471>Mejorcc471) then
Mejorcc471 Noracc471
Nombre471 Nombre
Generoc471 Genero
End if
If (Carrera = ICI ) or (Carrera = ICCI) then
If (Cursocc471) and (PPA >= 6.0) and (Notacc471>= 4.0) then
C6introduccion C6introduccion + 1
End if
End if
Write (ingrese el nombre del alumno)
Read (Nombre)
End while
Write (la cantidad de alumnos en ICI es:, Cici)
Write (la cantidad de alumnos en ICPC es:, Cicpc)
Write (la cantidad de alumnos en ICCI es:, Cicci)
Write (la cantidad de alumnos en IC es:, Cic)
Pgina 11 de 31

If (Cicpc > 0) then


Porc C3aprobados / Cicpc
Else
Porc 0
End if
Write (el porcentaje de alumnos de ICPC con todas las asignaturas
aprobadas es:, Porc, %);
If (C4aprobados > 0 ) then
Prom S4aprobados / C4aprobados
Else
Prom 0
End if
Write (el promedio de crditos aprobados para alumnos que han pasado
ms de 3 asignaturas es:, Prom, [crditos / asignatura])
Write (el nombre del mejor estudiante de CC471 es:, Nombre471)
Write (el gnero del mejor estudiante de CC471 es:, Genero471)
Write (la cantidad de alumnos, que teniendo un PPA mayor a 6.0 han
aprobado la asignatura cc741, y que pertenezcan a ICI ICCI es:,
C6introduccion)
End
Problema 7 (Prueba1, Introduccin a la Computacin, 28/09/2001)
El hospital de Antofagasta necesita conocer algunos datos acerca de sus
pacientes. Para ello le pide escribir un programa en pseudocdigo que lea los
siguientes datos desde teclado:
Rut del Paciente (sin cdigo verificador)
Nombre del Paciente
Sexo del Paciente (1: Masculino, 2: Femenino)
Ciudad de origen del Paciente
Estado del Paciente (1: En UCI, 2: Grave en Pabelln, 3: Leve en Pabelln)
Cantidad de das hospitalizado (verifique que este siempre sea mayor que
cero mediante un mensaje enviado al usuario)
Fin de datos: Rut = 0. Cuando se ingresa este fin de datos, no existen los dems
datos asociados al paciente, es decir, nombre, sexo, ciudad, estado y das (stos
se leen slo si el Rut es distinto a cero). Se pide determinar e imprimir:
a) Nombre y Rut del paciente con ms das en el hospital, y cuntos das son.
b) Cantidad de mujeres con menos de cinco das en la UCI.
c) Porcentaje de pacientes graves en pabelln con ms de 20 das en el
hospital, respecto al total de pacientes.
d) Cantidad de pacientes (hombres) leves en pabelln que son de
Antofagasta.
e) Porcentaje de hombres y mujeres hospitalizados.
Debe considerar la posibilidad de que no existan pacientes en el hospital e
informarla.

Pgina 12 de 31

Solucin:
Program Hospital de Antofagasta
Begin
Mayor -9999 {Inicializar contador de la mayor cantidad de das}
CM5 0 {inicializar contador de mujeres con menos de 5 das en la
UCI}
CTP 0 {Inicializar contador de pacientes}
CPG 0 {Inicializar contador de pacientes graves}
CPHL 0 {Inicializar contador de pacientes hombres leves en
pabelln que son de Antofagasta}
CTM 0 {Inicializar contador de mujeres}
Read (Rut)
While (Rut <> 0) do
Read (NP, SP, CO, EP, CDH)
While (CDH <= 0) do
Write (Ingrese nuevamente y en forma correcta la
cantidad de das hospitalizado)
Read (CDH)
End while
CTP CTP + 1
If (CDH > Mayor) then
Mayor CDH
NoMayor NP
RutMayor Rut
End if
If (SP = 2) then
CTM CTM + 1
If (CDH < 5) and (EP = 1) then
CM5 CM5 + 1
End if
Else
If (EP = 3) and (CO = Antofagasta) then
CPHL CPHL + 1
End if
End if
If (EP = 2) and (CDH > 20) then
CPG CPG + 1
End if
Read (Rut)
End while
If (CTP > 0) then
Write (El nombre del paciente con ms das en el hospital es:,
NoMayor,,)
Write (su Rut es:, RutMayor)
Write (y la cantidad de das que estuvo hospitalizado fueron:,
Mayor, das)

Pgina 13 de 31

Write (La cantidad de mujeres con menos de 5 das en la UCI


es:, CM5)
Write (El porcentaje de pacientes graves en pabelln con ms
de 20 das en el hospital es:, CPG/CTP*100)
Write (La cantidad de pacientes hombres leves en pabelln y
que son de Antofagasta es:, CPHL)
Write (El porcentaje de hombres hospitalizados es:, 1
CTM/CTP, %)
Write (El porcentaje de mujeres hospitalizadas es:, CTM/CTP,
%)
Else
Write (El hospital no tiene pacientes)
End if
End
Problema 8 (Prueba1, Computacin Bsica, 12/05/2003)
Construya un algoritmo que implemente un dispensador de claves secretas, para
ubicarlo en el hall de entrada del banco ACME. El sistema TOPPASS ser puesto
en funcionamiento cada la maana y desactivado, con un dato Rut = -1, al
terminar la tarde. Si un cliente desea una sugerencia de clave secreta, debe
ingresar los siguientes datos al terminal de servicio del banco:
RUT, NUMCUENTA, EDAD, REGIN, SUELDO (en miles)
Una clave secreta se obtiene al sumar los primeros X (EDAD) nmeros de
Fibonacci, ms el Factorial del SUELDO y menos el nmero NUMCUENTA de
cuenta corriente. Esta frmula la conoce solo personal autorizado del banco
ACME, y es necesario que el programa valide los datos de regin y edad, hasta
que sean ingresados correctamente.
El banco, al final del da, desea un reporte que liste por pantalla, lo siguiente:

a)

El porcentaje de clientes de la 2 regin, que perciben un sueldo entre


$100.000 y $500.000, y obtengan una clave secreta de TOPPASS que es un
nmero primo.

b)

El promedio de sueldos de los clientes que tienen un RUT que es mltiplo de 7


y obtienen una clave secreta igual al cuadrado de los primeros EDAD
nmeros naturales pares.

c)

Los Rut de los dos clientes de mayor edad de las primeras 4 regiones del pas,
que perciban sueldos entre $500.000 y $1.000.000, y que su clave secreta
sugerida por TOPPASS resulta ser impar.

Solucin:
Program ACME
Begin
Ccliente 0

{Se inicializa el contador de clientes}


Pgina 14 de 31

Cprimo 0
{Se inicializa el contador de clientes para responder a)}
Ccuadrado 0 {Se inicializa el contador de clientes para responder b)}
Ssueldo 0
{Se inicializa el sumador de sueldos para responder b)}
M1edad 0
{Se inicializa el primer mayor edad, para responder c)}
M2edad 0
{Se inicializa el segundo mayor edad, para responder c)}
Write(Ingrese Rut)
Read (RUT)
While(RUT<> -1) do
Ccliente Ccliente + 1 {Contar Clientes}
Write (Ingrese Numero de Cuenta)
Read (NUMCUENTA)
{Lee y valida EDAD}
Write(Ingrese edad)
Read (EDAD)
While (EDAD<=0 or EDAD >= 100) do
Write(Error, Ingrese el dato nuevamente)
Read (EDAD)
End while
{Lee y valida REGIN}
Write(Ingrese regin donde vive);
Read (REGION)
While (REGION <= 1 or REGION >= 13) do
Write(Error, Ingrese el dato nuevamente)
Read (REGION)
End while
{Lee SUELDO}
Write (Ingrese sueldo)
Read (SUELDO)
{Clculo de Fibonacci}
F1 1
F2 1
SFBI F1 + F2
For I = 3 to EDAD
F F1 + F2
SFBI SFBI + F
F2 F1
F1 F
End for
{Clculo de Factorial}
FACT 1
For I = 1 to SUELDO
FACT FACT * I
End for
{Clculo de la clave de acceso}
CLAVE SFBI + FACT - NUMCUENTA
Write (La clave de acceso es, CLAVE)
{Verifica clave correspondiente a primos}
Pgina 15 de 31

If (REGION = 2 and SUELDO >= 100 and SUELDO <= 500) then
Primo True
K2
While(K <= CLAVE / 2 and Primo) do
X CLAVE
While (X > 0) do
XXK
End while
If (X = 0) then
Primo False
End if
KK+1
End while
If (Primo) Then
Cprimo Cprimo + 1
End if
End if
{Verificar claves cuadrado nmeros naturales pares}
X RUT
While (X > 0) do
XX7
End while
If (X = 0) then
Scuadrado 0
For I = 2 to 2* EDAD Step 2
Scuadrado Scuadrado + I^2
End for
If (CLAVE = Scuadrado) then
Ccuadrado Ccuadrado + 1
Ssueldo Ssueldo + SUELDO
End if
End if
{Verificar Claves impares y seleccionar clientes}
If (REGION >= 1 and REGION <= 4 and SUELDO >= 500 and
SUELDO <= 1000) then
X CLAVE
While (X > 0) do
XX2
End while
If (X <> 0) then
If (EDAD > M1edad) then
M2edad M1 edad
M1edad EDAD
Rut2 Rut1
Rut1 RUT
Else
If (EDAD > M2edad) then
Pgina 16 de 31

M2edad EDAD
Rut2 RUT
End if
End if
End if
End if
{Leer prximo rut}
Write(Ingrese Rut)
Read (RUT)
End while
{Porcentaje de clientes claves primas}
If (Cclientes <> 0) then
Prc Cprimo / Ccliente * 100
Write (Porcentaje claves primas, Prc, %)
End if
{Promedio sueldo clientes cuadrado}
IF(Ccuadrado <> 0) then
Prc Ssueldo / Ccuadrado
Write ( Promedio de sueldo claves cuadradas, $, Prc)
End if
{Los clientes con mayor edad}
Write(El RUT del primer cliente con mayor edad es , Rut1)
Write(El RUT del segundo cliente con mayor edad es , Rut2)
End

Pgina 17 de 31

Problema 9 (Prueba1, Introduccin a la Computacin, 14/05/2003)


Considerando el siguiente algoritmo, conteste las preguntas:
1 begin
2
read(x,n)
3
p <-- n
4
while p > 0
5
p <-- p - 7
6
end while
7
if p > 0 then
8
f <-- 1
9
for i = 1 to n
10
f <-- f * i
11
end for
12
write(f)
13
else
14
if p = 0 and n < 10 then
15
for i = 1 to n
16
write(x+i)
17
end for
18
else
19
z <-- n / 2
20
if z < 3 then
21
t <-- 3*x
22
for i = 1 to n
23
t <-- t + 4
24
write(t)
25
end for
26
else
27
write(x)
28
end if
29
end if
30
end if
31 end

a. Qu se imprime si x=2 y n=7?


Salida por pantalla: 3 4 5 6 7 8 9

b. Qu se imprime si x=23 y n=9?


Salida por pantalla: 23

c. Qu lneas se ejecutan si x=3 y n=2?


Lneas que se ejecutan:
1,2,3,4,5,6,4,7,13,14,18,19,20,21,22,23,24,
25,22,23,24,25,22,26,28,29,30,31

d. Qu lneas nunca se ejecutan?


Las lneas que nunca se ejecutan son:
8,9,10,11,12
Es se debe a que p nunca llegar a la lnea
7 siendo mayor que cero (p > 0), por que el
ciclo while de la lnea 4 slo termina si p es
menor o igual a cero (p <= 0).

Nota: para las preguntas c y d, debe


responder con los nmeros de lneas
correspondientes, por ejemplo:
1,2,3,6,7,8,6,7,8

Problema 10 (Prueba1 Rec., Introduccin a la Computacin, 28/05/04)


La universidad debe calcular algunas estadsticas de alumnos, por asignatura. El
programa debe leer primero el cdigo de la asignatura, luego debe leer, el
nmero de alumnos inscritos en ella. Por cada alumno, debe preguntar la
matrcula, la carrera (ICPC, ICI, ICM, ICQ) y la nota final que consigui. Cuando se
termine de leer una asignatura, se debe leer la siguiente, hasta que el cdigo sea
igual a -1.
Se pide calcular e imprimir los siguientes datos:
El promedio de notas de los alumnos de ICM en MA-217.
El promedio de notas de los alumnos de ICPC, en todas las asignaturas.
El cdigo de la asignatura con ms alumnos de ICI.
El alumno y carrera del alumno con menor promedio en CC-211.

Solucin:
Program Universidad
Begin
Read (asig)
suma1 0
cant1 0
suma2 0
Pgina 18 de 31

cant2 0
mayor -1
While (asig <> -1) do
read (nalum)
cant_alum_ICI 0
nota_menor 8
For i = 1 to nalum
Read(mat,carrera,nota)
If (asig =MA-217) and (carrera = ICM) then
suma1 suma + nota
cant1 cant1 + 1
End if
If (carrera = ICPC) then
suma2 suma2 + nota
cant2 cant2 + 1
End if
If (carrera = ICI) then
cant_alum_ICI cant_alum_ICI + 1
End if
If (asig = CC-211) then
If nota < nota_menor then
nota_menor nota
carrera_menor carrera
mat_menor mat
End if
End if
End for
If (mayor < cant_alum_ICI) then
mayor cant_alum_ICI
asig_mayor asig
End if
Read (asig)
End while
Write (prom1)
Write (prom2)
Write (asig_mayor)
Write (mat_menor, carrera_menor)
End

Pgina 19 de 31

Problema 11 (Prueba 1, Introduccin a la Computacin, 23/04/2004)


Se pide rutear el algoritmo, escribiendo
claramente, el nmero de la lnea que se
est ejecutando, todos los valores que
toman las variables y los valores impresos en
la pantalla.
Cuando se necesite leer un dato del
teclado, usar los siguientes valores, como sie
estos fueran escritos (usar slo los
necesarios): 6, 4, 5, 5 ,2.
Por ejemplo:
w = 3,4,5,3
Esto quiere decir que la variable w tom los
valores 3 luego el 4, despus el 5, etc.
Lineas = 2,3,4,5,10,11,12,10,11,12,21,22,
Quiere de que se ejecutaron seguidas una
despus de la otra las lneas de la 2 a la 5,
luego se salt a la 10 y se ejecut hasta la
12, luego se volvi a la 10, etc.

(01)
(02)
(03)
(04)
(05)
(06)
(07)
(08)
(09)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)

begin
write(Ingrese altura)
read(h)
write(Ingrese base)
read(b)
while h >= b
a := (h * b) / 2
write(a)
if a > 10 then
x := (a - 2) * 0.5
while x >= 1
write(x)
x := x * 0.2
end while
else
read(b)
for i := 3 to 2 step -1
write(i)
end for
end if
h := h - 1
end while
end

Salida = 3,2,hola
Quiere decir en la pantalla primero se
imprimi el 3 y luego el 2 y despus la
palabra hola.

Solucin:
Lneas que se ejecutan:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 11, 12, 13, 14, 21, 22
6, 7, 8, 9, 15, 16, 17, 18, 19, 17, 18, 19, 20, 21, 22, 6, 23
H = 6, 5, 4
B = 4, 5
A = 12, 10,
X = 5, 1, 0.2,
IMPRIME:
12
5
1
10
3
2
Pgina 20 de 31

Problema 12 (Prueba 1, Introduccin a la Computacin, 23/04/2004)


"A Todo Color", es una empresa de recargado de tintas de impresora, que desea
implementar un programa para manejar unas cajas con cartuchos vacos que
deben entregar.
El problema es que en las cajas hay cartuchos de distintas marcas, las cuales son:
Epson, HP, Xerox, Lexmark. Se tienen 10 cajas numeradas y dentro de cada caja
no se sabe cuantos cartuchos hay.
Cada cartucho tiene su marca, modelo y las veces que ha sido recargado. Los
modelos son: g435, f445, d332 estos son estndares para todas las marcas. Esta
informacin se ingresa por pantalla, el fin de datos es marca = ''.
Interesa saber:
1) La marca del cartucho ms utilizado.
2) La caja en que se encuentra el cartucho ms veces recargado, si existen
dos o ms con el mismo nmero de recargas, considere slo el ltimo.
3) El promedio de recargas de los cartuchos, considere todos los cartuchos.
4) El modelo ms utilizado en la caja 5.

Solucin:
Program Tintas
Begin
tmayor 0
{total mayor recargas}
cmayor 0
{caja mayor recargas}
For nro_caja = 1 to 10 do
ctotal 0
Read (marca, modelo, recargas)
While (marca <> "") do
c_total ctotal + 1
suma_recagas suma_recagas + recargas
If marca = "Epson" then
CE CE + 1
End if
If marca = "HP" then
CH CH + 1
End if
If marca = "Xerox" then
CX CX + 1
End if
If marca = "Lexmark" then
CL CL + 1
End if
If recargas >= tmayor then
tmayor recargas
cmayor nro_caja
End if

Pgina 21 de 31

If nro_caja = 5 then
If modelo = "g435" then
CMG CMG + 1
End if
If modelo = "f445" then
CMF CMF + 1
End if
If modelo = "D332" then
CMD CMD + 1
End if
End If
Read (marca, modelo, recargas)
End while
End for
If (CE > CH) and (CE > CX )and (CE > CL) then
MMV "Epson"
End if
If (CH > CE) and (CH > CX) and (CH > CL) then
MMV "HP"
End if
If (CX > CE) and (CX > CH) and (CX > CL) then
MMV "Xerox"
End if
If (CL > CE) and (CL > CX) and (CL > CH) then
MMV "Lexmark"
End if
writeln ("Marca mas vendida = ", MMV)
{Pregunta 1)}
writeln ("El cartucho mas recargado esta en la caja nro ", cmayor)
{Pregunta 2)}
If (ctotal <> 0)
promedio suma_recargas / c_total
writeln ("El promedio de recargas es de ", promedio) {Pregunta 3)}
End If
If (CMG > CMF) and (CMG > CMD) then
MMR "g435"
End If
If (CMF > CMG) and (CMF > CMD) then
MMR "f445"
End If
If (CMD > CMF) and (CMD > CMG) then
MMR "b332"
End If
writeln ("El modelo mas usado de la caja 5 es ", MMR) {Pregunta 4)}
End

Pgina 22 de 31

Problema 13 (Prueba 1, Introduccin a la Computacin, 19/05/1999)


Dada la siguiente serie y suponiendo que debe generar N trminos, donde N y X
deben leerse, disee en pseudocdigo un algoritmo que genere e imprima cada
trmino e imprima S.

S=

X ! 1!

f
j =1

X ! 2!

f
j =1

X ! 3!

f
j =1

X ! 4!

+ .....

f
j =1

donde: f1 = 1, f2 = 1 y fi = f i 1 + f i 2 para i >= 3

Solucin:
Program Problema 13
Begin
Read (N, X)
FactX 1
For L = 1 to X do
FactX FactX * L
End for
S0
For I = 1 to N do
Fact 1
Prod 1
F1 0
F2 1
FB 1
For J = 1 to I do
Fact Fact * J
Prod Prod * FB
FB F1 + F2
F1 F2
F2 FB
End for
T FactX ^ Fact / Prod
Write (T) Write (T * (-1) ^ (I+1))

{Depende de la interpretacin de
trmino}

S S + T * (-1) ^ (I+1)
End for
Write (S)
End

Pgina 23 de 31

Problema 14 (Prueba 1, Introduccin a la Computacin, 06/10/2000)


Calcular la serie:
N

k!

tk = X j

S = t2 i

j =1

i =1

Imprimir cada trmino tk generado, y el valor final de S. Los valores de N y X se


leen desde teclado.

Solucin:
Primeramente desarrollemos algunos trminos:
2!

i = 1: t2 = X j = X + X 2
j =1
4!

24

j =1

j =1

i = 2 : t4 = X j = X j = X + X 2 + ........ + X 24
Entonces:
Program Problema 14
Begin
Read (N, X)
S1
For I = 1 to N do
Fact 1
For K = 2 to 2 * I do
Fact Fact * K
End for
T0
For J = 1 to Fact do
TT+X^J
End for
Write (T)
SS*T
End for
Write (S)
End
Problema 15 (Prueba 1, Introduccin a la Computacin, 14/05/2001)
Construir un algoritmo que permita calcular el valor de S.
j

S =
j =1

X
k =1

j ! ( j + 1)!

X k = 1 k

Donde N se lee como dato de entrada. Se pide imprimir cada trmino generado,
y el valor final de S.

Pgina 24 de 31

Solucin:
Primeramente desarrollemos algunos trminos:
1

j = 1: t1 =

(1 k )
k =1

1! (1 + 1)!

1
1
= (1)1
2
2!

j = 2 : t2 =

(1 k )
k =1

2! (2 + 1)!

( 1) ( 2 )
1
= (1) 2
3!
( 2 1 ) (3 2 1)

j = 3 : t3 =

(1 k )
k =1

3! (3 + 1)!

( 1) ( 2 ) ( 3 )
1
= (1)3
4!
( 3 2 1 ) (4 3 2 1)

#
#

j = N : t N = (1) N

N
1
1
S = (1) j
( N + 1)!
( j + 1)!
j =1

Entonces:
Program Problema 15
Begin
Read (N)
S0
For J = 1 to N do
T0
Fact 1
For I = 2 to J + 1 do
Fact Fact * I
End for
T (-1) ^ J / Fact
Write (T)
SS+T
End for
Write (S)
End
Problema 16 (Prueba1, Computacin Bsica, 12/05/2003)
Construir un algoritmo para calcular la siguiente serie, hasta que el ltimo trmino
sea inferior a 0,00005. Lea el par X, Y desde teclado y emita el resultado de la
serie.

Pgina 25 de 31

1) X 1!
Y 1)
2 + 3 + 4 ) X 4!
(
(
(
(Y 3 )

+
+
S=
1
5
2!
7!
+
+
+
+
X
X
1
2
4
5
6
7
(
)
(
)
(Y 1)
(Y 2 )
11
( 7 + 8 + 9 + 10 + 11) X 11! +
(Y 8 )
.. .. ..
9
16!
+
+
+
+
+
X
11
12
13
14
15
16
(
)
(Y 5 )
3

Solucin:
Program Problema 16
Begin
NTS 1 {Se inicializa el nmero de trminos que deben llevar el signo
actual}
CTS 0 {Se inicializa el contador de trminos que llevan el signo actual}
SIG 1 {Se inicializa el signo}
F1 1
F2 1
Se inicializan los trminos de Fibonacci
FB 1
Read (X, Y)
ULT 1 {Se inicializa el ltimo trmino de la suma que hay en cada
trmino, la cual a su vez hay que calcularle el factorial}
I1
{Se inicializa el ndice del trmino que se est por crear}
T X / (Y 1) {Se genera el primer trmino para poder pasar al While}
S T * SIG
Estado False {Estado = Verdadero, indica que en el trmino que se est
por crear, X va en el numerador e Y en el divisor}
While (T >= 0,00005) do
If (CTS = NTS) then
SIG SIG * (-1)
NTS NTS + 1 {+, - -. +++, - - - -, etc.}
CTS 0 {hasta el momento ningn trmino lleva signo actual}
End if
I I + 1 {Se est por crear un nuevo trmino}
SUM ULT {Se inicializa la suma que hay en cada trmino}
For J = 1 to I 1 do
ULT ULT + 1
SUM SUM + ULT
End for
FactULT 1
For J = 2 to ULT
FactULT FactULT * J
End for

Pgina 26 de 31

If (Estado) then
NUM SUM * X ^ FactULT
DEN (Y FB) ^ (2 * I 1)
Estado False
Else
DEN SUM * X ^ FactULT
NUM (Y FB) ^ (2 * I 1)
Estado True
End if
T NUM / DEN
S S + T * SIG
FB F1 + F2
F1 F2
F2 FB
End while
Write (el valor de la serie es:, S)
End
Problema 17 (Prueba1, Computacin Bsica, 12/05/2003)
Calcule la Suma de los primeros n-trminos (n>2) de la siguiente serie:

X 2Y 4! X 2Y 4! X 3Y 5! X 4Y 6! X 6Y 8! X 9Y 10! X 14Y 16! X 22Y 24!


S=
+

+
+

+ ....
2
3 4
5 6
7 8 9 10 11 12 13 14 15 16
Nota: Se sugiere utilizar Fibonacci

Solucin:
Program Problema 17
Begin
Read(n,x,y)
Case n of:
0: Write (0)
1: Write (X ** 2 * Y ** (2*3*4) / 2)
2: Write (X ** 2 * Y ** (2*3*4) / 2 + X ** 2 Y ** (2*3*4) / 3*4)
Else
S X**2 Y**(2*3*4)/2 + X**2 Y**(2*3*4) / 3*4
ult 1
pen 1
cont 5
signo -1
contsigno 1
For i = 3 to n do
{Calculo de Fibonacci}
fib ult + pen
pen ult
ult fib
{Clculo del factorial}
Pgina 27 de 31

fact 1
For k = 1 to (fib+3) do
fact fact * k
End for
{Clculo del numerador y denominador}
num X ** (fib+1) * Y ** (fact)
den cont * (cont + 1)
cont cont + 1
{Actualizacin de la suma y creacin del trmino}
S = S * num / den * signo
{Cambio de Signo}
If (contsigno = 2) then
contsigno 0
signo signo * (-1)
End if
contsigno contsigno + 1
End for
write(S)
End case
End
Problema 18 (Prueba1, Introduccin a la Computacin, 08/10/1999)
Dada la siguiente serie:

x 2 x 2 3 x 6 5 x120
S = x +

+
.....
3
5
7
9
Se pide que genere e imprima cada trmino de la serie. Considerar que la serie es
hasta que un trmino sea menor que VALOR, es decir, incluya ese trmino como
ltimo trmino de la serie. X y VALOR se leen desde pantalla. Adems, se debe
imprimir S.

Solucin:
Program Problema 18
Begin
S0
F1 0
F2 1
FB 1
I0
Repeat
Fact 1
For J = 1 to FB do
Fact Fact * J
End for
II+1
T FB * X ^ Fact / (2 * I 1)
Write (T) Write (T * (-1) ^ (I+1))

{Depende de la interpretacin de
trmino}
Pgina 28 de 31

S S + T * (-1) ^ (I+1)
FB F1 + F2
F1 F2
F2 FB
Until (T < MAYOR)
Write (S)
End
Problema 19 (Prueba1, Introduccin a la Computacin, 10/05/2000)
Dado:
donde ti =

S = t1 + t2 t3 + t4 ......
i

G
j =1

y G1 = x + y 2 , G2 = x + y 4 , G3 =

x
x
+ y 6 , G4 = + y 8 ,.............
2
3

Se pide disear un algoritmo en pseudocdigo que calcule e imprima S. X e Y


deben leerse desde pantalla. La serie tiene M trminos, donde M es el primer dato
a leer.

Solucin:
Program Problema 19
Begin
Read (M, X, Y)
S0
For I = 1 to M do
F1 0
F2 1
FB 1
T1
For J = 1 to I do
G X / FB + Y ^ (2 * J)
TT*G
FB F1 + F2
F1 F2
F2 FB
End for
T T * (-1) ^ I
SS+T
End for
Write (S)
End

Pgina 29 de 31

Problema 20 (Prueba1, Computacin Bsica, 05/10/2000)


Calcular la serie
N

S = ti donde t1 = X y t 2 = X
y para i > 2 ti =

i =1
i!

F X , F
j =i

= 1, F 2 = 1 y F j = F j-1 + F j-2

Imprimir cada trmino ti generado, y el producto total. Los valores de N y X se leen


desde teclado.

Solucin:
Program Problema 20
Begin
Read (N, X)
TX
S1
For I = 1 to 2 do
Write (T)
SS*T
End for
For I = 3 to N do
Fact 1
For J = 2 to I do
Fact Fact * J
End for
F1 0
F2 1
For J = 3 to I do
Aux F1 + F2
F1 F2
F2 Aux
End for
T0
For J = I to Fact do
FB F1 + F2
T FB * X + T
F1 F2
F2 FB
End for
Write (T)
SS*T
End for
Write (S)
End

Pgina 30 de 31

Problema 21 (Prueba1, Computacin Bsica, 10/05/2000)


Disear un algoritmo en pseudocdigo, que calcule e imprima S.

S = t1 t2 t3 + t4 + t5 + t6 t7 t8 t9 t10 + ....... , donde ti =

X
i +5

, i 1.

k =i

Se debe considerar la sumatoria hasta que ti sea menor o igual a 0,00001 (incluir
este trmino). X debe leerse desde pantalla.

Solucin:
Program Problema 21
Begin
S0
Cont 0
NTS 0
I0
Signo 1
Read (X)
Repeat
II+1
Prod 1
For K = I to I + 5 do
Prod Prod * K
End for
T X / Prod
Cont Cont + 1
S S + T * Signo
If (Cont = NTS) then
Signo Signo * (-1)
NTS NTS + 1
Cont 0
End if
Until (T <= 0,00001)
Write (S)
End

Pgina 31 de 31

También podría gustarte