practica modulo i

Upload: jose-barreto

Post on 01-Mar-2016

236 views

Category:

Documents


0 download

DESCRIPTION

AYED - UTN.BA

TRANSCRIPT

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