Download Ejercicios Resueltos PDF

TitleEjercicios Resueltos
TagsSubtraction Arithmetic Elementary Mathematics Numbers Physics & Mathematics
File Size137.1 KB
Total Pages10
Document Text Contents
Page 1

Ejercicios Resueltos
Fundamentos de Programación

Primer Semestre 2010

Profesoras: Eliana Providel - Patricia Trejo
Ayudante: Bernarda Ramos ([email protected])

Valparaíso, 29 de abril de 2010.

1. Estructuras selectivas
Dado los siguientes enunciados escriba el D.F.D y pseudo-código correspon-

diente.

1. Realice un programa que permita determinar si un número es múltiplo de
9.

Listing 1: Múltiplo de Nueve

D e f i n i c i ó n de Var iab les
{x , v a r i a b l e de t i po en te ro }

I n i c i o
E s c r i b i r " I ng re se un número"
Leer x ;
S i ( x %9)=0 Entonces

E s c r i b i r "El número ing resado es múl t ip lo de 9"
Sino

E s c r i b i r "El número ing resado no es múl t ip lo de 9"
F inSi

Fin

1

Page 2

2. Realice un programa que permita determinar si dos nœmeros son pares o
no, si es que son pares (ambos), determine cual de ellos es el mayor.

Listing 2: Nœmeros pares

D e f i n i c i ó n de Var iab les
{n1 y n2 son v a r i a b l e s de t i po en te ro }

I n i c i o
E s c r i b i r " I ng re se dos nœmeros"
Leer n1 , n2 ;
S i ( ( n1 %2)=0) & ( ( n2 %2)=0) Entonces

E s c r i b i r "Ambos nœmeros son pares "
S i ( n1>n2 ) Entonces

E s c r i b i r " e l mayor es : " , n1
Sino

Si n1< >n2 Entonces
E s c r i b i r " e l mayor es : " , n2

Sino
E s c r i b i r "Son dos nœmeros i g u a l e s "

F inSi
F inSi

Sino
E s c r i b i r "Alguno o ambos nœmeros no son pares "

F inSi
Fin

2

Page 3

3. Realice un programa que permita transformar una determinada cantidad
de horas en segundos, además si la cantidad de horas es superior a 24
debe indicar a cuantos días corresponde dicha cantidad de horas. Utilice
variables de tipo entero.

Listing 3: Transformando horas

De f i n i c i ón de Var iab l e s
{ seg , d ias , horas , son v a r i a b l e s de t ipo entero }
{ seg , cant idad de segundos }
{ dias , equ iva l en t e en d ia s }
{horas , cant idad de horas ing r e sada s }

I n i c i o
E s c r i b i r " Ing r e s e l a cant idad de horas "
Leer horas ;
S i horas >= 24 Entonces
dias<−horas /24
seg<−horas ∗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 segundos corresponde a : " , seg

Sino
seg<−horas ∗3600
E s c r i b i r "La cant idad de segundos es : " , seg

FinSi
Fin

3

Page 4

4. En un centro comercial se realizar descuentos a los clientes que pagan con
efectivo y con tarjeta de crédito, mientras que a las personas que cancelan
con cheque no reciben dicho beneficio. Este descuento se calcula de acuerdo
al total de la compra efectuada, según el cuadro 1:

Valor compra Efectivo Tarjeta de crédito
> 25.000 � 50.000 3% 1.5%
> 50.000 � 100.000 4% 2.2%
> 100.000 6% 4.5%

Cuadro 1: Porcentaje descuento

Listing 4: Descuento en centro comercial
De f i n i c i ón de Var iab l e s
{formaPago , v a r i a b l e t i po entero , r ep r e s en ta
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 ab l e t i po entero ,
r ep r e s en ta e l va l o r t o t a l de l a compra}
{ descto , v a r i ab l e de t ipo rea l ,
r ep r e s en ta e l descuento }
{ va lo rF ina l , v a r i a b l e t i po rea l ,
r ep r e s en ta e l va l o r f i n a l que pagará e l c l i e n t e }

