Beruflich Dokumente
Kultur Dokumente
1 r a . E D I C I Ó N
A Ñ O 2 0 0 1
Datos escalares.
7.- Dadas las horas de partida y de llegada de un móvil, expresadas en horas, minutos y
segundos, calcular su velocidad promedio sabiendo que la distancia recorrida es D.
9.- Escribir un algoritmo que lea un número real cualquiera y lo imprima redondeado con
dos decimales.
11.- Leer una serie de números reales, terminando la serie con un cero. Imprimir los datos a
medida que se los ingresa junto con la suma parcial de los mismos.
12.- Dada una serie de números reales, determinar el valor máximo, el mínimo y las
posiciones en que éstos se encontraban en la serie.
13.- Leer un valor N y luego N números enteros de cuatro cifras. Se pide imprimir el mayor
y el menor y las veces que aparece cada uno. Pueden venir datos erróneos.
19.- Dada una serie de números enteros terminada en cero, imprimir los cuatro mayores.
20.- Dada una lista de nombres y de salarios respectivos, determinar el salario máximo, el
mínimo y la persona que percibe cada uno.
21.- Realizar un algoritmo que lea una serie de números reales y verifique si están
ordenados ascendentemente o no, informando por pantalla.
22.- Dada una serie de datos de la forma mes (1 a 12, no vienen ordenados), cantidad
recaudada (en pesos) y costo total (en pesos), hacer un algoritmo que calcule e imprima
cuál fue el mes que arrojó mayor ganancia.
La serie termina con mes igual a cero y pueden venir datos erróneos.
P = Po * (1 + R/100) ^ N
Escribir un algoritmo que tabule las poblaciones previstas para la Ciudad de Buenos Aires
entre 1980 y 2050, con intervalo de 10 años, sabiendo que:
24.- Por cada empleado de una empresa se leen tres datos que representan el nombre,
sueldo básico y antigüedad de dicho empleado. Se debe emitir un listado que contenga el
nombre y sueldo a cobrar de todos los empleados.
El sueldo se calcula adicionando al básico el 50% si la antigüedad supera los 10 años. El
lote de datos finaliza con un nombre de empleado NN.
26.- Se leen 300 datos que representan el peso de la misma cantidad de niños que hay
internados en un hospital. Se desea confeccionar la siguiente tabla:
27.- Leer una fecha base, y luego N fechas del tipo DD/MM/AA, pasándolas a días a partir
de la fecha base.
29.- Leer datos de lados de un triángulo A, B, C; haciendo consistencia de datos (Debe ser
A < B + C si A es el lado mayor).
Informar según sea A^2 con respecto a B^2 + C^2, si el triángulo es rectángulo,
acutángulo u obtusángulo.
C = 5/9 * (F - 32)
Escribir un algoritmo que haga una tabla de valores Celsius-Fahrenheit, para valores entre
O °F y 200 °F, con intervalos de 10°.
31.- Contar la cantidad de letras de un telegrama que termina en punto (los textos se leen
letra por letra).
32.- Contar la cantidad de palábras, separadas por uno o más espacios, de un telegrama que
termina en punto.
33.- Dado un texto terminado en punto, determinar cuál es la vocal que aparece con mayor
frecuencia.
34.- Dado un texto terminado en “/” se pide determinar cuántas veces aparece determinada
letra, leída de teclado.
35.- Dado un texto terminado en “/” averiguar qué cantidad de letras tiene la palábra más
larga. Suponer que nunca sucede que la primera letra del texto es una “/”.
36.- Dado un texto terminado en “/” determinar cuántas veces tres palábras seguidas
comienzan con la misma letra.
37.- Leer dos letras de teclado y luego un texto terminado en “/”. Se pide determinar la
cantidad de veces que la primera letra precede a la segunda en el texto.
38.- Leer N y luego N lotes de números reales que terminan con un valor 0, y calcular la
media individual de cada lote, junto con la media total de todos los números ingresados.
39.- Se dispone del registro diario de lluvias de un mes para una localidad. Si llovió algún
día del mes, indicar cuál fue el día más lluvioso y utilizar un indicador lógico para
discriminar si llovieron dos días seguidos en el mes. Si no llovió en todo el mes emitir un
mensaje.
41.- Se lee un texto terminado en “&” con palábras separadas por uno o más de los
siguientes caracteres: blanco, coma, punto, punto y coma. Las oraciones se encuentran
separadas por puntos, seguidos eventualmente de una serie de blancos.
Se debe determinar cuántas oraciones de más de cinco palábras hay en el texto.
Vectores. Procedimientos.
Const
Primanio = 1;
Ultanio = 200;
Type
Rango = Primanio .. Ultanio;
Escribir un programa que cargue en un vector llamado bisiestos todos los años
bisiestos correspondientes al intervalo de tiempo que va entre los años definidos.
Nota: Un año es bisiesto cuando es múltiplo de cuatro, exceptuando los múltiplos
de 100 que no lo sean de 400.
46.- Construir un algoritmo que para cada auto particapante en una carrera de TC
2000 lea un código de auto y dos tiempos de vuelta (en segundos y centésimas).
Previamente se debe leer la longitud del circuito. Dada una serie de códigos de auto
leídos a continuación, se deben informar las velocidades promedio correspondientes
a cada tiempo de vuelta de dichos autos. Ambos conjuntos de datos terminan con un
código de auto negativo.
47.- Por cada alumno que rindió un exámen de inglés se lee el número de padrón, el
código de carrera (entre 1 y 9) y la nota obtenida. Se desea saber la cantidad de
alumnos por carrera que rindieron el exámen y el porcentaje de alumnos que
obtuvieron cada nota.
Hallar el porcentaje de alumnos de cada carrera que resultaron aprobados.
50.- Por cada alumno que aprueba una materia en la Facultad de Ingeniería se
ingresa el número de padrón del alumno y el código de la materia aprobada. El lote
de datos termina con un número de padrón negativo. Se pide:
a) Un listado en el que, para cada alumno, conste la cantidad de materias aprobadas.
b) Un listado de las materias que fueron aprobadas por lo menos por un alumno.
c) El o los números de padrón de los alumnos que aprobaron la mayor cantidad de
materias.
51.- Escribir un programa Pascal que lea un texto (caracter por caracter) terminado
en “/” y con palábras separadas por uno o más blancos, determine cual es la palábra
palíndroma (capicúa) más larga del texto, y la imprima.
Suponer que los palíndormos tienen todos una longitud distinta. El texto puede
tener blancos antes de la primera palábra.
52.- Se lee un texto terminado en “&” con palábras separadas por uno o más de los
siguientes caracteres: blanco, coma, punto y coma o punto. Se debe determinar la
longitud de la palábra más corta e imprimir dicha palábra. Si hubiera más de una
palábra de esa longitud, imprimirlas todas, suponiendo que no son más de 100.
53.- Diseñar un algoritmo que halle una matriz C como suma de dos matrices A y
B. La dimensión de las matrices de MxN se lee como dato.
54.- Diseñar un algoritmo que halle un vector cuyos elementos son la suma de los
elementos de cada fila de una matriz previamente ingresada.
55.- Escribir un programa que calcule la traza de una matriz cuadrada. Recordar
que la traza de una matriz es la suma de los elementos de su diagonal principal.
La matriz dato se leerá a razón de una fila por línea.
Const
Max = 20;
Type
Rango = 1 .. Max;
Matriz = array [Rango, Rango] of real;
Escribir un subprograma que, al ser invocado como DiagDom (A,N) verifique que la
matriz A (cuadrada y de orden N) sea una matriz diagonal dominante.
Nota: Una matriz diagonal dominante es aquélla en la que cada valor absoluto de un
elemento de la diagonal principal es mayor a la suma de los valores absolutos del
resto de los elementos de su fila más la suma de los valores absolutos del resto de
los elementos de su columna.
Escribir un subprograma que, invocado como Múltiplo (A, B, N), verifique que la
matriz B sea múltiplo de la matriz A (ambas cuadradas y de orden N).
1.- Construir un procedimiento que, invocado como Intercal (X,Y), intercambie los
valores de las variables X e Y.
4.- Dada una serie de nombres de hasta 30 caracteres cada uno, ordenarlos
alfabéticamente.
5.- Escribir una función recursiva que, al ser invocada como MCD (A, B) halle el
máximo común divisor entre A y B mediante el algoritmo de Euclides.
MCD (A,A) = A
MCD (A,B) = MCD (B,A) (si A > B)
MCD (A,B) = MCD (A,B-A) (si A < B)
7.- Escribir un procedimiento que determine cuántas veces aparece cada letra en una
cadena de tamaño N.
8.- Escribir un procedimiento que al ser invocado como Blanc (S, Lado) elimine
los blancos superfluos del lado especificado (Izquierdo, Derecha, Ambos) de la
cadena S.
11.- Escribir un subprograma que, al ser invocado como CadMayor (C1, C2)
determine si la cadena C2 precede a la cadena C1 en orden alfabético. Luego incluir
este subprograma en otro que realice una búsqueda binaria en una tabla ordenada
ascendentemente por el campo nombre y devuelva el contenido del campo teléfono
al ser invocado como DevTele (Nombre, Tabla, Telef).
Se presume que el módulo invocante posee las siguientes declaraciones:
Const
Max = 200;
Type
Rango = 1 .. Max;
Cadena = String;
Usuario = Record
Nombre, Teléfono: Cadena
End;
Tabla = array [Rango] of Usuario;
Archivos.
12.- El INDEC debe procesar los datos del censo a realizarse en el año 2010. Para
ello, se debe construir un programa que lea de un archivo, para cada partido o
departamento de la Argentina, un registro conteniendo:
Previamente a este archivo se debe leer otro que, para cada código de provincia,
informe el nombre de la provincia correspondiente. El programa debe:
a.- Imprimir un listado ordenado por nombre de provincia que informe para cada
provincia, su nombre, población, porcentaje de mujeres y de analfabetos.
b.- Imprimir la población total del país, y porcentaje de mujeres y analfabetos
correspondientes a todo el país.
75.40 Algoritmos y Programación I Cátedra Lic. Gustavo López Página 12
c.- Informar cuál es el departamento o partido con mayor porcentaje de analfabetos,
en que provincia se encuentra y cuál es ese porcentaje máximo.
13.- Dados dos archivos de una misma materia (de dos turnos diferentes), cada uno
con registros que contienen:
Hay un registro por cada alumno de cada turno. Los archivos se encuentran
ordenados por número de padrón. Se pide obtener un archivo único de la materia
con la misma información, también ordenado por número de padrón. (Debe tenerse
en cuenta que un mismo alumno no puede pertenecer a ambos turnos).
Luego de cada corte de control se debe saltar de página e imprimir los títulos. Cada
página del listado estará numerada y se encabezará con: Renglón en blanco, Código
de biblioteca, Renglón en blanco, Nombre de editorial, Renglón en blanco,
Encabezamiento de columna, Renglón en blanco, y 55 renglones de datos.
Los nombres de las editoriales se encuentran en otro archivo, el cual entra en
memoria, y cuyos registros son del siguiente tipo:
Código de editorial
Nombre (20 caracteres).