2.GUIAS 01

GUIA 01 Reconocimiento del Hardware y Software a utilizar. OBJETIVO: ƒ Identificar y utilizar los componentes de hardw

Views 2,000 Downloads 174 File size 524KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

GUIA 01 Reconocimiento del Hardware y Software a utilizar.

OBJETIVO: ƒ

Identificar y utilizar los componentes de hardware y software que serán utilizados en el curso.

Ejercicio 1. Desarrolla con la ayuda del profesor un diagrama de bloques del hardware de la computadora (PC) que estas utilizando. Ejercicio 2. Prepara una lista de los dispositivos hardware que utiliza la PC y clasifícalos por su tipo. Ejercicio 3. Prepara una lista de los programas instalados en la computadora y agrúpalos de acuerdo a su tipología. Ejercicio 4. Elabora una tabla indicando 5 lenguajes de alto nivel y sus características Ejercicio 5. Define los términos hardware y software. En relación con el hardware: Diferencia los términos RAM y ROM. ¿Qué dispositivos de almacenamiento permanente de información conoces?. Comenta las características de los más frecuentemente utilizados. En relación con el software: ¿Qué es un compilador y cual es su utilidad?. ¿Qué es un virus informático?. Ejercicio 6. ¿Que son los microprocesadores?. Comenta su organización y funcionalidad. Cita diferentes modelos de microprocesadores que conozcas en el mercado.

Ejercicio 7. Explica el concepto de sistema operativo y sus funciones básicas. Cita los nombres de sistemas operativos que conozcas. ¿Qué utilidad tiene la extensión en el nombre de un fichero en los sistemas operativos de Microsoft (MS-DOS, Windows...)?. Pon ejemplos de extensiones y su significado Ejercicio 8. Las bases de datos permiten gestionar tablas proporcionando funciones de búsqueda, selección, ordenación, incluso de operación matemática, de los contenidos de estas. Las hojas de cálculo permiten tratar 1

información en formato de tabla, en cuyas celdas encontramos texto, números, incluso fórmulas. ¿Qué diferencias encuentras entre los dos tipos de aplicación?. Pon ejemplos donde encuentres ventajas de una herramienta sobre la otra. Ejercicio 9. En la tabal siguiente, escribe en la primera columna el numero que corresponde al concepto definido. Es un programa que permite crear y modificar archivos digitales compuestos únicamente por texto sin formato Es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje máquina). Es un programa informático capaz de analizar y ejecutar otros programas escritos en un lenguaje de alto nivel. Es un programa que toma los ficheros de código objeto generado en los primeros pasos del proceso de compilación, la información de todos los recursos necesarios (biblioteca), quita aquellos recursos que no necesita, y enlaza el código objeto con su(s)biblioteca con lo que finalmente produce un fichero ejecutable o una biblioteca.. Es un programa que permite depurar o limpiar los errores de otro programa informático. Agrupan estas herramientas de forma que el programador no necesite introducir múltiples comandos para compilar, interpretar, depurar, etcétera, gracias a que habitualmente cuentan con una interfaz gráfica de usuario (GUI) avanzada.

1

Los entorno de desarrollo integrados

2

Enlazadores

3

Debugger

4

Editores de texto

5

Compiladores

6

Intérpretes

Ejercicio 10. Que representan los términos Basic, C++, Java, VB .net, C#. ¿Qué tienen en común?, ¿Quiénes y para que los utilizan?

2

GUIA 02 Resolución de problemas con computadora

OBJETIVO: ƒ

Identificar y realizar las fases de la resolución de problemas.

ƒ

Desarrollar pseudocodigos de aplicación a problemas cotidianos.

Ejercicio 1. Representa en un diagrama de flujo todos los pasos que has realizado el día de hoy para llegara a la universidad partiendo de tu domicilio. Ejercicio 2. Desarrolla un diagrama de flujo que indique todos los pasos necesarios para retirar dinero de un cajero automático. Ejercicio 3. Desarrolla un diagrama de flujo en el cual se presenten en forma detallada los pasos necesarios para crear un programa para la computadora. Ejercicio 4. En un diagrama de flujo representa todos los pasos que has seguido para realizar tu matricula. Ejercicio 5. Desarrolla un diagrama de flujo en el cual se presenten todas las actividades a realizar para aprender los temas de un curso y finalmente lograr aprobarlo con un excelente promedio. Ejercicio 6. Considera que el profesor te encarga calcular el promedio de las edades de tus compañeros. ¿En cuantas partes podrías dividir esta tarea? ¿Qué operaciones se realizarían en cada una?, ¿Qué información o datos necesita cada una?, responde con certeza y en forma ordenada. Ejercicio 7. Siguiendo atentamente las indicaciones del profesor codificar en C# las instrucciones necesarias para convertir los módulos del ejercicio 5 en un programa en este lenguaje de programación, compila y ejecuta el programa. Ejercicio 8. Realiza un análisis similar al del ejercicio 5 para el caso en el cual tengas que viajar al extranjero. Ejercicio 9. Desarrolla un diagrama de flujo en el cual se representen las operaciones necesarias para que un comensal pueda elegir de un menú los platos de su preferencia de acuerdo al dinero que dispone. Ejercicio 10. Un juego para dos personas tiene las siguientes reglas: • Se presentan 11 objetos sobre la mesa. • Cada jugador solo puede separar hasta 3 objetos en la jugada que le corresponde. • El jugador que retira el último objeto se considera el perdedor. Desarrolla un diagrama de flujo que permita ganar siempre al jugador que inicia la partida. 3

Ejercicio 11. Desarrolla un diagrama de flujo para calcular el sueldo de un operario al cual se la paga por sus horas trabajadas (normales y extras) que se deberán ingresar conjuntamente con el pago por hora, para el calculo se considera que las horas extras se pagan con un incremento del 50% al pago de hora normal, además calcular una bonificación extraordinaria de 25% del pago por horas normales y escribir los resultados. Este ejercicio debe ser resuelto enumerando y realizando todas las etapas de solución de un problema.

4

GUIA 03 Diagramas de flujo – problemas de la vida real

OBJETIVO: ƒ

Desarrollar diagramas de flujo aplicándolos a problemas específicos.

ƒ

Utilizar los diagramas de Nassi Sneidermann a casos reales.

ƒ

Desarrollar pseudocodigos utilizando el programa PseInt para su verificación.

Ejercicio 1. Iniciar (ejecutar) el programa PseInt y con la ayuda del profesor reconoce el entorno de trabajo de este programa. Ejercicio 2. De acuerdo al punto anterior desarrolla un informe sobre: ƒ

Barra de Título

ƒ

Menú de Opciones

ƒ

Barra de Acceso Rápido

ƒ

Área de Trabajo

ƒ

Área de Información de Ejecución

ƒ

Barras de scroll

Ejercicio 3. Con el programa anterior y siguiendo atentamente las indicaciones de tu profesor desarrolla tu primer pseudocódigo, que permita ingresar dos números y con ellos realizar las cuatro operaciones aritméticas. Ejercicio 4. Desarrollar un diagrama de flujo para ingresar el valor de N y obtenga la suma: 1+2+3+…+N. use la formula ….. Ejercicio 5. Desarrollar un diagrama de flujo para ingresar las dimensiones de un terreno rectangular para calcular su área y perímetro. Ejercicio 6. Desarrolla un diagrama de flujo necesario para calcular el área de un triangulo recibiendo como entrada la longitud de sus lados. Ejercicio 7. Queremos conocer los datos estadísticos de una asignatura, por lo tanto, necesitamos un algoritmo que lea el número de desaprobados, aprobados, notables y sobresalientes de una asignatura, y nos devuelva:

5

• •

El tanto por ciento de alumnos que han superado la asignatura. El tanto por ciento de desaprobados, aprobados, notables y sobresalientes de la asignatura.

Ejercicio 8. Se quiere calcular el sueldo de un operario, para lo cual se debe leer su nombre, horas de trabajo normal y extras en la semana, pago por hora; teniendo en cuenta que por cada hora extra el pago es de 15% mas que el pago normal por hora, obtener el pago semanal. Ejercicio 9 Desarrolla un diagrama de Nassi Sneidermann para cada uno de los ejercicios anteriores. Ejercicio10. Desarrollar un pseudocódigo por el cual se pueda leer dos números, calcular el porcentaje que representa el segundo del primero y escribir el resultado. Ejercicio11. Calcular los pagos mensuales de una hipoteca y el total a pagar. El programa debe solicitar el capital, el interés anual y el número de años y debe escribir la cuota a pagar mensualmente. Para calcular la cuota se utiliza la siguiente fórmula: Sea C el capital del préstamo, R la tasa de interés mensual y N el número de pagos. La cuota mensual viene dada por la formula indicada y el interés mensual será: interés anual / 100 /12.

Ejercicio12. Se quiere conocer el numero de días que ha vivido una persona para lo cual se dispone de su fecha de nacimiento (DD, MM, AA), considerando meses de 30 días, realizar el calculo y escribir el resultado. Ejercicio 13. Desarrolla un pseudocodigo para leer la temperatura en grados centígrados y la convierta a su equivalente en Celsius y Fahrenheit.

