Está en la página 1de 37

MANUAL DE

PRCTICAS




















MANUAL DE PRCTICAS FUNDAMENTOS DE PROGRAMACI N
124
PRCTICA 1

Calcular e imprimir el rea de un triangulo a partir de su base y altura.


Objetivo de la prctica

Implementar una clase para conocer su estructura e implementacin en un lenguaje de
programacin.

Anlisis del problema

Para calcular el rea de la figura es necesario la introduccin de dos variables: Base y Altura, y una
tercera Area en donde se almacenara el resultado, todas de tipo float. La superficie de un triangulo se
calcula aplicando la siguiente frmula:

(Base * Altura)
Area =
2




Diagrama de Flujo Prctica 1

Pseudocdigo

inicio
leer Base, Altura
hacer Area = (Base * Altura) / 2
escribir Area
fin



leer Base, Altura
inicio
Area = ( Base * Altura ) / 2
Escribir
Area
fin
FUNDAMENTOS DE PROGRAMACI N MANUAL DE PRCTICAS
125
Programa en Java

i mpor t j ava. i o. *;
publ i c cl ass Pr act i ca_1{
publ i c st at i c voi d mai n ( St r i ng ar gs[ ] ) t hr ows I OExcept i on{
f l oat Base, Al t ur a, Ar ea;
I nput St r eamReader r es=new I nput St r eamReader ( Syst em. i n) ;
Buf f er edReader cal cul o=new Buf f er edReader ( r es) ;
Syst em. out . pr i nt l n( " I nt r oduzca l a base del t r i angul o" ) ;
Base = Fl oat . par seFl oat ( cal cul o. r eadLi ne( ) ) ;
Syst em. out . pr i nt l n( " I nt r oduzca l a al t ur a del t r i angul o" ) ;
Al t ur a = Fl oat . par seFl oat ( cal cul o. r eadLi ne( ) ) ;
Ar ea = ( Base * Al t ur a) / 2;
Syst em. out . pr i nt l n( " La super f i ci e del t r i angul o es: " + Ar ea) ;
}
}


PRCTICA 2

Calcular e imprimir el costo total a cobrar al cliente en una gasolinera, tomando en cuenta que la
gasolina que surten la registran en galones, pero el precio de la gasolina esta fijado en litros.


Objetivo de la prctica

Implementar una clase para conocer su estructura e implementacin en un lenguaje de
programacin.

Anlisis del problema

Para obtener el costo total a cobrar por el surtidor al cliente, sean dos variable Galones y Precio,
que se necesitan leer desde el teclado y asignar el valor de la conversin del costo total de la gasolina
en una variable Total, todas tipo double. El equivalente a utilizar es de 3.785 Litros por Galn.




Diagrama de Flujo Prctica 2
leer Galones, Precio
inicio
Total = Galones * 3.785 * Precio
Escribir
Total
fin
MANUAL DE PRCTICAS FUNDAMENTOS DE PROGRAMACI N
126
Pseudocdigo

inicio
leer Galones, Precio
hacer Total = Galones * 3.780 * Precio
escribir Total
fin

Programa en Java

i mpor t j ava. i o. *;
publ i c cl ass Pr act i ca_2{
publ i c st at i c voi d mai n ( St r i ng ar gs[ ] ) t hr ows I OExcept i on{
doubl e Gal ones, Tot al , Pr eci o;
I nput St r eamReader r es=new I nput St r eamReader ( Syst em. i n) ;
Buf f er edReader cal cul o=new Buf f er edReader ( r es) ;
Syst em. out . pr i nt l n( " I nt r oduzca l os gal ones de gasol i na" ) ;
Gal ones=Fl oat . par seFl oat ( cal cul o. r eadLi ne( ) ) ;
Syst em. out . pr i nt l n( " I nt r oduzca el pr eci o del l i t r o de gasol i na" ) ;
Pr eci o=Fl oat . par seFl oat ( cal cul o. r eadLi ne( ) ) ;
Tot al =Gal ones*3. 785*Pr eci o;
Syst em. out . pr i nt l n( " Tot al a pagar del cl i ent e es: " +Tot al ) ;
}
}


PRCTICA 3

Calcular e imprimir el rea y volumen de un cilindro, dados su radio y altura.


Objetivo de la prctica

Implementar un grupo de clases que utilicen constructores y modificadores de acceso para
analizar de qu forma afectan el funcionamiento de las clases y cuando son recomendables cada uno
de ellos.

Anlisis del problema

Para el clculo de los valores del rea y volumen de un cilindro, es necesaria la lectura de dos
variables Radio y Altura de tipo double, as como dos variables de asignacin de los valores de rea y
volumen, ambos de tipo double.

El rea del cilindro lo calculamos aplicando la siguiente formula:

rea = 2 * * radio * altura
Donde: = 3.141592.

El volumen del cilindro lo calculamos aplicando la siguiente formula:

Volumen = * radio
2
* altura
FUNDAMENTOS DE PROGRAMACI N MANUAL DE PRCTICAS
127


Diagrama de Flujo Prctica 3

Pseudocdigo

inicio
Pi = 3.141592
leer Radio, Altura
hacer Area = 2 * Pi * Radio * Altura
hacer Volumen = Pi * Radio * Radio * Altura
escribir Area
escribir Volumen
fin

Programa en Java

1 i mpor t j ava. i o. *;
2 publ i c cl ass Pr act i ca_3{
3 publ i c st at i c voi d mai n ( St r i ng ar gs[ ] ) t hr ows I OExcept i on{
4 doubl e Radi o, Al t ur a;
5 I nput St r eamReader r es=new I nput St r eamReader ( Syst em. i n) ;
6 Buf f er edReader cal cul o=new Buf f er edReader ( r es) ;
7 Syst em. out . pr i nt l n( " I nt r oduzca el r adi o" ) ;
8 Radi o=Fl oat . par seFl oat ( cal cul o. r eadLi ne( ) ) ;
9 Syst em. out . pr i nt l n( " I nt r oduzca l a al t ur a" ) ;
10 Al t ur a=Fl oat . par seFl oat ( cal cul o. r eadLi ne( ) ) ;
11 Ci l i ndr o ci l i ndr o = new Ci l i ndr o( Al t ur a, Radi o) ;
12 Syst em. out . pr i nt l n( " El vol umen del ci l i ndr o es: " +ci l i ndr o. vol umen) ;
13 Syst em. out . pr i nt l n( " El ar ea del ci l i ndr o es: " +ci l i ndr o. ar ea) ;
14 }
15 }

