Sei sulla pagina 1di 38

Taller de Programacin

Lenguaje de Programacin

PRACTICO N 6 ESTRUCTURAS REPETITIVAS


Ejercicio 1 Parte (I):

Construya las trazas e indique, en los casos que corresponda, el o los valores que desplegar. (a.-) Asuma que los dato ingresados para n y m son 3 y 2 respectivamente. n m 2 i 0 j 0 1 2 1 0 1 2 2 0 1 2 3 ( b.- ) 2 0 2 1 1 0 1 1 Printf ( ) 0 0 0 1

Scanf (n); Scanf (m); for ( i = 0; i < n; i++) { for ( j = 0; j < m; j++) { printf (i, j) } }

for ( i = 0; i < 3; i++) { for ( j = 0; j < 3; j++) { if ( i <> j ) printf ( i, j) else printf ( 1) } }

i 0

j 0 1 2 3 0 1 2 3 0 1 2 3

Printf ( ) 1 0 1 0 2 1 0 1 1 2 2 0 2 1 1

Taller de Programacin

Lenguaje de Programacin

( c.- )

for ( i = 0; i < 3; i++) { for ( j = i; j < 3; j++) { printf (i,j) } }

i 0

j 0 1 2 3 1 2 3 0 2 3

Printf ( ) 0 0 0 1 0 2 1 1 1 2

2 3

2 2

Parte (II): Para cada caso seale el pseudocdigo equivalente pero reemplazando la estructura While por FOR (). (a )

i=0; While (i < 3 ); { Printf (i); i = i + 1; }

FOR (i = 0; i < 3; i++) PRINTF(i);

(b )

i=0; While (i < 3 ); { j = 0; While ( j < 5) { Printf (i,j); j = j + 1; } i = i + 1; }

FOR (i = 0; i < 3; i++) FOR (j = 0; j < 5; j++) PRINTF(i , j);

Taller de Programacin

Lenguaje de Programacin

Ejercicio 2
Utilice la estructura repetitiva ms adecuada para cada caso, que permita resolver cada uno de los casos que se entregan a continuacin. Disee el DFD y el pseudos cdigo respectivo. a) Generar y desplegar por pantalla la serie : -6; -2; 2; 6; 10; 14; 18; 22; 26; 30

b) Generar y desplegar por pantalla la serie : 10; 100; 1.000; 10.000; 100.000; 106; 107; 108; 109; .; 10100

Taller de Programacin

Lenguaje de Programacin

c) Generar y desplegar por pantalla la serie : 100; 98; 96; 94; 92; 90; 88; .; 50

d) Generar y desplegar por pantalla la serie : 1; 2;3;4;5; .; 98; 99; 100; 150; 200; 250; 300; .. ;10.000

Taller de Programacin

Lenguaje de Programacin

e) Generar y desplegar por pantalla la serie : 3; 5; 9; 11; 15; 17; 21; 23; 27; ; 123

f) Generar y desplegar por pantalla la serie : A; B; A; B; A; B; hasta desplegar 500 letras

Taller de Programacin

Lenguaje de Programacin

g) Generar y desplegar por pantalla la serie : A; X; A; A; X; A; A; A; X; A; A; A; A; X; .hasta desplegar 25 letras A juntas. Dos alternativas, una con do while otra con for.

Taller de Programacin

Lenguaje de Programacin

h) Generar y desplegar por pantalla la serie : 3; 9; 27; 81; 243; .; 6.561

i) Generar y desplegar por pantalla la serie : 5; 25; 125; 3.125; 15.625; .; 9.765.625

Taller de Programacin

Lenguaje de Programacin

j) Generar y desplegar por pantalla la serie : 1; A; 2; A; 3; A; 4; A; 5; A; 6; A; 7; A; .hasta desplegar 90 letras A.

k) Leer nmeros hasta ingresar el nmero cero. Al final indicar cuntos Nos se ingresaron.

Taller de Programacin

Lenguaje de Programacin

l) Leer nmeros validando que estos solo sean positivos. Al final indicar cuntos de los nmeros ingresados cumplieron esta condicin. Se finaliza cuando se ingresa el numero 999.

m) leer diversas letras hasta que se acumulen 10 letras A o B inclusive. Indicar cuantas letras fueron ingresadas hasta que se cumpli la condicin.

Taller de Programacin

Lenguaje de Programacin

n) Ingresar nmeros pares hasta que se cumpla la condicin de que los nmeros pares sean el doble de los nmeros impares. Indicar cuantos nmeros fue necesario ingresar hasta que se cumpli la condicin, adems cuantos nmeros pares e impares se ingresaron.

Taller de Programacin

Lenguaje de Programacin

o) Como sera el ejercicio anterior, si los nmeros ceros deben ser contabilizados a parte, es decir, no como nmeros pares. Indicar cuantos nmeros fue necesario ingresar hasta que se cumpli la condicin, cuantos nmeros pares, impares y ceros se ingresaron.