6

GUIA 04 Pseudocodigos con Seudo Interprete PSeInt () Expresiones Los primeros programas en C#

OBJETIVO: ƒ

Utilizar el Seudointerprete PSeInt para resolver problemas completos.

ƒ

Utilizar el lenguaje de programación C# para convertir a programas los pseudocódigos desarrollados en PSeInt.

Ejercicio 1. Para las siguientes expresiones, desarrolla el árbol sintáctico, construye la formula inicial y calcula el valor resultante para los valores que se indican. P=A+B*C-D

para A=5; B=7;C=4;D=5;

Q=A/B+C*D

para A=20;B=5;C=7;D=4;

R=(A+B)/(A-1)+C

para A=4; B=5;C=6;D=7;

S=A+(A/(A/(A/(A+1))))

para A=1;

Ejercicio 2. Iniciar (ejecutar) el programa Microsoft Visual C# y con la ayuda del profesor reconoce el IDE (Entorno de Desarrollo Integrado) de este programa. Ejercicio 3. Siguiendo atentamente las indicaciones del profesor para codificar en C# las instrucciones necesarias que te permitan convertir el seudocódigo del ejercicio 5 en un programa en este lenguaje de programación, compila y ejecuta el programa. Antes de desarrollar los siguientes ejercicios propuestos realiza la codificación con C# de cada uno de los ejercicios de la guía anterior. Ejercicio 4. Desarrollar un pseudocodigo y su respectivo programa para ingresar el radio y la altura de un cilindro para calcular el área lateral y su volumen. Utiliza el valor de pi como constante; Ejercicio 5. Desarrollar un pseudocodigo y su respectivo programa para ingresar las dimensiones de un cubo y calcular su volumen y el área de todas sus caras laterales. Ejercicio 6. Diseñar un pseudocodigo y el programa necesario para definir como constantes los ingredientes para preparar un litro de limonada, leer la cantidad de litros a preparar y obtener la cantidad total de ingredientes necesarios para preparar la cantidad de litros de limonada que se piden.

7

Ejercicio 7. En un laboratorio de física se tienen dos móviles en sentidos opuestos, se desea ingresar la velocidad de cada uno de ellos y la distancia que los separa para calcular el tiempo en que harán colisión. Desarrolla un programa que realice dicho cálculo. Ejercicio 8. Se quiere calcular el importe de venta de un producto para lo cual se debe leer su descripción, precio, porcentaje de descuento y cantidad vendida, Diseñar un programa que realice los cálculos necesarios y escriba los resultados. Ejercicio 9. Desarrollar un pseudocódigo por el cual se pueda leer dos números, calcular el porcentaje que cada uno representa de la suma de ambos y escribir el resultado. Ejercicio 10. Desarrollar un programa que permita ingresar un monto de dinero y calcular cuantos billetes de 200,100, 50, 20, 10 y monedas representa. Ejercicio 11. Desarrollar un programa que permita ingresar una fecha como DD, MM, AA y un numero de días de plazo, calcular una nueva fecha añadiendo a la fecha la cantidad de días incesados y considerando meses de 30 días. Ejercicio 12. Elaborar un programa que permita ingresar el precio de venta de un articulo y el pago inicial que hace un cliente, se deberá calcular el saldo, tres cuotas a pagar y el pago adicional, el saldo es la diferencia entre el precio y la inicial, la primera cuota equivale al saldo dividido entre tres y las siguientes se calculan incrementando 10% a la anterior; el pago adicional es la diferencia entre la suma de cuotas y el saldo.

8

GUIA 05 Diagramas de flujo, pseudocódigos e Instrucciones secuenciales en C#

OBJETIVO: ƒ

Utilizar el Seudointerprete PSeInt para resolver problemas completos.

ƒ

Utilizar la clase Math de C# para resolver problemas aplicando funciones matemáticas.

Ejercicio 1. Desarrollar un pseudocodigo y su respectivo programa para leer tres números en cualquier orden y los escriba ordenados de mayor a meno. Ejercicio 2. Desarrollar un pseudocodigo y su respectivo programa para ingresar los coeficientes de una ecuación de segundo grado, calcular las raíces y escribir los resultados. Ejercicio 3. Diseñar un pseudocodigo y el programa necesario para leer la medida de un Angulo en radianes y escriba el valor de resultado de las seis funciones trigonometricas conocidas. Ejercicio 4. Elaborar un programa que permita leer la medida de los tres lados de un triangulo y si forman un triangulo recto que escriba la medida de sus tres ángulos. Ejercicio 5. Elaborar un programa que permita leer la medida del lado de un cuadrado y calcule la longitud de su diagonal. Ejercicio 6. Se tiene una circunferencia de radio R con centro (0,0) en el plano coordenado, se debe desarrollar un programa que lea el valor de R y calcule las coordenadas de los cinco vértices de un pentágono que se inscribirá en dicha circunferencia. Ejercicio 7. Desarrollar un programa que permita leer 5 dígitos de un número binario y lo transforme a un numero en base 10 escribiendo el resultado. Ejercicio 8. Elaborar un programa mediante el cual sea posible leer dos números A y B, determinar el exponente que deberá tener A par ser igual a B. Ejercicio 9. Elaborar un programa mediante el cual sea posible leer dos números A y B, determinar el exponente que deberá tener A, para ser igual a B. Ejercicio 10. Desarrollar un programa que permita ingresar 4 números cuya suma representan el 100% de una muestra estadística y considerando que se desea representar estos valores en un grafico circular, se pide calcular la medida de los ángulos (arcos) que le corresponde a cada uno de ellos. 9

GUIA 06 Aplicaciones de estructuras selectivas – Uso del Si / if

OBJETIVO: ƒ

Aprender a utilizar el flujo de control de un programa.

ƒ

Utilizar la estructura selectiva Si / if en sus diferentes formas.

Ejercicio 1. Desarrollar un pseudocodigo y su respectivo programa para que dado un número, indique si es par o es impar. Ejercicio 2. Desarrollar un Algoritmo que indica si un año es bisiesto. Un año es bisiesto si es divisible por cuatro, excepto cuando es divisible por 100, a no ser que sea divisible por 400. Así, 1900 no fue bisiesto, pero 2000 sí lo fue. Ejercicio 3. Calcular el promedio de calificaciones de un alumno. Las dos primeras notas valen 30% cada una y la tercera 40%. Si el promedio es mayor o igual a 11 imprimirá aprobado, de lo contrario dirá reprobado. Si el promedio es igual a 20, dirá alumno excelente. Se desea imprimir el nombre del alumno, código de la materia y el promedio obtenido. Ejercicio 4. Dado un número introducido por el usuario, indicar si éste es positivo, negativo o nulo. Resuélvelo usando estructura selectiva simple. Ejercicio 5. Escribir una programa tal que dados los goles del equipo local (gl) y los goles del equipo visitante (gv), devuelva una cadena de caracteres indicando qué equipo ha ganado (resultados posibles: ‘local’, ‘visitante’, ‘empate’). Ejercicio 6. Dadas las lecturas del valor anterior y el actual de un medidor de luz, escribir un programa que determine a cuánto asciende la factura de la luz de un determinado usuario. El importe es la suma de la cuota fija (12 soles) más una cuota variable que depende del consumo y se calcula por tramos: los primeros 100 Kws, a 0.06 soles el Kw; los 150 Kws siguientes, a 0.04 soles el Kw; si el consumo excede de 250 Kws, esa fracción se cobra a 0.02 soles el Kw. Ejercicio 7. Un banco antes de conceder un préstamo, comprueba los ingresos del solicitante. Si los ingresos son superiores a 12000 soles anuales, el crédito se concede. Si los ingresos son inferiores a 12000 soles anuales pero superiores a 10000 soles y el cliente tiene máximo 2 hijos, el crédito se concede. También se le concede, si tiene ingresos entre 8000 y 10000 soles pero no tiene hijos. Realizar un programa que pida los ingresos anuales y el número de hijos del solicitante, y diga si se le da el crédito o no. 10

Ejercicio 8. Diseñe un programa que lea el importe de la compra y la cantidad recibida y calcule el cambio a devolver, teniendo en cuenta que el número de monedas que se devuelven debe ser mínimo. Suponer que el sistema monetario utilizado consta de monedas de 100, 50, 25, 5 y 1 unidad, y que hay capacidad ilimitada de monedas. Ejercicio 9. Escriba un algoritmo que lea tres números enteros de un supuesto triángulo, determine si realmente forman un triángulo, y muestre el tipo de triángulo que es (si es un triángulo). a) triángulo: La suma de dos cualesquiera de los lados debe ser mayor que el otro. b) equilátero: todos los lados son iguales. c) isósceles: solo dos lados son iguales. d) escaleno: no tiene dos lados iguales. 2) Ejercicio 10. Dos entidades financieras ofrecen las siguientes tasas de interés simple:

Desarrollar un programa que realice lo siguiente: • Solicite al usuario que ingrese el monto de dinero que desea depositar y el tiempo (meses) que lo mantendrá en el banco. • Determine cual de las dos entidades, A o B, es mas conveniente para depositar el dinero y muestre un mensaje indicando en que banco debería el usuario depositar el monto ingresado, y cuanto dinero tendrá luego de transcurrido el tiempo que indico al inicio. Nota: Para calcular el interés simple se utiliza la siguiente formula: Interés = Capital * Tasa * Tiempo Ejercicio 11. Dos vehículos A y B viajan por una pista que tiene una parte pedregosa entre los 20 y 40 Km., como se muestra en la figura:

Los vehículos parten de los 0km y se sabe que, en terreno pedregoso, el vehículo A viaja al 80% de su velocidad normal y el vehículo B al 75% de su velocidad normal. Desarrollar un programa que realice lo siguiente: Solicite al usuario que ingrese las velocidades de los dos vehículos en kilómetros por hora (km/h). Solicite el ingreso del número de horas transcurridas. Muestre un mensaje indicando que vehículo va adelante (ambos parten simultáneamente) y las posiciones de cada uno de ellos. Si alguna de las velocidades o el tiempo no es mayor que cero, imprima el mensaje de error correspondiente.

11

Sugerencia: Calcule primero en que tiempo total se recorre cada segmento de pista. Luego, compare el tiempo ingresado con dichos tiempos totales para aplicar las formulas correspondientes. Ejercicio 12. Determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas extras trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden de 40, el resto se consideran horas extras y que éstas se pagan al doble de una hora normal cuando no exceden de 8; si las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se paga por una hora normal y el resto al triple.

Ejercicio 13. Introducir las notas de un estudinte pp, sp, ef y er (primer parcial, segundo parcial, examen final y examen recuperatorio). Se desea calcular: •



La nota final, reemplazando la nota del examen de recuperación en la peor nota de las tres notas anteriores (pp, sp o ef). Se debe tomar en cuenta que la primera y la segunda nota se califican sobre 30 puntos y la tercera nota se califica sobre 40 puntos (total = 100 puntos). Si la nota final es mayor a 51 desplegar el mensaje APROBADO caso contrario desplegar REPROBADO.

Ejercicio 14. Leer dos numeros reales LS y LI que representan los l´ımites superior e inferior de un intervalo, respectivamente. Dado un n´umero n determine si dicho numero pertenece al intervalo. En caso contrario, indique si est´a a la derecha o izquierda del intervalo. Ejercicio 15. Una tienda ha puesto en oferta la venta al por mayor de cierto producto, ofreciendo un descuento del 15% por la compra de más de 3 docenas y 10% en caso contrario. Además por la compra de más de 3 docenas se obsequia una unidad del producto por cada docena en exceso sobre 3. Diseñe un algoritmo que determine el monto de la compra, el monto del descuento, el monto a pagar y el número de unidades de obsequio por la compra de cierta cantidad de docenas del producto. Ejercicio 16. Una compañía dedicada al alquiler de automóviles cobra $30 hasta un máximo de 300 Km. de distancia recorrida. Para más de 300 Km. y hasta 1000 Km., cobra $30 más un monto adicional de $ 0.15 por cada kilómetro en exceso sobre 300. Para más de 1000 Km. cobra $30 más un monto adicional de $ 0.10 por cada kilómetro en exceso sobre 1000. Los precios ya incluyen el 18% del impuesto general a las ventas, IGV. Diseñe un algoritmo que determine el monto a pagar por el alquiler de un vehículo y el monto incluido del impuesto.

12

Ejercicio 17. Diseñe un algoritmo para obtener el grado de eficiencia de un operario de una fábrica de tornillos, de acuerdo a las siguientes condiciones, que se le imponen para un período de prueba: - Menos de 200 tornillos defectuosos. - Más de 10000 tornillos producidos. El grado de eficiencia se determina de la siguiente manera: - Si no cumple ninguna de las condiciones, grado 5. - Si sólo cumple la primera condición, grado 6. - Si sólo cumple la segunda condición, grado 7. - Si cumple las dos condiciones, grado 8.

13

GUIA 07 Aplicaciones de estructuras selectivas – Uso del Si / if

OBJETIVO: ƒ Aplicar estructuras selectivas – Uso de Según _ Sea / Switch. ƒ Aplicar Estructuras de decisión anidadas.

Ejercicio 1. Desarrollar un pseudocodigo y su respectivo programa para realizar la lectura de un numero entre 1 y 10 para escribirlo en su equivalente en romano. Ejercicio 2. Desarrollar un programa que permita ingresar una fecha como DD, MM, AA y escribir la fecha en formato largo. Ejercicio 3. Escribir un programa para ingresar dos números y el signo de la operación aritmética que se debe resolver, desarrollar la operación y escribir el resultado. Ejercicio 4. Elaborar un programa que presente un “menú” por el cual se pueda elegir la figura geométrica para la cual se desea calcular su área, una vez seleccionada la figura ingresar los datos que sean necesarios para realizar el calculo, calcular su superficie y escribir el resultado.

Ejercicio 5. Elabore una aplicación en C#, para calcular el importe de una llamada Telefónica internacional. El importe de la llamada telefónica está en función del número de minutos hablados y de la zona a la cual se llama, de acuerdo a la Siguiente tabla: El de sc ue nto se rea liza solamente para llamadas de más de 10 minutos. 14

Se ingresa el número de minutos hablados y el código de la zona a la cual se llama. Verifique que estos datos sean positivos. Ejercicio 6. Escribir un programa para ingresar las notas de dos exámenes de alumno, calcular el promedio y si el promedio es mayor o igual a 08 se ingresa una tercera nota “Recuperación”, que se debe promediar con el promedio anterior para obtener el promedio final. Ejercicio 7. Modifica el ejercicio anterior de tal forma que se pueda obtener un mensaje adicional que indique el nivel del estudiante de acuerdo a la tabla de la figura adjunta.

Ejercicio 8. En una empresa se hará un aumento al salario de acuerdo al tiempo de servicio, para este aumento se tomará en cuenta lo siguiente: Tiempo de servicio: de 1 a 5 años

Aumento: S/. 100.

Tiempo de servicio: de 5 a 10 años

Aumento: S/. 250.

Tiempo de servicio: de 10 a 20 años

Aumento: S/. 400.

Tiempo de servicio: de 20 años a más

Aumento: S/. 550.

Escribir un programa que lea el tiempo de servicio de los trabajadores y calcule el monto de aumento que le corresponde. Ejercicio 9. El Instituto Peruano del Deporte (IPD) esta interesado en promover el basketball y para ello necesita seleccionar personas que tengan las siguientes características: EDAD: menor de 18 años, ESTATURA: mínimo 1.80 cm., y PESO: máximo 80 Kg. Elabore un programa que le de entrada a los datos de los aspirantes, verifique las condiciones y al que las cumpla imprima su nombre. Ejercicio 10. Teniendo en cuenta el ejercicio anterior considerar que la selección se amplia a tres nuevas disciplinas y la selección se realiza de acuerdo a la tabla.

Elabore un programa que le de entrada a los datos de los aspirantes, verifique las condiciones y al que las cumpla imprima su nombre.

15

GUIA 08 APLICACIONES DE ESTRUCTURA REPETITIVA MIENTRAS /WHILE

OBJETIVOS: ƒ

Saber utilizar adecuadamente la estructura de control repetitiva while en la resolución de problemas.

ƒ

Utilizar el do while para validaciones de datos.

ƒ

Utilizar variables de tipo acumulador y contador.

ƒ

Utilizar variables centinela.

Ejercicio 1. Usando la instrucción mientras hacer un algoritmo para un programa que imprima la serie 1, 3, 5, 7,9. Ejercicio 2. Hacer un algoritmo para un programa que encuentre el primer entero que haga que la suma de la serie 1, 2, 3, 4, 5, 6, 7, 8,9,...; supere 30. Ejercicio 3. CONJETURA DE ULAM: Empiece con cualquier número entero positivo. Si es par divídalo entre 2; y si es impar multiplique por 3 y aumente en 1. Obténgase enteros positivos repitiendo el proceso hasta llegar a 1. Ejemplo si empezamos en 5 la serie sería: 5, 16, 8, 4, 2, 1. Haga el algoritmo para un programa que nos permita obtener secuencias de números como las anteriores. Ejercicio 4. Hacer el algoritmo para un programa que calcule la suma de ciertos números ingresados por el teclado. El cálculo de la suma se hará en cualquier momento Ejercicio 5. Escribir un algoritmo para un programa que imprima la siguiente tabla de temperaturas Fahrenheit y Celsius. Sugerencia °F °C 32 0 34 1,1111 36 2,2222 ... ... 100 37,778 Ejercicio 6. Escriba el algoritmo para un programa que evalúe la función, donde x toma los valores de 1 a 2 en pasos de 0.1. Para cada valor de x la salida debe dar el valor de y el mensaje POSITIVO o NEGATIVO según el caso. Ejm: si y= 1.0 POSITIVO, Y=-1 NEGATIVO. Ejercicio 7. Escriba el algoritmo para un programa de nómina usando un ciclo mientras con centinela. Para cada empleado, el programa debe leer el nombre, sexo, horas de trabajo, sueldo por hora e imprimir el pago. La segunda parte