16 cl ass Ci l i ndr o{
17 publ i c st at i c f i nal doubl e PI = 3. 14159265;
18 publ i c doubl e ar ea, vol umen;
leer Radio, Altura
inicio
Area = 2 * Pi * Radio * Altura
Volumen = Pi * Radio * Radio * Altura
Escribir
Area, Volumen
fin
Pi = 3.141592
MANUAL DE PRCTICAS FUNDAMENTOS DE PROGRAMACI N
128
19 publ i c Ci l i ndr o( doubl e h, doubl e r ) {
20 ar ea = 2 * r * PI * h;
21 vol umen = PI * r * r * h;
22 }
23 }

En esta prctica se hace uso de dos clases, Practica_3 y Cilindro; la primera contiene la funcin
main, en la cual realizamos la solicitud de las variables Radio y Altura, como se muestra de la lnea 7 a
la 10; la segunda clase es Cilindro, en donde inicialmente se define la variable PI como public static
final, que indica que el valor no puede ser modificado, o lo que es lo mismo, es una constante. La
sentencia 18 nos muestra el modificador de acceso public el cual nos indica que los atributos area y
volumen son visibles fuera de la clase, contrario a si fueran declarados como private. La sentencia 19
define el constructor general de la clase Cilindro, que recibe como argumentos (h, r) que son utilizados
para calcular el rea y volumen del cilindro.


PRCTICA 4

Realizar e imprimir, la conversin de grados Celsius a grados Fahrenheit.


Objetivo de la prctica

Implementar un grupo de clases que utilicen constructores y modificadores de acceso para
analizar de qu forma afectan el funcionamiento de las clases y cuando son recomendables cada uno
de ellos.

Anlisis del problema

El clculo de grados Celsius (centgrados) a grados Fahrenheit se genera a partir de la siguiente
frmula:

F = 1.8 * C +32




Diagrama de Flujo Prctica 4

leer Centigrados
inicio
Fahrenheit = 1.8 * Centigrados + 32
Escribir
Fahrenheit
fin
FUNDAMENTOS DE PROGRAMACI N MANUAL DE PRCTICAS
129
Pseudocdigo

inicio
leer Centigrados
hacer Fahrenheit = 1.8 * Centigrados +32
escribir Fahrenheit
fin


Programa en Java

i mpor t j ava. i o. *;
publ i c cl ass Pr act i ca_4{
publ i c st at i c voi d mai n ( St r i ng ar gs[ ] ) t hr ows I OExcept i on{
doubl e Cent i gr ado;
I nput St r eamReader r es=new I nput St r eamReader ( Syst em. i n) ;
Buf f er edReader cal cul o=new Buf f er edReader ( r es) ;
Syst em. out . pr i nt l n( " I nt r oduzca el gr ados cent i gr ados" ) ;
Cent i gr ado=Fl oat . par seFl oat ( cal cul o. r eadLi ne( ) ) ;
Gr ados gr ados = new Gr ados ( Cent i gr ado) ;
Syst em. out . pr i nt l n( " Los gr ados Fahr enhei t son: " +gr ados. f ahr enhei t ) ;
}
}

cl ass Gr ados{
publ i c doubl e f ahr enhei t ;
publ i c Gr ados( doubl e c) {
f ahr enhei t = 1. 8 * c + 32;
}
}



PRCTICA 5

Construya un programa que tomando como dato la calificacin de un alumno en un examen,
escriba Aprobado en caso de que esa calificacin sea mayor o igual a 8.



Objetivo de la prctica

Implementar clases que requieran de estructuras selectivas para probarlas en una aplicacin


Anlisis del problema

Para este ejercicio solo hacemos solicitud de una variable de tipo float llamada calificacin, que
compararemos en una estructura selectiva if simple. Solo si la condicin resulta verdadera mostrara el
mensaje Aprobado.


MANUAL DE PRCTICAS FUNDAMENTOS DE PROGRAMACI N
130


Diagrama de Flujo Prctica 5

Pseudocdigo

inicio
leer Calificacin
si Calificacin >= 8
escribir Aprobado
fin_si
fin


Programa en Java

i mpor t j ava. i o. *;
publ i c cl ass Pr act i ca_5{
publ i c st at i c voi d mai n ( St r i ng ar gs[ ] ) t hr ows I OExcept i on{
f l oat Cal i f i caci on;
I nput St r eamReader r es= new I nput St r eamReader ( Syst em. i n) ;
Buf f er edReader cal cul o= new Buf f er edReader ( r es) ;
Syst em. out . pr i nt l n( " I nt r oduzca l a cal i f i caci on" ) ;
Cal i f i caci on=Fl oat . par seFl oat ( cal cul o. r eadLi ne( ) ) ;
i f ( Cal i f i caci on>=8)
Syst em. out . pr i nt l n( " Apr obado" ) ;
}
}











leer Calificacion
inicio
Calificacin >= 8
Escribir
Aprobado
fin
No Si
FUNDAMENTOS DE PROGRAMACI N MANUAL DE PRCTICAS
131
PRCTICA 6

Indique e imprima cual es el mayor de dos nmeros dados.



Objetivo de la prctica

Implementar clases que requieran de estructuras selectivas para probarlas en una aplicacin.


Anlisis del Problema

Se necesita introducir dos valores, almacenados en las variables N1 y N2 que declararemos como
tipo int los cuales compararemos en una estructura selectiva if else que mostrara el mayor de los
nmeros dados.



Diagrama de Flujo Prctica 5

Pseudocdigo

inicio
leer N1, N2
si N1 > N2
escribir N1
sino
escribir N2
fin_si
fin



leer N1, N2
inicio
N1 > N2

Escribir N1
fin
No
Si

Escribir N2
MANUAL DE PRCTICAS FUNDAMENTOS DE PROGRAMACI N
132
Programa en Java
i mpor t j ava. i o. *;
publ i c cl ass Pr act i ca_6{
publ i c st at i c voi d mai n ( St r i ng ar gs[ ] ) t hr ows I OExcept i on{
i nt N1, N2;
I nput St r eamReader r es=new I nput St r eamReader ( Syst em. i n) ;
Buf f er edReader cal cul o=new Buf f er edReader ( r es) ;
Syst em. out . pr i nt l n( " I nt r oduzca el ent er o numer o 1" ) ;
N1=I nt eger . par seI nt ( cal cul o. r eadLi ne( ) ) ;
Syst em. out . pr i nt l n( " I nt r oduzca el ent er o numer o 2" ) ;
N2=I nt eger . par seI nt ( cal cul o. r eadLi ne( ) ) ;
i f ( N1>N2)
Syst em. out . pr i nt l n( " El mayor es: " + N1) ;
el se
Syst em. out . pr i nt l n( " El mayor es: " + N2) ;
}
}



PRCTICA 7