Ejercicio 3
Generar los N primeros nmeros pares a continuacin del nmero P. { scanf (p); do scanf(n) while (n < 1); IF (p MOD 2 != 0) { p = p 1 } FOR (i = 1; i<=n; i++) printf (p + 2 * i); }

Taller de Programacin

Lenguaje de Programacin

Ejercicio 4
Confeccione un programa que permita solucionar el siguiente problema: leer 30 nmeros entregar el promedio de los valores impares ledos. { SumaNumero = 0; for (i = 1; i<=30; i++) { scanf (Numero); IF (Numero MOD 2 != 0 ) SumaNumero = SumaNumero + Numero; } Promedio = SumaNumero / 30; scanf(Promedio); }

Ejercicio 5
Confeccione un programa que genere la siguiente serie : 1010, 1020, 1030, 1040, 1050, ..........., 10.000.

{ Serie = 1010; do { printf (serie) serie := serie + 10 } while (Serie <= 10000); }

Ejercicio 6
Construya un programa que permita obtener el factorial de un nmero cualquiera. { Factorial = 1 scanf (Numero) for( i = 1; i <= Numero; i++) Factorial = Factorial * i; printf (Factorial) }

Taller de Programacin

Lenguaje de Programacin

Ejercicio 7
Se pide calcular e imprimir el resultado de la siguiente sumatoria:

(2 * x 1)
x 1

PRINTF (Ingrese n:); SCANF( n ); serie = 0; For ( x = 1; x <= n ; x = x + 1) { serie = serie + 1 / ( 2 * x + 1 ) } PRINTF (El resultado es , serie)

Ejercicio 8
Confeccionar un programa que permita leer una cantidad variable de nmeros, hasta que se hayan ingresado 70 nmeros pares, y que finalmente indique de la serie de nmeros lo siguiente. (a) (b) Total de nmeros pares e impares. Promedio de los nmeros pares, impares y el general.

