programacion i guia de tp parte i

40
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL GENERAL PACHECO TÉCNICO SUPERIOR EN PROGRAMACIÓN PROGRAMACIÓN I GUIA DE TRABAJOS PRACTICOS PARTE 1

Upload: camino-conectado

Post on 10-Dec-2015

384 views

Category:

Documents


2 download

TRANSCRIPT

UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL GENERAL PACHECO

TÉCNICO SUPERIOR EN PROGRAMACIÓN

PROGRAMACIÓN I

GUIA DE TRABAJOS PRACTICOS PARTE 1

- 2 -

Cronograma Programación I para Primer Parcial Clase 1 Presentación de la materia.

Repaso de: - Ejercicios Básicos (TP 1) - Decisiones (TP 2) - Ciclo FOR (TP 3)

Clase 2 Ciclo FOR. Ejercicios Avanzados (TP 3)

Ciclo WHILE. Ejercicios Básicos. (TP 4) Clase 3 Ciclo WHILE. Corte de Control. (TP 4) Clase 4 Ciclo WHILE. Corte de Control. (TP 4) Clase 5 Evaluación (TP 1 al TP 4)

PAUTAS PARA MATERIA PROGRAMACION I � La aprobación de la materia se basará en la rendición de dos exámenes parciales,

evaluaciones de seguimiento y un examen final � Cada examen parcial tendrá una sola recuperación. Los recuperatorios se tomarán

durante los llamados a fecha de final, al final del cuatrimestre. No habrá recuperatorios durante la cursada.

� Los alumnos que no asistan, por el motivo que fuera, a alguno de los exámenes

parciales serán considerados desaprobados y deberán rendir el recuperatorio respectivo al final del cuatrimestre.

� El alumno que obtiene notas altas en ambos parciales y haya aprobado las evaluaciones de seguimiento tendrá posibilidades de promocionar su examen final. La decisión final de la condición de promocionar quedará a criterio del docente y su evaluación general del alumno.

� Los alumnos con 5 o más inasistencias quedarán libres. Esto significa que deben

cursar la materia nuevamente en el cuatrimestre siguiente.

- 3 -

TRABAJO PRACTICO Nº 1 (EJERCICIOS BASICOS) 1) Hacer un programa que permita ingresar dos números por teclado y que luego calcule y emita la suma de ambos y la resta del segundo menos el primero. Se deben mostrar ambos resultados por pantalla. 2) Hacer un programa que permita ingresar por teclado la cantidad de horas trabajadas en el mes por un operario y luego el valor que se le paga por hora trabajada a ese operario. El programa debe calcular y emitir por pantalla el sueldo que le corresponda. 3) Una concesionaria de autos paga a los vendedores un sueldo fijo de $ 5000.-, más $ 500.- de premio por cada auto vendido. Hacer un programa que permita ingresar por teclado la cantidad de autos vendidos por un determinado vendedor y que luego calcule el sueldo total a pagarle al mismo (Sueldo fijo + Comisión Total) y emitirlo por pantalla. Atención: El programa solamente debe solicitar un solo dato: la cantidad de autos vendidos. 4) Una farmacia hace el 15% de descuento sobre los precios de la lista oficial. Hacer un programa que permita ingresar por teclado el precio de lista de un determinado artículo y la cantidad de unidades compradas por un determinado cliente. Luego calcular e informar por pantalla el total a pagar aplicando el descuento respectivo. Por ejemplo: Precio del artículo: $50.-. Cantidad de Unidades: 2. Total a Pagar: $ 85. 5) Existe una unidad de medida llamada pulgada que se usa por ejemplo para medir el tamaño de la pantalla de un monitor. Una pulgada equivale aproximadamente a 2,5 cm. a) Hacer un programa para ingresar por teclado una medida en cms y que calcule y emita por pantalla el equivalente en pulgadas Atención: El programa solamente debe solicitar un solo dato: la cantidad de cms a convertir. b) Hacer un programa para ingresar por teclado una medida en pulgadas y que calcule y emita por pantalla el equivalente en cms. Atención: El programa solamente debe solicitar un solo dato: la cantidad de pulgadas a convertir. 6) Hacer un programa para ingresar por teclado la cantidad de asientos disponibles en un avión y la cantidad de pasajes vendidos (es decir la cantidad de asientos ocupados) y luego calcular e informar el porcentaje de ocupación del mismo. Por ejemplo si el avión tiene 200 asientos disponibles y se vendieron 80 pasajes, el porcentaje de ocupación que se informará será de un 40%. 7) Una maestra desea un programa para ingresar por teclado la cantidad de alumnos hombres y alumnas mujeres de un curso y obtener el porcentaje respectivo para cada sexo. Por ejemplo, si se ingresa 24 alumnos y 16 alumnas, obtendrá como respuesta que en ese curso el 60% son alumnos y el 40% son alumnas. 8) Un comercio vende tres marcas de alfajores distintas: Sabroso, Goloso y Apetitoso. El dueño le pide a Ud., futuro programador, un programa para que se pueda ingresar por teclado la cantidad de alfajores vendidos durante el día para cada una de las tres marcas en el orden anteriormente indicado (es decir se ingresan 3 datos distintos) y luego se calcule e informe el porcentaje de ventas para cada una de ellas.

