Está en la página 1de 10

Ejercicios Resueltos Fundamentos de Programacin Primer Semestre 2010

Profesoras: Eliana Providel - Patricia Trejo Ayudante: Bernarda Ramos (b.ramos@informaticauv.com) Valparaso, 29 de abril de 2010.

1.

Estructuras selectivas

Dado los siguientes enunciados escriba el D.F.D y pseudo-cdigo correspondiente. 1. Realice un programa que permita determinar si un nmero es mltiplo de 9. Listing 1: Mltiplo de Nueve D e f i n i c i n de V a r i a b l e s {x , v a r i a b l e de t i p o e n t e r o } Inicio E s c r i b i r " I n g r e s e un nmero" Leer x ; S i ( x %9)=0 Entonces E s c r i b i r " El nmero i n g r e s a d o e s m l t i p l o de 9" Sino E s c r i b i r " El nmero i n g r e s a d o no e s m l t i p l o de 9" FinSi Fin

2. Realice un programa que permita determinar si dos nmeros son pares o no, si es que son pares (ambos), determine cual de ellos es el mayor. Listing 2: Nmeros pares D e f i n i c i n de V a r i a b l e s {n1 y n2 son v a r i a b l e s de t i p o e n t e r o } Inicio E s c r i b i r " I n g r e s e dos nmeros " Leer n1 , n2 ; S i ( ( n1 %2)=0) & ( ( n2 %2)=0) Entonces E s c r i b i r "Ambos nmeros son p a r e s " S i ( n1>n2 ) Entonces E s c r i b i r " e l mayor e s : " , n1 Sino S i n1< >n2 Entonces E s c r i b i r " e l mayor e s : " , n2 Sino E s c r i b i r "Son dos nmeros i g u a l e s " FinSi FinSi Sino E s c r i b i r " Alguno o ambos nmeros no son p a r e s " FinSi Fin

3. Realice un programa que permita transformar una determinada cantidad de horas en segundos, adems si la cantidad de horas es superior a 24 debe indicar a cuantos das corresponde dicha cantidad de horas. Utilice variables de tipo entero. Listing 3: Transformando horas D e f i n i c i n de V a r i a b l e s { seg , d i a s , horas , son v a r i a b l e s de t i p o e n t e r o } { seg , c a n t i d a d de s e g u n d o s } { d i a s , e q u i v a l e n t e en d i a s } { horas , c a n t i d a d de h o r a s i n g r e s a d a s } Inicio E s c r i b i r " I n g r e s e l a c a n t i d a d de h o r a s " Leer h o r a s ; S i h o r a s >= 24 Entonces d i a s <h o r a s /24 seg<h o r a s 3600 E s c r i b i r " Los d i a s son : " , d i a s E s c r i b i r "y l o s s e g u n d o s c o r r e s p o n d e a : " , s e g Sino seg<h o r a s 3600 E s c r i b i r "La c a n t i d a d de s e g u n d o s e s : " , s e g FinSi Fin

4. En un centro comercial se realizar descuentos a los clientes que pagan con efectivo y con tarjeta de crdito, mientras que a las personas que cancelan con cheque no reciben dicho benecio. Este descuento se calcula de acuerdo al total de la compra efectuada, segn el cuadro 1: Valor compra > 25.000 50.000 > 50.000 100.000 > 100.000 Efectivo 3% 4% 6% Tarjeta de crdito 1.5 % 2.2 % 4.5 %

Cuadro 1: Porcentaje descuento

Listing 4: Descuento en centro comercial D e f i n i c i n de V a r i a b l e s { formaPago , v a r i a b l e t i p o e n t e r o , r e p r e s e n t a l a forma de pago ( 1 : e f e c t i v o , 2 : t a r j e t a ) } { valorC , v a r i a b l e t i p o e n t e r o , r e p r e s e n t a e l v a l o r t o t a l de l a compra } { d e s c t o , v a r i a b l e de t i p o r e a l , representa e l descuento } { valorFinal , variable tipo real , r e p r e s e n t a e l v a l o r f i n a l que pagar e l c l i e n t e } Inicio Repetir E s c r i b i r " I n g r e s e v a l o r compra " ; Leer valorCompra ; Hasta Que valorCompra >0 E s c r i b i r " I n g r e s e l a forma de pago " ; Leer formaPago ; v a l o r F i n a l <0 d e s c t o <0 Segun formaPago Hacer 1: S i ( ( valorC >25000) & ( valorC <=50000)) Entonces d e s c t o <valorC 0 . 0 3 Sino S i ( ( valorC > 5 0 0 0 0 ) & ( valorC<= 1 0 0 0 0 0 ) ) Entonces d e s c t o <valorC 0 . 0 4 Sino S i ( valorC >100000) Entonces d e s c t o <valorC 0 . 0 6 FinSi FinSi FinSi 2: S i ( ( valorC >25000) & ( valorC <=50000)) Entonces 4