Obtener e imprimir el nuevo sueldo de un trabajador, aplicando un aumento del 15% si su sueldo
es inferior a $1000 y 12% en caso contrario.


Objetivo de la prctica

Implementar clases que requieran de estructuras selectivas para probarlas en una aplicacin.

Anlisis del Problema

El nuevo sueldo del trabajador depende principalmente de su sueldo actual, por lo tanto, la variable
que solicitada es SueldoBase, comparada con la cantidad de $1000 se aplicara, si resulta menor se
incrementara un 15% al salario, en caso contrario solo incrementar 12%.


Diagrama de Flujo Prctica 7
leer Salario
inicio
Salario < 1000

Salario = Salario * 1.15
fin
No Si

Salario = Salario * 1.12
Escribir
Salario
FUNDAMENTOS DE PROGRAMACI N MANUAL DE PRCTICAS
133
Pseudocdigo

inicio
leer Salario
si Salario < 1000
escribir Salario = Salario * 1.15
sino
escribir Salario = Salario * 1.12
fin_si
fin

Programa en Java

i mpor t j ava. i o. *;
publ i c cl ass Pr act i ca_7{
publ i c st at i c voi d mai n ( St r i ng ar gs[ ] ) t hr ows I OExcept i on{
doubl e Sal ar i o;
Buf f er edReader Cal c = new Buf f er edReader ( new I nput St r eamReader ( Syst em. i n) ) ;
Syst em. out . pr i nt l n( " I nt r oduzca el sal ar i o del t r abaj ador " ) ;
Sal ar i o = Fl oat . par seFl oat ( Cal c. r eadLi ne( ) ) ;
i f ( Sal ar i o < 1000)
Sal ar i o = Sal ar i o*1. 15;
el se
Sal ar i o = Sal ar i o*1. 12;
Syst em. out . pr i nt l n( " El nuevo suel do del t r abaj ador es: " + Sal ar i o) ;
}
}



PRCTICA 8

Imprimir tres nmeros enteros diferentes ledos desde el teclado en forma descendente.



Objetivo de la prctica

Implementar clases que requieran de estructuras selectivas anidadas para probarlas en una
aplicacin.


Anlisis del Problema

Dados los datos A, B, C que representan variables de tipo int, ordenarlos en forma descendentes,
esto con ayuda de varias estructuras selectivas if else anidadas.





MANUAL DE PRCTICAS FUNDAMENTOS DE PROGRAMACI N
134


Diagrama de Flujo Prctica 8

Pseudocdigo

inicio
leer A, B, C,
si A > B
si A > C
si B < C
escribir A, B, C
sino
escribir A, C, B
fin_si
sino
escribir C, A, B
fin_si
sino
si B > C
si A > C
escribir B, A, C
sino
escribir B, C, A
fin_si
sino
escribir C, B, A
fin_si
fin_si
fin
leer A, B, C,
inicio
A > B
fin
No Si
A > C
B > C
escribir
A, B, C
Si
Si
escribir
C, A, B
escribir
A, C, B,
No
No
B > C
A > C
escribir
B, A, C
Si
Si
escribir
C, B, A
escribir
B, C, A,
No
No
FUNDAMENTOS DE PROGRAMACI N MANUAL DE PRCTICAS
135
Programa en Java

i mpor t j ava. i o. *;
publ i c cl ass Pr act i ca_8{
publ i c st at i c voi d mai n ( St r i ng ar gs[ ] ) t hr ows I OExcept i on{
i nt A, B, C;
I nput St r eamReader r es = new I nput St r eamReader ( Syst em. i n) ;
Buf f er edReader cal cul o = new Buf f er edReader ( r es) ;
Syst em. out . pr i nt l n( " I nt r oduzca el val or de A" ) ;
A=I nt eger . par seI nt ( cal cul o. r eadLi ne( ) ) ;
Syst em. out . pr i nt l n( " I nt r oduzca el val or de B" ) ;
B=I nt eger . par seI nt ( cal cul o. r eadLi ne( ) ) ;
Syst em. out . pr i nt l n( " I nt r oduzca el val or de C" ) ;
C=I nt eger . par seI nt ( cal cul o. r eadLi ne( ) ) ;
i f ( A>B)
i f ( A>C)
i f ( B>C)
Syst em. out . pr i nt l n( A+" " +B+" " +C) ;
el se
Syst em. out . pr i nt l n( A+" " +C+" " +B) ;
el se
Syst em. out . pr i nt l n( C+" " +A+" " +B) ;
el se
i f ( B>C)
i f ( A>C)
Syst em. out . pr i nt l n( B+" " +A+" " +C) ;
el se
Syst em. out . pr i nt l n( B+" " +C+" " +A) ;
el se
Syst em. out . pr i nt l n( C+" " + B+" " +A) ;
}
}



PRCTICA 9

Imprimir los nombres de los das de la semana, en funcin del valor de una variable Dia
introducida por el teclado.


Objetivo de la prctica

Implementar clases que requieran de estructuras selectivas mltiples para implementarlas en el
desarrollo de aplicaciones

Anlisis del Problema

La variable Da introducida por el usuario ser de tipo int, y a partir de ella obtendremos el da de
la semana correspondiente, para ello haremos uso de la estructura selectiva mltiple switch, debido a
que cada sentencia case se corresponde con un nico valor de expresin. No se pueden establecer
rangos o condiciones, como en el caso del if else, sino que se debe comparar con valores concretos.


MANUAL DE PRCTICAS FUNDAMENTOS DE PROGRAMACI N
136


Diagrama de Flujo Prctica 9

Pseudocdigo

inicio
leer Dia
segn sea Dia
1: escribir Lunes
2: escribir Martes
3: escribir Mircoles
4: escribir Jueves
5: escribir Viernes
6: escribir Sbado
7: escribir Domingo
otro: escribir Error
fin_segn
fin


Programa en Java

i mpor t j ava. i o. *;
publ i c cl ass Pr act i ca_9{
publ i c st at i c voi d mai n ( St r i ng ar gs[ ] ) t hr ows I OExcept i on{
i nt Di a;
Buf f er edReader cal c = new Buf f er edReader ( new I nput St r eamReader ( Syst em. i n) ) ;
Syst em. out . pr i nt l n( " I nt r oduzca el numer o del di a de l a semana" ) ;
Di a = I nt eger . par seI nt ( cal c. r eadLi ne( ) ) ;
swi t ch ( Di a) {
case 1: Syst em. out . pr i nt l n( " Lunes" ) ; br eak;
case 2: Syst em. out . pr i nt l n( " Mar t es" ) ; br eak;
leer Dia
inicio
Dia
fin
1
Escribir
Lunes
Escribir
Martes
Escribir
Mircoles
Escribir
Jueves
Escribir
Viernes
Escribir
Sabado
Escribir
Domingo
Escribir
Error
2 3 4 5 6 7 Otro
FUNDAMENTOS DE PROGRAMACI N MANUAL DE PRCTICAS
137
case 3: Syst em. out . pr i nt l n( " Mi er col es" ) ; br eak;
case 4: Syst em. out . pr i nt l n( " J ueves" ) ; br eak;
case 5: Syst em. out . pr i nt l n( " Vi er nes" ) ; br eak;
case 6: Syst em. out . pr i nt l n( " Sabado" ) ; br eak;
case 7: Syst em. out . pr i nt l n( " Domi ngo" ) ; br eak;
def aul t : Syst em. out . pr i nt l n( " Er r or " ) ; br eak;
}
}
}