{ CuentaPares = 0; CuentaImpares = 0; SumaPares = 0; SumaImpares = 0; do { scanf(Numero) if (Numero MOD 2 == 0) { CuentaPares = CuentaPares + 1 SumaPares = SumaPares + Numero } else { CuentaImpares := CuentaImpares + 1 SumaImpares := SumaImpares + Numero } while (CuentaPares < 70); PromedioPares = SumaPares / CuentaPares; PromedioImpares = SumaImpares / CuentaImpares; PromedioGeneral = (SumaPares + SumaImpares) / (CuentaPares + CuentaImpares); printf(CuentaPares, CuentaImapres); printf(PromedioPares, PromedioImpares, PromedioGeneral); }

Taller de Programacin

Lenguaje de Programacin

Ejercicio 9
Escriba un programa que permita calcular el rea de un rectngulo, extrayndole el rea de un crculo completamente contenido dentro del rectngulo. El rea achurada de la figura representa el rea que se debe obtener. Los datos a ingresar son el largo de los lados del rectngulo ( a y b) y el radio del crculo (r). El programa debe validar que el dimetro del crculo sea menor que los lados a y b del rectngulo. b a r rea rectngulo : a*b rea del crculo : *r2 dimetro del crculo :2*r

{ scanf( a, b); IF (a < b) menor = a ELSE menor = b; do scanf(r) while(2*r > menor); Area = (a * b) (pi * r ^2) printf (area) }
/* leo radio del circulo validando que no cumpla, condicin de exceder la medida del lado menor del triangulo. /* necesito determinar cual es el lado menor del tringulo para validar condicin que radio de la circunferencia sea menor al menor de los lados del tringulo.

Ejercicio 10
Leer una cantidad variable de nmeros. Indicar finalmente : a) Cuntos fueron mayores que 100 y menores que 200. b) Cul fue el impar mayor y el par menor. c) Si la cantidad de nmeros positivos es mayor que la de nmeros negativos entonces calcule el promedio de los nmeros positivos, de lo contrario el promedio de los negativos.

Taller de Programacin

Lenguaje de Programacin

{ CuentaRango = 0; CuentaPositivo = 0; CuentaNegativo = 0 SumaPositivo = 0; SumaNegativo = 0; flagPares = 0; flagimpares = 0 do scanf(Numero); Contador = Contador + 1 IF (Numero > 100 AND Numero < 200 ) CuentaRango = CuentaRango + 1; IF (Numero MOD 2 == 0) IF (FlagPares==0 || Numero < ParMenor) { Flagpares = 1 ParMenor = Numero } ELSE IF (FlagImpares == 0 || Numero > ImparMayor) { FlagImpares = 1 ImparMayor = Numero; } IF Numero >= 0 THEN { CuentaPositivo = CuentaPositivo + 1 SumaPositivo = SumaPositivo + Numero } ELSE { CuentaNegativo = CuentaNegativo + 1 SumaNegativo = SumaNegaitivo + Numero } printf(Otro?) scanf(resp) while (Resp != n || Resp != N); printf(CuentaRango, ParMenor, ImparMayor); IF (CuentaPositivo > CuentaNegativo) Promedio = SumaPositivo / CuentaPositivo ELSE Promedio = SumaNegativo / CuentaNegativo; printf(Promedio); }

Taller de Programacin

Lenguaje de Programacin

Ejercicio 11
La relacin entre los lados (a,b) de un tringulo rectngulo y la hipotenusa (h) viene dada por la formula a2 + b2 = h2 h : hipotenusa Escribir un programa que lea la longitud de los dos lados y calcule la hipotenusa.

Ejercicio 12
Construya un programa que permita obtener el promedio de notas de un curso cualquiera, con una cantidad variable de alumnos. Adems deber indicar la cantidad de alumnos aprobados y reprobados. { aprobados = 0; reprobados = 0; SumaNotas = 0; printf(cuantos alumnos son?:) scanf(TotalAlumnos) for(i=1; i<=TotalAlumnos; i++) { scanf(nota) SumaNotas = SumaNotas + nota if (nota >= 4) aprobados = aprobados + 1 else reprobados = reprobados + 1; } PromedioPares = SumaPares / CuentaPares; PromedioImpares = SumaImpares / CuentaImpares; PromedioGeneral = (SumaPares + SumaImpares) / (CuentaPares + CuentaImpares); printf(Promedio Curso :, SumaNotas/TotalAlumnos); printf(Alumnos Aprobados :, aprobados); printf(Alumnos Reprobados :, reprobados); }

Taller de Programacin

Lenguaje de Programacin

Ejercicio 13
Construya un programa que permita determinar si un nmero cualquiera es o no un nmero primo. { Switch = 0 scanf(Numero) for( i=2; i <= Numero div 2 ; i++) IF (Numero MOD i == 0) Switch = 1; IF (Switch == 0) printf (El Numero es primo.) ELSE printf(El Numero no es primo.); }

Ejercicio 14
Dados dos nmeros enteros, que se deben leer, se pide calcular el producto de ambos por medio de sumas consecutivas. Ejemplo: 2 * 3 = 6 (2+2+2=6, donde el nmero 2 se debe sumar la cantidad de veces por la que est siendo multiplicado).
{ PRINTF (Ingrese Nmeros a multiplicar:); SCANF( x , y ); Prod = 0; For ( i = 1; i <= X ; i = i + 1) { prod = prod + Y } PRINTF (X * Y = , prod ); }

Ejercicio 15
Hacer un algoritmo que permita calcular e imprimir los nmeros perfectos menores a un nmero ingresado por teclado. Un nmero es perfecto si la suma de sus divisores, excepto l mismo, es igual al propio nmero (ej: 6=3+2+1).

Taller de Programacin

Lenguaje de Programacin

Ejercicio 16
Realizar un algoritmo que permita leer una cantidad n de nmeros. Indicando: a) b) c) d) Cuntos fueron mayores que 100 y menores que 200. Cul fue el impar mayor y el par menor. Si la cantidad de nmeros positivos es mayor que la de nmeros Negativos entonces calcule el promedio de los nmeros positivos, de lo contrario el promedio de los negativos.

Ejercicio 17
Determine todos los nmeros primos gemelos que existen entre A y B (que deben ser ledos). Dos nmeros son primos gemelos si son primos con una diferencia entre ellos de exactamente 2. Por ejemplo 3 y 5 son nmeros primos gemelos.

Ejercicio 18
Se pide generar e imprimir cada uno de los trminos de la serie: 2*x +1, donde x va desde 0 hasta N. Por ejemplo, si x=0 trmino de la Serie es 1, si x=1 trmino de la Serie es 3... Ejercicio 30

Ejercicio 19
Leer las edades de los asistentes a un cine e indicar finalmente cuantos de estos fueron: nios (110), adolescentes (11-15), jvenes (16-22), adultos (23-35), otros (36- ...)

Taller de Programacin

Lenguaje de Programacin

Ejercicios 20 Desarrollar el algoritmo que resuelva los siguientes problemas:


1. Calcular el promedio de un alumno que tiene 7 notas en la asignatura Programacin II. 2. Leer 10 nmeros e imprimir solamente los nmeros positivos 3. Leer 20 nmeros e imprimir cuantos son positivos, cuantos negativos y cuntos son ceros. 4. Leer 15 nmeros negativos, convertirlos a positivos e imprimir dichos nmeros. 5. Suponga que se tiene un conjunto de calificaciones de un grupo de 40 alumnos. Realizar un algoritmo para calcular la calificacin media y la calificacin ms baja de todo el grupo.
/*suponga que se tiene un conjunto de calificaciones de un grupo de 40 alumnos. Realizar un algoritmo para calcular la calificacion media y la calificacion mas baja de todo el grupo*/ #include<stdio.h> #include<stdlib.h> int main() { float i,N=5,nota,sumanota=0,menor,N1; printf("ingrese la primera calificacion final de la asignatura:"); scanf("%f",&N1); menor=N1; for(i=1;i<N;i++) { printf("\nIngrese otra calificacion final: "); scanf("%f",&nota); sumanota=sumanota+nota; if(nota<menor) { menor=nota; } } printf("\nEL promedio de las calificaciones finales es: %.1f",sumanota/N); printf("\nLa menor calificacion es: %.1f",menor); getchar(); getchar(); return 0; }

6. Calcular e imprimir la tabla de multiplicar de un nmero cualquiera. Imprimir el multiplicando, el multiplicador y el producto. 7. Leer 50 calificaciones de un grupo de alumnos. Calcule y escriba el porcentaje de reprobados. Tomando en cuenta que la calificacin mnima aprobatoria es de 70.

Taller de Programacin

Lenguaje de Programacin

8. Simular el comportamiento de un reloj digital, imprimiendo la hora, minutos y segundos de un da desde las 0:00:00 horas hasta las 23:59:59 horas. 9. Una compaa de seguros tiene contratados a N vendedores. Cada uno hace tres ventas a la semana. Su poltica de pagos es que un vendedor recibe un sueldo base y un 10% extra por comisiones de sus ventas. El gerente de la compaa desea saber cunto dinero obtendr en la semana cada vendedor por concepto de comisiones por las tres ventas realizadas y cuanto le corresponder tomando en cuenta su sueldo base y sus comisiones. 10. En una empresa se requiere calcular el salario semanal de cada uno de los n obreros que laboran en ella. El salario se obtiene de la siguiente forma: Si el obrero trabaja 40 horas o menos se le paga $1.200 por hora Si trabaja ms de 40 horas se le paga $1.200 por cada una de las primeras 40 horas y $1.500 por cada hora extra. 11. Disee un algoritmo que determine cuantos hombres y cuantas mujeres se encuentran en un grupo de N personas. Suponga que los datos son extrados persona por persona. 12. Obtener el promedio de calificaciones de un grupo de n alumnos. 13. Una persona desea invertir su dinero en un banco, el cual le otorga un 2% de inters mensual. Cul ser la cantidad de dinero que esta persona tendr al cabo de un ao si la ganancia de cada mes es reinvertida?. 14. Calcular el promedio de edades de hombres, mujeres y de todo un grupo de alumnos.

Taller de Programacin

Lenguaje de Programacin

15. Encontrar el menor y el mayor valor de un conjunto de n nmeros dados.


/*Encontrar el menor y el mayor valor de un conjunto de n numeros dados*/ #include<stdio.h> #include<stdlib.h> int main(){ int cont=1,mayor,D,N1,N,C,menor; printf("ingrese la primera cifra: "); scanf("%d",&D); printf("ingrese el numero: "); scanf("%d",&N1); mayor=N1; menor=N1; while(cont<D) { printf("ingrese el numero: "); scanf("%d",&N); if(N>mayor) { mayor=N; } if(N<menor) { menor=N; } cont++; } printf("el mayor es: %d\nEl menor es: %d",mayor,menor); getchar(); getchar(); return 0; }

16. En un supermercado un cajero captura los precios de los artculos que los clientes compran e indica a cada cliente cual es el monto de lo que deben pagar. Al final del da le indica a su supervisor cuanto fue lo que cobro en total a todos los clientes que pasaron por su caja. 17. En una tienda de descuento las personas que van a pagar el importe de su compra llegan a la caja y sacan una bolita de color, que les dir que descuento tendrn sobre el total de su compra. Determinar la cantidad que pagar cada cliente desde que la tienda abre hasta que cierra. Se sabe que si el color de la bolita es roja el cliente obtendr un 40% de descuento; si es amarilla un 25% y si es blanca no obtendr descuento.

Taller de Programacin

Lenguaje de Programacin

18. Un teatro otorga descuentos segn la edad del cliente. Determinar la cantidad de dinero que el teatro deja de percibir por cada una de las categoras. Tomar en cuenta que los nios menores de 5 aos no pueden entrar al teatro y que existe un precio nico en los asientos. Los descuentos se hacen tomando en cuenta el siguiente cuadro: Categoras Categora 1 Categora 2 Categora 3 Categora 4 Categora 5 Edad Descuento 5 - 14 35 % 15 - 19 25 % 20 - 45 10 % 46 - 65 25 % 66 en adelante 35 %

19. Determinar la cantidad semanal de dinero que recibir cada uno de los n obreros de una empresa. Se sabe que cuando las horas que trabajo un obrero exceden de 40, el resto se convierte en horas extras que se pagan al doble de una hora normal, cuando no exceden de 8; cuando 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. Al finalizar indicar el total cancelado a cada trabajador detallando remuneracin y horas extras totales pagadas. 20. Un negocio de copias tiene un lmite de produccin diaria de 10.000 copias si el tipo de impresin es offset y de 50.000 si el tipo es estndar. Si hay una solicitud nueva, el empleado tiene que verificar que las copias pendientes hasta el momento y las copias solicitadas no excedan del lmite de produccin. Si el lmite de produccin se excediera el trabajo solicitado no podra ser aceptado. El empleado necesita llevar un buen control de las copias solicitadas hasta el momento para decidir en forma rpida si los trabajos que se soliciten en el da se aceptan o no. 21. Disee un algoritmo que lea los 250.000 votos otorgados a los 3 candidatos a alcalde e imprima el nmero del candidato ganador y su cantidad de votos.

22. Suponga que tiene una tienda y desea registrar sus ventas por medio de un computador. Disee un pseudocdigo que lea por cada cliente: a) El monto de la venta, b) Calcule e imprima el IVA , c) Calcule e imprima el total a pagar, d) Lea la cantidad con que paga el cliente, e) Calcule e imprime el cambio. Al final del da deber imprimir la cantidad de dinero que debe haber en la caja.