d e s c t o <valorC 0 . 0 1 5 Sino S i ( ( valorC >50000) & ( valorC <=100000)) Entonces d e s c t o <valorC 0 . 0 2 2 Sino S i ( valorC >100000) Entonces d e s c t o <valorC 0 . 0 4 5 FinSi FinSi FinSi De Otro Modo : E s c r i b i r "Forma de pago no e s v l i d a " FinSegun v a l o r F i n a l < valorC d e s c t o E s c r i b i r " El v a l o r a pagar e s : " , v a l o r F i n a l Fin 5. Disee una pequea calculadora que, al digitar un cdigo realice una operacin especca: si el cdigo es 1, la operacin es la suma, si es 2, resta, 3 multiplicacin y 4 divisin. Si el usuario ha escrito otro cdigo invlido, mostrar un mensaje de error. Debe pedir dos nmeros para realizar la operacin. Listing 5: Pequea calculadora D e f i n i c i n de V a r i a b l e s {n1 , n2 , v a r i a b l e de t i p o e n t e r o , r e p r e s e n t a n l o s nmeros i n g r e s a d o s } { opcion , v a r i a b l e de t i p o e n t e r o , r e p r e s e n t a e l t i p o de o p e r a c i n a r e a l i z a r } { r e s u l t a d o , v a r i a b l e de t i p o r e a l , r e p r e s e n t a e l r e s u l t a d o de l a o p e r a c i n } Inicio E s c r i b i r " I n g r e s e e l t i p o de Operacin " E s c r i b i r " 1 . Suma , 2 . Resta , 3 . M l t i p l i c a c i n , 4 . D i v i s i n " Leer o p c i o n E s c r i b i r " I n g r e s e dos nmeros " ; Leer n1 , n2 r e s u l t a d o <0 Segun o p e r a c i o n Hacer 1: r e s u l t a d o < n1+n2 2: r e s u l t a d o < n1n2 3: r e s u l t a d o < n1 n2 4: r e s u l t a d o < n1/n2

De Otro Modo : E s c r i b i r " El t i p o de o p e r a c i n no e s v l i d o " FinSegun E s c r i b i r " El v a l o r e s : " , r e s u l t a d o Fin

6. Se desea calcular el valor de la mensualidad de un trabajador de acuerdo a las horas trabajadas y a la clase a la que pertenece, considere el cuadro 2: Clase 1 2 3 4 Valor hora 1.000 2.300 3.500 5.000

Cuadro 2: Relacin clase - valor hora.

Nota: Considere que el trabajador trabaja 30 das y que trabaja todos los das la misma cantidad de horas. Listing 6: Mensualidad trabajador D e f i n i c i n de v a r i a b l e s { horas , v a r i a b l e de t i p o e n t e r o , r e p r e s e n t a l a c a n t i d a d de h o r a s t r a b a j a d a s d i a r i a m e n t e } { clase , v a r i a b l e tipo entero , r e p r e s e n t a l a c l a s e a l a que p e r t e n e c e e l t r a b a j a d o r } { s u e l d o , v a r i a b l e de t i p o e n t e r o , representa el sueldo del trabajador } Inicio Repetir E s c r i b i r " Ingrese horas trabajadas d i a r i a s " Leer h o r a s Hasta Que ( horas >0) Escribir " Ingrese la clase "; Leer c l a s e s u e l d o <0 Segun c l a s e Hacer 1: s u e l d o < 30 h o r a s 1000 2: s u e l d o < 30 h o r a s 2300 3: s u e l d o < 30 h o r a s 3500 4: s u e l d o < 30 h o r a s 5000 De Otro Modo : E s c r i b i r " El t i p o de c l a s e no e s v a l i d o " FinSegun E s c r i b i r " El s u e l d o d e l t r a b a j a d o r e s : " , s u e l d o Fin

2.

Estructuras repetitivas

1. Muestre la tabla de mltiplicar de un nmero mientras el usuario as lo conrme. Nota: Considere que el usuario puede detener la impresin de una tabla de multiplicar y luego quiza quiera ver otra o simplemente salir del programa. Listing 7: Tabla de mltiplicar {n , v a r i a b l e de t i p o e n t e r o , r e p r e s e n t a e l nmero d e l c u a l s e c a l c u l a l a t a b l a de m u l t i p l i c a c i n } { c o n t i n u a r , v a r i a b l e de t i p o e n t e r o } { s a l i r , v a r i a b l e de t i p o e n t e r o }