Los valores no comprendidos en ninguna sentencia case se pueden gestionar en default, que es
opcional. En ausencia de break, cuando se ejecuta una sentencia case se ejecutan tambin todas las que
van a continuacin, hasta que se llega a un break o hasta que se termina el switch.


PRCTICA 10

Imprimir el nmero de das de un mes, en funcin del nmero de orden dentro del calendario
(1= Enero, 2 = Febrero, etc.) y teniendo en cuenta si el ao es bisiesto o no.


Objetivo de la prctica

Implementar clases que requieran de estructuras selectivas mltiples para implementarlas en el
desarrollo de aplicaciones

Anlisis del problema

La obtencin del nmero de das con los que cuenta un mes, requiere de dos variables de tipo int,
Mes, la palabra Ao no puede ser utilizada como identificador vlido porque la mayora de los
compiladores no reconoce la letra , para este caso utilizaremos el identificador Anio y para ello
debemos tomar en consideracin si el ao es o no bisiesto, esto se llevara a cabo a partir de las
siguientes reglas:
Regla 1: Los aos exactamente divisibles entre 4 son aos bisiestos.
Regla 2: Los aos exactamente divisibles entre 100 no son aos bisiestos.
Regla 3: Los aos exactamente divisibles entre 400 son aos bisiestos
Decidir si utilizar la sentencia if o switch es a consideracin del programador, el cual puede decidir
cul usar basado en la legibilidad y otros factores. La sentencia if se puede utilizar para tomar las
decisiones basadas en gamas de valores o de condiciones, mientras que la sentencia switch puede tomar
las decisiones basadas solamente en un solo nmero entero, un valor enumerado o nico.
Otro punto de inters es la sentencia break despus de cada case. Cada sentencia break termina la
declaracin case que incluye, y el flujo del control contina con la siguiente declaracin case. Las
declaraciones break son necesarias porque sin ellas el control fluira secuencialmente con declaraciones
case subsecuentes. Esta prctica nos ilustra una de las utilidades de la sentencia case dentro de la
estructura secuencial mltiple switch.

MANUAL DE PRCTICAS FUNDAMENTOS DE PROGRAMACI N
138


Diagrama de Flujo Prctica 10


Pseudocdigo

inicio
leer Mes, Anio
segn sea Mes
1, 3, 5, 7, 8, 10, 12: escribir 31
4, 6, 9, 11: escribir 30
2: si ((Anio % 4 = 0 && !Anio % 100 = 0) || Anio % 400 = 0)
escribir 29
sino
escribir 30
fin_si
otro: escribir No existe
fin_segun
fin







leer Mes, Anio
inicio
Mes
fin
Escribir
31
Escribir
30

Escribir
No existe
1, 3, 5, 7, 8, 10, 12 4, 6, 9, 11
2 Otro
[(Anio mod 4 = 0)
and no (Anio mod 100 = 0)]
or (Anio mod 400 = 0)
Escribir
29
Escribir
28
Si No
FUNDAMENTOS DE PROGRAMACI N MANUAL DE PRCTICAS
139
Programa en java

i mpor t j ava. i o. *;
publ i c cl ass Pr act i ca_10 {
publ i c st at i c voi d mai n( St r i ng[ ] ar gs) t hr ows I OExcept i on {
i nt Mes;
i nt Ani o;
Buf f er edReader Oper = new Buf f er edReader ( new I nput St r eamReader ( Syst em. i n) ) ;
Syst em. out . pr i nt l n ( " I nt r oduzca el numer o del mes" ) ;
Mes = I nt eger . par seI nt ( Oper . r eadLi ne( ) ) ;
Syst em. out . pr i nt l n ( " I nt r oduzca el ani o" ) ;
Ani o = I nt eger . par seI nt ( Oper . r eadLi ne( ) ) ;
swi t ch ( Mes) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
Syst em. out . pr i nt l n( " Numer o de di as = 31 " ) ; br eak;
case 4:
case 6:
case 9:
case 11:
Syst em. out . pr i nt l n( " Numer o de di as = 30 " ) ; br eak;
case 2:
i f ( ( ( Ani o %4 == 0) && ! ( Ani o %100 == 0) ) | | ( Ani o %400 == 0) )
Syst em. out . pr i nt l n( " Numer o de di as = 29 " ) ;
el se
Syst em. out . pr i nt l n( " Numer o de di as = 28 " ) ;
br eak;
def aul t :
Syst em. out . pr i nt l n( " No exi st e" ) ; br eak;
}
}
}


PRCTICA 11

Desarrolle un programa que invierta un nmero entero N dado por el usuario.


Objetivo de la prctica

Comprender el uso y funcionamiento de las estructuras de repeticin en el momento de
implementar clases que impliquen el diseo de algoritmos para probarlas en una aplicacin.

Anlisis del problema.
El fin de la prctica es mostrar el nmero invertido de una cifra, por ejemplo, de 12345 su nmero
invertido es 54321.
MANUAL DE PRCTICAS FUNDAMENTOS DE PROGRAMACI N
140
Para esta circunstancia, definimos las variables num_i nv = 0, di v_ent er a = num,
r est o_di v = 0; el procedimiento a seguir es obtener el residuo de las divisiones sucesivas de la
variable num de tipo int entre 10, para posteriormente sumar este residuo a la variable resto_div
multiplicada por 10.


Diagrama de Flujo Prctica 11

Pseudocdigo

Inicio
escribir Ingrese nmero
leer num
num_inv = 0
div_entera = num
resto_div = 0
mientras div_entera != 0
hacer resto_div = div_entera mod 10
hacer div_entera = div_entera / 10
hacer num_inv = num_inv * 10 + resto_div
fin_mientras
escribir "El numero " + num + " invertido es " + num_inv
fin
inicio
div_entera != 0
fin
No
Si

div_entera = div_entera / 10
escribir
num inv

num_inv = 0
div_entera = num
resto_div = 0
resto_div = div_entera mod 10

