practica modulo i
DESCRIPTION
AYED - UTN.BATRANSCRIPT
Mdulo I
Algoritmos y Estructura de Datos Cdigo 08-2021Universidad Tecnolgica Nacional Facultad Regional Buenos Aires Ingeniera en Sistemas de Informacin
Ingeniera en Sistemas de Informacin
Algoritmos y Estructura de Datos
Cdigo 08-2021
Prctica Mdulo I
2014
Estructuras Bsicas de Control, Datos Simples, Cadenas de Caracteres
En cada aplicacin se desarrollarn los siguientes pasos, utilizando como dispositivo de entrada el teclado y de salida el monitor o la impresora.
1. Enunciado: texto narrativo que describe una situacin problemtica a resolver, conteniendo el conjunto de datos de entrada, los resultados deseados, y el proceso a realizar 2. Datos de entrada y de salida: surgen del anlisis del enunciado 3. Estrategia: una generalizacin de pasos a seguir en la resolucin del problema sin llegar a lo particular4. Algoritmo de resolucin: representacin grfica de una secuencia ordenada y finita de acciones para obtener el resultado deseado a partir de un conjunto de datos. Utilizar Herramientas de programacin del ANEXO I.5. Seguimiento del algoritmo: comprobacin manual del algoritmo a partir de distintos juegos de datos6. Codificacin: transcribir el algoritmo en el lenguaje de programacin C++, utilizando un editor y creando un programa fuente.7. Compilacin: ejecucin del programa compilador del lenguaje C++ que traduce el programa fuente en un programa ejecutable (archivo.EXE). 8. Ejecucin del programa ejecutable en la computadora.
Temas del Mdulo I
I. Estructuras Secuenciales: Variables Constantes Operaciones de Entrada y Salida. Asignacin. Expresiones aritmticas. Operadores aritmticos. Tipos de datos Numricos enteros y reales. II. Estructuras Selectivas: Seleccin Simple. Seleccin Mltiple. Expresiones lgicas. Operadores de relacin. Operadores lgicos. Estructuras anidadas. Tipos de datos Carcter, Booleano o lgico. III. Estructuras Repetitivas: Repeticin definida o exacta. Repeticin indefinida Pre-condicin. Repeticin indefinida Post-condicin Estructuras anidadas.IV. Mximos y Mnimos. Tipos de datos Alfanumricos (Cadenas de caracteres). V. Ejercicios IntegradoresVI. Subprogramas. Subprogramas estndar. Funciones desarrollados por el usuario. Parmetros por valor y por referencia. Argumentos. Invocaciones Prototipos.Ejercicios Integradores Subprogramas
I. Estructuras Secunciales:
Ej. MI-1 A partir de dos valores enteros A y B, informar la suma, la diferencia (A menos B), y el producto.
DATOSDe EntradaDe Salida
-un nmero entero que identificaremos como A-otro nmero entero que identificaremos como B
- la suma de ambos nmeros que identificaremos como SUMA acompaada de una leyenda aclaratoria.- la diferencia entre los nmeros que identificaremos como DIF acompaada de una leyenda aclaratoria.- el producto entre ambos nmeros que identificaremos como PROD acompaada de una leyenda aclaratoria
Estrategia: Solicitar e ingresar datos por teclado Calcular suma e informar por monitor Calcular diferencia e informar por monitor Calcular producto e informar por monitor
Seguimiento
TecladoMemoriaMonitor
15
6 ABSUMADIFPRODIngrese un nmero entero15Ingrese un nmero entero6La suma es: 21La diferencia es: 9El producto es: 90
15
6
21
9
90
Ej. MI-2 Dado un nmero real que representa el importe de una compra informar las posibles formas de pago, segn la siguiente tabla: 1 cuota de $................. 2 cuotas de $................. total $................. ( 5% de recargo) 6 cuotas de $................. total $................. ( 40% de recargo)
Ej. MI-3: Dada una terna de nmeros naturales que representan al da, al mes y al ao de una determinada fecha informarla como un solo nmero natural de 8 dgitos (AAAAMMDD).
Ej. MI-4: A partir de un valor entero ingresado por teclado, se pide informar:a) La quinta parte de dicho valorb) El resto de la divisin por 5c) La sptima parte del resultado del punto a)
II. Estructuras Selectivas: II.a Seleccin Simple
Ej. MI-5 Dados dos valores enteros y distintos, emitir una leyenda apropiada que informe cul es el mayor entre ellos.
SeguimientoTecladoMemoriaMonitor
35
16 ABIngrese un nmero entero positivo35Ingrese un nmero entero positivo distinto al anterior16El mayor es: 35
35
16
Ej. MI-6 Dadas dos fechas informar cual es la ms reciente. Determine cuales seran los datos de entrada y las leyendas a informar de acuerdo al proceso solicitado. Ej. MI-7: Se ingresan tres temperaturas determinar cul es la mayor de las tres informando el nmero de orden. (1, 2 ,3).
Ej. MI-8: Dado un tringulo representado por sus lados L1, L2, L3, determinar e imprimir una leyenda segn sea: equiltero, issceles o esclenos.
II.b Seleccin Mltiple
Ej. MI-9: Dados un mes y el ao correspondiente informar cuantos das tiene ese mes.
DATOSDe EntradaDe Salida
- un valor entero MES - otro valor entero ANIO
informar la cantidad de das que tiene el mesMES, ANIO, DIA
Estrategia: Solicitar e ingresar datos por teclado Segn el mes informar la cantidad, considerar el caso de febrero cuando el ao sea bisiesto Seguimiento
TecladoMemoriaMonitor
8 2003MESANIODIAIngrese mes como un valor entre 1 y 128 Ingrese el ao como un nmero de 4 dgitos2003EL mes 8 del ao 2003 tiene 31 das
8
2003
31
11 200311
2003
30Ingrese mes como un valor entre 1 y 1211Ingrese el ao como un nmero de 4 dgitos2003EL mes 11 del ao 2003 tiene 30 das
2 20042
2004
29
Ingrese mes como un valor entre 1 y 122Ingrese el ao como un nmero de 4 dgitos2004EL mes 2 del ao 2004 tiene 29 das
Ej. MI-10: Dados dos nmeros, mostrar un men con opciones de sumar, restar o multiplicar dichos nmeros. Solicite elegir una opcin. Estrategia: Solicitar e ingresar los dos nmeros por teclado Mostar men Solicitar opcin Segn la opcin elegida Realizar la suma e informar Realizar la resta e informar Realizar el producto e informar Informar si la seleccin no fue correcta
Ej. MI-11 Se ingresa una edad, mostrar por pantalla alguna de las siguientes leyendas:
menor si la edad es menor o igual a 12 cadete si la edad est comprendida entre 13 y 18 juvenil si la edad es mayor que 18 y no supera los 21 mayor en el caso que no cumpla ninguna de las condiciones anteriores
III. Estructuras Repetitivas: III. a Repeticin definida o exacta
Ej. MI-12 Informar los primeros 100 nmeros naturales y su sumatoria
DATOSDe EntradaDe Salida
sin datos de entrada NRO 100 nmeros
SUMA de los 100 nmeros naturales
Estrategia: Generar los 100 nmeros naturales, acumular la suma e informarlos
SeguimientoTecladoMemoriaMonitor
KSUMALos 100 primeros nmeros naturales son123.......100La sumatoria de los 100 primeros nmeros naturales es.
123.....1001010136.......
Ej. MI-13: Dados N y M nmeros naturales, informar su producto por sumas sucesivas. Ej. MI-14: Dados 50 nmeros enteros, informar el promedio de los mayores que 100 y la suma de los menores que 10.
Ej. MI-15: Se realiza una inspeccin en una fbrica de pinturas, y se detectaron 20 infracciones. De cada infraccin se tom nota de los siguientes datos: Tipo de Infraccin (1, 2, 3, 4) Motivo de la infraccin Valor de la multa Gravedad de la infraccin (L,M, G)Se pide informar al final del proceso: Los valores totales de la multa a pagar de acuerdo al tipo de gravedad. La leyenda Clausurar fbrica si la cantidad de infracciones 3 y 4 con gravedad G sean mayor a 3.
III. b Repeticin indefinida 0-n
Ej. MI-16: Ingresar e informar valores, mientras que el valor ingresado no sea negativo. Informar la cantidad de valores ingresados.
Ej. MI-17: Se ingresa un conjunto de valores reales, cada uno de los cuales representan el sueldo de un empleado, excepto el ltimo valor que es cero e indica el fin del conjunto. Se pide desarrollar un programa que determine e informe:a) Cuntos empleados ganan menos $3.520.b) Cuntos ganan $3.520 o ms pero menos de $5.780.c) Cuntos ganan $5.780 o ms pero menos de $15.999.d) Cuntos ganan $15.999 o ms.
Ej. MI-18: Dado un valor M determinar y emitir un listado con los M primeros mltiplos de 3 que no lo sean de 5, dentro del conjunto de los nmeros naturales. III. c Repeticin indefinida 1-n
Ej. MI-19: Reescribir los algoritmos MI-16 al MI-18, utilizando ciclos 1-n
Ej. MI-20: Dado un conjunto de valores enteros, calcular e informar a) cuntos valores cero hubo, b) promedio de valores positivos, c) sumatoria de valores negativos.Resolver el ejercicio para los siguientes lotes de datos:1) 167 valores enteros2) N valores, donde el valor de N debe ser ledo previamente3) El conjunto de valores termina con un valor igual al anterior4) Se dan N valores, pero el proceso deber finalizar si se procesan todos los valores o si la cantidad de ceros supera a cuatro 5) Se dan N valores, pero el proceso deber finalizar si se cumple alguna de las condiciones de 4) o si el promedio de positivos resulta mayor que seis.
IV Mximos y Mnimos.
Ej. MI-21: Dados 10 valores informar el mayor
Ej. MI-22: Dados N valores informar el mayor, el menor y en que posicin del conjunto fueron ingresados.
Ej. MI-23: Dado un conjunto de Nombres y Fechas de nacimientos (AAAAMMDD), que finaliza con un Nombre = FIN, informar el nombre de la persona con mayor edad y el de la ms joven.
Ej. MI-24. Dado un conjunto de valores, que finaliza con un valor 0, determinar e imprimir considerando que los subconjuntos pueden se vacos. a) El valor mximo negativob) El valor mnimo positivoc) El valor mnimo dentro del rango -17.3 y 26.9e) El promedio de todos los valores.
Ej. MI-25: En un torneo de ftbol participan K equipos. El torneo se juega con el sistema de todos contra todos. Por cada partido disputado por un equipo se dispone de la siguiente informacin:a) Nro. de equipo,b) Cdigo del resultado ('P'= Perdido, 'E'= Empatado, 'G'= Ganado).
Se arma un lote de datos con todos los resultados del torneo, agrupados por Nro. de equipo.Desarrollar la estrategia y el algoritmo que imprima:Por cada equipo, su nmero y el puntaje total que obtuvo (suma 3 si gana, y 1 si empata).Que numero de equipo fue primero y cual fue ltimo, considerando que son nicos.
Ej. MI-26: Se dispone de un lote de valores enteros positivos que finaliza con un nmero negativo.El lote est dividido en sub-lotes por medio de valores cero. Desarrollar un programa que determine e informe:a) por cada sub-lote el promedio de valoresb) el total de sub-lotes procesadosc) el valor mximo del conjunto, indicando en que sub-lote se encontr y la posicin relativa del mismo dentro del sub-loted) valor mnimo de cada sub-lote
Ej. MI-27: Dada una serie de M pares {color, nmero} que corresponden a los tiros de una ruleta. Se pide informar:
cuntas veces sali el nmero cero y el nmero anterior a cada cero cuntas veces seguidas se repiti el color negro cuntas veces seguidas se repiti el mismo nmero y cul fue el mayor nmero de veces seguidas que salieron alternados el rojo y el negro el mayor nmero de veces seguidas que se neg la segunda docenas
Ej. MI-28: Un buque de carga traslada 100 contenedores a tres diferentes puertos del pas. Los puertos se identifican con los nmeros 1, 2 y 3. De cada contenedor, que el buque traslada, se registran los siguientes datos:- Identificacin del contenedor- Peso del contenedor en kg- Puerto de arribo(un valor de 1 a 3).Se pide calcular e informar:1) El peso total que el buque debe trasladar2) La identificacin del contenedor de mayor peso3) La cantidad de contenedores que debe trasladar a cada puerto
Ej. MI-29: Dada una serie de caracteres que conforman una oracin, donde cada palabra est separada de la siguiente por un carcter blanco y la oracin finaliza con un punto. Se pide informar:a) cantidad de veces que apareci cada vocalb) cantidad de palabras que contiene la oracinc) cantidad de letras que posee la palabra ms larga.
Ej. MI-30: Dado un nmero entero positivo entre 1 y 3999 informar su correspondienteRepresentacin en nmeros Romanos
Ej. MI-31: El gobierno de la Ciudad de Buenos Aires realiza una encuesta en casas de familia. De cada familia conoce: domicilio, tipo de vivienda (C:casa, D:departamento), y cantidad de integrantes. De cada integrante de la familia se conoce: nombre y apellido, edad, sexo (F, M), nivel de estudios alcanzados (N: no posee, P: primario, S: secundario, T: terciario, U: universitario), y un indicador (I: incompleto, C: completo) que se refiere al tem anterior. Los datos finalizan cuando la cantidad de integrantes sea igual a cero. Se pide emitir un listado con los resultados:a) los datos de los encuestados que hayan completado los estudios primariosb) el porcentaje de analfabetismo en la ciudad (se considera analfabetos a los mayores de 10 aos que no posean estudios)c) el domicilio de la familia con mayor cantidad de integrantes que viven en departamentod) edad promedio de cada familia y de la ciudade) cantidad de encuestados en cada tipo de nivel de estudios alcanzados incompletos.f) porcentaje de encuestados de sexo femenino y masculino.
Ej. MI-32: Una compaa area desea emitir un listado con los movimientos mensuales de sus M vuelos al exterior. Para ello cuenta con la siguiente informacin. De cada vuelo realizado el nmero de vuelo, destino, y cantidad de asientos. De cada pasajero el nmero de pasaporte y el importe que abon por el pasaje en dlares.La informacin finaliza con un nmero de pasaporte igual a cero. Se pide emitir el siguiente listado:
Nro. de Vuelo 9999 Destino: xxxxxxxxxxxxxxxxx Nro. de Pasaporte Importe en u$s 99999999 999.99 99999999 999.99 Total recaudado del vuelo: 99999.99 % de Asientos Libres del vuelo 999.99 % de Asientos Ocupados del vuelo 999.99
Total recaudado en el mes 999999.99Cantidad de veces seguidas que se dieron vuelos completos 99El nmero de vuelo que ms recaud 9999
VI Subprogramas
Ej. MI-33: Desarrollar una funcin que calcule el mximo comn divisor de dos nmeros enteros A, B con el siguiente algoritmo:1) Dividir A por B, y calcular el resto (0 < R < B)2) Si R = 0, el MCD es B, si no seguir en 3)3) Reemplazar A por B, B por R, y volver al paso 1)
Ej. MI-34: Desarrollar una funcin tal que dado un nmero entero positivo calcule y retorne su factorial.
Ej. MI-35: Hacer una funcin con el ejercicio M1-3.
Ej. MI-36: Dados dos nmeros enteros definir una funcin que devuelva un valor verdadero si son mltiplos y falso si no lo son.
Ej. MI-37: Dada una serie de nmeros enteros, informar:a) su factorial
b) cuantos hay mltiplos de 3c) cuantos mltiplos de 5d) cuantos mltiplos de 3 y de 5
Utilice las funciones de ejercicios anteriores.
Ej. MI-38: Dada la fraccin P/Q, para P y Q naturales informar la mayor cantidad de simplificaciones. Desarrolle y utilice una funcin que reciba dos nmeros naturales y retorne el menor factor comn. Ej: 360/60 = 180/30 = 90/15 = 30/5 = 6/1
Ej. MI-39: Desarrolle la funcin que recibe dos valores y retorne el siguiente clculo: (B-A) *100 / (A+B)
Ej. MI-40: Desarrollar la funcin que recibe la edad y retorne un valor de 1 a 8, de acuerdo al siguiente cuadro:EdadValorEdadValor
Hasta 14 aos1De 15 a 212
De 22 a 283De 29 a 354
De 36 a 425De 43 a 496
De 50 a 637Mayores de 638
Ej. MI-41:Disear una funcin que imprima el cartel:PRESIONE ENTERPARA CONTINUAR
Ej. MI-42: Desarrollar un funcin tal que dados una base y un exponente, enteros positivos, calcule y retorne la potencia.
Ej. MI-43: Desarrollar una funcin que reciba una fecha en una variable con formato AAAAMMDD retorne el ao el mes y el dia en tres variables independientes.
Ej. MI-44: Desarrolle una funcin que obtenga las dos races de una ecuacin de segundo grado siempre que sea posible, indicando esto con una variable boleana.
Ej. MI-45: Desarrollar una funcin tal que: dada una hora (HHMMSS) y un tiempo tambin en formato HHMMSS devuelva la nueva hora que surge de sumar el tiempo a la hora inicial, considere tambin un posible cambi el da.
Ej. MI-46: Desarrollar una funcin que dados un par de valores A y B, retorne una leyenda de acuerdo al siguiente cuadro:
B - A < 0DecrecienteB - A < 2% de AEstable
B - A < 5% de ALeve ascensoRestoEn ascenso
Ej. MI-47: Dado un conjunto de 20 elementos, donde cada elemento son dos puntos que representan las esquinas opuestas de un rectngulo x1, y1, x2, y2.(x2, y2)
(x1, y1)Se pide:1) Informe el permetro de cada rectngulo que sea un cuadrado2) Al final del algoritmo informe la cantidad de rectngulos ingresados que no son cuadrados.Utilice la funcin abs (x), que retorna el valor absoluto de x.
Ej. MI-48: Una bodega quiere lanzar una oferta para terminar con el stock de dos productos. Para ello cuenta con B cantidad de cajas de vino blanco y T cantidad de cajas de vino tinto. Desea armar la mayor cantidad posible de paquetes con la oferta y que todos los paquetes tengan igual cantidad de cajas de vino blanco y de vino tinto. Se pide informar cuntos paquetes se podrn armar como mximo, y cuntas cajas de vino blanco y cuantas de vino tinto contendrn cada uno. Utilice la funcin desarrollada en el Ej. MI-33.
Ej. MI-49: De un censo realizado en una poblacin se conocen los siguientes datos: Da de nacimiento (2 dig.) Mes (2 dig.) Ao (4 dig.) Sexo ('M'=masc. 'F'=fem.)Con estos datos de cada habitante se forma un lote finalizado con un da cero. Desarrollar el programa que determine e imprima:1) Cuntos nacimientos hubo en el mes de octubre de todos los aos.2) Cuntos nacimientos hubo antes del 9 de julio de 1990.3) Cuntos nacimientos de mujeres hubo en la primavera del 1982.4) Sexo de la persona ms vieja (solo existe una).
Nota: aplique la funcin del Ej. MI-35, en la comparacin de fechas
Ej. MI-50: Desarrollar:
a) Una funcin que reciba un nmero natural de 4 dgitos en formato de HHMM que corresponde a un tiempo determinado en horas y minutos, retorne ese tiempo en minutos.b) Otra funcin que reciba el costo en pesos de un abono telefnico, la cantidad de minutos libres que incluye el abono, el cargo en pesos por minuto excedente y la cantidad de minutos utilizados por un abonado, retorne la cantidad de minutos excedidos y el monto en pesos a abonar (costo del abono ms minutos excedidos por el costo de minutos excedidos) ms el 21% del valor del IVA
Desarrolle un algoritmo que resuelva la siguiente situacin problemtica: Todos los fines de mes, una empresa de telefona celular debe confeccionar las facturas con los consumos de todos sus abonados, que se realizan en tres turnos de trabajo: Maana, Tarde y Noche. Para ello se ingresar por teclado la siguiente informacin de cada celular: Nmero de celular 9 dgitos ( 0 indica cambio de turno) Nombre del abonado 20 caracteres Direccin del abonado 25 caracteres Tiempo utilizado 4 dgitos en formato HHMM Tipo de abono (carcter, A, B, C, D o E) Dependiendo del tipo de abono que se tenga, el usuario tiene cierta cantidad de minutos libres, por los cuales no abona cargo extra, pero por cada minuto que se exceda debe abonar una suma extra segn la siguiente tabla:
PlanABCDE
Costo$70$55$40$28$19
Minutos Libres3002001006040
Cargo por minuto excedente$0.09$0.15$0.21$0.29$0.37
Emitir el siguiente listado por cada turno:
Turno MaanaNombre del Abonado Direccin Minutos libres Minutos Excedidos Monto Total a Abonar xxxxxxxxxxxx xxxxxxxxx 99999 99999 $ 9999.99 xxxxxxxxxxxx xxxxxxxxx 99999 99999 $ 9999.99 xxxxxxxxxxxx xxxxxxxxx 99999 99999 $ 9999.99Turno TardeTurno Noche
Informar por cada turno de trabajo: El nombre del abonado que debe abonar la factura ms costosa y el monto de sta.
El nombre y el nmero de celular de la persona que realiz la mayor cantidad de minutos excedentes, indicando cuntos fueron.
Al final del da informar: El monto total facturado En que turno y en que orden dentro del turno apareci el abonado que utiliz la menor cantidad de minutos en el mes.
Utilice los subprogramas a) y b).
Anexo I: Herramientas de Programacin
AccionesGrficosLenguaje C++
Comienzo
{
Estructuras secuencialesIngresar Valores
cin
Informar Valores
cout
Asignar Valores variable expresin
=
Estructuras selectivasSeleccin simple
If
Seleccin mltiple
switch
AccionesGrficosLenguaje C++
Estructuras repetitivasAcciones de repeticinRepeticin indefinida Pre-condicin
while
Repeticin definida o exacta
for
Repeticin indefinida Post-condicin
do while
Sub-algoritmosEncabezamiento
Voidreturn
Llamada
llamada
Retorno del subalgoritmo
}
Fin
}
MEMORIA DEL COMPUTADOR
Tipo C++lTipo de dato Rango de valores que acepta Tamao en bytes
shortentero -32,768 a 32,767 2
unsignedshort entero 0 a 65535 2
intentero -2,147,483,648 a 2,147,483,648 4
charentero -128 a 127 1
Unsignedcharentero 0 a 255 1
Long intentero -2,147,483,648 a 2,147,483,648 4
double
real 2.9E-39 a 1.7E38 8
Floatreal 1.5E-45 a 3.4E38 4
long doblereal3.4E-4932 a 1.7E493210
boolbooleanofalse o true1
- 8 -- 7 -TIPO de FUNCION
Parametros