Guia Seudocodigo Pruebas Resuelto

31
Página 1 de 31 Guía de Ejercicios Primera Prueba I Semestre 2006 Algoritmos Básicos, Series y Productorias Profesor: Carlos Monardes C. Ayudante: Hernán Cáceres V. Problema 1 (Prueba1, Introducción a la Computación, 10/05/2000) La dirección de tránsito de la municipalidad de Antofagasta tiene la información 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, año, nombre _ dueño, 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 diseñe un algoritmo en pseudocódigo que entregue los siguientes resultados: a) Cantidad de autos existentes en la ciudad. b) Cantidad de autos de color amarillo. c) Antigüedad media del parque automotriz antofagastino. d) Valor de cada permiso de circulación. El valor del permiso de circulación corresponde al 5% del precio del auto. Considere que para los autos del año 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 circulación. f) Cantidad de autos que tiene Juan_Perez. g) Porcentaje de autos particulares. Solución: 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 años} 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, AÑO, ND, PRE, COL, USO) If (USO = 1) then CAP CAP + 1 Else CAC CAC + 1 End if Universidad Católica Del Norte Facultad de Ingeniería y Ciencias Geológicas Departamento de Ingeniería en Sistemas y Computación Computación Básica (CC-434)

description

guia con ejercicios resueltos de macros aplicados a excel utilizando visual basic

Transcript of Guia Seudocodigo Pruebas Resuelto

  • Pgina 1 de 31

    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

    Universidad Catlica Del Norte Facultad de Ingeniera y Ciencias Geolgicas Departamento de Ingeniera en Sistemas y Computacin Computacin Bsica (CC-434)

  • Pgina 2 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 3 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 4 de 31

    For I = 1 to CCF do Read (RUTC, NOMC, SexoC, Edad) If (Edad 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 5 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 6 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 7 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 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 8 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 9 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 10 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 ( )i iNotas Creditos , 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 11 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 12 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 13 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 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 14 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 15 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= 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 = 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 16 de 31

    If (REGION = 2 and SUELDO >= 100 and SUELDO 0) do X X 7 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 = 500 and

    SUELDO 0) do X X 2 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 17 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 18 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 0 5 p 0 then 8 f

  • Pgina 19 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 20 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. Salida = 3,2,hola Quiere decir en la pantalla primero se imprimi el 3 y luego el 2 y despus la palabra hola.

    (01) begin (02) write(Ingrese altura) (03) read(h) (04) write(Ingrese base) (05) read(b) (06) while h >= b (07) a := (h * b) / 2 (08) write(a) (09) if a > 10 then (10) x := (a - 2) * 0.5 (11) while x >= 1 (12) write(x) (13) x := x * 0.2 (14) end while (15) else (16) read(b) (17) for i := 3 to 2 step -1 (18) write(i) (19) end for (20) end if (21) h := h - 1 (22) end while (23) end

    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 21 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 22 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 23 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. 1! 2! 3! 4!

    1 2 3 4

    1 1 1 1

    ! ! ! ! .....j j j j

    j j j j

    X X X XSf f f f

    = = = =

    = + +

    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 S 0 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 24 de 31

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

    21

    N

    ii

    S t=

    = !1

    kj

    kj

    t X=

    = 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!2

    21

    4! 242 24

    41 1

    1:

    2 : ........

    j

    j

    j j

    j j

    i t X X X

    i t X X X X X

    =

    = =

    = = = +

    = = = = + + +

    Entonces: Program Problema 14 Begin

    Read (N, X) S 1 For I = 1 to N do

    Fact 1 For K = 2 to 2 * I do Fact Fact * K End for T 0 For J = 1 to Fact do T T + X ^ J End for Write (T) S S * 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.

    1

    1

    1! ( 1)!

    j

    kNk

    kj

    XS X k

    j j=

    == = +

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

  • Pgina 25 de 31

    Solucin: Primeramente desarrollemos algunos trminos:

    1

    111

    2

    12

    ( 1 )1 11: ( 1)

    1! (1 1)! 2 2!

    ( 1 )(2 :

    2! (2 1)!

    k

    k

    kj t

    kj t

    =

    =

    = = = = +

    = = = +

    1) ( 2 )( 2 1

    2

    3

    13

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

    ( 1 )(3 :

    3! (3 1)!k

    kj t =

    = = = = +

    1) ( 2 ) ( 3 )( 3 2 1

    3

    1

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

    1 1: ( 1) ( 1)( 1)! ( 1)!

    NN j

    Nj

    j N t SN j=

    =

    = = = + +

    ##

    Entonces: Program Problema 15 Begin

    Read (N) S 0 For J = 1 to N do

    T 0 Fact 1 For I = 2 to J + 1 do Fact Fact * I End for T (-1) ^ J / Fact Write (T) S S + 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 26 de 31

    ( )( )

    ( )( )

    ( )( )

    ( )( )

    ( )( )

    ( )( )

    3 71! 4!

    1 52! 7!

    1111!

    9 16!

    1 1 2 3 4 31 2 4 5 6 71 2

    7 8 9 10 11 8.. .. ..

    11 12 13 14 15 165

    X Y X YS

    X XY Y

    X YXY

    + + = + ++ + + + + + + + + + + + + +

    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 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} I 1 {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

    Se inicializan los trminos de Fibonacci

  • Pgina 27 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:

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

    ....2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    X Y X Y X Y X Y X Y X Y X Y X YS = + + + +

    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 28 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:

    2 6 1202 3 5 .....3 5 7 9x x x xS x= + +

    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

    S 0 F1 0 F2 1 FB 1 I 0 Repeat

    Fact 1 For J = 1 to FB do Fact Fact * J End for I I + 1 T FB * X ^ Fact / (2 * I 1) Write (T) Write (T * (-1) ^ (I+1)) {Depende de la interpretacin de

    trmino}

  • Pgina 29 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:

    1 2 3 4 ......S t t t t= + + donde

    1

    i

    i jj

    t G=

    = y 2 4 6 81 2 3 4, , , ,.............2 3x xG x y G x y G y G y= + = + = + = + 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) S 0 For I = 1 to M do F1 0 F2 1

    FB 1 T 1 For J = 1 to I do G X / FB + Y ^ (2 * J)

    T T * G FB F1 + F2 F1 F2 F2 FB

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

    End for Write (S) End

  • Pgina 30 de 31

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

    1

    N

    ii

    S t=

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

    !i

    i jj i

    t F X=

    = , F1 = 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) T X S 1 For I = 1 to 2 do Write (T) S S * 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 T 0 For J = I to Fact do

    FB F1 + F2 T FB * X + T F1 F2 F2 FB

    End for Write (T) S S * T

    End for Write (S)

    End

  • Pgina 31 de 31

    Problema 21 (Prueba1, Computacin Bsica, 10/05/2000) Disear un algoritmo en pseudocdigo, que calcule e imprima S.

    1 2 3 4 5 6 7 8 9 10 .......S t t t t t t t t t t= + + + + , donde 5 , 1i ik i

    Xt ik

    +

    =

    =

    .

    Se debe considerar la sumatoria hasta que it sea menor o igual a 0,00001 (incluir este trmino). X debe leerse desde pantalla. Solucin: Program Problema 21 Begin

    S 0 Cont 0 NTS 0 I 0 Signo 1 Read (X) Repeat

    I I + 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