num_inv = num_inv * 10 + resto_div
leer num
FUNDAMENTOS DE PROGRAMACI N MANUAL DE PRCTICAS
141
Programa en Java

i mpor t j ava. i o. *;
cl ass Pr act i ca_11{
publ i c st at i c voi d mai n( St r i ng Ar g[ ] ) t hr ows I OExcept i on {
i nt num, num_i nv , di v_ent er a , r est o_di v;
Buf f er edReader i n = new Buf f er edReader ( new I nput St r eamReader ( Syst em. i n) ) ;
Syst em. out . pr i nt ( " I ngr ese numer o : " ) ;
num= I nt eger . par seI nt ( i n. r eadLi ne( ) ) ;
num_i nv = 0;
di v_ent er a = num;
r est o_di v = 0;
whi l e ( di v_ent er a ! = 0) {
r est o_di v = di v_ent er a %10;
di v_ent er a = di v_ent er a / 10;
num_i nv = num_i nv * 10 + r est o_di v;
}
Syst em. out . pr i nt l n( " El numer o " + num+ " i nver t i do es " + num_i nv) ;
}
}


PRCTICA 12

Calcular e imprimir la media de N nmeros dados por el usuario.


Objetivo de la prctica

Comprender el uso y funcionamiento de las estructuras de repeticin en el momento de
implementar clases que impliquen el diseo de algoritmos para probarlas en una aplicacin.

Anlisis del problema.

Para realizar el clculo del promedio de una cierta cantidad de nmeros definiremos las siguientes
variables:

N : tipo int, determinar el nmero de veces que la estructura de repeticin se efectuar;

Contador: tipo int, un contador es una variable que incrementa de forma constante dentro de la
estructura de repeticin.

Acumulador: tipo double, almacena la suma de los nmeros introducidos desde el teclado;

Promedio: tipo double, guarda la media de los nmeros dados, mediante la formula:




Promedio = Acumulador / N
MANUAL DE PRCTICAS FUNDAMENTOS DE PROGRAMACI N
142


Diagrama de Flujo Prctica 12

Pseudocdigo

inicio
N = 0, x = 0, Acumulador = 0, Promedio = 0, Contador = 1
leer N
mientras Contador < = N
leer x
hacer Acumulador =Acumulador + x
hacer Contador = Contador + 1
fin_mientras
hacer Promedio = Acumulador / N
escribir Promedio
fin




leer N
inicio
Contador <= N
fin
No
Si

Acumulador = Acumulador + x
escribir
Promedio

N = 0, Contador =1, x = 0
Acumulador =0, Promedio = 0
leer x

Contador = Contador + 1

Promedio = Acumulador / N
FUNDAMENTOS DE PROGRAMACI N MANUAL DE PRCTICAS
143
Programa en Java

i mpor t j ava. i o. *;
publ i c cl ass Pr act i ca_12{
publ i c st at i c voi d mai n( St r i ng ar g[ ] ) t hr ows I OExcept i on{
i nt N = 0, Cont ador = 1;
doubl e Acumul ador = 0, Pr omedi o = 0, x = 0;
Buf f er edReader cal c = new Buf f er edReader ( new I nput St r eamReader ( Syst em. i n) ) ;
Syst em. out . pr i nt l n( " Dame un numer o: " ) ;
N = I nt eger . par seI nt ( cal c. r eadLi ne( ) ) ;
whi l e ( Cont ador <= N) {
Syst em. out . pr i nt l n( " Numer o " +Cont ador ) ;
x = Fl oat . par seFl oat ( cal c. r eadLi ne( ) ) ;
Acumul ador = Acumul ador + x;
Cont ador =Cont ador +1;
}
Pr omedi o = Acumul ador / N;
Syst em. out . pr i nt l n( " El pr omedi o es: " + Pr omedi o) ;
}
}



PRCTICA 13

Imprimir los nmeros impares menores o iguales a N.



Objetivo de la prctica


Comprender el uso y funcionamiento de las estructuras de repeticin en el momento de
implementar clases que impliquen el diseo de algoritmos para probarlas en una aplicacin.


Anlisis del problema.


Para resolver este ejercicio necesitaremos de una variable Contador de tipo int y un variable N que
delimitara el numero de iteraciones de la estructura repetitiva while. Incrementaremos el contador en
dos unidades en cada iteracin para desplegar el nmero impar correspondiente.










MANUAL DE PRCTICAS FUNDAMENTOS DE PROGRAMACI N
144


Diagrama de Flujo Prctica 13


Pseudocdigo

inicio
N = 0, Contador = 1
leer N
mientras Contador <= N
imprimir Contador
hacer Contador = Contador + 2
fin_mientras
fin


Programa en Java

i mpor t j ava. i o. *;
publ i c cl ass Pr act i ca_13{
publ i c st at i c voi d mai n( St r i ng ar g[ ] ) t hr ows I OExcept i on{
i nt N = 0, Cont ador = 1;
Buf f er edReader cal c = new Buf f er edReader ( new I nput St r eamReader ( Syst em. i n) ) ;
Syst em. out . pr i nt l n( " Dame un numer o: " ) ;
N = I nt eger . par seI nt ( cal c. r eadLi ne( ) ) ;
whi l e ( Cont ador <= N) {
Syst em. out . pr i nt l n( Cont ador ) ;
Cont ador =Cont ador + 2;
}
}
}
leer N
inicio
Contador <= N
fin
No
Si

N = 0, Contador =1

Contador = Contador + 2
escribir
Contador
FUNDAMENTOS DE PROGRAMACI N MANUAL DE PRCTICAS
145
PRCTICA 14

Imprimir la tabla de Multiplicar de N.



Objetivo de la prctica

Comprender el uso y funcionamiento de las estructuras de repeticin en el momento de
implementar clases que impliquen el diseo de algoritmos para probarlas en una aplicacin.


Anlisis del problema

Se desea mostrar la tabla de multiplicar de un nmero dado, a partir de una estructura cclica while
con la cual utilizaremos una variable de tipo int llamada Contador que incrementa su valor en uno, para
esto aplicaremos un operador de incremento Contador++; que es similar a la expresin aritmtica
Contador = Contador + 1, observe que el resultado es idntico en ambos casos.




Diagrama de Flujo Prctica 14






leer N
inicio
Contador <= N
fin
No
Si

N = 0, Contador =1

Contador++

escribir
N + * + Contador + = + N * Contador
MANUAL DE PRCTICAS FUNDAMENTOS DE PROGRAMACI N
146
Pseudocdigo

inicio
N = 0, Contador = 1
leer N
mientras Contador <= 10
imprimir N + * + Contador + = + N*Contador
hacer Contador ++
fin_mientras
fin