Taller de Programacin

Lenguaje de Programacin

Ejercicio 21
Un BOING 747 tiene una capacidad de carga para equipaje de aproximadamente 18.000 kgr. Confeccione un algoritmo que controle la recepcin de equipajes para este avin, sabiendo : - Un bulto no puede exceder la capacidad de carga del avin ni tampoco exceder los 500 Kg. - El valor a cobrar por kilo del bulto es : i. de 0 a 25 Kg. cero pesos ii. de 26 a 300 Kg. $1.500 pesos por kilo de equipaje. iii. de 301 a 500 Kg. $2.500 pesos por kilo de equipaje Para un vuelo cualquiera se pide : a) Nmero total de bultos ingresados para el vuelo b) Peso del bulto ms pesado. c) Peso promedio de los bultos d) Ingreso en dlares (US$ 1 = $539) por concepto de carga

Taller de Programacin

Lenguaje de Programacin

Ejercicio 22
Disee un algoritmo que permita leer 100 nmeros y finalmente indique: Cul fue la diferencia entre el mayor y el menor nmero ledo. Un mensaje de divisible si el menor nmero es divisor del mayor nmero o de lo contrario el mensaje no divisible. { cont=0; flagmayor = 0 ; flagmenor = 0 FOR (i=1; i<=100; i++) { scanf( nro) if( flagmayor == 0 || mayor < nro) { flagmayor = 1 mayor = nro } if( flagmenor == 0 || menor > nro) { flagmenor = 1 menor = nro } } diferencia = mayor menor if( mayor % menor == 0) printf (DIVISIBLES) else printf (NO DIVISIBLES) }

