Sunteți pe pagina 1din 11

Universidad 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.
2.
3.
4.
5.
6.
7.
8.

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
Datos de entrada y de salida: surgen del anlisis del enunciado
Estrategia: una generalizacin de pasos a seguir en la resolucin del problema sin llegar a lo particular
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.
Seguimiento del algoritmo: comprobacin manual del algoritmo a partir de distintos juegos de datos
Codificacin: transcribir el algoritmo en el lenguaje de programacin C++, utilizando un editor y creando un
programa fuente.
Compilacin: ejecucin del programa compilador del lenguaje C++ que traduce el programa fuente en un
programa ejecutable (archivo.EXE).
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 Integradores
VI. Subprogramas. Subprogramas estndar. Funciones desarrollados por el usuario. Parmetros por valor y por
referencia. Argumentos. Invocaciones Prototipos.
VII. Ejercicios Integradores Subprogramas

-1-

Algoritmos y Estructura de Datos


Cdigo 08-2021

I. Estructuras Secunciales:
Ej. MI-1
D
A
T
O
S

A partir de dos valores enteros A y B, informar la suma, la diferencia (A menos B), y el producto.

De Entrada
-un nmero entero que identificaremos como
A
-otro nmero entero que identificaremos
como B

De Salida
- 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:
o Solicitar e ingresar datos por teclado
o Calcular suma e informar por monitor
o Calcular diferencia e informar por monitor
o Calcular producto e informar por monitor
Seguimiento
Teclado

Memoria
A
15

15

B
6

SUMA
21

DIF
9

Monitor
PROD Ingrese un nmero entero
15
90
Ingrese un nmero entero
6
La suma es: 21
La diferencia es: 9
El producto es: 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 valor
b) El resto de la divisin por 5
c) 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.
Seguimiento
Teclado
35
16

Memoria
A
35

B
16

Monitor
Ingrese un nmero entero positivo
35
Ingrese un nmero entero positivo distinto al anterior
16
El mayor es: 35

-2-

Universidad Tecnolgica Nacional


Facultad Regional Buenos Aires
Ingeniera en Sistemas de Informacin

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.

DATOS

De Entrada
- un valor entero MES
- otro valor entero ANIO

De Salida
informar la cantidad de das que tiene el mes
MES, 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
Teclado

Memoria

Monitor

8
2003

MES
8

ANIO
2003

DIA
31

Ingrese mes como un valor entre 1 y 12


8
Ingrese el ao como un nmero de 4 dgitos
2003
EL mes 8 del ao 2003 tiene 31 das

11
2003

11

2003

30

2
2004

2004

29

Ingrese mes como un valor entre 1 y 12


11
Ingrese el ao como un nmero de 4 dgitos
2003
EL mes 11 del ao 2003 tiene 30 das
Ingrese mes como un valor entre 1 y 12
2
Ingrese el ao como un nmero de 4 dgitos
2004
EL 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
o Realizar la suma e informar
o Realizar la resta e informar
o Realizar el producto e informar
o 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
-3-

Algoritmos y Estructura de Datos


Cdigo 08-2021

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
D
A
T
O
S

De Entrada

De 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

Seguimiento
Teclado

Memoria
K
1
2
3
.....
100
101

SUMA
0
1
3
6
.......

Monitor
Los 100 primeros nmeros naturales son
1
2
3
.......
100
La sumatoria de los 100 primeros nmeros naturales es.

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

Universidad Tecnolgica Nacional


Facultad Regional Buenos Aires
Ingeniera en Sistemas de Informacin

1) 167 valores enteros


2) N valores, donde el valor de N debe ser ledo previamente
3) El conjunto de valores termina con un valor igual al anterior
4) 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 negativo
b) El valor mnimo positivo
c) El valor mnimo dentro del rango -17.3 y 26.9
e) 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 valores
b) el total de sub-lotes procesados
c) el valor mximo del conjunto, indicando en que sub-lote se encontr y la posicin relativa del mismo dentro del sublote
d) 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 trasladar
2) La identificacin del contenedor de mayor peso
3) La cantidad de contenedores que debe trasladar a cada puerto

-5-

Algoritmos y Estructura de Datos


Cdigo 08-2021

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 vocal
b) cantidad de palabras que contiene la oracin
c) cantidad de letras que posee la palabra ms larga.

Ej. MI-30: Dado un nmero entero positivo entre 1 y 3999 informar su correspondiente
Representacin 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 primarios
b) 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 departamento
d) edad promedio de cada familia y de la ciudad
e) 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.99
Cantidad de veces seguidas que se dieron vuelos completos 99
El 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 3


c) cuantos mltiplos de 5
-6-

Universidad Tecnolgica Nacional


Facultad Regional Buenos Aires
Ingeniera en Sistemas de Informacin

d) 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:
Edad
Hasta 14 aos
De 22 a 28
De 36 a 42
De 50 a 63

Valor
1
3
5
7

Edad
De 15 a 21
De 29 a 35
De 43 a 49
Mayores de 63

Valor
2
4
6
8

Ej. MI-41:Disear una funcin que imprima el cartel:


PRESIONE ENTER
PARA 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< 0
B - A < 5% de A

Decreciente
Leve ascenso

B - A < 2% de A
Resto

Estable
En 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 cuadrado
2) 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.)
-7-

Algoritmos y Estructura de Datos


Cdigo 08-2021

- 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:
Plan
Costo
Minutos Libres
Cargo por minuto excedente

A
$70
300
$0.09

B
$55
200
$0.15

C
$40
100
$0.21

D
$28
60
$0.29

E
$19
40
$0.37

Emitir el siguiente listado por cada turno:


Turno Maana
Nombre 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.99

Turno Tarde

Turno 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).

-8-

Universidad Tecnolgica Nacional


Facultad Regional Buenos Aires
Ingeniera en Sistemas de Informacin

Estructuras secuenciales

Anexo I: Herramientas de Programacin

Acciones

Grficos

Lenguaje C++

Comienzo

Ingresar Valores

Lista de
variables

cin

Informar
Valores

Literales, lista
de variables

cout

Asignar Valores

variable expresin

Cond / exp.log

Estructuras selectivas

Seleccin simple

Seleccin
mltiple

If

var / exp.arit / func

switch

-9-

Algoritmos y Estructura de Datos


Cdigo 08-2021

Estructuras repetitivas

Repeticin
indefinida
Precondicin

Condicin / expr. lgica

while

Repeticin
definida o
exacta

Acciones
de
repetici
n

for

Repeticin
indefinida
Postcondicin

do while
Condicin / expr.lgica

Void
return

Sub-algoritmos

Encabezamient
o

Llamada

llamada

Retorno del
subalgoritmo

Retorno

Fin

MEMORIA DEL COMPUTADOR


Tipo C++l

Tipo de dato

Rango de valores que acepta

short
unsigned
short

entero
entero

-32,768 a 32,767
0 a 65535

Tamao en
bytes
2
2

int
char
Unsigned
char
Long int
double

entero
entero
entero

-2,147,483,648 a 2,147,483,648
-128 a 127
0 a 255

4
1
1

entero
real

-2,147,483,648 a 2,147,483,648
2.9E-39 a 1.7E38

4
8

Float
long doble

real
real

1.5E-45 a 3.4E38
3.4E-4932 a 1.7E4932

4
10

booleano

false o true

bool

- 10 -

Universidad Tecnolgica Nacional


Facultad Regional Buenos Aires
Ingeniera en Sistemas de Informacin

- 11 -

S-ar putea să vă placă și