Programa en Java

i mpor t j ava. i o. *;
publ i c cl ass Pr act i ca_14{
publ i c st at i c voi d mai n( St r i ng ar g[ ] ) t hr ows I OExcept i on{
i nt N = 0, Cont ador = 1;
Buf f er edReader cal c = new Buf f er edReader ( new I nput St r eamReader ( Syst em. i n) ) ;
Syst em. out . pr i nt l n( " Dame un numer o: " ) ;
N = I nt eger . par seI nt ( cal c. r eadLi ne( ) ) ;
whi l e ( Cont ador <= 10) {
Syst em. out . pr i nt l n( N+ " * " +Cont ador +" = " + N*Cont ador ) ;
Cont ador ++;
}
}
}



PRCTICA 15

Imprimir y calcular el cociente y el resto de dos nmeros enteros.



Objetivo de la prctica

Comprender el uso y funcionamiento de las estructuras de repeticin en el momento de
implementar clases que impliquen el diseo de algoritmos para probarlas en una aplicacin.


Anlisis del problema

El mtodo de obtener el cociente y el resto es por restas sucesivas, el cual consiste en restar
sucesivamente el divisor del dividendo hasta obtener un resultado menor o igual que el divisor y que
ser el resto de la divisin, el nmero de restas efectuadas ser el cociente.





FUNDAMENTOS DE PROGRAMACI N MANUAL DE PRCTICAS
147


Diagrama de Flujo Prctica 15


Pseudocdigo

inicio
Dividendo = 0, Divisor = 0, Cociente = 0, Resto = 0
leer Dividendo, Divisor
Resto = Dividendo
repetir
Resto = Divisor
Cociente++
hasta que (Resto >= Divisor)
escribir El cociente es : + Cociente
escribir El resto es : + Resto
fin








leer Dividendo, Divisor
inicio
Resto -= Divisor
fin
No
Si

Dividendo = 0, Divisor = 0
Cociente = 0, Resto = 0

Resto >= Divisor
Resto = Dividendo
Cociente++

Cociente, Resto
MANUAL DE PRCTICAS FUNDAMENTOS DE PROGRAMACI N
148
Programa en Java

i mpor t j ava. i o. *;
publ i c cl ass Pr act i ca_15{
publ i c st at i c voi d mai n( St r i ng ar g[ ] ) t hr ows I OExcept i on{
i nt Di vi dendo = 0, Di vi sor = 0, Coci ent e = 0, Rest o = 0;
Buf f er edReader cal c = new Buf f er edReader ( new I nput St r eamReader ( Syst em. i n) ) ;
Syst em. out . pr i nt l n( " Dame el di vi dendo: " ) ;
Di vi dendo = I nt eger . par seI nt ( cal c. r eadLi ne( ) ) ;
Syst em. out . pr i nt l n( " Dame el di vi sor : " ) ;
Di vi sor = I nt eger . par seI nt ( cal c. r eadLi ne( ) ) ;
Rest o = Di vi dendo;

do{
Rest o = Di vi sor ;
Coci ent e++;
} whi l e ( Rest o >= Di vi sor ) ;
Syst em. out . pr i nt l n( " El Coci ent e es: " +Coci ent e+" El Rest o es: " +Rest o) ;
}
}



PRCTICA 16

Construya un programa que indique al usuario los nmeros primos comprendidos entre 1 y N.



Objetivo de la prctica

Comprender el uso y funcionamiento de las estructuras de repeticin en el momento de
implementar clases que impliquen el diseo de algoritmos para probarlas en una aplicacin.

Anlisis del problema

La caracterstica principal de un nmero primo consiste en que ste solo es divisible entre si mismo
y uno, por lo tanto, el algoritmo consiste en buscar si el entero tiene un divisor diferente de los dos
anteriores; el proceso se lleva a cabo hasta la mitad entera del valor a evaluar ya que despus de esta
cualquier valor no divide a ste.

Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad fija en cada
iteracin, en este caso el contador lo inicializaremos en 1 e ir incrementando su valor hasta N, para
mostrar los nmeros primos existentes, esta es una variable de tipo int.

Para identificar si el nmero dentro del rango, es primo o no, se define la clase Primo, la cual
devuelve una variable de tipo boolean o lgico (true o false).





FUNDAMENTOS DE PROGRAMACI N MANUAL DE PRCTICAS
149


Diagrama de Flujo Prctica 16

Pseudocdigo

inicio
escribir Escribe un nmero
leer Numero
escribir Los nmeros primos son:
Contador = 1
repetir
Num = Contador
Si (Num es primo)
Escribir Contador
Fin_si
Contador++
hasta que (Contador <= Numero)
fin




leer Numero
inicio
Numero. primo
fin
No
Si

Contador = 1

Contador <= Numero
escribir
Los nmero primos son:
Contador++
escribir Contador
Primo (N)
(N mod i == 0)
and (N>3)
fin
No
Si
i < N / 2
i++
primo = false

primo = true, i = 2
Si
Si No
No
MANUAL DE PRCTICAS FUNDAMENTOS DE PROGRAMACI N
150
clase Primo
inicio
primo = verdadero
i = 2
Constructor Primo (N): entero
inicio
repetir
si (N mod i = 0) and (N>3)
primo = falso
fin_si
i++
hasta que (i < N / 2)
fin
fin

Programa en Java

i mpor t j ava. i o. *;
publ i c cl ass Pr act i ca_16{
publ i c st at i c voi d mai n ( St r i ng ar g[ ] ) t hr ows I OExcept i on{
i nt Numer o, Cont ador ;
Buf f er edReader t ecl = new Buf f er edReader ( new I nput St r eamReader ( Syst em. i n) ) ;
Syst em. out . pr i nt l n ( " Escr i be un numer o: " ) ;
Numer o = I nt eger . par seI nt ( t ecl . r eadLi ne( ) ) ;
Syst em. out . pr i nt l n( " \ nLos numer os pr i mos son: " ) ;
Cont ador = 1;
do{
Pr i mo Num= new Pr i mo( Cont ador ) ;
i f ( Num. pr i mo)
Syst em. out . pr i nt l n( Cont ador ) ;
Cont ador ++;
} whi l e ( Cont ador <= Numer o) ;
}
}

cl ass Pr i mo{
publ i c bool ean pr i mo = t r ue;
pr i vat e i nt i =2;
publ i c Pr i mo( i nt N) {
do{
i f ( ( N %i == 0) &&( N > 3) )
pr i mo = f al se;
i ++;
}whi l e( i < N / 2) ;
}
}