Taller de Programacin

Lenguaje de Programacin

Ejercicio 23
Construya un algoritmo que permita calcular sen(x) sumando trminos de la serie: x - x^3/3! + x^5/5! - x^7/7! + ... Hasta que el ltimo trmino de la serie a ser sumado o restado tenga una magnitud menor que 10^(-5). Esta suma corresponder a sen(x) con un error de no ms de 10^(-5).
Utilice la funcin factorial para resolver 3!...es decir factorial(3) { PRINTF (Ingrese Angulo:); SCANF(x); n=0 Do { seno = seno + (-1) ^ (n + 2 ) * x ^ (2 * n + 1) / factorial(2 * n + 1) n=n+1 } While ( x ^ (2 * n + 1) / factorial(2 * n + 1) > 10 ^ -5 ) PRINTF ( sen(, x , )=, seno ) ; }

Ejercicio 24
El Colegio El Mateo necesita urgentemente que se implemente un sistema que permita resolver los serios problemas de gestin que tiene, para esto se han contactado con usted para que confeccione un programa que les permita hacer las siguientes tareas: a) b) c) d) Dada las notas finales de un curso, donde el numero de alumnos es conocido, se debe indicar cual es la nota final mas alta. Indicar cuantos alumnos obtuvieron esta nota. Indicar el promedio de notas del curso. Indique cual es la distancia entre el promedio del curso y la nota mayor. Donde la distancia es el valor absoluto de la diferencia entre el promedio del curso y la nota mayor) La cantidad da alumnos destacados, bueno, suficiente. Donde: Destacados Bueno Suficiente Deficiente promedio mayor o igual a 6,5 promedio mayor o igual a 5,5 y menor que 6,5 promedio mayor o igual a 4,0 y menor que 5,5 promedio menor a 4,0