Inicio Repetir Repetir E s c r i b i r " I n g r e s e e l nmero d e l c u a l q u i e r e l a t a b l a de m l t i p l i c a r " Leer n Hasta Que ( n>0) i <1 c o n t i n u a r <1 E s c r i b i r " Tabla de m u l t i p l i c a r de : " , n Repetir E s c r i b i r n i E s c r i b i r " Desea c o n t i n u a r , Valor d i s t i n t o de 0 : Si , 0 : No" Leer c o n t i n u a r i < i +1 Hasta Que ( c o n t i n u a r =0) E s c r i b i r " Desea s a l i r ? Valor d i s t i n t o de 0 : S i 0 : No" Leer s a l i r Hasta Que ( s a l i r =0) Fin 2. Escribir un programa que permita calcular la suma de los cuadrados de los n primeros nmeros naturales: 1 + 22 + 32 + ... + n2 . Donde n es un nmero ingresado por el usuario. Listing 8: Suma de cuadrados D e f i n i c i n de v a r i a b l e s {n , i , suma , v a r i a b l e de t i p o e n t e r o } {suma , r e p r e s e n t a e l v a l o r de l a s u m a t o r i a } Inicio Repetir E s c r i b i r " I n g r e s e un nmero" Leer n

Hasta Que ( n>0) i <1 suma<0 Repetir suma<suma+( i i ) i < i +1 Hasta Que ( i >n ) E s c r i b i r "La s u m a t o r i a h a s t a e l n o : " , n , " e s " , suma Fin 3. Realizar un programa que permita la suma de los nmeros enteros comprendidos entre n y m (excluyendo a ambos), si m >n. Los nmeros n y m son ingresados por el usuario. Listing 9: Suma entre un rango de nmeros D e f i n i c i n de v a r i a b l e s {n , m, y suma , v a r i a b l e s de t i p o e n t e r o } {suma , r e p r e s e n t a e l v a l o r de l a s u m a t o r i a } Inicio Repetir E s c r i b i r " I n g r e s e dos nmeros " Leer n ,m Hasta Que ( ( n>0) & (m>0)) Si m >n Entonces suma<0 n<n+1 Repetir suma<suma + n n<n+1 Hasta Que ( n= m) E s c r i b i r " El v a l o r de l a suma e s : " , suma Sino E s c r i b i r "No cumplen l a c o n d i c i n " FinSi Fin 4. Escribir un programa que calcule el cuadrado de un nmero haciendo slo sumas. Ayuda: el cuadrado de un nmero n es la suma de los n primeros nmeros impares. Ejemplo 32 = 1 + 3 + 5 = 9. Listing 10: Cuadrado de un nmero a partir de sumas D e f i n i c i n de v a r i a b l e s {n , i , j , suma , v a r i a b l e s de t i p o e n t e r o } { j , r e p r e s e n t a l a c a n t i d a d de nmeros sumados cuadrado , r e p r e s e n t a e l cuadrado d e l nmero i n g r e s a d o } Inicio Repetir E s c r i b i r " I n g r e s e un n o para c a l c u l a r su cuadrado " 9

Leer n Hasta Que ( n>0) i <1 j <1 cuadrado <0 M i e n t r a s j<=n Hacer S i ( ( i %2)<>0) Entonces cuadrado<cuadrado+i j < j +1 Sino E s c r i b i r " El n o " , i , " e s par por e l l o no s e suma" FinSi i < i +1 FinMientras E s c r i b i r " El cuadrado de " , n , " e s " , cuadrado Fin 5. De una secuencia de cien nmeros ingresados por el usuario identicar el valor mximo y mnimo. Adems calcule el promedio de los valores ingresados. Listing 11: Secuencia de 100 nmeros D e f i n i c i n de v a r i a b l e s { i , mayor , menor , suma , v a r i a b l e s de t i p o e n t e r o } { promedio , v a r i a b l e de t i p o r e a l } Inicio i <1 mayor< 1000 menor< 1000 suma<0 M i e n t r a s ( i <=100) Hacer E s c r i b i r " I n g r e s e un nmero" Leer n suma<suma+n S i n>mayor Entonces mayor<n FinSi S i n<menor Entonces menor<n FinSi i < i +1 FinMientras promedio<suma /100 E s c r i b i r " El n o mayor de l a s e c u e n c i a e s : " , mayor E s c r i b i r " El n o menor de l a s e c u e n c i a e s : " , menor E s c r i b i r " El promedio de l a s e c u e n c i a e s : " , promedio Fin

10