Al enviar informacin de salida hay ocasiones en que resulta til agregar algo de formato con
caracteres especiales llamado secuencias de escape, un ejemplo es
Syst em. out . pr i nt l n( " \nLos nmer os pr i mos son: " ) , en donde \n representa
una nueva lnea, es decir, coloca el cursor al principio de la siguiente lnea.



FUNDAMENTOS DE PROGRAMACI N MANUAL DE PRCTICAS
151
PRCTICA 17

Construya un programa que calcule la funcin Factorial de un nmero N (N!).



Objetivo de la prctica

Comprender el uso y funcionamiento de las estructuras de repeticin en el momento de
implementar clases que impliquen el diseo de algoritmos para probarlas en una aplicacin.

Anlisis del problema

El factorial de un nmero entero positivo se define como el producto de todos los nmeros
naturales anteriores o iguales a l. Se escribe n! y se lee n factorial, por definicin establecida el
factorial de 0 es 1. Por ejemplo:

5! = 1 * 2 * 3 * 4 * 5
5! = 120

Para realizar el factorial del nmero, hacemos uso de una clase Factorial, que recibe el argumento
de tipo int N, se definen tambin dos variables, la primera public llamada fact inicializada en 1, y la
segunda private i; y en el constructor Factorial es donde se realizan las iteraciones del ciclo for cuyo
valor inicial es 2, el valor final N y su incremento en 1 de i.


Diagrama de Flujo Prctica 17







leer Numero
inicio
fin

escribir
Introduzca un nmero
escribir
El factorial de Numero es Num.fact
Factorial (N)
i = 2 ; i <= N ; i++

fin
Fact += i

Fact = 1
No
Si
MANUAL DE PRCTICAS FUNDAMENTOS DE PROGRAMACI N
152
Pseudocdigo

inicio
escribir Introduzca un nmero
leer Numero
Factorial Num (Numero)
escribir El factorial de Numero es Num.fact
fin

clase Factorial
inicio
fact = 1
contructor Factorial (N): entero
inicio
desde i=2 hasta i <= N hacer i++
hacer fact *= i
fin_desde
fin
fin

Programa en Java

i mpor t j ava. i o. *;
publ i c cl ass Pr act i ca_17{
publ i c st at i c voi d mai n ( St r i ng ar g[ ] ) t hr ows I OExcept i on{
i nt Numer o;
Buf f er edReader t ecl = new Buf f er edReader ( new I nput St r eamReader ( Syst em. i n) ) ;
Syst em. out . pr i nt l n ( " I nt r oduzca un numer o ent er o: " ) ;
Numer o = I nt eger . par seI nt ( t ecl . r eadLi ne( ) ) ;
Fact or i al Num= new Fact or i al ( Numer o) ;
Syst em. out . pr i nt l n( " Fact or i al de " + Numer o +" es " +Num. f act ) ;
}
}

cl ass Fact or i al {
publ i c doubl e f act =1;
pr i vat e i nt i ;
publ i c Fact or i al ( i nt N) {
f or ( i =2; i <=N; i ++) {
f act *= i ;
}
}
}

La expresin f act *= i utiliza un operador de asignacin *= que es similar a la expresin
f act = f act * i .







FUNDAMENTOS DE PROGRAMACI N MANUAL DE PRCTICAS
153
PRCTICA 18

Construya un programa que realice e imprima el mtodo de Fibonacci de un nmero N.


Objetivo de la prctica

Comprender el uso y funcionamiento de las estructuras de repeticin en el momento de
implementar clases que impliquen el diseo de algoritmos para probarlas en una aplicacin.

Anlisis del problema

Leonardo Pisan Fibonacci probablemente se conoce mejor por descubrir la sucesin de Fibonacci,
una sucesin de nmeros que existe en la naturaleza. La serie de Fibonacci es la siguiente:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377,

El prximo nmero en la serie simplemente es la suma de los dos nmeros anteriores. Los nmeros
de arranque son 0 y 1. El tercer nmero se calcul de la suma 0+1 (ya que no hay ningn nmero antes
del primer 1) y es de nuevo 1. El prximo nmero es 1+1 = 2, luego 1+2 = 3, luego 2+3 = 5 y 5+3 = 8,
etc., esta serie es consecutiva e infinita.


Diagrama de Flujo Prctica 18

leer Numero
inicio
fin

escribir
Introduzca un nmero
Fibonacci (Numero)
Fibonacci (N)

i = 1; i < N; i++
fin
Fib = Aux

Fib = 0 , Sig = 1
No
Si
Aux = Sig
Sig += Fib

escribir + Fib

escribir + Fib
MANUAL DE PRCTICAS FUNDAMENTOS DE PROGRAMACI N
154
Pseudocdigo

inicio
escribir Introduce un numero entero
leer Numero
Fibonacci (Numero)
fin

Funcion Fibonacci(N): entero
inicio
Fib = 0, Sig = 1
escribir Fib
desde i = 1 hasta i < N hacer i++
hacer Aux = Sig
hacer Sig += Fib
hacer Fib = Aux
escribir - + Fib
fin_desde
fin


Programa en Java

i mpor t j ava. i o. *;
publ i c cl ass Pr act i ca_18{
publ i c st at i c voi d mai n ( St r i ng ar gs[ ] ) t hr ows I OExcept i on{
i nt Numer o;
Buf f er edReader t ecl = new Buf f er edReader ( new I nput St r eamReader ( Syst em. i n) ) ;
Syst em. out . pr i nt l n( " I nt r oduzca un numer o" ) ;
Numer o = I nt eger . par seI nt ( t ecl . r eadLi ne( ) ) ;
Fi bonacci ( Numer o) ;
}

publ i c st at i c voi d Fi bonacci ( i nt n) {
i nt f i b=0, si g = 1;
Syst em. out . pr i nt ( f i b) ;
f or ( i nt i = 1; i < n; i ++) {
i nt aux = si g;
si g += f i b;
f i b = aux;
Syst em. out . pr i nt ( " - " +f i b) ;
}
}
}

Es importante resaltar la definicin de una funcin para calcular y mostrar la serie de Fibonacci
dentro de la cual se observa la inicializacin de variables en la sentencia f or ( i nt i = 1; i <
n; i ++) y i nt aux = si g; que tambin es una forma vlida para la declaracin de variables.




FUNDAMENTOS DE PROGRAMACI N MANUAL DE PRCTICAS
155
PRCTICA 19

Construya un programa que muestre los mltiplos de 3 en orden descendente a partir de 99.


Objetivo de la prctica

Comprender el uso y funcionamiento de las estructuras de repeticin en el momento de
implementar clases que impliquen el diseo de algoritmos para probarlas en una aplicacin.

Anlisis del problema