I n i c i o
Repet i r
E s c r i b i r " Ing r e s e va l o r compra " ;
Leer valorCompra ;

Hasta Que valorCompra>0
E s c r i b i r " Ing r e s e l a forma de pago " ;
Leer formaPago ;
va lo rF ina l <� 0
descto<� 0
Segun formaPago Hacer
1 :
S i ( ( valorC >25000) & ( valorC <=50000)) Entonces
descto<� valorC � 0 .03

Sino
S i ( ( valorC > 50000) & ( valorC<= 100000)) Entonces
descto<� valorC � 0 .04

Sino
S i ( valorC >100000) Entonces
descto<� valorC � 0 .06

FinSi
FinSi

FinSi

2 :

S i ( ( valorC >25000) & ( valorC <=50000)) Entonces

4

Page 5

descto<−valorC ∗0 .015
Sino
S i ( ( valorC >50000) & ( valorC <=100000)) Entonces
descto<−valorC ∗0 .022

Sino
S i ( valorC >100000) Entonces
descto<−valorC ∗0 .045

FinSi
FinSi

FinSi

De Otro Modo :
E s c r i b i r "Forma de pago no es vá l i da "

FinSegun
va lo rF ina l<− valorC − descto
E s c r i b i r "El va l o r a pagar es : " , va l o rF ina l

Fin

5. Diseñe una pequeña calculadora que, al digitar un código realice una ope-
ración específica: si el código es 1, la operación es la suma, si es 2, resta,
3 multiplicación y 4 división. Si el usuario ha escrito otro código inválido,
mostrar un mensaje de error. Debe pedir dos números para realizar la
operación.

Listing 5: Pequeña calculadora

De f i n i c i ón de Var iab l e s
{n1 , n2 , v a r i ab l e de t ipo entero ,
r epre sentan l o s números ing r e sado s }
{opcion , v a r i a b l e de t ipo entero ,
r ep r e s en ta e l t i po de operac ión a r e a l i z a r }
{ re su l tado , v a r i ab l e de t ipo rea l ,
r ep r e s en ta e l r e su l t ado de l a operac ión }

I n i c i o
E s c r i b i r " Ing r e s e e l t i po de Operación"
E s c r i b i r "1 .Suma , 2 . Resta , 3 . Mú l t ip l i c a c i ón , 4 . D iv i s i ón "
Leer opcion
E s c r i b i r " Ing r e s e dos números " ;
Leer n1 , n2
re su l tado <−0
Segun operac ion Hacer
1 :
r e su l tado<− n1+n2

2 :
re su l tado<− n1−n2

3 :
r e su l tado<− n1∗n2

4 :
r e su l tado<− n1/n2

5

Page 6

De Otro Modo :
E s c r i b i r "El t i po de operac i ón no es vÆl i do "

FinSegun
E s c r i b i r "El va lo r es : " , r e s u l t a d o

Fin

6

Page 7

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 Valor hora
1 1.000
2 2.300
3 3.500
4 5.000

Cuadro 2: Relación clase - valor hora.

Nota: Considere que el trabajador trabaja 30 días y que trabaja todos los
días la misma cantidad de horas.

Listing 6: Mensualidad trabajador

De f i n i c i ón de v a r i a b l e s
{horas , v a r i ab l e de t ipo entero ,
r ep r e s en ta l a cant idad de horas t raba jadas d iar iamente }
{ c l a s e , v a r i ab l e t i po entero ,
r ep r e s en ta l a c l a s e a l a que per t enece e l t raba jador }
{ sueldo , v a r i ab l e de t ipo entero ,
r ep r e s en ta e l sue ldo de l t raba jador }
I n i c i o
Repet i r
E s c r i b i r " Ing r e s e horas t raba jadas d i a r i a s "
Leer horas