- 4 -

Por ejemplo: se ingresa 100, 25 y 75 como cantidades vendidas entonces el programa calculará e informará Sabroso: 50%, Goloso 12,50% y Apetitoso 37,50%. 9) Hacer un programa para que se ingrese por teclado el importe de una venta sin el IVA incluido (se lo llama Importe Neto), luego calcular y mostrar por pantalla el importe total con el IVA del 21% incluido (se lo llama Importe Bruto). Por ejemplo: se ingresa 80 como Importe Neto, se calculará y mostrará entonces 96,80 como Importe Bruto. 10) Hacer un programa para que se ingrese por teclado el importe de una venta con el IVA incluido (se lo llama Importe Bruto), luego calcular y mostrar por pantalla el importe total sin el IVA del 21% incluido (se lo llama Importe Neto). Por ejemplo: se ingresa 169,40 como Importe Bruto, se calculará y mostrará entonces 140 como Importe Neto. 11) Hacer un programa para que se ingrese por teclado el importe bruto de una venta y el importe neto de una venta. El importe bruto es el importe original y el importe neto es el importe que el cliente pagó luego de que el vendedor le aplicara algún descuento. El programa debe luego mostrar por pantalla que porcentaje de descuento fue aplicado a la venta. Por ejemplo si se ingresa importe bruto 120 e importe neto 108, se emitirá un cartel indicando que el descuento aplicado fue del 10%. Tener en cuenta que el importe neto es siempre menor o igual al importe bruto, nunca mayor. 12) Un negocio de venta de alfajores le pide a Ud., futuro programador, que le desarrolle un programa teniendo en cuenta las siguientes condiciones: La caja de 12 alfajores se vende a $50.- y cada alfajor suelto a $ 5. El programa debe solicitar al usuario cuantos alfajores compró un cliente y luego calcular el importe a pagar por el mismo. Tener en cuenta que por cada 12 alfajores se debe calcular una caja, y el excedente se calcula como suelto. Por ejemplo: Si la cantidad ingresada son 15 alfajores, el programa calculará: 1 caja y 3 sueltos, es decir $50.- + $5 x 3 = $ 65. Si cantidad ingresada son 28 alfajores, el programa calculará: 2 cajas y 4 sueltos, es decir $100.- + $5 x 4 = $ 120.-. Si cantidad ingresada son 8 alfajores, el programa calculará: 0 cajas y 8 sueltos, es decir $5 x 8 = $ 40.-. 13) Hacer un programa que solicite por teclado que se ingresen dos números y luego guardarlos en dos variables distintas. A continuación se deben intercambiar mutuamente los valores en ambas variables y mostrarlos por pantalla. Por ejemplo: Suponiendo que se ingresan 3 y 8 como valores y que la variables usadas son A y B, entonces A=3 y B=8, pero luego debe quedar A=8 y B=3. Nota 1: No se deben efectuar operaciones aritméticas (suma, resta, etc.) de ningún tipo. Nota 2: Los valores 3 y 8 y los nombres A y B son solamente para ejemplificar, no debe hacer un programa para ingresar solamente esos valores, debe ser genérico. 14) Hacer un programa para que el usuario ingrese la hora, minutos y segundos de un momento del día y se emita por pantalla la cantidad de segundos transcurridos desde la medianoche. (hora 00:00:00).

- 5 -

15) Hacer un programa para convertir grados Celsius a grados Fahrenheit. Para efectuar el cálculo tener en cuenta que 0 grados Celsius equivalen a 32 grados Fahrenheit, y que cada grado Celsius equivale a 1,8 grados Fahrenheit. Por ejemplo 10 grados Celsius, equivalen a 32 + 1,8 * 10 = 50 grados Fahrenheit. Arme usted mismo la fórmula a partir del cálculo del ejemplo anterior.

- 6 -

Trabajo Práctico 1 Ejercicios Resueltos Ejercicio 2

Ejercicio 5a)

Ejercicio 7 Se puede resolver de 2 maneras

Ejercicio 10

- 7 -

Ejercicio 12

Ejercicio 13 Se puede resolver de 2 maneras

- 8 -

TRABAJO PRACTICO Nº 2 (DECISION)