La prctica consiste en decrementar el valor final del ciclo for en 3, con la expresin i - =, esta
es una de las caractersticas relevantes de la sentencia for, en donde el incremento de la estructura
for puede ser negativo, en cuyo caso ser realmente un decremento y el ciclo contar hacia atrs.



Diagrama de Flujo Prctica 19

Pseudocdigo

inicio
desde i=99 hasta i>=1 hacer i-=3
escribir - + i
fin_desde
fin

Programa en Java

publ i c cl ass Pr act i ca_19{
publ i c st at i c voi d mai n ( St r i ng ar gs[ ] ) {
f or ( i nt i = 99; i >=1; i - =3) {
Syst em. out . pr i nt ( " - " + i ) ;
}
}
}


inicio

i = 99; i >=1; i - =3
fin
No
Si

escribir + i
MANUAL DE PRCTICAS FUNDAMENTOS DE PROGRAMACI N
156
PRCTICA 20

Construya un programa que despliegue las tablas de multiplicar del 1 al 10.


Objetivo de la prctica

Comprender el uso y funcionamiento de las estructuras de repeticin anidadas en el momento de
implementar clases que impliquen el diseo de algoritmos para probarlas en una aplicacin.

Anlisis del problema

Aunque la realizacin de esta prctica aparenta ser sencilla el programador requiere de prctica y
experiencia en estructuras de repeticin para poder anidarlas.



Diagrama de Flujo Prctica 20

Pseudocdigo

inicio
desde i=1 hasta i<=10 hacer i++
desde j=1 hasta j<=10 hacer j++
escribir i +* + j +=+ i * j
fin_desde
fin_desde
fin




inicio

i = 1; i <=10; i ++
fin
No
Si

escribir
i + * + j + = + i *j

j = 1; j <=10; j++
Si
No
FUNDAMENTOS DE PROGRAMACI N MANUAL DE PRCTICAS
157
Programa en Java

publ i c cl ass Pr act i ca_20{
publ i c st at i c voi d mai n ( St r i ng ar gs[ ] ) {
f or ( i nt i = 1; i <=10; i ++) {
f or ( i nt j =1; j <= 10; j ++)
Syst em. out . pr i nt l n( i +" * " + j +" = " + i *j ) ;
Syst em. out . pr i nt l n( " \ n" ) ;
}
}
}







































MANUAL DE PRCTICAS FUNDAMENTOS DE PROGRAMACI N
158
PRCTICAS PROPUESTAS

1. Se definen los nmeros triangulares como los obtenidos de sumar los nmeros naturales
sucesivos 1, 2, 3, ...; es decir, los primeros nmeros triangulares son 1, 3, 6, 10, .... Elaborar un
algoritmo para imprimir el N-simo nmero triangular. Describir el algoritmo mediante
diagrama de flujo y Pseudocdigo.

2. Disear un algoritmo que, dados 10 nmeros enteros, indique cuantos de ellos son nmeros
pares, nos muestre estos y calcule la media aritmtica de los impares.

3. Se desea un algoritmo que realice la operacin de suma o resta de so nmeros ledos del teclado
en funcin de la respuesta S/N a un mensaje de peticin de datos.

4. Disear el algoritmo de Euclides que calcule el M.C.D. (Mximo comn divisor) de dos
nmeros A y B. Este mtodo se basa en dos teoremas:

Si dos nmeros son divisibles el uno por el otro, el menor es su mximo comn divisor.
Si dos nmeros a y b (a>b) no son divisibles el uno por el otro, los divisores comunes de
a y b son los mismos que los de b y r, siendo r el resto de la divisin entera de a entre b.

5. Elabore un programa para imprimir el tringulo de Floyd con un nmero dado de filas
completas.

1
2 3
4 5 6
7 8 9 10

6. La multiplicacin ``a la rusa'' permite realizar el producto de dos nmeros enteros utilizando
solo sumas y divisiones o productos por dos. El mtodo consiste en realizar sucesivamente las
siguientes operaciones: multiplicar uno de los nmeros por dos y obtener la divisin entera del
otro, tambin por dos. Se detiene el proceso al obtener como cociente de la divisin un uno. Por
ejemplo, para multiplicar 22 por 64 se obtienen las dos columnas siguientes:

22 64
11 128
5 256
2 512
1 1024
22 x 64 = 1408

A continuacin sumamos los nmeros de la columna de la derecha que corresponden a nmeros
impares en la columna de la izquierda, esto es en nuestro caso: 128+256+1.024=1.408 y el
resultado de la suma es el producto de los nmeros iniciales. Elaborar un programa en Pascal
que multiplique mediante este mtodo dos nmeros enteros introducidos por pantalla.



FUNDAMENTOS DE PROGRAMACI N MANUAL DE PRCTICAS
159
PRCTICAS PROPUESTAS

7. Dado un nmero entero, N, si la suma de sus divisores (sin contar a si mismo) es igual a N se
dice que ese nmero es perfecto. Si la suma es inferior, se dice que es deficiente, y si es superior
se dice que es abundante. Por ejemplo:

o 6 tiene como divisores 1, 2, 3: Su suma es 6, por lo tanto es perfecto.
o 8 tiene como divisores 1, 2, 4: Su suma es 7, por lo tanto es deficiente.
o 24 tiene como divisores 1, 2, 3, 4, 6, 8, 12: Su suma es 36, por lo tanto es abundante.

Escribir un programa que reciba un nmero entero como parmetro y devuelva un valor que lo
clasifique como perfecto, deficiente o abundante.

8. Disear un algoritmo que determine el precio de un billete de ida y vuelta en ferrocarril, dando
la distancia a recorrer y el nmero de das en destino, sabiendo que si la estancia es superior a 7
das y la distancia es superior a 800 km. el billete tiene una reduccin del 30%. El precio por
kilmetro es de 8,5 pesos.

9. Disear un programa que cuente e imprima los dgitos de un nmero dado. Por ejemplo, 17568
tiene 5 dgitos.

10. Calcule el valor de PI () a partir de la serie infinita

4 4 4 4 4
=
1
-
3
+
5
-
7
+
9
-

Imprima una tabla que muestre el valor de PI aproximado a un termino de esta serie, a dos, a
tres, a cuatro, hasta N.

11. Ternas Pitagricas. Un triangulo rectngulo puede tener lados que sean todos enteros. El
conjunto de tres valores enteros para los lados de un triangulo rectngulo se conoce como una
terna pitagrica. Estos tres lados deben de satisfacer la relacin de que la suma de los cuadrados
de dos de los lados es igual al cuadrado de la hipotenusa. Encuentre todas las ternas pitagricas
para lado1, lado2 e hipotenusa, todos ellos no mayores de 500. utilice un ciclo for de triple
anidamiento que pruebe todas la posibilidades.

También podría gustarte