16

debe imprimir el pago promedio para las mujeres y el pago promedio para los hombres. Ejercicio 8. Las potencias de 2 son: 1, 2, 4, 8,16,..... Para obtener la siguiente potencia se multiplica la anterior por 2. Escribir el algoritmo para un programa que imprima la primera potencia de 2 que pasa de 1000. Ejercicio 9. Escriba un algoritmo para un programa en el que el usuario debe introducir enteros positivos entre 1 y 5. El programa debe informar al usuario cuando haya escrito un número que hace que la suma pase de 21, imprimiendo la suma y el último entero introducido y el mensaje "mas de 21". Ejercicio 10. Escriba el algoritmo para un programa que imprima la sucesión completa de ULAM para un entero de entrada, si la longitud de toda la sucesión es no más de 10. En caso contrario sólo se imprimirá los 10 primeros enteros de la sucesión. Haga las pruebas de mano para sucesiones de menores de 10 números iguales a 10 y mayores de 10. Ejemplo 5: 16, 8, 4, 3, 1. 25: 76, 38, 19, 58, 29, 88, 44, 22, 11,34. x

Ejercicio 11. e se puede expresar como la siguiente serie infinita.

Si se considera 1 como el término 0, x como el primer término, como el segundo término, como el tercer término, etc; entonces el término n es igual al término n-1 multiplicado por. Haga el algoritmo para un programa basado en esta serie para encontrar una aproximación a . El programa debe parar cuando el último término sumando sea menor de 0.0001. Compruebe el programa para y compare con el valor de la función que devuelve este valor ( ) en cualquier lenguaje de programación. Ejercicio 12. Escriba el algoritmo para un programa que cuente el número de cifras de un entero de entrada hasta 32000. Así para una entrada de 583 la salida debe ser "3 cifras", asegúrese que el programa funcione para 1 y 10. Para cero la salida debe ser "UNA CIFRA". El programa no debe cerrarse hasta ingresar el número 0. Ejercicio 13. Escriba el algoritmo para un programa en el que se pida al usuario ingresar 10 números enteros impares para sumarlos. Elabore el programa de manera que no se arruine si el usuario escribe algunos enteros pares. El programa debe salir del ciclo e imprimir la suma sólo cuando se hayan ingresado los 10 enteros impares. Ejercicio 14. ¿Que salida producen los siguientes fragmentos de código? a) y =20; while (y > 0) y:= y-3; Console.WriteLine(y);

b) y:=10; while (y >0) y =y+4 Console.WriteLine(y);

17

GUIA 09 APLICACIONES CON ESTRUCTURAS REPETITIVAS DO WHILE /

FOR

OBJETIVOS: ƒ

Saber utilizar adecuadamente la estructura de control repetitiva for en la resolución de problemas.

ƒ

Utilizar el do while para validaciones de datos.

ƒ

Utilizar variables de tipo acumulador y contador.

Ejercicio 1. Hacer el algoritmo para un programa, que calcule la máxima área de un terreno rectangular de lados 100-2x y x respectivamente, para valores de x entre 15 y 30. Ejercicio 2. Hacer el algoritmo para un programa que calcule el mayor y el menor número de 8 números ingresados por el teclado. Ejercicio 3. Hacer el algoritmo para el ejercicio 1, para encontrar solamente el valor de la mayor área e imprimir el valor de x para el esta área máxima. Ejercicio 4. Escríbase el algoritmo para un programa en el que se pide al usuario ingresar el nombre, sexo, número de horas de trabajo y el sueldo por hora para cada uno de seis empleados. La primera parte de la impresión en el papel debe dar el nombre y el pago para cada empleado. La segunda parte debe dar totales separados y pagos promedios separados para hombres y para mujeres. El programa puede suponer que hay al menos un empleado de cada sexo. Ejercicio 5. Escriba un algoritmo que muestre y cuente la cantidad de números primos entre 100 y 500. Ejercicio 6. Escriba el algoritmo para un programa que imprima la suma de 15 elementos de la serie: 1/2 +3/4 +7/8 +15/16... Ejercicio 7. Escriba el algoritmo para un programa que calcule el factorial de un número n ingresado por el teclado. Ejercicio 8. Para "Gaseosas Amazonía" escriba el algoritmo para un programa que procese e imprima la información de la nómina de sus diez empleados. Para cada caso, el programa debe leer el nombre, las horas de trabajo, el pago por hora normal y la edad. Ejemplo: Un grupo típico de datos podría ser: NOMBRE

N.H.T.

P.H.

Juan Sopla

50

5

EDAD 57

18

El pago por hora después de las 40 horas de trabajo tiene un aumento equivalente al 50% del pago por hora normal. Así, un empleado que trabaja 50 horas a S/. 5.00 por hora tendrá un pago total de S/. 275.00. Al trabajador se le retiene un impuesto de la siguiente manera: 10% de los primeros S/.200.00 y 20% de la cantidad adicional. La primera parte de la impresión en papel debe ser la información relevante de cada empleado. Ejemplo: Nombre Edgar Jara

Total 275

Horas de trabajo 50

Impuesto 35

Sueldo por hora Neto 5 240

Edad 57

La segunda parte debe informar sobre el pago total promedio para los empleados de al menos 55 años. El nombre y el pago total para el empleado de menos de 55 años con máximo pago total (se puede suponer que no hay empate). Ejemplo Nombre Ada Maria Dario Mirta Sara Miura Jorge

NHT 50 60 45 50 50 70 45

PagoH 5 4 6 6 10 7 10

Edad 40 15 58 60 40 80 52

Total 275 280 285 330 550 595 475

Des1 35 36 37 46 90 99 75

Neto 240 244 248 284 460 496 400

La solución sería: Empleado menor de 55 años con máximo sueldo es Sara con 460 soles. El promedio del sueldo para los empleados mayor de 55 años es: 342.667 soles Ejercicio 9 .Escriba el algoritmo para un programa Interactivo para calificar a un grupo de 40 alumnos de la UNAT-A. El programa debe leer el nombre y sus 3 calificaciones para cada alumno. Debe calcular el promedio para cada uno y después determinar si el alumno es aprobado o no; se requiere un promedio de al menos 12 para aprobar. La primera parte de la salida en el papel debe ser el nombre del alumno, 3 calificaciones, promedio y un mensaje (aprobado ó desaprobado). La segunda parte de salida en el papel debe dar el número de alumnos que aprobaron y el número de los que obtuvieron al menos 18 de nota. Ejercicio 10. Escriba el algoritmo para un programa que calcule la suma de n de términos ingresado por el teclado de la serie 5/6,11/12,23/14,..... Ejercicio 11. Hacer el algoritmo para un programa que imprima 3 grupos, 5 veces "CHACHAPOYAS" en cada grupo. Antes de cada grupo deberá decir "HOLA". Ejercicio 12. Escribir un código que resuelva la siguiente suma (n lo proporciona el usuario) S = 1 /2 + 1/3 + 1/4 + … + 1/n

19

Ejercicio 13. Escribir un código que resuelva la siguiente suma (n es proporcionada por el usuario) S = 1 /2 + 2/22 + 3/23 + 4/24 + n/2n Ejercicio 14.. Escriba un programa que calcule si un numero N es perfecto. Los números perfectos se caracterizan porque la suma de sus divisores positivos (excepto el mismo numero) es igual al numero, por ejemplo 6 es perfecto dado que 1 + 2 + 3 = 6 Ejercicio 15. Escriba un programa que tenga como salida lo siguiente. a ae aei aeio aeiou aeio aei ae a Ejercicio 16 .Modificar el programa anterior para que dada una letra dibuje el siguiente pino, suponiendo que la letra dada sea h a ab abc abcd abcde abcdef abcdefg abcdefgh abcdefg abcdef abcde abcd abc ab a Ejercicio 17. Mostrar este grafico @@@@@@@@@@ @@@@@@@@@@ @@@@@@@@@@ Ejercicio 18. Crear un programa que lea un número entero y a partir de él cree un cuadrado de asteriscos con ese tamaño. Los asteriscos sólo se verán en el borde del cuadrado, no en el interior-

20