e)

Taller de Programacin

Lenguaje de Programacin

{ destacados = 0; buenos = 0; suficientes = 0; deficientes = 0; suma_notas = 0; PRINTF (Ingrese Cantidad de Alumnos:); SCANF( numero_alumnos ); For ( i = 1; i <= numero_alumnos ; i = i + 1) { PRINTF (Ingrese nota:); SCANF(nota); IF ( i = 1 OR mayor_nota < nota ) { mayor_nota = nota; cuenta_mayor = 1 } ELSE IF ( mayor_nota = nota ) { cuenta_mayor = cuenta_mayor + 1 }

Nota final mas alta Leer notas 2 pts Clasificar notas 7 pts Notas iguales a mayor 7 pts Entrega resultado 2 pts

suma_notas = suma_notas + nota ;

IF (nota >= 6,5) { destacados = destacados + 1 } IF (nota >= 5,5 AND nota < 6,5 ) { buenos = buenos + 1 } IF (nota >= 4,0 AND nota < 5,5 ) { suficientes = suficientes + 1 } IF (nota < 4,0) { deficientes = deficientes + 1 } } PRINTF (La mayor nota del curso es :, mayor_nota ); PRINTF (La ocurrencia de las notas es :, cuenta_mayor ); promedio_notas = suma_notas / numero_alumnos; PRINTF (El promedio de notas del curso es :, promedio_notas );

Clasificar Alumnos Leer Notas 2 pts Clasificar 12 pts Entrega resultado 4 pts

Promedio curso Leer notas 2 pts sumar notas 4 pts promediar notas 7 pts Entrega resultado 2 pts

distancia distancia = abs( mayor - promedio_notas ) calculo distancia PRINTF (La distancia entre mayor nota y promedio es :, distanciaEntrega resultado );

5 pts 2 pts

PRINTF (Alumnos destacados :, destacados ); PRINTF (Alumnos buenos :, buenos ); PRINTF (Alumnos con nota suficiente :, suficientes ); PRINTF (Alumnos deficientes :, deficientes ); }

Taller de Programacin

Lenguaje de Programacin