1) Hacer un programa para ingresar por teclado dos números; si son iguales emitir por pantalla un cartel aclaratorio que diga “SON IGUALES”, caso contrario no emitir nada. 2) Hacer un programa para ingresar por teclado un número y luego emitir por pantalla un cartel aclaratorio indicando si el mismo es positivo, negativo o cero. 3) Hacer un programa para ingresar por teclado dos números y luego calcular y emitir:

- la suma: si el primero es mayor que el segundo. - la diferencia: si el primero es menor que el segundo (restarle al segundo el primero) - el producto: si ambos son iguales.

En cualquiera de los casos, el programa calculará y emitirá solo uno de los tres valores. Se sugiere resolverlo de dos maneras: a) Emitiendo el resultado solamente. b) Emitiendo el resultado junto con un cartel aclaratorio, por ejemplo: “La suma es: 10” ó “El producto es 21”. 4) Hacer un programa para ingresar por teclado dos números y luego informar por pantalla con un cartel aclaratorio si el primer número es múltiplo del segundo (que es lo mismo que decir que el segundo es divisor del primero). 5) Hacer un programa para ingresar por teclado un número y luego informar por pantalla con un cartel aclaratorio si el mismo es par o impar. 6) Hacer un programa para ingresar por teclado dos números. Si el segundo número es distinto de cero, calcular y emitir por pantalla el cociente del primero sobre el segundo, sino emitir un cartel que diga “Divisor Nulo, no se puede efectuar la operación”. (Tener en cuenta que la división por cero es una operación inválida que no puede ejecutarse) 7) Hacer un programa para ingresar por teclado dos números y luego informar por pantalla la diferencia absoluta entre ambos. Por ejemplo: Si se ingresan 3 y 8, se emite 5. Si se ingresan 8 y 3, se emite 5. Si se ingresan -3 y 9, se emite 12. Si se ingresan -12 y -1, se emite 11. 8) Un negocio de perfumería efectúa descuentos en sus ventas según el importe de éstas, con la siguiente escala:

- Si el importe es menor a $100 corresponde un descuento del 5% - Si el importe es de entre $100 (inclusive) y hasta $500 (inclusive) corresponde un

descuento del 10% - Si el importe es mayor a $500 corresponde un descuento del 15%

- 9 -

El dueño le solicitó a Ud., futuro programador, un programa donde se deba ingresar el importe original a pagar por el cliente y que luego se calcule e informe por pantalla el precio final con el descuento que corresponda ya aplicado. 9) Hacer un programa para ingresar por teclado tres números y luego determinar e informar con una leyenda aclaratoria si los tres son iguales entre sí, caso contrario no emitir nada. Recordar la ley de transitividad de la igualdad: Si un número A es igual a otro número B y si el número B es igual a otro número C, entonces se deduce que A también es igual a C. 10) Hacer un programa para ingresar por teclado tres números y luego determinar e informar con una leyenda aclaratoria si los tres son todos distintos entre sí, caso contrario no emitir nada. Recordar que la ley de transitividad de la igualdad no se cumple para la desigualdad: Si un número A es distinto de otro número B y si el número B es distinto de otro número C, entonces no se deduce que A sea distinto de C. Por ejemplo A=3, B=5 y C=3. 11) Hacer un programa para ingresar por teclado la longitud de los tres lados de un triángulo, luego se pide determinar e informar con un cartel aclaratorio que tipo de triángulo es:

- Equilátero: si los tres lados son iguales - Isósceles: si dos de los tres lados son iguales - Escaleno: si los tres lados son distintos entre sí

12) Hacer un programa para ingresar por teclado tres números y luego determinar e informar el máximo de ellos. 13) Hacer un programa para ingresar por teclado cinco números y luego determinar e informar el máximo de ellos. 14) Hacer un programa para poder ingresar por teclado cinco números y luego determinar e informar cuantos de esos cinco números son positivos. 15) Dados tres números enteros y distintos que se ingresan por teclado informarlos ordenados de menor a mayor. Por ejemplo si se ingresa 4,-3,7, se debe mostrar -3,4,7. 16) Hacer un programa para ingresar por teclado las cuatro notas de los exámenes parciales obtenidas por un alumno en una determinada materia y luego emitir el cartel aclaratorio que corresponda, de acuerdo a las siguientes condiciones:

- “Promociona”, si obtuvo en los cuatro exámenes nota 7 o más. - “Rinde examen final”, si obtuvo nota 4 o más en por lo menos tres exámenes. - “Recupera Parciales”, si obtuvo nota 4 o más en por lo menos uno de los exámenes. - “Recursa la materia”, si no aprobó ningún examen parcial.

El programa de emitir UNO SOLO de los carteles anteriores. 17) Hacer un programa para ingresar por teclado cuatro números. Si los valores que se ingresaran están ordenados en forma creciente, emitir el mensaje “Conjunto Ordenado”, caso contrario emitir el mensaje: “Conjunto Desordenado”. Por ejemplo, si los números que se ingresan son 8,10, 12 y 14, entonces están ordenados.