Ejercicio 19. Crear un programa para calcular el salario semanal de unos operarios a los que se les paga 15 soles por hora si éstas no superan las 35 horas. Cada hora por encima de 35 se considerará extra y se paga a 22 soles. El programa pide las horas del trabajador y devuelve el salario que se le debe pagar. Además el programa debe preguntar si deseamos calcular otro salario, si es así el programa se vuelve a repetir Ejercicio 20 Se desea realizar una estadística de los pesos de los alumnos de un colegio de acuerdo a la siguiente tabla :-Menos de -Entre 40 y 50 -Más de 50 y menos de -Más ó igual a 60 kg. 40 kg. kg. 60 kg. La entrada de datos termina cuando se ingresa peso 0 Ejercicio 21. Crear el programa en el que se introduce un número entero y se crea una pirámide de asteriscos. Por ejemplo si se introduce el 6, el resultado sería: * *** ***** ******* ********* *********** Ejercicio 22. Modificar el ejercicio anterior para que aparezca un rombo. Ejercicio 23 Crear un programa que escriba dos columnas de números, en la primera se colocan los números del 1 al 100, en la segunda los números del 100 al 1 Ejercicio 24. Crear un programa en C# que lea un número entero y positivo y que escriba tres columnas. La primera cuenta desde uno hasta el número escrito contando de uno en uno; la segunda columna cuenta de dos en dos y la tercera de tres. Ejercicio 25 Crear el programa tablaMultiplicar que escriba la tabla de multiplicar del número 1 al número 15 Ejercicio 26. Crear un programa que muestre un menú como este: 1) Salir 2) Sumatorio 3) Factorial Tras mostrar el menú, el programa debe leer un número del 1 al tres si se elige 1, el programa acaba. Si se elige 2 se calcula el sumatorio del número, si se elige 3 se calcula el factorial (en ambos casos el programa pedirá escribir el número sobre el que se calcula el sumatorio o el factorial). Tras calcular el sumatorio o el factorial e indicar el resultado, el programa volverá a mostrar el menú y así sucesivamente.

21

Ejercicio 27 Crear un programa que lea un número e indique su valor en la sucesión de Fibonacci (llamarle Fibonacci). Esta sucesión calcula su valor de la siguiente manera. Sólo es válido para números positivos, si el número es un uno, la sucesión vale 1 si es dos, la sucesión vale 2. Para el resto la sucesión es la suma de la sucesión de los dos números anteriores. Es decir, para 7 el valor sería lo que valga la sucesión de 6 más la sucesión de cinco. Ejercicio 28. Se dispone de las notas de 3 alumnos. Cada uno de ellos puede tener una o varias notas. Escribir un algoritmo que permita obtener la media de cada alumno y la media de la clase a partir de la entrada de las notas desde el Terminal.

Ejercicio 29. Imprimir todos los números primos entre 2 y 1000 inclusive.

Ejercicio 30 Rellenar una matriz identidad de 4 por 4 elementos

22

Ejercicio 31. Leer 100 números y determinar la media de los números positivos y la media de los números negativos.

Ejercicio 32. Calcular el enésimo término de la seria de Fibonacci.

Ejercicio 33. Imprimir una tabla de multiplica 15 x 15.

23

GUIA 10 APLICACIONES CON ARREGLOS UNIDIMENSIONALES I

OBJETIVOS: ƒ

ƒ ƒ

Desarrollar aplicaciones que utilicen las operaciones básicas con arreglos unidimensionales o vectores (asignación, lectura, escritura, recorridos de un vector (máximos, mínimos, contar, acumular, etc.), inserción, y borrado. Desarrollar aplicaciones con vectores contadores y acumuladores. Desarrollar aplicaciones que realicen operaciones con más de un vector.

Hacer el algoritmo en pseudocodigo (PseInt) y su código en C# de cada uno de los problemas propuestos. Recorridos en un vector: Problema 1. Ingresar por teclado los sueldos de N empleados y calcular el promedio, minimo y maximo sueldo. El numero de empleados y los sueldos deben ser ingresados por teclado. Problema 2 Inicializar los nombres de 6 vendedores y leer sus ventas durante un mes. Calcular y mostrar la comision, si esta se calcula asi: Para las ventas por encima del promedio la comision es del 20%, en caso contrario la comision es del 15% sobre las ventas Problema 3. En un arreglo unidimensional se ha almacenado el número total de toneladas de cereales cosechadas durante cada mes del año anterior. Se desea obtener la siguiente información: a) El promedio anual de toneladas cosechadas, b) ¿Cuántos meses tuvieron una cosecha superior al promedio anual?, c) ¿Cuántos y en que meses tuvieron una cosecha inferior al promedio anual? Problema 4. Hacer un programa que permita ingresar por teclado una cantidad de nombres y sus respectivas notas y luego mostrarlas en pantalla. Debe también contar las notas superiores al Promedio e indicar los nombres de los alumnos que tuvieron dichas notas. Problema 5 Se tienen los vectores paralelos que almacenan los nombres de los pacientes de una clínica y su respectivo numero de cama. Hacer una aplicación que permita ingresar elementos a los vectores o retirarlos, según que los pacientes ingresen a la clínica o sean dados de alta. Considere un máximo cupo de camas en la clínica (ejemplo 30 camas). Use un menú de opciones. Problema 6. Escribir un programa que almacene en un vector los números primos comprendidos entre 1 y 100. Recuerde que un número primo es aquel que

24

únicamente es dividido entre el mismo y la unidad. 1,2,3,5,7,11,13,17, …. No primos: 4,6,8,9,1214,15,……

Por ejemplo, Primos:

Problema 7. Crear un vector de n elementos. Visualizarlo luego de desplazar los elementos una posición de tal forma que el último elemento ocupe la primera posición, el primero la segunda y así sucesivamente. Problema 8. Generar un vector de N ceros y unos alternativamente, luego imprima de cuantos unos quedo formado. Problema 9. En una central de autobuses. Al comprar o reservar un boleto el pasajero proporciona su nombre y selecciona el número de asiento. Los autobuses cuentan con 42 asientos, aunque sin embargo no siempre se ocupan todos los asientos. Realice un programa que dada una reservación o compra de boletos de un autobús, imprima una lista de los pasajeros y las posiciones que ocupan. Problema 10. Cargar dos vectores de 11 elementos cada uno. Uno de ellos contendrá el nombre de los jugadores de un equipo de fútbol infantil; el otro el peso de cada jugador. Se desea saber: a) La cantidad de jugadores con peso entre 30 y 35 Kg inclusive. b) La cantidad de jugadores con peso entre 36 y 40 Kg inclusive c) La cantidad de jugadores con peso mayor a 40 kg. d) El promedio de peso de los jugadores del equipo c) Un listado de jugadores con su peso correspondiente d) El jugador de mayor peso Operaciones con varios vectores: Problema 11 Hacer un programa que calcule el pago por cada curso y el pagoTotal que debe realizar un alumno al matricularse, si para ello cuenta con la siguiente información ingresada por teclado: el numero de cursos que lleva, un vector con la cantidad de creditos de cada uno de los cursos. Considere que el pago por cada credito es un valor constante de 120 soles. Problema 12. Hacer un programa que calcule las ganancias que se obtienen en una bodega, en cada uno de los N meses, si se ingresan por teclado el numero de meses (N) y los ingresos y egresos en cada uno de los meses. Se debe mostrar un reporte con los ingresos, egresos y ganancia en cada mes. Problema 13 Se desea pintar N paredes de dimensiones rectangulares diferentes, para ello se tomaron el largo y ancho de cada una, se halla el área cada una y se guarda en un vector, para luego ordenarlas de menor a mayor, visualizar como quedó luego de ordenarlas, así mismo mostrar el costo de mano de obra para pintarlas, si el costo de pintado por metro cuadrado es de 10 soles y la cantidad de pintura y costo en pintura si el rendimiento de pintura es de 25 m2/galón (2 manos), teniendo en cuenta que el costo por galón es de 30 soles. Debe mostrarse este reporte: Area

costo-mano obra

Galon_pintura

costo-pintura

costo_pared

99.9

99.9

99.9

99.9

999.99

99.9

99.9

99.9

99.9

999.99

99.9

99.9

99.9

99.9

999.99

TOTAL

999.9

999.9

999.99

999.99

Costo/pared = costo mano de obra + costo de pintura 25

Vectores contadores y acumuladores: Problema 14. Hacer un programa que calcule la frecuencia con que se repiten las notas ingresadas por teclado, si se ingresan N notas hasta que el usuario lo decida. Debe mostrarse el vector de frecuencias y el promedio de las notas. Se asume que las notas oscilan entre 0 y 20. Problema 15. El gerente de un supermercado que cuenta con 8 cajas registradoras, le ha pedido hacer un programa que permita el acceso a las 8 cajas de manera que se pueda registrar el monto de las ventas en cada caja, asi como el monto total recaudado en las 8 cajas. Por cada transaccion (venta) se solicita ingresar el monto de venta y el numero de caja en que se realiza la transacción. Las transacciones se repiten hasta que el usuario lo decida. Varios: Problema 16. Cargar un vector de 35 elementos y mostrar por pantalla el valor que más veces se encuentre repetido. Problema 17. Dado un vector de N valores enteros, se desea eliminar los repetidos. Ejemplo: VEC = (2,3,2,1,6,2,6,4,2,6) VEC = (2,3,1,6,4)