Ejercicio 25
Un estudio meteorolgico mensual consiste en el registro de la temperatura promedio de cada uno de lo das de un mes. Ejemplo (da 1: 26,56 C, da 2: 15,49 C, da 3: 9,0 C........etc) Conociendo el estudio meteorolgico del mes de mayo se pide realizar un anlisis completo del problema y el diseo del algoritmo utilizando la estructura vistas en clases, tal que permita : a) Indicar la mayor temperatura del mes y el nmero de das del mes en los que se registr dicha temperatura. b) Indicar la temperatura promedio del mes. c) Indicar la temperatura promedio de la primera quincena del mes. d) Temperatura promedio de la segunda quincena del mes. ALGORITMO Ejercicio1 ENTRADAS temp : entero; SALIDAS mayor, tempPromMes, tempPromPrimQ, tempPromSegQ : real; contMayor : entero; VARIABLES i, primeraq, segundaq, tempMes: real; CONSTANTES n=31 { pq = 0; sq = 0; tempMes = 0; for( i=1; i<=n; i++) { scanf( temp ) if( i <=15) { primeraq = primeraq + temp } else { segundaq = segundaq + temp

if( i = 1 OR mayor < temp) { mayor = temp contMayor = 1 } else { if( mayor = temp ) { contMayor = contMayor + 1 } } tempMes = pq + sq tempPromMes = tempMes / 31 temPromPrimQ = primeraq / 15 temPromSegQ = segundaq / 16 printf( Mayor temperatura mes = , mayor )

(12 pts)

Taller de Programacin

Lenguaje de Programacin

printf( Repeticiones mayor temperatura mes = , contMayor ) (8 pts) printf( Temperatura promedio mes = , tempMes ) (8 pts) printf( Temp. promedio primera quincena = , temPromPrimQ ) (6 pts) printf( Temp. promedio segunda quincena = , temPromSegQ ) (6 pts) }

Ejercicio 26
Escribir expresiones lgico-matemticas para expresar los siguientes conceptos
N es positivo N es un nmero par N es un nmero impar N es mltiplo de P N es mltiplo de 7 y mltiplo de 4 N no es mltiplo de 5 ni mltiplo de 8 N es mltiplo de 3 y no mltiplo de 8 N es positivo o N es cero N es divisor de P N es mltiplo de K N>0

N mod 2 = 0 N mod 2 = 1 N mod P = 0 (N mod 7 = 0 ) AND (N mod 4 = 0) (N mod 5 = 1 ) AND (N mod 8 = 1) (N mod 3 = 0 ) AND (N mod 8 = 1) N >= 0 P mod N = 0 N mod K = 0

Ejercicio 27
Una tienda desea obtener una serie de reportes diarios a partir de las ventas realizadas en un da. Elabore un diagrama de flujo que: a. solicite el monto de cada venta sin IVA, b. para cada venta, calcule el IVA y el total con IVA, c. al terminar el da, imprima un reporte con los totales de: ventas sin IVA, IVA, ventas con IVA, promedio de las ventas con IVA. Se desconoce el nmero de ventas que se realizan en un da, por lo que el final de los datos se indica con un -1. Considere el IVA como un valor constante 19%.

Taller de Programacin

Lenguaje de Programacin

Ejercicio 28
Desarrolle el anlisis del algoritmo que permita entregar el valor resultante de la siguiente funcin, el valor de n deber ser un dato de entrada:

1 (2 * x 1) x 1
f(x) =

si n es un nmero par superior a 100

si n es un nmero impar o menor o igual a 0

(2 * x 1) (3 * x 1) x 1
n

si n es un nmero par inferior o igual a 100

Leer N

N || 2 = 0

N > 100

(3 * x 1)
x 1

(2 * x 1)

(2 * x 1)
x 1

N || 2 = 1 OR N < = 0

F=0 F

Imprimir F

Taller de Programacin

Lenguaje de Programacin

ALGORITMO Ejercicio ENTRADAS n : entero; SALIDAS fx : real; VARIABLES i: entero; { fx = 0 scanf( n) if( n mod 2 = 0 AND n > 100) { for( i=1;i<=n;i++) { fx = fx + 1/(2*i+1) } } if( n mod 2 != 0 OR n <= 0) { fx = 0 } if( n mod 2 = 0 AND n <= 100) { for( i=1;i<=n;i++) { fx = fx + (2*i-1)/ (3*i+1) } } printf( fx ) }

Ejercicio 29
Un estudio meteorolgico mensual consiste en el registro de la temperatura promedio de cada uno de los 30 primeros das del mes. Ejemplo (da 1: 26,56 C, da 2: 15,49 C, da 3: 9,0 C........etc) Conociendo el estudio meteorolgico del mes de mayo se pide realizar un anlisis completo del problema y el diseo del algoritmo utilizando las estructuras vistas en clases, tal que permita : a) Indicar la mayor temperatura del mes b) Indicar la temperatura promedio del mes. Variables Entradas Temperatura: Real Procesos y Variables Leer 30 temperaturas Acumular la temperatura Determinar si es la primera temperatura o mayor a la temp. Mayor. En caso de serlo guardar esta T como la mayor Luego de ledas las 30 T calculo el promedio de estas. Entrego los resultados Suma : Real Variables Salidas Temperatura_Mayor: Real Temperatura_Promedio:Real

Taller de Programacin

Lenguaje de Programacin

ALGORITMO Calentamiento_Global ENTRADAS temperatura : real; SALIDAS Temperatura_ Mayor, Temperatura_promedio: real; VARIABLES i,: entero; suma_temperaturas : real; CONSTANTES { suma_temperaturas = 0; for( i=1; i<=30; i++) { printf (Ingrese la temperatura del da , i , : ); scanf( temperatura ); suma_temperaturas = suma_temperaturas + temperatura; if( i = 1 OR temperatura_mayor < temperatura) { temeprtaura_mayor = temperatura } } temeratura_promedio = suma_temperatura / 30; printf( Mayor temperatura del mes = , temperatura_mayor ) printf( Temperatura promedio del mes = , temperatura_promedio ) }

Taller de Programacin

Lenguaje de Programacin

Ejercicio 30
Conociendo la masa y distancia de dos cuerpos, se puede determinar la Fuerza de atraccin que se ejerce entre ambos. Se desea determinar las fuerzas de atraccin ejercida entre la tierra y diversos satlites ubicados a distintas altura. Para lo cual la NASA le ha solicitado a usted construir un programa que cumpla con los siguientes requerimientos : a) b) c) d) e) Cul es la mayor y menor fuerza de atraccin ejercida por los satlites en estudio La fuerza de atraccin promedio ejercida por los satlites en estudio La mayor masa de todos los satlites estudiados La masa promedio de los satlites La menor y mayor altura de los satlites

La formula para determinar la Fuerza de atraccin es : F = GmM r2 donde : m : masa satlite ; M : Masa tierra (5,97 * 10 24 Kg) ; r : distancia de los cuerpos ; G : Constante Gravitatoria ( 6,67259 * 10-11 N*m2 ) Kg2 Considere la siguiente muestra para realizar la prueba del algoritmo : Satlite Canada 1 Alfa 1 Boby 4 Che 3 Pas Masa Altura Kg. Mts____ Canad 8.300 31.200.000 Chile 5.500 36.000.000 EE.UU. 12.000 33.450.000 Argentina 3.350 34.200.000

Taller de Programacin