- 10 -

Por ejemplo, si los números que se ingresan son 8,12, 12 y 14, entonces están ordenados. Pero si los números que se ingresan son 10,8,12 y 14, los mismos están desordenados. 18) Hacer un programa para leer tres números diferentes y determinar e informar el número del medio, es decir el que no es ni mayor ni menor. Suponer que los 3 números ingresados son siempre distintos. Ejemplo, si se ingresan 6, 10, 8, se emitirá 6. 19) Un negocio vende distintos artículos identificados por un código entre 1 y 4. Los precios de los artículos y las condiciones de venta son las siguientes:

- Artículos con código 1: $ 10 por unidad - Artículos con código 2: $ 7 pesos por unidad y $ 65 la caja con 10 unidades. - Artículos con código 3: $ 3 pesos por unidad, si la compra es por más de 10 unidades se aplica un 10% de descuento sobre el total de la compra. - Artículos con código 4: $ 1 peso por unidad

Hacer un programa para ingresar por teclado: el código del artículo, la cantidad vendida y luego se pide calcular e informar el importe a pagar por el cliente. En el programa se ingresa un solo código de artículo y una sola cantidad en cada ejecución. 20) Una empresa de electricidad cobra el servicio a sus clientes de acuerdo a la siguiente escala: $ 0,10 por kilovatio por los primeros 100 kilovatios de consumo. $ 0,12 por kilovatio por el consumo de 101 a 200 kilovatios. $ 0,15 por kilovatio por el consumo de 201 kilovatios en adelante. Hacer un programa para que dado el consumo en kilovatios de un determinado cliente, el programa calcule e informe el total a pagar por el mismo. Ejemplo 1: Si se ingresa un consumo de 55 kilovatios, entonces el programa calculará: $ 0,10 x 55= $ 5,50 Ejemplo 2: Si se ingresa un consumo de 125 kilovatios, entonces el programa calculará: $ 0,10 x 100 + $ 0,12 x 25=$ 13 Ejemplo 3: Si se ingresa un consumo de 250 kilovatios, entonces el programa calculará: $ 0,10 x 100 + $ 0,12 x 100 + $ 0,15 x 50 = $ 29,50. 21) Una empresa de venta de boletos de micros tiene distintas tarifas según el destino, servicio (común o diferencial) y compañía elegida por el pasajero. La siguiente tabla indica los precios a pagar por el servicio común por pasajero:

Compañía Destino 1 Destino 2 Destino 3

1 $ 200.- $ 150.- $ 300.- 2 $ 220.- $ 165.- $ 330.- 3 $ 240.- $ 180.- $ 360.- El servicio diferencial cuesta un 20% más. Además, si el pasajero compra 5 o más pasajes juntos se ofrece un descuento del 15%.

- 11 -

El dueño de la empresa le solicitó a Ud., futuro programador, un programa para ingresar los siguientes datos por cada venta:

- Número de Destino (1 a 3) - Compañía (1, 2, 3) - Cantidad de pasajes solicitados por el pasajero - Servicio (1= común, 2= diferencial )

El programa sólo permite ingresar una venta por vez y calcula y emite el importe neto a pagar.

- 12 -

Trabajo Práctico 2 Ejercicios Resueltos Ejercicio 1

Ejercicio 5 Se puede resolver de 2 maneras

Ejercicio 7

- 13 -

Ejercicio 10 Solución 1

Ejercicio 10 Solución 2

- 14 -

Ejercicio 13 MAX

N2

N2>MAXSI

NO

MAX=N2

N5

N5>MAXSI

NO

MAX=N5

Igual para N3

Igual para N4

MAX

- 15 -

Ejercicio 16

C7=C4=C=0

N1, N2, N3, N4

N1>=7SI NO

C7++N1>=4

SI NO

C4++ C++

IDEM N2, N3, N4

C7==4SI

NO

"PROMOCIONA"

C4>=3SI

"EXAMEN FINAL"

NO

C4>=1SI

NO

"RECUPERA PARCIAL"

C==4

SINO

"RECURSA"

C4++

- 16 -

Ejercicio 17 Se puede resolver de 2 maneras

- 17 -

Ejercicio 18. Solución 1

Ejercicio 18. Solución 2

A, B, C

((A>B)& &(A<C))||

((A<B)& &(A>C))

A

((B>A)& &(B<C))||

((B<A)& &(B>C))

B C

SI

NO

SI NO

- 18 -

Ejercicio 20

KV

KV>200SI NO

EXC200=KV-200EXC100=100EXC0=100

KV>100SI

EXC200=0EXC100=KV-100

EXC0=100

NO

EXC200=0EXC100=0EXC0=KV

IMP=EXC200*0.15+EXC100*0.12+EXC0*0.10

IMP

- 19 -