Problema 18. Una empresa que administra un eventos que consiste de dos talleres y un congreso, debe reportar la siguiente información: Evento: nombre del evento Congreso: nombre congreso Taller I: nombre de taller 1 Taller II: nombre del taller 2 Participantes en el Congreso (listado DNI y nombres de los inscritos, indicando los ponentes) Participantes en el Taller I (listado DNI y nombres de los inscritos) Participantes en el Taller II (listado DNI y nombres de los inscritos) Ingresos totales del Evento Ingresos por cada taller y por el congreso Sabiendo que los talleres son opcionales; es decir: un participante puede inscribirse en el Congreso y en un sólo taller o asistir únicamente al congreso. El costo del congreso es independiente del costo de un taller, mientras que ambos talleres cuestan lo mismo. Si el participante es ponente; o sea, que va a presentar un trabajo en el congreso, su costo de inscripción en éste se reduce a la mitad. Considere costo del Congreso 100 soles, el costo de los talleres 30 soles Problema 19. Una empresa tiene E empleados para cada uno de los cuales registra los siguientes datos: Nombre, DNI, Sueldo base, Ventas realizadas, Estado civil, Número de Hijos. El programa debe calcular para cada empleado el sueldo neto mediante la relación siguiente: Sueldo Neto = Sueldo base + Comisión por ventas – Descuento por impuesto – Descuento por seguro. 26

Donde: la comisión por ventas es el 5% de las ventas realizadas El descuento por seguro se obtiene como sigue: • Si el empleado es soltero el descuento es de 100 • Si el empleado es casado sin hijos el descuento es de Bs. 150 • Si el empleado es casado con hijos el descuento es de Bs. 50 + 8 por cada hijo El descuento por el impuesto (DI) se obtiene como sigue: Suponga que llamamos TA a la suma del sueldo base + comisión por ventas, entonces: • Si TA es menor o igual a 400 DI = 0 • Si TA es mayor que 400 y menor o igual a 800 DI = 3% de TA • Si TA es mayor que 800 y menor o igual a 1000 DI = 4% de TA • Si TA es mayor de 1000 DI = 6% de TA El programa debe imprimir DNI, nombre y sueldo neto para cada empleado, el monto total que la empresa debe pagar por concepto de sueldos, el monto total por comisiones de ventas, el monto total de los descuentos por impuesto y por seguro. Problema 20. Una investigación sobre licencias se lleva a cabo mediante el llenado de un cuestionario que tiene la siguiente información: ASUNTO Tipo de licencia

CODIGO DE RESPUESTA 1 = corredor 2 = vendedor

Edad

Años de edad

Educación

1 = educación media incomple 2 = educación media completa 3 = educación técnica complet 4 = grado universitario

El problema consiste en analizar N cuestionarios y calcular: a) Porcentaje de corredores y vendedores b) Edad promedio c) Cantidad de respuestas según su nivel de educación e) Quienes tienen mayor nivel educativo los corredores o los vendedores Problema 21 Se tiene un arreglo que contiene datos duplicados, recorrer el arreglo sustituyendo el valor de 0 en los valores que se encuentran duplicados. 8 6 3 8 3 7 1 8 8 6 3 0 0 7 1 0 Problema 22. Por medio de un arreglo de un solo índice resuelva el siguiente problema. Una compañía paga a sus vendedores con base en una comisión. Los vendedores reciben $200 a la semana más 9% de sus ventas netas durante la 27

semana. Por ejemplo, un vendedor cuyas ventas brutas son de $5000, a la semana recibe $200 más 9% de $5000, es decir un total de $650. Escriba un programa (con un arreglo de contadores) que determine la cantidad de vendedores que ganaron salarios dentro de los siguientes rangos (suponga que el salario de cada vendedor se cierra a una cifra entera): a) $200 - $299 b) $300 - $399 c) $400 - $499 d) $500 - $599 e) $600 - $699 f) $700 - $799 g) $800 - $899 h) $900 - $999 i) $1000 o más Problema 23. Nuestro siguiente programa, HISTOGRAMA.CPP, lee la información en forma de un gráfico de barras o histograma, barra consistente en la misma cantidad de asteriscos. El siguiente programa, ESTADÍSTICA.CPP, muestra un ejemplo en los que se utiliza la computadora para recolectar y analizar los resultados de las encuestas y sondeos de opinión. Utiliza el arreglo respuestas, inicializado con 100 respuestas (representadas por la constante TAMANO_RESPUESTAS de una encuesta. Cada una de las respuestas es un número del 1 al 9. El programa calcula la media, la mediana y la moda de los 99 valores.

28

GUIA 11 APLICACIONES CON ARREGLOS UNIDIMENSIONALES II Ordenamiento por método de burbuja y Búsqueda secuencial

OBJETIVOS: ƒ

Desarrollar aplicaciones que utilicen los métodos ordenamiento creciente o decreciente de un vector

ƒ

Desarrollar aplicaciones que utilicen el metodo de busqueda secuencial..

de

BUSQUEDA: Problema 1 Buscar el código de un paciente; si lo encuentra mostrar su nombre y su Diagnostico; y si no lo encuentra muestre un mensaje adecuado. Repetir hasta que el usuario lo decida. Problema 2. Inicializar los vectores paralelos, codigo nombre, sexo, y promedio ponderado de 10 alumnos. Hacer un programa que permita la busqueda por codigo si lo encuentra muestre el nombre del alumno su sexo y su promedio ponderado debe mostrar un mensaje tambien indicando si el promedio es aprobatorio o no. Problema 3 Hacer un programa que busque el codigo de un empleado en un array de codigos ordenados en orden creciente. Si lo encuentra muestre su nombre y su sueldo actualizado de acuerdo al estado civil: casado incrementa el sueldo en 20% y los solteros en 15%. Debe inicializarse los codigos, nombres y estado civil de los N empleados. Si no lo encuentra muestre un mensaje adecuado. Repetir hasta que ingrese 0 como codigo. Problema 4 Buscar por codigo en un vector CodigoProd, que almacena los codigos de N productos paralelos a otros(precio unitario y cantidad en almacen). Si lo encuentra mostrar sus datos respectivos y efectuar una compra por una cantidad de unidades actualizando las unidades en el almacen. Se debe mostrar el monto parcial de la venta. Cuando termina la compra mostrar el monto total de la venta Ing. Codigo del producto: 99 Xxxxxx precio: 99.99 unidades: 999 en almacen ¿Cuantas unidades desea ? 99 Xxxxxxx 99.99 99 S/. 99.99 de monto parcial ¿Otra compra S/N ? S … ... ¿Otra compra S/N ? N S/. 999.99 por la compra total.

29

ORDENAMIENTO Problema 5. Inicializar un arreglo que almacena los nombres de 10 vendedores, luego leer sus ventas en el mes y finalmente ordenarlos en orden decreciente. Se debe mostrar los arreglos paralelos, donde se aprecie las ventas ordenadas. Problema 6. Dados los arreglos paralelos que almacenan los datos de los vendedores de una empresa: nombre, sexo, VentaMensual, se pide ordenarlos en orden decreciente según las ventas mensuales, b) en orden alfabetico según el nombre, en orden creciente según el sexo.

30

GUIA 12 APLICACIONES CON ARREGLOS BIDIMENSIONALES I (o Matrices)

OBJETIVOS: ƒ

Desarrollar aplicaciones que utilicen la estructura de datos array bidimensional, con las principales operaciones sobre el: recorrido, suma por filas, suma por columnas, operaciones basicas con matrices

Problema 1. Dada una matriz A de orden NxM hallar su matriz transpuesta Problema 2. Dada dos matrices A y B de orden NxM calcular la suma Problema 3. Escribir un programa que genere dos matrices de dimensiones NxM y MxP a partir de los valores leídos por teclado, y realice el producto de las dos matrices, mostrando la matriz resultante. Problema 3. Introducir un valor del 1 al 20 en un arreglo bidimensional de 5 filas y 4 columnas, el número que se introduzca, digamos 3 debe almacenarse en la casilla correspondiente; y los demás valores valdrán 0; si se ingresa el 15; si se ingresa el 8 y así sucesivamente, se tendría esta matriz: 0 0 0 0 0

0 0 0 0 0

3 0 0 8 0 0 15 0 0 0

Los valores solo van a ser validos del 1 al 20; si yo pongo otro fuera de ese parámetro me debe de rechazar el valor y pedir otra vez el valor. También debe pedir si se quiere introducir mas datos, y mostrar la tabla; si se introduce un valor ya repetido que debe marcar que el dato ya existe, mostrar el mensaje para introducir nuevamente.

Problema 4. Un comercio utiliza para la atención a sus clientes 5 cajeros (1,2,3,4,5) por cada transacción se ingresa el numero de cajero e importe de la transacción, que puede ser retiro, deposito y otros. El proceso finaliza cuando en número de caja se ingresa cero. Determinar: a) total de ingresos, retiros y otros en cada caja b) cual fue el cajero con menos ingresos y con mayores retiros c) visualizar el total por cada caja. Problema 5. En un arreglo se almacenan las X calificaciones finales en el primer ciclo de Y alumnos. Escriba un programa que calcule e imprima: a) El promedio ponderado en el ciclo de cada alumno, si paralelo a las calificaciones por curso se tiene los créditos de cada curso del primer ciclo. b) Numero de cursos aprobados y desaprobados de cada alumno 31