Lenguaje de Programacin

Ejercicio 31
Las posibilidades de que ocurra en un da un terremoto en la octava regin estn dadas, segn un estudio realizado por el departamento de sismologa de la Universidad de Chile, por el nmero de sismos ocurridos el da anterior (24 horas) al terremoto. Los siguientes rangos indican las probabilidades de que ocurra un terremoto dados los sismos ocurridos el da anterior: de 0 a 300 sismos al da Bajas probabilidades . de 301 a 700 sismos al da Medianas probabilidades. 701 y ms sismos al da Altas probabilidades. Su labor ser el desarrollar un algoritmo que ayude al departamento de sismologa, a programar una capturadora de datos que ser instalada en un lugar estratgico de la regin. La capturadora ayudar a prever la ocurrencia de un terremoto con 24 horas de anticipacin. La capturadora llevar un control automtico de los sismos ocurridos durante un da completo, esto es, desde las 00:00 AM hasta las 24:00 PM, donde se registrar la intensidad del evento y la hora del mismo. Su algoritmo deber indicar: (a) (b) (c) (d) (e) (f) Nmero de sismos ocurridos en la maana y los ocurridos en la tarde. Promedio de la intensidad de los sismos ocurridos en el da. La intensidad y la hora en que ocurri el sismo de mayor intensidad. La intensidad y la hora en que ocurri el sismo de menor intensidad. Probabilidad que ocurra un terremoto en prximas 24 horas (baja, media, alta). Nmero de sismos con intensidad superior a 4 grados que ocurran en el da.

Nota : El algoritmo entregar los datos (a,b,c,d,e) al finalizar su ejecucin, esto es, cuando el operador ingrese manualmente un sismo de intensidad negativa, evento que no deber ser registrado o contabilizado como un sismo. Para efectos prcticos del desarrollo de su algoritmo consider un ingreso manual de los datos.

Ejercicio 32
Juguemos con los dados, se trata de simular con el computador el juego con un dado, las pruebas son las siguientes: (a) Cuantos lanzamientos son necesarios de realizar hasta que hayan salido 17 nmeros 7. (b) Cuantos nmeros de cada numeracin (1,2,3,..6) aparecen en 500 lanzamientos. (c ) Cuantos lanzamientos se realizan hasta que aparezca el nmero 6. (d) Cual es la numeracin que ms se repite en 700 lanzamientos Para este desarrollo utilice la funcin RANDOM. La funcin RANDOM(MAX) genera aleatoriamente un numero entero entre 0 y MAX-1, por ejemplo la expresin dato= RANDOM(3), asignar aleatoria mente a la variable dato uno de los tres siguientes valores: 0,1 2.

Taller de Programacin

Lenguaje de Programacin

Ejercicio 33
Utilice la estructura repetitiva ms adecuada para cada caso, que permita resolver cada uno de los casos que se entregan a continuacin. Disee el DFD y el pseudos cdigo respectivo. a) Leer 70 nmeros y finalmente indicar si el mayor nmero ingresado fue par o impar.

Taller de Programacin

Lenguaje de Programacin

b) Leer nmeros hasta que se cumpla alguna condicin de trmino que usted debe crear, finalmente indicar el mayor nmero ingresado y la cantidad de veces que este se repiti.

Taller de Programacin

Lenguaje de Programacin

Taller de Programacin

Lenguaje de Programacin

c) Leer nmeros hasta que se cumpla alguna condicin de trmino que usted debe crear, deber indicar el mayor nmero par y el mayor nmero impar ingresado.
/*Leer numeros hasta que se cumpla alguna condicion de termino que usted debe crear, finalmente indicar el producto entre el mayor numero par y el menor numero impar ingresado*/ #include<stdio.h> #include<stdlib.h> int main(){ int mayor,num,menor,n; char c; printf("\nIngrese un numero: "); scanf("%d",&n); if((n%2)==0)// condicion para buscar numero par mayor { mayor=n; }else{ menor=n; } do{ printf("\nIngrese un numero: "); scanf("%d",&num); if((num%2)==0) { if(num>mayor) { mayor=num; } }else{ if(num<menor) { menor=num; } } fflush(stdin); printf("desea continuar [s/n]"); scanf("%c",&c); }while(c!='n'); printf("\nEL mayor par es: %d",mayor); printf("\nEl menor impar es: %d",menor); getchar(); getchar(); return 0; }

Taller de Programacin

Lenguaje de Programacin

d) Leer nmeros hasta que se cumpla alguna condicin de trmino que usted debe crear, finalmente indicar el producto entre el mayor nmero par y el menor nmero impar ingresado.

e) Leer nmeros hasta que se cumpla la condicin de trmino que el mayor nmero se repita 10 veces. Finalmente indicar cuantos nmeros fueron ingresados.

Potrebbero piacerti anche