Академический Документы
Профессиональный Документы
Культура Документы
Arreglos
1. Hallar el mximo valor en un arreglo de N elementos ( defina el arreglo como: Arreglo X de Entero[-15..8] )
2. Dado un arreglo A de N elementos enteros, almacenar en un arreglo B, las sumas parciales de los elementos de A.
3. Dada una secuencia de palabras, almacenada en un arreglo de cadenas de caracteres (string) y terminada en *, contar la
cantidad de palabras la, de pero que se encuentran en la secuencia.
4. Adaptar el procedimiento anterior para realizar sustituciones de palabras segn se indica a continuacin:
4.1. Para facilitar el algoritmo, desarrollo un mtodo o funcin llamada PrximaPalabra que le permita obtener la siguiente
palabra del archivo
4.2. Si al encontrar la palabra pero e incrementar su contador, este toma un valor mltiplo de 5, sustituir la palabra por
peroles. Por ejemplo, al encontrar la 5, 10, 15, 20 palabra pero, estas sern sustituidas en el archivo por la
palabra peroles
4.3. A la vez, ir contando cuantas palabras pero han sido sustituidas
5. Obtener en un arreglo, los factoriales de los primeros 10 nmeros naturales. Hacer hincapi en la solucin ms eficiente: no
calculando la multiplicacin de los i-1 valores anteriores, sino reutilizando el resultado del factorial previo.
6. Convertir un nmero entero cualquiera, en una cadena de caracteres (string) almacenada en un arreglo.
Algoritmos de Ordenamiento
13. Dado un arreglo de 100 enteros, invertir el orden de sus elementos.
14. Adaptar la solucin anterior para invertir un arreglo de 103 elementos tipo carcter.
Junio-05, Mayo 08
16. Dada una matriz B de NxN elementos enteros (matriz cuadrada), construya pseudo-cdigos que permitan:
16.1. Calcular la suma de todos los elementos que se encuentran a la derecha de la diagonal principal (SUMA_DER_DIAG)
16.2. Calcular la suma de todos los elementos que se encuentran a la izquierda de la diagonal principal (SUMA_IZQ_DIAG)
16.3. Utilizar los mtodos anteriores en un algoritmo principal, a fin de conocer la suma de las diagonales izquierda y derecha
para una matriz cuya dimensin ser suministrada por el usuario. NOTA: Verifique antes, a partir de la dimensin
suministrada por el usuario para la matriz, si se justifica llamar a los mtodos (qu pasa si la matriz es de 1x1, 2x2 ?)
17. Dadas variables del tipo matriz Rec de MxN elementos carcter, construya pseudo-cdigos que permitan realizar los siguientes
recorridos:
17.1 Mtodo Culebrita_Filas
inicio
fin
inicio
fin
fin
inicio
Registros
18. Aplicando el Enfoque Orientado a Objeto, establezca una estructura utilizando registros que permita almacenar fechas y
desarrolle los siguientes mtodos:
18.1. Mtodo Comparador_de_fechas, al cual se le suministran dos (2) fechas e indica cul de ellas es la ms reciente.
18.2. Mtodo Fecha_Vlida, al cual se le suministra una fecha e indica mediante valores lgicos si la fecha es correcta,
partiendo de que una fecha es vlida, si es menor a la fecha del da en que se hace la consulta.
18.3. Mtodo Fecha_a_Das, al cual se le suministra una fecha e indica la cantidad de das del ao que han transcurrido y son
equivalentes a la fecha. Por ejemplo, si la fecha suministrada es 17-01-2005, el resultado es 17 das, si la fecha es 0503-2005 el resultado es 64 das
19. Definir una estructura de datos que permita almacenar toda la informacin relevante del curso de Algoritmos y Programacin I.
Considere o utilice la estructura para:
19.1. Almacenar informacin de notas (3 exmenes parciales tericos, 3 exmenes prcticos, 3 proyectos, 4 laboratorios),
profesores (CI, Nombres, Apellidos, cubculo, seccin que dicta, email), preparadores (CI, Nombres, Apellidos, seccin de
prctica que dicta, email), estudiantes (CI, Nombres, Apellidos, email, notas de cada evaluacin).
19.2. Crear un mtodo Inicializar_Estudiantes, que cargar la informacin de los estudiantes de la materia Alg y Prog I
Pg. 2
19.3. Crear un mtodo Inicializar_Notas, que permitan leer y cargar la calificacin de cada estudiante para las 2 primeras
evaluaciones de parciales tericos, quices y proyectos
19.4. Crear un mtodo Ordenar_por_Nota, que utilizando un ARREGLO DE NDICES que refleje la lista de estudiantes
ordenada ascendentemente por la nota del parcial 1. Se usar un arreglo de ndices para indicar las posiciones de los
alumnos una vez son ordenados y evitar tener que duplicar toda la informacin del registro estudiante.
20. Investigue como pueden adaptarse los algoritmos de bsqueda y ordenamiento para ser aplicados a registros
Archivos
Notas generales:
SIEMPRE tome en cuenta que el archivo de entrada podra suministrrsele vaco y que la condicin de
parada o fin de archivo (FDA) se alcanza cuando se lee la palabra *
21. Dado un archivo de texto, contar la cantidad de vocales que tiene el mismo.
22. Dado el nombre de dos archivos binarios, generar un tercero que sea la concatenacin de los anteriores.
23. Dado un archivo de estudiantes, imprimir aquellos cuya cdula de identidad sea mayor que 10 millones. Use la siguiente
especificacin:
Tipo Registro Estudiante =
Entero CI;
String Nombre;
Entero ND;
FRegistro;
24. Dado dos archivos de estudiantes ordenados ascendentemente por el campo CI, generar un tercer archivo que sea la mezcla
ordenada de los anteriores.
25. Adapte los ejercicios 5 y 6 a fin de considerar que el texto con la secuencia de palabras en donde se realizar la bsqueda
estar almacenado en un archivo de texto, y no en un arreglo.
Ejercicios Varios
TIPOS DE DATOS ESTRUCTURADOS
26. Dada una secuencia de caracteres, se quiere calcular la frecuencia de todas las letras del alfabeto presentes en ella. Suponga:
La secuencia suministrada solo contiene letras y espacios ( )
Ud. cuenta con una funcin abstracta llamada Carcter_Siguiente(), ya implementada y que puede usar para obtener el
prximo carcter de la secuencia
La secuencia termina cuando se suministra el carcter *
La frecuencia de cada letra se calcula dividiendo la cantidad de veces que se ha contado esa letra, entre la cantidad total
de letras de la secuencia
Utilice arreglos para almacenar las frecuencias calculadas para cada letra del alfabeto.
Pg. 3
Junio-05, Mayo 08
n=2
n=3
n=4
n=5
1
1
1
2
3
4
1
3
1
4
30. Dada un archivo Personas que contiene el nombre de la persona, su cdula de identidad y edad, se quiere generar otro
archivo llamado Menores que contengan la informacin de las personas menores a 18 aos.
31. El departamento de contabilidad de una cadena de tiendas dispone de la informacin referente al monto de las ventas
realizadas por artculo en cada una de sus tiendas y para cada uno de los meses del ao anterior. Tambin dispone de
informacin sobre el nmero de tiendas de la cadena, el nmero de artculos ofertados y el hecho de que todas las cadenas
venden los mismos artculos.
Con el fin de planificar la poltica de ventas para el ao en curso, la empresa requiere:
31.1. Le sean propuestas estructuras de datos que le permitan guardar la informacin de sus ventas
31.2. Se desarrolle un mtodo Calculo_Ventas_Mensual que permita conocer el monto total por mes de las ventas realizadas
para cada artculo
31.3. Monto total de las ventas realizadas por la cadena en el ao
32. Dada una secuencia de caracteres suministrada en un archivo de texto, se quiere calcular la frecuencia de todas las letras del
alfabeto presentes en ella. Considere lo siguiente:
La secuencia suministrada en el archivo solo contiene letras y espacios ( )
32.1. Ud. cuenta con una funcin abstracta llamada Leer_Archivo(variable_archivo A, Caracter X), ya implementada y que
puede usar para obtener el prximo carcter de la secuencia
32.2. La secuencia termina cuando se suministra el carcter *
32.3. La frecuencia de cada letra se calcula dividiendo la cantidad de veces que se ha contado esa letra, entre la cantidad total
de letras de la secuencia
32.4. Se desea almacenar las frecuencias de cada letra y la cantidad total de letras en una estructura que facilite la consulta
posterior de la frecuencia de una letra cualquiera del alfabeto.
Pg. 4
33. Dada un archivo que contiene los nombres, apellidos, cdulas de identidad y edad de un grupo de personas, se quiere generar
otro archivo llamado Menores que contenga solo la informacin de los menores de 18 aos.
34. El departamento de contabilidad de una cadena de tiendas dispone de la informacin referente al monto de las ventas
realizadas por artculo en cada una de sus tiendas y para cada uno de los meses del ao anterior. Tambin dispone de
informacin sobre el nmero de tiendas de la cadena, el nmero de artculos ofertados y el hecho de que todas las cadenas
venden los mismos artculos.
Con el fin de planificar la poltica de ventas para el ao en curso, la empresa requiere:
34.1. Le sean propuestas estructuras de datos que le permitan guardar la informacin de sus ventas
34.2. Se desarrolle un mtodo Calculo_Ventas_Mensual que permita conocer el monto total por mes de las ventas realizadas
para cada artculo
34.3. Monto total de las ventas realizadas por la cadena en el ao
PROGRAMACIN ORIENTADA A OBJETOS
35. Dada la siguiente definicin de la clase Lista
Clase Lista
Privado Arreglo Elementos[1..N] de Entero; # elementos de la lista
Privado Entero T;
# indica la posicin del elemento tope o superior de la lista
Privado Resultados
# estructura de datos, propuesta por Ud. en donde se retornarn resultados de la lista
Constructor Lista()
// instrucciones del mtodo
FConstructor;
Pblico Accin Insertar(Entero A, Pos)
// inserta el elemento A en la posicin Pos, verificando previamente que la lista no est llena
Faccin;
Pblico Accin Eliminar(Entero Pos)
// elimina el elemento ubicado en Pos, verificando previamente que la lista no est vaca
Faccin;
Pblico Funcin Buscar_Pos_Elem(Entero A) : Entero
// retorna la posicin que ocupa el elemento A en la lista
Ffuncin;
Pblico Funcin Mximo_y_Promedio() : Resultados
// retorna la posicin del mximo elemento y el promedio de los elementos de la lista
Ffuncin;
a. Agregar elementos a la lista en la primera, en la del centro y en la ltima posicin. Los elementos a insertar sern
suministrados por el usuario y debe escribirse un mensaje de alerta en caso de que el elemento a insertar no quepa
en la lista.
b. Crear dos variables del objeto tipo lista, la lista1 tendr 6 elementos, y la lista2 tendr 4 elementos
c. Crear un mtodo para llenar listas y utilizarlo para inicializar o guardar los elementos de la lista1 y la lista2
d. Crear lista3 en la cual se guarden los elementos ordenados de lista1 y lista2 (considere orden ascendente)
35.3. Qu cambios debera incluir en la especificacin del objeto lista para convertirlo en un objeto cola?
35.4. Qu cambios debera incluir en la especificacin del objeto lista para convertirlo en un objeto pila?
36. Dada la siguiente informacin referente a vehculos que una empresa oferta para la venta:
- Nmero de vehculos ofertados
- Marca
- Precio
36.1. Utilice el EOO y proponga una estructura de datos que permita almacenar la informacin de todos los carros en venta,
asuma que el usuario le indicar el nmero de carros que se ofertarn.
36.2. Proponga un mtodo que permita consultar y guardar la posicin o ndice de los vehculos cuyo precio es menor o igual a
un precio P suministrado por el usuario, en decir, busque y guarde las posiciones en un ARREGLO DE NDICES.
Recuerde que se utiliza un arreglo de ndices para evitar duplicar la informacin de cada registro de los vehculos.
36.3. Proponga un mtodo que permita hallar el vehculo ms econmico de 2.2 litros
37. Dada la siguiente informacin referente a vehculos usados que un Concesionario est vendiendo y sus dueos:
- Serial/Placa
- Marca
descapotable)- Precio
- Nombres, C.I., Telfonos y Email del vendedor-dueo del vehculo (cada vehculo tiene un solo dueo)
37.1. Proponga una estructura o estructuras de datos que permita almacenar la informacin de los carros en venta y de sus
dueos (asuma que a travs de una lectura le ser suministrado el nmero de carros en venta).
37.2. Utilice el EOO y proponga un mtodo que permita obtener los vehculos cuyo precio es menor o igual a un precio P
suministrado por el usuario.
Este mtodo debe buscar y guardar los seriales/placas de los vehculos seleccionados en forma eficiente, es decir, NO E
QUIERE que usted duplique la estructura(s) de datos originales donde se almacena la informacin de los vehculos.
37.3. Proponga un mtodo que permita consultar el nombre, telfono y email de los dueos de vehculos con motor de 2.2
litros
Pg. 6
Junio-05, Mayo 08
TERCER PARCIAL
1. Responda y justifique brevemente cada una de las siguientes preguntas
(0,5 pto. c/u, total 4 ptos)
1.1. El algoritmo de ordenamiento de burbujas podra hacer menos comparaciones que el resto de
los algoritmo de ordenamiento vistos en clases?. Si es cierto, indique por qu, y d un ejemplo.
1.2. Un arreglo puede ser almacenado en memoria principal, y puede ser almacenado memoria
secundaria.
1.3. Un objeto puede contener entre sus atributos un registro.
1.4. Para llevar a cabo la bsqueda binaria en un arreglo, ste debe estar ordenado.
1.5. Un arreglo unidimensional puede usarse para representar un arreglo bidimensional?, en caso
afirmativo de un ejemplo.
1.6. Los archivos slo almacenan tipos de datos estructurados.
1.7. Sea Arreglo A de String [110], y j una variable de tipo Entero inicializada en 0, la expresin
Mientras j<10 hacer
Escribir (A[j]);
j j+1;
Fmientras
Muestra todos los elementos de A? En caso de ser falso, indique por qu y haga las
correcciones necesarias.
1.8. Un registro es exactamente igual a un objeto sin mtodos.
2. Determinar si una matriz de MxM es un cuadrado mgico.
Se considera un cuadrado mgico a una matriz en la cual la suma de cada fila, de cada columna, de
la diagonal principal y de la diagonal secundaria son iguales.
Proponga una solucin eficiente que implemente funciones o acciones (usted elige) que le permitan
calcular la suma de cada fila, la suma de cada columna, la suma de la diagonal principal y de la
diagonal secundaria, e invoque convenientemente a estas funciones o acciones en el Algoritmo
Principal para verificar que se tiene un cuadrado mgico.
Considere:
2.1. Usted debe especificar y crear la matriz con un tamao M que le suministrar el usuario.
2.2. Como la matriz estar vaca, usted debe llenarla antes de proceder a verificar si es un cuadrado
mgico.
(valor 6ptos.)
3. El Observatorio Parque Sierra Nevada desea desarrollar un sistema que le permita monitorear las
temperaturas de los pramos venezolanos.
Pg. 7
codPtoObs: identificador del punto de observacin. El cdigo viene dado por 3 caracteres que
hacen referencia al sitio de observacin y 2 dgitos que indican el nmero del punto de
observacin. Ej. PAG18, que indica que el punto de observacin es el Pico el guila y que es
el punto de observacin nmero 18.
Se desea que usted proponga una solucin algortmica con acciones y/o funciones que:
3.1. Especifique las estructuras de datos ms convenientes y las utilice en la soluciones propuestas.
3.2. Indique para cada mes la temperatura mnima, la temperatura mxima y donde fue recopilada.
3.3. Almacene e indique los puntos que presentaron ms de 30 observaciones con temperaturas
inferiores a los 4C.
3.4. Indique los puntos que presentaron la menor y la mayor temperatura del ao, adems en que
mes y da ocurri.
El archivo TemperaturasAnuales, slo puede ser recorrido una vez. Utilice las estructuras
auxiliares necesarias de forma eficiente.
(valor 10 ptos.)
Pg. 8
Junio-05, Mayo 08
3. Dada un archivo llamado GENTE.bin que contiene: nombre, cdula, sexo y edad de un grupo de
personas, se desea generar otro archivo llamado Menores.bin que contenga slo la informacin de las
mujeres menores en edad que la primera persona del archivo.
(5 ptos)
La estructura de datos que almacena la informacin de cada persona es la siguiente
Tipo Registro Persona
String Nombre;
Entero CI;
Entero Edad;
Carcter sexo;
FRegistro;
# sexo M F
Pg. 9
Junio-05, Mayo 08
22/06/2005
SEGUNDO EXAMEN PARCIAL
1. Indique y justifique la veracidad y/o falsedad de cada una de las siguientes sentencias:
(0.5 puntos c/u, total 4 puntos)
a) Para que el ciclo Repetir se realice, la evaluacin de la condicin debe tener valor de verdad
verdadero.
b)
Un ciclo Para puede ser detenido antes de que complete todos los ciclos inicialmente
acordados.
c)
Un mtodo debe tener al menos un parmetro.
d)
Si en un algoritmo se tiene una instruccin de escritura -por ejemplo, Escribir(aprender
estructuras iterativas es muy conveniente)- y un ciclo Mientras, el mensaje se escribir 0 o ms
veces.
e)
El crear ciclos infinitos siempre es un error de programacin.
f)
Una invocacin a funcin puede colocarse como parmetro en una invocacin a otro
mtodo.
g)
Suponga que se tiene una accin con pase de parmetro por referencia, pero
internamente nunca se modifican los valores referenciados. Es esta situacin exactamente igual a
hacer un pase de parmetro por valor?
h)
La expresin
mientras n>0 hacer
n n div 10;
fmientras
Puede ser convertida a una expresin equivalente, utilizando la estructura Repetir (si su respuesta
es positiva, escriba la expresin resultante).
2. Dado el siguiente algoritmo:
Clase Algohace
Privado Entero X;
Constructor()
X 3;
Acc2(X);
fconstructor
Accin Acc1 ( Entero E1, Var Entero E2)
Entero h;
h 2;
Mientras(h C y E2 0 ) hacer
Si ((E1 mod h) = 0) entonces
E2 0;
fsi
h h+1;
fmientras
faccion
Pg. 10
a) Realice la prueba del algoritmo, indicando el estado de las variables en cada paso de la
ejecucin.
b) Cul es el objetivo del algoritmo?
(5 puntos)
3. Considerando como dato de entrada su nmero de cdula de identidad, utilice un slo ciclo para separar
los dgitos de la cdula, calcular e indicar: los dgitos pares, los impares, los que son nmeros primos y
si el primer dgito (el primero de la derecha) es divisor del ltimo (el primero de la izquierda).
Por ejemplo, para la Cdula 11563989, los resultados seran:
-
dgitos pares: 6, 8
dgitos impares: 1, 1, 5, 3, 9, 9
Pg. 11
Junio-05, Mayo 08
String nombre;
Entero ci;
Arreglo kardex de Nota [1..4];
FRegistro
String materia;
Real nota;
FRegistro
Considere un arreglo A que contiene 99 registros de tipo Estudiante, elabore acciones o funciones para resolver cada
uno de los siguientes requerimientos:
(3 pts. c/u)
1) Inicializar el arreglo desde un archivo que contiene registros de tipo estudiante. Considere que el archivo
puede tener menos de 99 estudiantes.
2) Obtener el promedio de las notas de cada uno de los estudiantes.
3) Obtener el promedio de una materia dada por el usuario.
4) Ordenar el arreglo descendentemente por el campo ci (puede utilizar cualquiera de los algoritmos de
ordenamiento vistos en clase).
2. Una imagen puede ser representada como un arreglo bidimensional de nmeros enteros, donde cada nmero
representa un punto o color (pxel) a pintar en pantalla.
Se desea que defina los atributos de una imagen, que puede tener cualquier tamao por filas y columnas, e
implemente cada uno de los siguientes mtodos:
(4 pts. c/u)
VoltearHorizontalmente()
VoltearVerticalmente()
P2
P3
P4
P1
P2
P3
P4
P5
P6
P7
P8
P5
P6
P7
P8
P9
P10
P11
P12
P9
P10
P11
P12
P4
P3
P2
P1
P9
P10
P11
P12
P8
P7
P6
P5
P5
P6
P7
P8
P12
P11
P10
P9
P1
P2
P3
P4
Caracas, 05-Diciembre-2006
4.3. El algoritmo de bsqueda binaria es igual de eficiente que el algoritmo de bsqueda secuencial.
4.4. Es bien sabido que un arreglo es una estructura de datos homognea. En el enfoque orientado a objetos,
un arreglo puede almacenar objetos de clases distintas?. Adicionalmente, en caso afirmativo, d un
ejemplo.
4.5. Un arreglo puede ser almacenado en memoria principal, y puede ser almacenado memoria secundaria.
5. (VECTOR--) Se desea escribir un programa que lea una serie de valores numricos de tipo Entero
suministrados por el usuario, los almacene en una estructura de datos conveniente y realice diferentes
procesamientos sobre ellos.
(4ptos.)
5.1. Para indicar que terminaron los datos de entrada el usuario suministrar el valor 99.
5.2. Adems de permitir la entrada y almacenamiento de los datos, el algoritmo deber contar con
procedimientos (acciones / funciones) para imprimir los valores almacenados, calcular la suma de ellos,
calcular el promedio o media aritmtica, y calcular la desviacin estndar (es la diferencia entre cada valor
y la media).
5.3. Desde el algoritmo principal se deber hacer llamadas a los procedimientos encargada de leer y
almacenar los datos, imprimirlos y realizar las operaciones sobre ellos.
5.4. Usted debe proponer y especificar tambin la(s) estructura(s) de datos ms convenientes para almacenar
los datos y ser usada en su algoritmo.
6. (MATRIZ MxN--) Una empresa de venta de productos por correo desea realizar una estadstica de las ventas
realizadas de cada uno de los productos a lo largo del ao anterior. La empresa distribuye un total de 100
productos y realizar sus estadsticas para los ltimos 6 meses de ao.
(6ptos.)
Se desea que usted proponga una solucin algortmica con acciones o funciones que:
(8ptos.)
La informacin es almacenada en un archivo llamado Productos y los datos relevantes de cada producto se
reflejan en el siguiente registro:
Tipo Registro Producto=
Entero Cdigo;
Pg. 13
String Nombre;
Entero stockActual; # el stock es la cantidad de ese producto que hay en el almacn
Entero stockMnimo; # cantidad mnima que debe haber de ese producto
Entero stockMximo; # cantidad mxima del producto que se puede almacenar
Entero IDProveedor; # nmero del proveedor para el producto
FRegistro
El sistema tambin almacena el Cdigo, Nombre, Email y Telfono de los trece (13) Proveedores con que
trabaja la empresa.
Se desea que usted proponga una solucin algortmica con acciones o funciones que:
7.3. Genere un archivo Pedidos en donde se almacene la informacin de los productos cuyo stockActual es
menor al stockMnimo. En el archivo Pedidos se desea mantener la mnima informacin que identifique al
producto, la cantidad a pedir y el proveedor que lo suministra. La cantidad a pedir debe permitir que el
nuevo stock del producto sea igual a su stock mximo.
7.4. Imprima informacin que permita contactar a los Proveedores de los productos que fueron incluidos en el
archivo Pedidos.
xito en su preparacin
Profa. Yusneyi
Pg. 14