c) Porcentaje de alumnos con promedio ponderado aprobado en el ciclo. d) Número de alumnos con promedio mayor o igual a 8. Problema 6. Se desea desarrollar un programa que relacione la información de los síntomas que padece un paciente con la información de los síntomas de las diferentes enfermedades. El nombre de los pacientes debe colocarse en un vector, el nombre de las enfermedades debe colocarse en otro vector, la información sobre los síntomas de cada paciente está codificada en una matriz en donde las filas representa cada paciente y las columnas los diferentes síntomas que padece y la información de los síntomas de cada enfermedad debe colocarse en una matriz en donde las filas representan las diferentes enfermedades y las columnas los síntomas de cada enfermedad. Las matrices de síntomas tendrán solamente los valores verdadero o falso, en donde verdadero representa que el síntoma está presente en la enfermedad o en el paciente, según sea el caso, y falso lo contrario. El programa debe: Generar un reporte de los pacientes con la enfermedad que padecen Generar un reporte con la enfermedad más común, el número de pacientes que la tienen y el porcentaje. Generar un reporte con la enfermedad menos común, el número de pacientes que la tienen y el porcentaje. Problema 7. Escribir un programa que determine si un matriz A de NxN es simétrica o no. La matriz es simétrica si se cumple que A[i][j]=A[j][i]. Problema 8. Escribir un programa que lea los elementos de una matriz A de NxN y retorne la transpuesta de A en otra matriz B de NXN, tal que B[i][j]=A[j][i]. Problema 9. Hacer un algoritmo que permita obtener el productos de dos matrices A[i][j] y B[j][k]. Problema 10. Hacer un algoritmo que permita rotar los elementos del contorno de una matriz NxM en sentido horario (Los elementos internos serán ceros) Problema 11 Obtener la transpuesta de una matriz a) cuadrada b) no cuadrada (teniendo en cuenta de que tamaño deberá ser la nueva matriz) Problema 12. Se tiene una matriz, intercambiar los elementos de 2 renglones seleccionados por el usuario. Problema 13. Obtener en un arreglo la suma de los elementos de cada columna par de una matriz y el producto de los elementos de cada columna impar de la misma matriz.

32

Problema 14. Imprimir las siguientes figuras: a) + ++ +++ ++++ +++++ ++++++ b)

c)

+ +++ +++++ +++++++ +++++ +++ + ++++++ +++++ ++++ +++ ++ +

Problema 15. Se tiene un arreglo bidimensional (matriz) que almacena los sueldos de los docentes de la universidad Sedes Sapientiae en los meses de Abril a Agosto del 2002. Hacer un algoritmo y programa que a) muestre los sueldos totales de cada profesor en semestre 1 del año 2002. b) muestre la suma de los sueldos en cada mes entre Abril y Agosto. c) El total de los sueldos en el ciclo 1 del 2002. Problema 16. En una tabla gasto se guardan los gato de una empresas durante los 12 meses de año, en cada uno de sus 15 rubros : útiles de oficina, teléfono luz agua salario alquiler, etc. Hace una algoritmo que me permita determinar a) El total de los gasto mensualde GM. B) Los gasto anuales de cada uno de los 15 rubros. GAPR. c) En que rubro se da el mayor gasto anual. D) En que rubro se da menor gasto anual. E) En que mens durante el año se produjo el mayor gasto. I ↓ j → RUMBROS M 1 2 3 4 5 1 2 3 4 5 6 7 8 9 10

6

7

8

9

10 11 12 13 14 15

GM GmI

33

11 12 GAPR

GARPj

Problema 17. Un instituto desea controlar los resultados de los alumnos en las distintas asignaturas de la facultad de Ingeniería. El programa debe ingresar las calificaciones de los alumnos y visualizar en pantalla la media de notas por alumno y la media de notas por asignatura. Las asignaturas están codificadas de 1 a 6 y hay 30 alumnos.

34

GUIA 13 APLICACIONES CON ARREGLOS BIDIMENSIONALES II (o Matrices)

OBJETIVOS: ƒ

Desarrollar operaciones con varios matrices: suma, resta, multiplicacion.

ƒ

Desarrollar operaciones con matrices y vectores.

ƒ

Matrices como contadores y como acumuladores

Problema 1: Una empresa importadora de equipos y repuestos compra N (máximo 20) diferentes artículos de 4 países. Desarrolle un programa que realice lo siguiente: • Ingrese los nombres de los N artículos • Ingrese los nombres de los 4 países • Ingrese en una matriz el precio que cada artículo tiene en cada país. Este ingreso se hará en el mismo orden en que se ingresaron los nombres de los artículos ( es decir: precios del primer artículo en los 4 países, luego precios del segundo artículo en los 4 países, etc.) Problema 2: Se desea escribir un programa que permita manejar la información de habitantes de un complejo habitacional. El mismo posee 7 torres; a su vez cada torre posee 20 pisos y cada piso 6 departamentos. Se desea saber: a) Cantidad total de habitantes del complejo b) Cantidad promedio de habitantes por piso de cada torre c) Cantidad promedio de habitantes por torre Problema 3: En cada una de las 4 semanas (1 mes) 3 compañías clientes hacen pedido por cierta cantidad de levadura, cuyos valores son ingresados por teclado. Hacer un programa que permita determinar: a) la cantidad de levadura que se requiere para proveer de levadura cada semana a las 3 compañias, b) la cantidad de levadura mensual que requiere cada compañía, c) la cantidad total de levadura que se debe tener al mes para poder abastecer a los 3 clientes. Problema 4. Una empresa de cerveza que tiene dos plantas consume básicamente 3 tipos de materia prima (malta, levadura y agua). Se desea saber la cantidad total de materia prima que se consume en la empresa, por cada semana del mes de cada materia prima.

35

ConsMP1

ConsMP2

ConsMPT

ConsTPMP

36

GUIA 14 APLICACIONES CON FUNCIONES

OBJETIVOS: ƒ

Definir y utilizar funciones definidas por el usuario.

ƒ

Integrar funciones desarrolladas por otros programadores de acuerdo a sus necesidades

FUNCIONES Problema 1. Escribe el código en C# de las siguientes funciones: a) La función... static int cuentaCeros (ref int [ ] Arr ) que recibe un arreglo de enteros y regresa el número de ceros que se encuentran dentro del arreglo. Por ejemplo, si el arreglo A tuviera los valores A[0]=0, A[1]=1, A[2]=4, A[3]=2, A[4]=5 y A[5]=0, el resultado de cuentaCeros(ref A) debe ser 2. b) La función... static int sumaPares ( ref int [ ] Arr ) que recibe un arreglo de enteros y regresa el resultado de sumar sólo los números pares que hay dentro del arreglo. Por ejemplo, si el arreglo A tuviera los valores A[0]=8, A[1]=1, A[2]=4, A[3]=2, A[4]=5 y A[5]=10, el resultado de sumaPares(ref A) debe ser 8+4+2+10 es decir 24. c) La función... static int cuentaRepeticiones ( ref int [ ] Arr, int x ) que recibe un arreglo de enteros y un valor entero x. La función regresa el número de veces que se repite el valor de x en el arreglo. Por ejemplo, si el arreglo A tuviera los valores A[0]=8, A[1]=2, A[2]=4, A[3]=2, A[4]=5 y A[5]=2, el resultado de cuentaRepeticiones(ref A,2) debe ser 3. Problema 2. Escribir una función que calcule y retorne el factorial de un número natural pasado como parámetro, en forma iterativa. Realizar todas las validaciones que considere necesarias. Problema 3. Una empresa tiene E empleados para cada uno de los cuales registra los siguientes datos: Nombre, DNI, Sueldo base, Ventas realizadas, Estado civil, Número de Hijos. El programa debe calcular para cada empleado el sueldo neto mediante la relación siguiente: Sueldo Neto = Sueldo base + Comisión por ventas – Descuento por impuesto – Descuento por seguro.

37

Donde: la comisión por ventas es el 5% de las ventas realizadas El descuento por seguro se obtiene como sigue: • Si el empleado es soltero el descuento es de 100 • Si el empleado es casado sin hijos el descuento es de Bs. 150 • Si el empleado es casado con hijos el descuento es de Bs. 50 + 8 por cada hijo El descuento por el impuesto (DI) se obtiene como sigue: Suponga que llamamos TA a la suma del sueldo base + comisión por ventas, entonces: • Si TA es menor o igual a 400 DI = 0 • Si TA es mayor que 400 y menor o igual a 800 DI = 3% de TA • Si TA es mayor que 800 y menor o igual a 1000 DI = 4% de TA • Si TA es mayor de 1000 DI = 6% de TA El programa debe imprimir DNI, nombre y sueldo neto para cada empleado, el monto total que la empresa debe pagar por concepto de sueldos, el monto total por comisiones de ventas, el monto total de los descuentos por impuesto y por seguro. Nota: Estructure el programa usando el concepto de subprogramas. Por ejemplo: Programa principal

Lectura Impresión