TRABAJO PRACTICO Nº 3 (CICLO EXACTO) 1) Hacer un programa para mostrar por pantalla los números del 1 al 10. El usuario no ingresará NADA en este programa. 2) Hacer un programa para mostrar por pantalla los números del 20 al 1 (en orden decreciente). El usuario no ingresará NADA en este programa. 3) Hacer un programa para que el usuario ingrese un número positivo y que luego se muestren por pantalla los números entre el 1 y el número ingresado por el usuario. Por ejemplo, si el usuario ingresa 15, se mostrarán los números entre el 1 y el 15. 4) Hacer un programa para que el usuario ingrese dos números y luego el programa muestre por pantalla los números entre el menor y el mayor de ambos. Por ejemplo, si el usuario ingresa 3 y 15, se mostrarán los números entre el 3 y el 15; y si el usuario ingresa 25 y 8, se mostrarán los números entre el 8 y el 25 (siempre se emiten en orden creciente). 5) Hacer un programa para que el usuario ingrese por teclado 25 números y que se vayan informando uno por uno aquellos que son mayores o iguales a 5. Atención: Se pide que se informe cuales (y no cuantos) son mayores que 5. 6) Hacer un programa para que el usuario ingrese por teclado 25 números y que se informe luego cuantos de esos 25 son mayores o iguales a 5. 7) Hacer un programa para ingresar por teclado una lista de 10 números, luego determinar e informar cuantos son positivos, cuantos son negativos, y cuantos iguales a cero. 8) Hacer un programa para ingresar por teclado 20 números, luego determinar e informar el máximo. Suponer que los valores de la lista son todos positivos. 9) Hacer un programa para ingresar por teclado 10 números enteros, luego determinar e informar el máximo y su posición. Suponer que los valores de la lista pueden ser todos positivos, todos negativos, ceros, o cualquier combinación. 10) Hacer un programa para ingresar por teclado 20 números, luego determinar e informar el máximo y el mínimo. Suponer que los valores de la lista pueden ser todos positivos, todos negativos, ceros, o cualquier combinación. 11) Hacer un programa para ingresar por teclado 20 números, luego determinar e informar el máximo de los negativos y el mínimo de los positivos. Resolverlo de dos maneras: a) Suponer que en la lista hay números positivos, negativos y ceros. b) Suponer que en lista podría no haber números positivos o podría no haber números negativos, en ese caso debe indicarse tal situación con un cartel aclaratorio. 12) Hacer un programa para ingresar un valor que indica la cantidad de números que componen una lista y luego solicitar se ingresen esos N números. Se pide informar cuantos son positivos. Por ejemplo, si se ingresa el valor 5 como cantidad de números, entonces el programa debe solicitar 5 números y contar cuantos son positivos.

- 20 -

13) Hacer un programa para ingresar 5 números, luego informar los 2 mayores valores ingresados, aclarando cual es el máximo y cual el que le sigue. Por ejemplo si la lista ingresada es 10, 8 ,12, 14 ,3 el resultado será 14 y 12. Atención: si la lista ingresada es 14, 8 ,12, 14 ,3 el resultado será 14 y 14. Resolverlo de dos maneras: a) Suponer que los 5 números de la lista son todos positivos. b) Suponer que los 5 números pueden ser todos positivos, todos negativos, ceros o cualquier combinación de los anteriores. 14) Hacer un programa para ingresar por teclado un número superior o igual a 1 y luego informar si el mismo es un número primo. 15) Hacer un programa para leer tres números diferentes y determinar e informar el número del medio, es decir el que no es ni mayor ni menor. Suponer que los 3 números ingresados son siempre distintos. Ejemplo, si se ingresan 6, 10, 8, se emitirá 8. 16) Hacer un programa para ingresar una lista de 20 números y luego informar si todos están ordenados en forma creciente. Por ejemplo si la lista fuera: 1, 5, 7, 15,.......................120 se emitirá un cartel que diga “Conjunto Ordenado” 3, 1, 8, 0, -3.......................15 se emitirá un cartel que diga “Conjunto No Ordenado” 17) Dada una lista de 7 números informar cual fue la ubicación del primer y segundo número impar ingresado. Por ejemplo 8,4,5,6,9,5,7 se informa 3º y 5º posición. 18) Dada una lista de 8 números informar cual fue la ubicación del primer y último número impar ingresado. Por ejemplo 8,4,5,6,9,5,7,6 se informa 3º y 7º posición. 19) Dada una lista de 8 números informar el 1º par ingresado y el último de los nros. primos. Por ejemplo 7,4,5,6,9,13,10,6 se informa 4 y 13 Por ejemplo 9,7,5,21,9,13,15,6 se informa 6 y 13 (en este caso el primer par apareció después que el último primo) 20) Hacer un programa para solicitar el ingreso de 10 ternas de números enteros positivos e ir mostrando para cada una de las ternas cual es el mayor número. 21) Hacer un programa para ingresar por teclado una lista de 10 números. Se pide contar e informar la cantidad de pares positivos consecutivos cuya diferencia absoluta sea mayor que 5. Ejemplo: 12, -3, 4, 16, 8, -3, -5, 8, 10, 16 En esta lista existen 3 pares que cumplen esa condición: (4-16) (16-8) (10-16), por lo tanto el programa emitirá un 3 como resultado. Se sugiere consultar el ejercicio 7 del TP 2 referido a diferencia absoluta. 22) Hacer un programa para ingresar por teclado el nombre, sueldo y la antigüedad de los 30 empleados de una empresa. Cada registro está compuesto por los siguientes datos:

- 21 -

- Número del empleado - Sueldo - Antigüedad

Se pide determinar e informar: a) Cual es el número del empleado con mayor sueldo y cual es su antigüedad. b) Informar la antigüedad promedio de los empleados con sueldo mayor a $3500.-

23) Se ingresan los datos con la producción de los operarios de una empresa en el último mes. Cada registro contiene:

- Número de operario (1 a 20) - Sector donde trabaja (1, 2, 3) - Total de piezas defectuosas - Total de piezas no defectuosas

Existe un total de 20 registros (uno para cada operario). Cada operario trabaja en alguno de los tres sectores 1, 2 ó 3. Se pide determinar e informar: a) Para cada uno de los 3 sectores el número del operario que obtuvo mayor cantidad de piezas defectuosas. (se emitirán 3 resultados: los números de operario para cada uno de los 3 sectores). b) El sector cuyos empleados totalizaron mayor porcentaje de piezas defectuosas respecto al total de piezas fabricadas en ese sector. 24) Se ingresan los datos de los 10 artículos que venda una empresa. Cada registro contiene:

- Número de artículo - Precio Unitario - Clase de artículo (‘a’, ‘b’, ‘c’)

Se pide determinar e informar: a) El número del artículo más caro de la clase ‘a’. Ídem para clase ‘b’ y ‘c’. b) La clase (‘a’, ‘b’ ó ‘c’) cuyos artículos totalicen el mayor precio promedio. (Se debe calcular el precio promedio por clase e informar cual de ellas es la que tiene mayor promedio) 25) Hacer un programa para ingresar una lista de 20 números. Se pide luego determinar e informar: a) La cantidad de ternas de valores positivos consecutivos. b) La cantidad de ternas de valores negativos consecutivos y ordenados en forma creciente. Nota: si el número ingresado es cero, no se lo considera ni negativo ni positivo.

Por ejemplo, dada la siguiente lista de 12 números: 10, 5, 4, 3, -8, -3, -1, 0, 3, 8, -5, 8 el programa detectará una terna de positivos consecutivos (10, 5, 4) y una terna de negativos consecutivos ordenados (-8, -3, -1).

- 22 -

Trabajo Práctico 3 Ejercicios Resueltos Ejercicio 5

Ejercicio 7

- 23 -

Ejercicio 8

Ejercicio 9

- 24 -

Ejercicio 13

- 25 -

Ejercicio 14

Ejercicio 15

- 26 -

Ejercicio 24

- 27 -

Ejercicio 25

- 28 -

TRABAJO PRACTICO Nº 4 (CICLO INEXACTO)

En los siguientes ejercicios debe usar ciclo inexacto para su resolución, independientemente de que algunos podrían ser resueltos con ciclo exacto. 1) Hacer un programa para ingresar números de a uno por vez, finalizando el ingreso cuando se ingrese un valor cero. Listar por pantalla uno por uno los números que sean mayores o iguales al valor 7. 2) Hacer un programa para mostrar por pantalla los números del 1 al 10. El usuario no ingresará NADA en este programa. 3) Hacer un programa para mostrar por pantalla los números del 20 al 1 (en orden decreciente). El usuario no ingresará NADA en este programa. 4) Hacer un programa para que el usuario ingrese dos números y luego el programa muestre por pantalla los números entre el menor y el mayor de ambos. Por ejemplo, si el usuario ingresa 3 y 15, se mostrarán los números entre el 3 y el 15; y si el usuario ingresa 25 y 8, se mostrarán los números entre el 8 y el 25. (siempre se emiten en orden creciente) 5) Hacer un programa para ingresar una lista de 10 números e informar cuantos de ellos son positivos. 6) Hacer un programa para ingresar por teclado un número superior a 1 y luego informar si el mismo es número primo. 7) Hacer un programa para ingresar una lista de números que finaliza cuando se ingresa un cero. Se pide determinar e informar el máximo de la lista y su posición dentro de la misma. Suponer que los números pueden ser todos positivos, todos negativos o combinados. 8) Dada una lista de números enteros todos distintos entre sí y que finaliza con un cero, determinar e informar con un cartel aclaratorio si los mismos están ordenados de menor a mayor. Por ejemplo: -3, 5, 8, 12, 15 ,0 Se emite un cartel que diga “Ordenados” 2, 10, 3, 5, 6, 7, 11, 0 Se emite un cartel que diga “Desordenados” 9) Dada una lista de números enteros todos distintos entre sí y que finaliza con un cero, determinar e informar con un cartel aclaratorio si los números positivos primos que aparezcan en la misma están ordenados de menor a mayor. Los números positivos primos pueden no ser consecutivos, pero sí estar ordenados. Por ejemplo: 4, 5, 7, 12, 13, 0 Se emite un cartel que diga “Ordenados” (5,7 y 13) 2, 10, 3, 5, 11, 7, 14, 0 Se emite un cartel que diga “Desordenados” (2, 3, 5, 11 y 7)