Hasta Que ( horas >0)

E s c r i b i r " Ing r e s e l a c l a s e " ;
Leer c l a s e
sueldo<−0
Segun c l a s e Hacer
1 :
sueldo<− 30∗ horas ∗1000

2 :
sueldo<− 30∗ horas ∗2300

3 :
sueldo<− 30∗ horas ∗3500

4 :
sueldo<− 30∗ horas ∗5000

De Otro Modo :
E s c r i b i r "El t i po de c l a s e no es va l i do "

FinSegun
E s c r i b i r "El sue ldo de l t raba jador es : " , sue ldo

Fin

7

Page 8

2. Estructuras repetitivas
1. Muestre la tabla de múltiplicar de un número mientras el usuario así lo

confirme. Nota: Considere que el usuario puede detener la impresión de
una tabla de multiplicar y luego quiza quiera ver otra o simplemente salir
del programa.

Listing 7: Tabla de múltiplicar

{n , v a r i ab l e de t ipo entero ,
r ep r e s en ta e l número de l cua l se c a l c u l a l a
tab la de mu l t i p l i c a c i ó n }
{ cont inuar , v a r i ab l e de t ipo entero }
{ s a l i r , v a r i ab l e de t ipo entero }

I n i c i o
Repet i r
Repet i r
E s c r i b i r " Ing r e s e e l número de l cua l
qu i e r e l a tab la de mú l t i p l i c a r "

Leer n
Hasta Que (n>0)
i<−1
cont inuar<−1
E s c r i b i r "Tabla de mu l t i p l i c a r de : " , n
Repet i r
E s c r i b i r n∗ i
E s c r i b i r "Desea cont inuar , Valor d i s t i n t o

de 0 : Si , 0 :No"
Leer cont inuar
i<−i+1

Hasta Que ( cont inuar=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 números naturales: 1 + 22 + 32 + ... + n2. Donde n es un
número ingresado por el usuario.

Listing 8: Suma de cuadrados

De f i n i c i ón de v a r i a b l e s
{n , i , suma , v a r i ab l e de t ipo entero }
{suma , r ep r e s en ta e l va l o r de l a sumatoria }
I n i c i o
Repet i r
E s c r i b i r " Ing r e s e un número"
Leer n

8

Page 9

Hasta Que (n>0)
i<−1
suma<−0
Repet i r
suma<−suma+( i ∗ i )
i<−i+1

Hasta Que ( i>n)
E s c r i b i r "La sumatoria hasta e l no : " , n , " es " , suma

Fin

3. Realizar un programa que permita la suma de los números enteros com-
prendidos entre n y m (excluyendo a ambos), si m >n. Los números n y
m son ingresados por el usuario.

Listing 9: Suma entre un rango de números
De 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 ipo entero }
{suma , r ep r e s en ta e l va l o r de l a sumatoria }
I n i c i o
Repet i r
E s c r i b i r " Ing r e s e dos números"
Leer n ,m

Hasta Que ( ( n>0) & (m>0))
S i m>n Entonces
suma<−0
n<−n+1
Repet i r
suma<−suma + n
n<−n+1

Hasta Que (n=m)
E s c r i b i r "El va l o r de l a suma es : " , suma

Sino
E s c r i b i r "No cumplen l a cond i c i ón "

FinSi
Fin

4. Escribir un programa que calcule el cuadrado de un número haciendo sólo
sumas. Ayuda: el cuadrado de un número n es la suma de los n primeros
números impares. Ejemplo 32 = 1 + 3 + 5 = 9.

Listing 10: Cuadrado de un número a partir de sumas
De 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 ipo entero }
{ j , r ep r e s en ta l a cant idad de números sumados
cuadrado , r ep r e s en ta e l cuadrado de l número ingre sado }

I n i c i o
Repet i r
E s c r i b i r " Ing r e s e un no para c a l c u l a r su cuadrado"

9

Similer Documents