Descuento_Seguro

Descuento_Impuesto

38

GUIA 15 APLICACIONES CON PROCEDIMIENTOS Y FUNCIONES

OBJETIVOS: ƒ

Saber utilizar parametros por valor, por referencia y como parametro de salida.

ƒ

Identificar el ambito de las variables (locales y globales).

Problema 1. Escribe el código en C# de los siguientes procedimientos: a) El procedimiento:

static void inicia1 (ref int [ ] Arr )

que recibe un arreglo de enteros y el tamaño del arreglo y le asigna a cada localidad del array los valores 0,3,6,..,3*(n-1) donde n es la longitud del arreglo. Por ejemplo, si definimos el siguiente arreglo: int [ ] A; A= new int[6]; Y después ejecutamos la instrucción... inicia1(ref A); ...las localidades de A deben ser A[0]=0, A[1]=3, A[2]=6, A[3]=9, A[4]=12 y A[5]=15. b) El procedimiento: static void inicia2( ref int [ ] Arr ) que recibe un arreglo de enteros y le asigna a cada localidad los valores n-1, n2,...,2,1,0 donde n es la longitud del arreglo. Por ejemplo, si definimos el siguiente arreglo: int [ ] B; B= new int[6]; y después ejecutamos la instrucción... inicia2( ref B ); las localidades de B deben ser B[0]=5, B[1]=4, B[2]=3, B[3]=2, B[4]=1 y B[5]=0. c) El procedimiento: static void inicia3 ( ref bool [ ] Arr ) que recibe un arreglo de valores booleanos y le asigna de manera intercalada los valores true y false. Por ejemplo, si definimos el siguiente arreglo:

39

bool [ ] C; C= new bool[6]; y después ejecutamos la instrucción... inicia3 (ref C ); las localidades de C deben ser C[0]=false, C[1]=true, C[2]=false, C[3]=true, C[4]=false y C[5]=true. d) El procedimiento... static void sustituye (ref int [ ] Arr, int old, int nuevo) que recibe un arreglo de enteros y dos valores enteros old y nuevo. El procedimiento debe reemplazar todos los valores old del arreglo por el valor de nuevo. Por ejemplo, si el arreglo A tuviera los valores A[0]=8, A[1]=2, A[2]=4, A[3]=2, A[4]=5 y A[5]=2, el resultado de sustituye(A,2,7) debe ser A[0]=8, A[1]=7, A[2]=4, A[3]=7, A[4]=5 y A[5]=7. Problema 2. Escribe el codigo en C# de los métodos (procedimientos o funciones) a). Escribe el código en C# del procedimiento static void intercambia(ref int [ ]A, int i, int j), que recibe un arreglo de enteros y dos valores enteros que corresponden a dos localidades del arreglo. El procedimiento intercambia los valores de las localidades i y j del arreglo. Por ejemplo, si el arreglo A tuviera los valores A = [8 1 4 7 5 10 6 3 9], la operación intercambia(ref A, 2, 5) intercambia los valores A[2] y A[5], modificando el arreglo de la siguiente forma A = [8 1 10 7 5 4 6 3 9]. b). Escribe el código en C# del procedimiento static void invierte(int [ ] Arr), que recibe un arreglo de enteros. El procedimiento invierte la secuencia de valores del arreglo. Por ejemplo, si el arreglo A tuviera los valores A = [10 3 5 2 3 9 10 4 7 1], la operación invierte(ref A) intercambia los valores del arreglo invirtiendo la secuencia del arreglo: A = [1 7 4 10 9 3 2 5 3 10]. c). Escribe el código en C# del procedimiento static void rotaDerecha(ref int [ ] Arr), que recibe un arreglo de enteros. El procedimiento mueve a cada elemento una posición adelante, colocando el último valor del arreglo en la primera localidad del arreglo resultante. Por ejemplo, si el arreglo A tuviera los valores A = [0 1 2 3 4 5 6 7] después de evaluar rotaDerecha(ref A) el arreglo se modifica de la siguiente manera: A = [7 0 1 2 3 4 5 6]. d). Escribe el código en C# de la función static int mayor(ref int [ ] A, int inf, int sup), que recibe un arreglo de enteros y dos valores enteros inf y sup. La función regresa el mayor valor del arreglo dentro del rango definido por las posiciones inf y sup. Por ejemplo, si tenemos el siguiente arreglo: A = [10 12 2 0 4 35 24], la instrucción mayor(A, 0, 3) regresa 12 y mayor(A, 0, 6) regresa 35.

40

e). Escribe el código en C# de la función static int posMayor (ref int [ ] A, int inf, int sup) que recibe un arreglo de enteros y dos valores enteros inf y sup. La función regresa la posición de la localidad que contiene al mayor valor del arreglo. Por ejemplo, si tenemos el arreglo: A = [10 12 2 0 4 35 24], la instrucción posMayor(A,0,3) regresa 1 y posMayor(A, 0, 6) regresa 5. f). Escribe el código en C# del procedimiento static void ordena2(ref int [ ] A), que recibe un arreglo de enteros y el procedimiento ordena los valores del arreglo de mayor a menor. Por ejemplo, si tenemos el arreglo A = [10 29 4 23 31 24 15 6], después de evaluar ordena2(ref A), el arreglo se modifica de la siguiente manera: A = [31 29 24 23 15 10 6 4]. g). Escribe el código en C# de la función static bool iguales(ref int [ ] A1, ref int [ ]A2), que recibe dos arreglos de enteros y el procedimiento regresa true si los dos arreglos contienen la misma secuencia de valores y false de otra manera. Por ejemplo, si tenemos los arreglos... A1 = [31 24 23 15 10 6 4] A2 = [31 24 23 15 10 6 4] A3 = [10 4 23 31 24 6 8] la evaluación de iguales(ref A1, ref A2) es true y la evaluación de iguales(ref A1, ref A3) es false.

Problema 3. Debido a que se trata de una función, la definición del problema se enfocará a la interfaz de la función. Por consiguiente, se debe considerar que la función aceptará y regresará algo. Llamaremos a la función busquedaSec() A partir del enunciado del problema, la función deberá buscar en un arreglo de enteros un valor de un elemento determinado. De esta manera, la función necesita dos cosas para realizar este trabajo:(1) el arreglo y (2) el elemento que se va a buscar. Estos serán los parámetros de la función, Problema 4. Hacer un programa que use 3 métodos: 1. Procedimiento Menu() que no tiene parametros ni retorna valor, solo muestra lo siguiente: Calcular el area de un rectangulo Calcular el area de un circulo Ingrese su opcion: … 2. Función CalAreaCirculo() que tiene como parametro r y retorna el area del circulo. 3. Función CalAreaRectangulo() que tiene como parametros b y h y retorna el area del rectangulo. En el método principal, muestre el menu de opciones llamando al procedimiento menu(). Luego ingrese su opcion. Según la opcion elegida, ingrese por teclado los valores que necesita y la llamada a la funcion, para que la opcion seleccionada se lleve a cabo. Por ejemplo, si elije 2, solicite ingresar

41

el radio y llamar a la función CalAreaCirculo() para que calcule el area, el valor retornado debe mostrarse en pantalla. Repetir hasta que el usuario lo decida. Problema 5. Un cajero automático tiene billetes de S/.100, S/.50, S/.20 y S/.10 . Los clientes pueden retirar un máximo de S/.2000 y un mínimo de S/.10 por transacción. Desarrolle un aplicación que solicite al cliente el monto que desea retirar, y luego, usando un procedimiento, determine el número de cada tipo de billete que se debe entregar al cliente. Antes de invocar(llamar) a procedimiento, la aplicación verificará que el monto del retiro cumpla con ser menor o igual que S/.2000, mayor o igual a S/.10 y múltiplo exacto de S/.10. El procedimiento deberá considerar que se entregará el mayor número posible de billetes de mayor denominación.(ejemplo: si el monto es S/.1960, la respuesta debe ser 19 billetes de S/.100, 1 billete de S/.50, 0 billetes de S/.20 y un billete de S/.10)

42

GUIA 16 APLICACIONES CON PROCEDIMIENTOS Y FUNCIONES ARREGLOS Y FUNCIONES COMO PARÁMETROS. RECURSIÓN.

OBJETIVOS: ƒ

Definir y utilizar funciones y procedimientos definidos por el usuario usando areglos y funciones como parametros.

ƒ

Integrar funciones o procedimientos desarrolladas por otros programadores de acuerdo a sus necesidades

Ejercicio 1 Escribir una función que reciba como parámetros un arreglo de doubles y su longitud, y devuelva al máximo (o el mínimo) valor contenido en él. Ejercicio 2 Escribir una función que reciba un arreglo de doubles y su longitud como parámetros, y retorne el promedio aritmético de los valores contenidos en él. Ejercicio 3. Escriba las funciones recursivas necesarias para resolver los siguientes problemas: · Sumar los dígitos de un número natural · Calcular el producto de dos números naturales · Sumatoria 1 1 1 1 S =1+ + + ... + + 2 3 n −1 n

43