- 29 -

10) Dada una lista de números enteros todos distintos entre sí y que finaliza con un cero, determinar e informar con un cartel aclaratorio si la suma de los dos primeros números primos es igual a la suma de los dos últimos números pares. 11) Hacer un programa para que dada una lista de números que finaliza cuando se ingresa un cero se informe cual fue la ubicación del 1º y 2º número impar ingresado. Por ejemplo 6, 2, 3, 10, 9, 4, 7, 0. Se informa 3º y 5º posición. 12) Dada una lista de números que finaliza cuando se ingresa un cero, se pide informar el 1º par ingresado y el último de los números primos. Por ejemplo 7,4,5,6,9,13,10,6,0 se informa 4 y 13 Por ejemplo 9,7,5,21,9,13,15,6,0 se informa 6 y 13 En este último caso el primer par apareció después del último primo. 13) Hacer un programa para ingresar por teclado dos sublotes compuestos ambos de números todos distintos de cero, finalizando cada sublote cuando se ingresa un cero. Por cada sublote se pide obtener y emitir: a) La cantidad de valores positivos (de no haber positivos, indicar con un cartel) b) La cantidad de valores negativos (de no haber negativos, indicar con un cartel) c) El máximo valor de cada sublote. d) El mínimo valor de cada sublote. 14) Se dispone de un lote de registros con todos valores positivos, dividido en sublotes por medio de registros que contienen un valor cero. Confeccionar un programa para: a) Calcular el promedio de valores de cada sublote. b) Determinar e informar el valor mínimo de todo el lote, indicando en que sublote se encontró y su posición relativa en el mismo. c) El mayor de los promedios y a que sublote pertenecía. Todos los sublotes finalizan con valor cero, incluso el último y para indicar el fin del lote se colocó un registro con valor negativo. 15) Hacer un programa para ingresar por teclado 10 sublotes, compuesto por números ordenados de menor a mayor. El final de cada sublote se detecta al ingresar un número menor a su anterior. Se debe obtener y emitir: a) Para cada uno de los sublotes la cantidad de números primos que lo componen. b) El máximo de cada una de los sublotes. Ejemplo de cómo se conforman los sublotes: -20, -5, 8, 2, 20, 35, 42, 12, 22, ........... ....80, 12, 24, 36, -5 Lote 1 Lote 2 Lote 3 Lote 10

- 30 -

16) Dada una lista de números compuesta por 10 subgrupos y cada subgrupo separado del siguiente por un cero, se pide determinar e informar: a) Para cada uno de los subgrupos el máximo de los números pares y el máximo de los números impares. b) Para cada uno de los subgrupos el porcentaje de números negativos y números positivos. c) Cuantos números había en total entre los 10 subgrupos, sin contar los ceros que separan a cada subgrupo.

17) Una compañía de electricidad necesita calcular anualmente el consumo que ha registrado cada uno de sus usuarios y el monto pagado por cada uno de ellos. Para ello, tiene un lote de registros por cada uno de los usuarios con los siguientes datos:

- Zona (1 a 10) - Número de cliente (4 números no correlativos) - Lectura del medidor para el mes anterior (kilovatios) - Lectura del medidor para el mes actual (kilovatios)

El lote se encuentra agrupado (no ordenado) por zona y finaliza con un registro con zona igual a cero. Se pide generar un listado con el siguiente formato: Zona: XX Cantidad de Usuarios de la zona: XXX Total Facturado en la zona: XXX Zona: XX Cantidad de Usuarios de la zona: XXX Total Facturado en la zona: XXX El precio es escalonado según la siguiente escala: $ 0,10 por kilovatio por los primeros 100 kilovatios de consumo. $ 0,12 por kilovatio por el consumo de 101 a 200 kilovatios. $ 0,15 por kilovatio por el consumo de 201 kilovatios en adelante. Alguien que consume 250 kilovatios, debe pagar $ 0,10 x 100 + $ 0,12 x 100 + $ 0,15 x 50. 18) Hacer un programa para ingresar los valores de los pesos de distintas encomiendas que se deben enviar a distintos clientes y que finaliza cuando se ingresa un peso negativo. Se deben agrupar las encomiendas en camiones que pueden transportar hasta 200 kilos en total.

Por ejemplo: 10, 20, 140, 70, 100, 40, 10, 50, 80, 90, 30, 40, 50, -10. Camión 1 Cam. 2 Cam. 3 Cam. 4 Cam. 5

Se pide determinar e informar: a) El número de cada camión y peso total de encomiendas. (Camión 1: 170 kg, Camión 2: 170 kg) b) El número de camión que transporta mayor cantidad de encomiendas. (En el ejemplo anterior sería el Camión 3 con 4 encomiendas)

- 31 -

19) Se dispone de una lista de 10 grupos de números enteros separados entre ellos por ceros. Se pide determinar e informar: a) El número de grupo con mayor porcentaje de números impares positivos respecto al total de números que forman el grupo. b) Para cada grupo el último número primo y en que orden apareció en ese grupo, si en un grupo no hubiera números primos informarlo con un cartel aclaratorio. c) Informar cuantos grupos están formados por todos números ordenados de mayor a menor. 20) Una empresa registró las ventas que realizó durante el mes anterior. Para cada venta se tienen los siguientes datos:

- Número de artículo (1 a 30) - Día (1 a 31) - Cantidad de artículos vendidos - Importe recaudado por las ventas en ese día

Este lote finaliza con un registro con número de artículo igual a cero. Los registros están agrupados (no ordenados) por número de artículo y hay un solo registro por día y por número de artículo. En el lote no aparecen registros de los artículos que no se vendieron durante alguno o ningún día del mes. A partir de este lote se pide determinar e informar: a) El número del artículo más vendido en total considerando las ventas de la primera quincena (día 1 al 15) b) Para cada uno de los artículos informar la recaudación total considerando todas las ventas del mes. c) Informar la quincena en la que se vendió mayor cantidad de artículos en total. d) Informar el número de artículo del que menos cantidad se haya vendido en un día, indicando además que día fue. 21) Dada una lista de números compuesta por 20 subgrupos y cada subgrupo separado del siguiente por un cero, se pide determinar e informar: a) La cantidad de subgrupos en los que se detecten un total de 4 o más números primos consecutivos y ordenados en forma creciente. (se informa 1 resultado al final) b) Para cada uno de los subgrupos en los que se haya detectado números negativos, el mayor y el segundo mayor de los mismos y en que posición estaban dentro del subgrupo. En los subgrupos sin negativos, informar “Subgrupo sin negativos”. (se informan 4 resultados por cada subgrupo) c) El mayor número primo de todos los subgrupos, informando además en que subgrupo y en que posición del mismo fue detectado. (se informan 3 resultados al final) 22) Una empresa aérea registró los vuelos durante el mes pasado. La empresa cuenta con una flota de 40 aviones y un total de 250 itinerarios. El lote finaliza con un registro con código de avión igual a cero. Cada registro contiene: - Número de avión (Un numero entre 1000 y 2000, no correlativos)

- Número de itinerario efectuado (Un número entre 1 y 250)

- 32 -

- Día del vuelo (1 a 31) - Cantidad de asientos vendidos - Cantidad de asientos no vendidos

- Minutos de puntualidad (Positivo si llegó tarde, 0 si llegó en hora, Negativo si se adelantó) - Marca del avión que efectuó el vuelo (A=Airbus,B=Boeing,C=Carrier)

Los registros están agrupados por número de avión. En el lote anterior no aparecen registros de aquellos aviones que no efectuaron vuelos durante el mes. Cualquier avión puede efectuar cualquier itinerario, es decir que no tienen una ruta fija. La compañía le pidió a Ud., Programador, un programa para determinar e informar. a) La marca de avión que transportó más cantidad de pasajeros durante toda la primera semana. b) El número de avión que tuvo menor porcentaje de asientos ocupados respecto al total de asientos a ocupar, considerando todos los vuelos que haya efectuado en el mes. c) Para cada marca se desea conocer el avión que se atrasó menor cantidad de minutos en total en el mes. (Debe haber tres resultados, uno por cada marca). d) Informar el número de itinerario que haya sufrido mayor cantidad de minutos de atraso en el mes, informando el número de avión y la marca del avión en el que se produjo tal atraso. No se debe acumular, solo analizar cada vuelo del mes por separado.

- 33 -

Ejercicio 6

- 34 -

Ejercicio 8 – Solución 1

- 35 -

Ejercicio 8 – Solución 2

- 36 -

Ejercicio 11

- 37 -

Ejercicio 15

- 38 -

Ejercicio 18

- 39 -

Ejercicio 19

- 40 -