Vous êtes sur la page 1sur 30

Efectuado por: Ing. Hugo Moncayo C.

Programacin Bsica

Conceptos Bsicos de Algoritmia


1.1 Algoritmo
1.2 Pseudocdigo
1.3 Variables
1.4 Literales
1.5 Instrucciones Algortmicas Bsicas
1.6 Expresiones Aritmticas
1.7 Expresiones Lgicas

1.1 Algoritmo
Un algoritmo es un conjunto ordenado y finito de instrucciones que conducen a la solucin de
un problema. En la vida cotidiana ejecutamos constantemente algoritmos. Por ejemplo, al
instalar un equipo de sonido ejecutamos las instrucciones contenidas en el manual del equipo,
este conjunto de instrucciones constituyen un algoritmo. Otro caso de algoritmo es el algoritmo
matemtico de Euclides para la obtencin del mximo comn divisor de dos nmeros.

Si un algoritmo puede ser ejecutado por una computadora, se dice que es un algoritmo
computacional o computable; en caso contrario, se dice que es un algoritmo no
computacional o no computable. Segn esto, el algoritmo de Euclides es un algoritmo
computacional; pero el algoritmo para instalar el equipo de sonido es un algoritmo no
computacional. Para que un algoritmo pueda ser ejecutado por una computadora se necesita
expresar el algoritmo en instrucciones comprensibles por la computadora, para esto se requiere
de un determinado lenguaje de programacin. Al algoritmo expresado en un determinado
lenguaje de programacin, se denomina programa. Puesto de otra manera, podemos decir
que, un programa es la implementacin o expresin de un algoritmo en un determinado
lenguaje de programacin siguiendo las reglas establecidas por el lenguaje elegido. En la
Figura 2.1 que sigue se muestra la relacin entre problema, algoritmo y programa.

Figura 1.1 Problema, algoritmo y programa

Todo algoritmo debe tener las siguientes caractersticas:

Debe ser preciso, es decir, cada instruccin debe indicar de forma


inequvoca que se tiene que hacer.
Debe ser finito, es decir, debe tener un nmero limitado de pasos.
Debe ser definido, es decir, debe producir los mismos resultados para las
mismas condiciones de entrada.

Todo algoritmo puede ser descompuesto en tres partes:

Entrada de datos.
Proceso.
Salida de resultados.

Ejemplo 1.1:- Algoritmo para preparar ceviche de albacora para 6 personas.

Entradas :
- 1 kilo de albacora
- 3 camotes sancochados

1
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

- 3 cebollas cortadas a lo largo


- 1 rocote en rodajas
- 3 ramas de apio picado
- 2 ramitas de culantro picado
- 4 vasos de jugo de limn
- 4 cucharadas de ajo molido
- 2 cucharadas de aj amarillo molido
- sal y pimienta

Proceso :
- Cortar la carne de pescado en pequeos trozos.
- Mezclar la carne con el jugo de limn, el ajo, la pimienta,
el culantro, el aj amarillo y el apio.
- Dejar reposar 30 minutos.
- Agregar sal al gusto y echar las cebollas cortadas.
- Servir acompaando el cebiche con el camote sancochado y el
rocote en rodajas

Salida :
El ceviche

Evidentemente este es un algoritmo no computacional, no podr ser ejecutado por una


computadora, pero s por una persona. Por si acaso el ceviche es manaba.

Ejemplo 1.2:- Algoritmo para expresar en centmetros y pulgadas una cantidad dada en
metros.

Entrada:
La cantidad M de metros

Proceso:
Clculo de centmetros : C = M*100
Clculo de pulgadas : P = C/2.54

Salida :
La cantidad C de centmetros y la cantidad P de pulgadas

Este es un algoritmo computacional escrito en lenguaje natural, puede ser convertido en un


programa de computadora, pero tambin puede ser ejecutado manualmente por una persona.

1.2 El Pseudocdigo
El pseudocdigo es un lenguaje de pseudoprogramacin utilizado para escribir algoritmos
computacionales. Como lenguaje de pseudoprogramacin, el pseudocdigo es una imitacin
de uno o ms lenguajes de programacin. De esta manera podemos encontrar pseudocdigos
orientados a lenguajes de programacin como Pascal, Java, C, C++, etc. En el caso de este
curso orientaremos los pseudocdigos a los lenguajes Java, C y C++. El objetivo del
pseudocdigo es permitir que el programador se centre en los aspectos lgicos de la solucin,
evitando las reglas de sintxis de los lenguajes de programacin. No siendo el pseudocdigo
un lenguaje formal, los pseudocdigos varan de un programador a otro, es decir, no hay un
pseudocdigo estndar.

1.3 Variables
Una variable es una localizacin o casillero en la memoria principal que almacena un valor que
puede cambiar en el transcurso de la ejecucin del programa. Cuando un programa necesita
almacenar un dato, necesita una variable. Toda variable tiene un nombre, un tipo de dato y un

2
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

valor. Antes de poder utilizar una variable es necesario declararla especificando su nombre y
su tipo de dato. Para declarar variables usaremos los siguientes formatos:

Declaracin de una variable:

tipo nombre

Declaracin de varias variables con el mismo tipo de dato:

tipo nombre1, nombre2, nombre3, ..., nombren

Donde:

tipo Es el tipo de dato de la variable que puede ser: ENTERO (si la


variable almacenar un nmero entero) , REAL (si la variable
almacenar un nmero decimal) , CARACTER (si la variable
almacenar un carcter), CADENA (si la variable almacenar un
conjunto de carcteres) o LOGICO (si la variable almacenar el
valor verdadero o el valor falso).

nombre1, nombre2, ..., Nombres de las variables . El nombre de una variable debe
nombren comenzar con una letra, un smbolo de subrayado o un smbolo
de dlar. Los dems caractres del nombre puede ser letras,
nmeros, smbolos de subrayado o smbolo de dlar. Debe
considerarse tambin que una letra mayscula se considera
diferente de una letra minscula.

Ejemplo 1.3:- Declaracin de variables.

La siguiente instruccin declara la variable edad de tipo ENTERO y la


variable descuento de tipo REAL..

ENTERO edad
REAL descuento

Esto crea los casilleros de memoria edad y descuento. Luego de la creacin, las variables
estn indefinidas ( ? ).

edad ?
descuento ?
La siguiente instruccin declara las variables nota1, nota2 y nota3, todas
de tipo ENTERO.

ENTERO nota1, nota2, nota3

Esto crea los casilleros de memoria nota1, nota2 y nota3. Luego de la creacin, las variables
estn indefinidas ( ? ).

nota1 ?
nota2 ?
nota3 ?

1.4 Literales o Constantes

3
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

Se denominan literales a todos aquellos valores que figuran en el pseudocdigo y que se


mantienen fijos o sea no varan (no cambian) y pueden ser:

Literales enteros

12, 20300, 15, etc.

Literales reales

3.1416, 2345.456, etc.

Literales de carcter (o char)

'a', 'B', ';', '<', '+', etc.

Literales de cadena (o string)

"Hola", "Algoritmos Computacionales", etc.

Literales lgicos (o boolean)

verdadero, falso

1.5 Instrucciones Algortmicas Bsicas


Existen tres instrucciones algortmicas bsicas que son las siguientes

1.5.1 Entrada

Consiste en obtener un dato de un dispositivo de entrada, como el teclado, y almacenarlo en


una variable. En general, la accin de ingresar un dato a una variable se expresa en el
pseudocdigo mediante la palabra LEER, de la siguiente forma:

LEER variable

Por ejemplo, la instruccin:

LEER estatura

Solicita el ingreso de un valor, desde algn dispositivo de entrada (como el teclado), para la
variable estatura.

1.5.2 Salida

Consiste en mostrar o presentar el valor de una variable en un dispositivo de salida, como la


pantalla. En general, la accin de mostrar el valor de una variable se expresa en el
pseudocdigo mediante la palabra IMPRIMIR (o tambin ESCRIBIR) de la siguiente forma:

IMPRIMIR variable

Por ejemplo, la instruccin:

IMPRIMIR importeCompra

4
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

Muestra, en algn dispositivo de salida (como la pantalla), el valor de la variable


importeCompra.

1.5.3 Asignacin

Consiste en asignar a una variable el valor de una expresin. La expresin puede ser una
simple variable, un simple literal o una combinacin de variables, literales y operadores. La
asignacin se expresa en el pseudocdigo de la siguiente forma:

variable = expresin

Donde variable y el valor de expresin deben tener el mismo tipo de dato.

Cuando se asigna un valor ENTERO a una variable REAL, entonces el valor ENTERO se
convertir en REAL antes de almacenarse. As, al asignar el valor ENTERO 25 a una variable
REAL, se almacenar 25.0.

Ejemplo 1.4:- Algoritmo para expresar en centmetros y pulgadas una cantidad dada en
metros.

Esta es una solucin en pseudocdigo del ejemplo 1.2 utilizando conceptos computacionales
de variable, entrada de datos y salida de resultados. La solucin considera que 1 metro = 100
centmetros y que 1 pulgada = 2.54 centmetros.

INICIO
// Declara las variables M, C y P
REAL M, C, P

// Solicita el ingreso de la cantidad en metros


LEER M

// Calcula la cantidad en centmetros y lo asigna a la variable C


C = M*100
// Calcula la cantidad en pulgadas y lo asigna a la variable P
P = C/2.54

// Muestra los valores de las variables C y P


IMPRIMIR C, P
FIN

1.6 Expresiones Aritmticas


Una expresin aritmtica es una combinacin de variables, literales y operadores aritmticos.

1.6.1 Operadores Aritmticos

En la tabla que sigue se muestran los operadores aritmticos que vamos a utilizar.

Tabla 1.1 Operadores aritmticos

Operador Significado Ejemplo

5
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

+ Suma a+b
- Resta a-b
* Multiplicacin a*b
/ Divisin real a/b
Div Divisin entera A div b
%(mod) Residuo o resto a%b
SQR Raiz cuadrada SQR(a)
^, ** Exponenciacin A ^ b

Los operadores aritmticos pueden utilizarse con tipos enteros y reales. Si en una operacin
con dos operandos, ambos operandos son enteros, el resultado es un entero; si alguno de ellos
es real, el resultado es real. As, 15 div 4 es 3 y no 3.75; en cambio, 15.0/4 es 3.75.

1.6.2 Reglas de jerarqua de los operadores aritmticos

Cuando una expresin aritmtica tiene ms de un operador aritmtico, el orden de aplicacin


de los operadores sigue un orden preciso determinado por las reglas de jerarqua de los
operadores aritmticos, que se muestran en la siguiente tabla:

Tabla 1.2 Reglas de jerarqua de los operadores aritmticos

Operador Orden de evaluacin


() Se evalan en primer lugar
^, ** Se evalan en segundo lugar
*, /, mod, div Se evalan en tercer lugar
+, - Se evalan en cuarto lugar

Si existen parntesis anidados, se evala primero la expresin en el par ms interno. Si varios


operadores o parntesis tienen la misma jerarqua, la evaluacin ser de izquierda a derecha.

Ejemplo 1.4:- Cul es el equivalente en pseudocdigo de la siguiente expresin algebraica?

Solucin

e = a/b/c

Como todos los operadores tienen la misma jerarqua, la evaluacin ser de izquierda a
derecha:

Primero, se dividir a entre b.


Segundo, el resultado ya obtenido de a/b se dividir entre c.

Note que el orden de ejecucin esta de acuerdo con la expresin algebraica, por lo que no se
requiere ninguna pareja de parntesis.

Ejemplo 1.5:- Cul es el equivalente en pseudocdigo de la siguiente expresin algebraica?

6
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

Solucin

e = a*b*c/d/e

Como todos los operadores tienen la misma jerarqua, la evaluacin ser de izquierda a
derecha:

Primero, se multiplicar a por b.


Segundo, el resultado ya obtenido de a*b se multiplicar por c.
Tercero, el resultado ya obtenido de a*b*c se dividir entre d.
Cuarto, el resultado ya obtenido de a*b*c/d se dividir entre e.

Note que el orden de ejecucin esta de acuerdo con la expresin algebraica, por lo que no se
requiere ninguna pareja de parntesis.

Ejercicio 1.6:- Cul es el equivalente en pseudocdigo de la siguiente expresin algebraica?

Solucin

e = 4/((a+b)/(c/d)) + v/w/p + 5*m*n*q

Aplicando las reglas de jerarqua de los operadores aritmticos:

Primero, se sumar a ms b.
Segundo, se dividir c entre d.
Tercero, el resultado ya obtenido de a+b se dividir entre el resultado ya obtenido de c/d.
Cuarto, se dividir 4 entre el resultado ya obtenido de ((a+b)/(c/d))
Quinto, se dividir v entre w.
Sexto, se dividir el resultado ya obtenido de v/w entre p.
Sptimo, se multiplicar 5 por m.
Octavo, se multiplicar el resultado ya obtenido de 5*m por n.
Noveno, se multiplicar el resultado ya obtenido de 5*m*n por q.
Dcimo, se sumar el resultado ya obtenido de 4/((a+b)/(c/d)) ms el resultado ya obtenido de
v/w/p.
Undcimo, se sumar el resultado ya obtenido de 4/((a+b)/(c/d)) + v/w/p ms el resultado ya
obtenido de 5*m*n*q.

Se ha utilizado la mnima cantidad posible de parntesis. Pueden usarse parntesis


adicionales, lo que no es un error. Por ejemplo, otra solucin posible que arroja el mismo
resultado final es:

e = (4/((a+b)/(c/d))) + ((v/w)/p) + (5*m*n*q)

Note que usando correctamente las reglas de jerarqua, es posible usar menos parejas de
parntesis.

7
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

1.7 Expresiones Lgicas


Una expresin lgica combina variables, literales, operadores aritmticos, operadores
relacionales y operadores lgicos. Los operadores relacionales y los operadores lgicos se
muestran en las tablas 3.1 y 3.2.

Tabla 1.3 Operadores relacionales

Operador Significado Ejemplo


> mayor que a > b
>= mayor o igual que a >= b
< menor que a < b
<= menor o igual que a <= b
== igual a a == b
!= o <> diferente de a != b

Tabla 1.4 Operadores lgicos

Operador Significado Ejemplo


! (not) no !a
&& (and) y a && b
||(or) a || b

Estructuras de Secuencia
2.1 Concepto
2.2 Ejercicios 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13

2.1 Concepto
Una estructura de control secuencial es aquella en la que las instrucciones estn una a
continuacin de la otra siguiendo una secuencia nica, sin cambios de ruta. La estructura
secuencial tiene una entrada y una salida.

En la Figura 2.1 se muestra el diagrama de flujo y el pseudocdigo de una estructura


secuencial.

Diagrama de Flujo Pseudocdigo

Inicio
.
.
accin 1
accin 2
accin 3
.
.
Fin

8
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

Figura 2.1 Estructura Secuencial: Diagrama de Flujo y Pseudocdigo

2.2 Ejercicios

Ejercicio 1:- Disee un pseudocdigo que halle el rea y el permetro de un rectngulo.


Considere que: area = base x altura y perimetro = 2 x (base+altura).

Algoritmo

INICIO
// Declaracin de variables
REAL base, altura, area, perimetro

// Entrada de datos
LEER base, altura

// Proceso de clculo
area = base*altura
perimetro = 2*(base+altura)

// Salida de resultados
IMPRIMIR area, perimetro
FIN

Ejemplo 2:- Disee un pseudocdigo para convertir una longitud dada en metros a sus
equivalentes en centmetros, pies, pulgadas y yardas. Considere que: 1 metro = 100
centmetros, 1 pulgada = 2.54 centmetros, 1 pie = 12 pulgadas, 1 yarda = 3 pies.

Algoritmo

INICIO
// Declaracin de variables
REAL cmetr,ccent, cpies, cpulg, cyard

// Entrada de datos
LEER cmetr

// Proceso de clculo
ccent = cmetr*100
cpulg = ccent/2.54
cpies = cpulg/12

9
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

cyard = cpies/3

// Salida de resultados
IMPRIMIR cpulg, cpies, cyard
FIN

Ejercicio 3:- Una institucin benfica europea ha recibido tres donaciones en soles, dlares y
marcos. La donacin ser repartida en tres rubros: 60% para la implementacin de un centro
de salud, 40% para un comedor de nios y el resto para gastos administrativos. Disee un
algoritmo que determine el monto en euros que le corresponde a cada rubro. Considere que: 1
dlar = 3.52 soles, 1 dlar = 2.08 marcos, 1 dlar = 1.07 euros.

Algoritmo

INICIO
// Declaracin de variables
REAL c soles, cdolares, c marcos, ceuros, rubro1, rubro2, rubro3

// Entrada de datos
LEER csoles, cdolares, cmarcos

// Proceso de clculo
ceuros = (csoles/3.52 + cdolares + cmarcos/2.08)*1.07
rubro1 = ceuros*0.60
rubro2 = ceuros*0.40
rubro3 = ceuros*0.20

// Salida de resultados
IMPRIMIR rubro1, rubro2, rubro3
FIN

Ejercicio 4:- En una competencia atltica de velocidad el tiempo se mide en minutos,


segundos y centsimas de segundo y, el espacio recorrido se mide en metros. Disee un
algoritmo para determinar la velocidad promedio de un atleta en km/hr. Considere que: 1 hora =
60 minutos, 1 minuto = 60 segundos, 1 segundo = 100 centsimas de segundo, 1 kilmetro =
1000 metros.

Algoritmo

INICIO
// Declaracin de variables
ENTERO tmin, tseg, tcen
REAL thor, velkmhr, espmt, espkm

// Entrada de datos
LEER tmin, tseg, tcen, espmt

// Clculo del tiempo total empleado en horas


thor = tmin/60 + tseg/3600 + tcen/360000

// Clculo del espacio recorrido en kilmetros


espkm = espmt/1000

// Clculo de la velocidad en km/hr


velkmhr = espkm/thor

// Salida de resultados

10
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

IMPRIMIR velkmhr
FIN

Ejercicio 5:- Disee un algoritmo que determine la cifra de las unidades de un nmero natural.

Solucin 1

Anlisis

Puede comprobarse que la cifra de las unidades de un nmero es igual al resto o modulo
(MOD) de la divisin del nmero entre 10. Observe para ello las siguientes divisiones:

3245 10
5 324

768 10
8 76

9 10
9 0

Podemos concluir entonces que:

unidades = numero % 10 o unidades = numero MOD 10

Siendo % (MOD) el operador residuo. Este operador permite obtener el residuo de una divisin
entera, y DIV el cociente de una divisin entera as como / permite obtener el cociente de una
divisin real.

Algoritmo

INICIO
// Declaracin de variables
ENTERO numero, unidades

// Entrada de datos
LEER numero

// Proceso de clculo
unidades = numero % 10

// Salida de resultados
IMPRIMIR unidades
FIN

Solucin 2

Anlisis

El residuo de una divisin entera puede obtenerse tambin sin recurrir al operador % (MOD),
de la siguiente forma:

unidades = numero - (numero DIV 10) * 10

11
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

observe para esto que en la divisin (numero DIV 10) los operandos son enteros por lo que el
cociente ser un entero. As por ejemplo, si numero es igual a 3245, la divisin (numero DIV
10) produce 324, aunque matemticamente sea 324.5; es decir, se descarta la parte decimal.

Algoritmo

INICIO
// Declaracin de variables
ENTERO numero, unidades

// Entrada de datos
LEER numero

// Proceso de clculo
unidades = numero - (numero div 10)*10

// Salida de resultados
IMPRIMIR unidades
FIN

Ejercicio 6:- Disee un algoritmo que determine la suma de las cifras de un nmero entero
positivo de 4 cifras.

Solucin 1

Anlisis

Las cifras pueden ser obtenidas mediante divisiones sucesivas entre 10. Para el efecto,
considere el caso de un nmero N igual a 3245:

3245 10
5 324

unidades = N%10
cociente = N/10 Nota: aqu se toma el operador / como DIV.

324 10
4 32

decenas = cociente%10
cociente = cociente/10

32 10
2 3

centenas = cociente%10
millares = cociente/10

Algoritmo

INICIO
// Declaracin de variables
ENTERO N, suma, millares, centenas, decenas, unidades, resto

// Entrada de datos
LEER N

12
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

// Proceso de clculo
unidades = N%10
cociente = N/10
decenas = cociente%10
cociente = cociente/10
centenas = cociente%10
millares = cociente/10
suma = unidades + decenas + centenas + millares

// Salida de resultados
IMPRIMIR suma
FIN

Solucin 2

Anlisis 2

Considerando que el nmero tiene 4 cifras, las cifras tambin pueden ser obtenidas mediante
divisiones sucesivas entre 1000, 100 y 10. Para el efecto, considere el caso de un nmero N
igual a 3245:

3245 1000
245 3

millares = N/1000
resto = N%1000

245 100
45 2

centenas = resto/100
resto = resto%100

45 10
3 4

decenas = resto/10
unidades = resto%10

Algoritmo

INICIO
// Declaracin de variables
ENTERO N, suma, millares, centenas, decenas, unidades, resto

// Entrada de datos
LEER N

// Proceso de clculo
millares = N/1000
resto = N%1000
centenas = resto/100
resto = resto%100
decenas = resto/10
unidades = resto%10
suma = unidades + decenas + centenas + millares

13
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

// Salida de resultados
IMPRIMIR suma
FIN

Ejercicio 7:- Disee un algoritmo que lea la hora actual del da HH:MM:SS y determine cuantas
horas, minutos y segundos restan para culminar el da.

Algoritmo

INICIO
// Declaracin de variables
ENTERO hor1, min1, seg1, hor2, min2, seg2, segres, resto

// Entrada de datos
LEER hor1, min1, seg1

// Clculo de la cantidad de segundos que restan para culminar el


da
segres = 86400 - (hor1*3600 + min1*60 + seg1)

// Descomposicin de segres en horas, minutos y segundos


hor2 = segres/3600
resto = segres%3600
min2 = resto/60
seg2 = resto%60

// Salida de resultados
IMPRIMIR hor2, min2, seg2
FIN

Ejercicio 8:- Disee un algoritmo para sumar dos tiempos dados en horas, minutos y
segundos.

Algoritmo

INICIO
// Declaracin de variables
ENTERO hor1, min1, seg1, hor2, min2, seg2, hor3, min3, seg3,
totseg, resto

// Entrada de datos
LEER hor1, min1, seg1, hor2, min2, seg2

// Determina la cantidad total de segundos entre los dos tiempos


totseg = (hor1+hor2)*3600 + (min1+min2)*60 + (seg1+seg2)

// Descompone totseg en horas, minutos y segundos


hor3 = totseg/3600
resto = totseg%3600
min3 = resto/60
seg3 = resto%60

// Salida de resultados
IMPRIMIR hor3, min3, seg3
FIN

14
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

Ejercicio 9:- El sueldo neto de un vendedor se calcula como la suma de un sueldo bsico de
S/.250 ms el 12% del monto total vendido. Disee un algoritmo que determine el sueldo neto
de un vendedor sabiendo que hizo tres ventas en el mes.

Algoritmo

INICIO
// Declaracin de variables
REAL venta1, venta2, venta3, ventatot, comision, sueldoneto

// Entrada de datos
LEER venta1, venta2, venta3

// Proceso de clculo
ventatot = venta1 + venta2 + venta3
comision = 0.12*ventatot
sueldoneto = 250 + comision

// Salida de resultados
IMPRIMIR sueldoneto
FIN

Ejercicio 10:- Disee un algoritmo que determine el porcentaje de varones y de mujeres que
hay en un saln de clases.

Algoritmo

INICIO
// Declaracin de variables
REAL porcvar, porcmuj
ENTERO varones, mujeres, total

// Entrada de datos
LEER varones, mujeres

// Proceso de clculo
total = varones + mujeres
porcvar = varones*100.0/total
porcmuj = mujeres*100.0/total

// Salida de resultados
IMPRIMIR porcvar, porcmuj
FIN

Ejercicio 11:- En pases de habla inglesa es comn dar la estatura de una persona como la
suma de una cantidad entera de pies ms una cantidad entera de pulgadas. As, la estatura de
una persona podra ser 3' 2" ( 3 pies 2 pulgadas ). Disee un algoritmo que determine la
estatura de una persona en metros, conociendo su estatura en el formato ingls. Considere
que: 1 pie = 12 plg, 1 plg = 2.54 cm, 1 m = 100 cm.

Algoritmo

INICIO
// Declaracin de variables
REAL estmt
ENTERO cpies, cplgs

15
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

// Entrada de datos
LEER cpies, cplgs

// Proceso de clculo
estmt = (cpies*12 + cplgs)*2.54/100

// Salida de resultados
IMPRIMIR estmt
FIN

Ejercicio 12:- Disee un algoritmo que exprese la capacidad de un disco duro en megabytes,
kilobytes y bytes, conociendo la capacidad del disco en gigabytes. Considere que: 1 kilobyte =
1024 bytes, 1 megabyte = 1024 kilobyte, 1 gigabyte = 1024 megabytes.

Algoritmo

INICIO
// Declaracin de variables
REAL cgigabyte, cmegabyte, ckilobyte, cbyte

// Entrada de datos
LEER cgigabyte

// Proceso de clculo
cmegabyte = cgigabyte*1024
ckilobyte = cmegabyte*1024
cbyte = ckilobyte*1024

// Salida de resultados
IMPRIMIR cmegabyte, ckilobyte, cbyte
FIN

Ejercicio 13:- Disee un algoritmo que intercambie las cifras de las unidades de dos nmeros
naturales.

Algoritmo

INICIO
// Declaracin de variables
ENTERO numero1, numero2, unidades1, unidades2

// Entrada de datos
LEER numero1, numero2

// Determina las cifras de las unidades


unidades1 = n1%10
unidades2 = n2%10

// Intercambia las cifras de las unidades


numero1 = numero1 - unidades1 + unidades2
numero2 = numero2 - unidades2 + unidades1

// Salida de resultados
IMPRIMIR n1, n2
FIN

16
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

Estructuras de Seleccin

3.1 Concepto
3.2 Estructura de Seleccin Simple SI
3.3 Estructura de Seleccin Doble SI-SINO
3.4 Estructura de Seleccin Doble en Cascada SI-SINO-SI
3.5 Estructura de Seleccin Mltiple SEGUN
3.6 Ejercicios 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15

3.1 Introduccin
Las estructuras de seleccin son estructuras de control utilizadas para la toma decisiones
dentro de un programa. A estas estructuras se conocen tambin como estructuras selectivas
o estructuras de decisin y son las siguientes:

La estructura de seleccin simple (SI).


La estructura de seleccin doble (SI-SINO).
La estructura de seleccin mltiple (SEGUN)

3.2 Estructura de Seleccin Simple SI


La estructura de seleccin simple permite ejecutar una accin o un grupo de acciones slo si se
cumple una determinada condicin. As, en el grfico 3.1, si la condicin es verdadera se
ejecuta la accin acciona; en caso contrario, no se hace nada.

Diagrama de Flujo Pseudocdigo (accin simple)

SI( condicion )
acciona

Pseudocdigo (accin compuesta)

SI( condicion ){
acciona1
acciona2
.
.
.
accionan
}

Figura 3.1 Estructura de Seleccin Simple

Por ejemplo, si se desea cambiar el signo de un nmero nicamente en caso que sea negativo,
podemos escribir:

SI( numero < 0 )


numero = -1 * numero

Si el nmero no es negativo, simplemente esta estructura se pasara por alto y se continuara


en la siguiente instruccin despus del SI.

17
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

3.3 Estructura de Seleccin Doble SI - SINO


La estructura de seleccin doble permite seleccionar una ruta de dos rutas posibles en base a
la verdad o falsedad de una condicin. As, en la Figura 3.2, si la condicin es verdadera, se
ejecuta la accin A; en caso contrario, se ejecuta la accin B.

En la Figura 3.2 se muestra el diagrama de flujo y el pseudocdigo de la estructura de


seleccin doble.

Diagrama de Flujo Pseudocdigo (accin simple)

SI( condicion )
acciona
SINO
accionb

Pseudocdigo (accin compuesta)


SI( condicion ){
acciona1
acciona2
.
.
.
accionan
}
SINO{
accionb1
accionb2
.
.
.
accionbn
}

Figura 3.2 Estructura de Seleccin Doble

Por ejemplo, la siguiente estructura de seleccin doble determina si una persona es mayor o
menor de edad:

SI( edad >= 18 )


estado = "Mayor de edad"
SINO
estado = "Menor de edad"

Esto imprime "Mayor de edad" si la persona tiene 18 aos ms e imprime "Menor de edad" si
la persona tiene menos de 18 aos. En cualquiera de los casos, despus de efectuar la
impresin, se ejecutar la primera instruccin que sigue a la estructura SI...SINO.

3.4 Estructura de Seleccin Doble en Cascada SI-SINO-SI


La estructura de seleccin doble en cascada esta formada por varias estructuras de seleccin
doble SI-SINO puestas una a continuacin de otra de forma que a un SI-SINO le sigue otro SI-
SINO.

En la estructura de seleccin doble en cascada, las condiciones se evalan en orden


descendente, pasando de una condicin a otra si la condicin anterior resulta falsa. En el

18
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

momento que se encuentra una condicin verdadera, se efecta la accin correspondiente a


dicha condicin y se corta el resto de la estructura. Si todas las condiciones resultan falsas, se
efecta la accin correspondiente al ltimo SINO, que se considera como la accin por defecto.

En la Figura 3.3 se muestra el diagrama de flujo y el pseudocdigo de la estructura de


seleccin doble en cascada.

Diagrama de Flujo Pseudocdigo ( Forma 1 )

SI( condicion1 )
accion1
SINO
SI( condicion2 )
accion2
SINO
SI( condicion3 )
accion3
.
.
.
SINO
acciondefecto

Pseudocdigo ( Forma 2 )
SI( condicion1 )
accion1
SINO SI( condicion2 )
accion2
SINO SI( condicion3 )
accion3
.
.
.
SINO
acciondefecto

Figura 3.3 Estructura de Seleccin Doble en Cascada

Por ejemplo, la siguiente estructura de seleccin doble en cascada determina el signo de un


nmero entre positivo, negativo o cero:

SI( n > 0 )
signo = "Positivo"
SINO
SI( n < 0 )
signo = "Negativo"
SINO
signo = "Cero"

Usando el otro formato tendramos:

SI( n > 0 )
signo = "Positivo"
SINO SI( n < 0 )
signo = "Negativo"
SINO
signo = "Cero"

19
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

3.5 Estructura de Seleccin Mltiple SEGUN


La estructura de seleccin mltiple SEGUN permite elegir una ruta de entre varias rutas
posibles, en base al valor de una variable que acta como selector. La estructura compara el
valor del selector con las constantes c1, c2, ..., cn en orden descendente. En el momento en
que se encuentre una coincidencia, se ejecuta la accin correspondiente a dicha constante y se
abandona la estructura.

En la Figura 3.4 se muestra el diagrama de flujo y el pseudocdigo de la estructura de


seleccin mltiple.

Diagrama de Flujo Pseudocdigo


SEGUN( selector ){
CASO c1 : accion1
CASO c2 : accion2
CASO c3 : accion3
.
.
.
CASO cn : accionn
DEFECTO : acciondefecto
}

Figura 3.4 Estructura de Seleccin Mltiple

Por ejemplo, la siguiente estructura de seleccin mltiple determina el nombre de la estacin


del ao conociendo el nmero de la estacin (1 para Primavera, 2 para Verano, 3 para Otoo y
4 para Invierno) :

SEGUN(numeroEstacion){
CASO 1 : nombreEstacion = "Primavera"
CASO 2 : nombreEstacion = "Verano"
CASO 3 : nombreEstacion = "Otoo"
DEFECTO : nombreEstacion = "Invierno"
}

3.6 Ejercicios

Ejercicio 1:- En una playa de estacionamiento cobran S/. 2.5 por hora o fraccin. Disee un
algoritmo que determine cuanto debe pagar un cliente por el estacionamiento de su vehculo,
conociendo el tiempo de estacionamiento en horas y minutos.

Algoritmo 1

20
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

INICIO
// Declaracin de variables
ENTERO horas, minutos
REAL pago

// Entrada de datos
LEER horas, minutos

// Si hay alguna fraccin de hora, incrementa las horas a pagar en


una unidad
SI( minutos > 0 )
horas = horas + 1

// Determina el importe a pagar


pago = horas * 2.5

// Salida de resultados
IMPRIMIR pago
FIN

Algoritmo 2

INICIO
// Declaracin de variables
ENTERO horas, minutos, horasPagar
REAL pago

// Entrada de datos
LEER horas, minutos

// Determina el nmero de horas a pagar


SI( minutos > 0 )
horasPagar = horas + 1
SINO
horasPagar = horas

// Determina el importe a pagar


pago = horasPagar * 2.5

// Salida de resultados
IMPRIMIR pago
FIN

Ejercicio 2:- Disee un algoritmo que determine si un nmero es o no es, par positivo.

Algoritmo

INICIO
// Declaracin de variables
REAL numero
CADENA tipoNumero

// Entrada de datos
LEER numero

// Determina si el nmero es o no es, par positivo


SI( (numero%2==0) && (numero>0) )
tipoNumero = "El nmero es par positivo"
SINO

21
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

tipoNumero = "El nmero no es par positivo"

// Salida de resultados
IMPRIMIR tipoNumero
FIN

Ejercicio 3:- Disee un algoritmo que lea tres nmeros y determine el nmero mayor.

Algoritmo

INICIO
// Declaracin de variables
REAL numero1, numero2, numero3, numeroMayor

// Entrada de datos
LEER numero1, numero2, numero3

// Determina el mayor
numeroMayor = numero1
SI( numero2 > numeroMayor )
numeroMayor = numero2
SI( numero3 > numeroMayor )
numeroMayor = numero3

// Salida de resultados
IMPRIMIR mayor
FIN

Ejercicio 4:- Una tienda ha puesto en oferta la venta al por mayor de cierto producto,
ofreciendo un descuento del 15% por la compra de ms de 3 docenas y 10% en caso contrario.
Adems por la compra de ms de 3 docenas se obsequia una unidad del producto por cada
docena en exceso sobre 3. Disee un algoritmo que determine el monto de la compra, el monto
del descuento, el monto a pagar y el nmero de unidades de obsequio por la compra de cierta
cantidad de docenas del producto.

Algoritmo

INICIO
// Declaracin de variables
REAL montopag, montocom, montodes, precio
ENTERO docenas, obsequio

// Entrada de datos
LEER docenas, precio

// Determina el monto de la compra


montocom = docenas*precio

// Determina el monto del descuento y el obsequio


SI( docenas > 3 ){
montodes = 0.15*montocom
obsequio = docenas-3
}
SINO{
montodes = 0.10*montocom
obsequio = 0
}

22
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

// Determina el monto a pagar


montopag = montocom - montodes

// Salida de resultados
IMPRIMIR montocom, montodes, montopag, obsequio
FIN

Ejercicio 5:- Disee un algoritmo que lea un nmero de tres cifras y determine si es o no
capica. Un nmero es capica si es igual al revs del nmero.

Observacin

Como el nmero tiene tres cifras, para ser capica basta con que la cifra de las unidades sea
igual a la cifra de las centenas. Por ejemplo: 353, 878, etc.

Algoritmo

INICIO
// Salida de resultados
ENTERO numero, unidades, centenas
CADENA tipoNumero

// Entrada de datos
LEER numero

// Si el nmero tiene tres cifras...


SI(numero >= 100 && numero <= 999 ){

// Determina la cifra de las unidades y la cifra de las


centenas
unidades = numero%10
centenas = numero/100

// Determina el tipo de nmero entre capica o no capica


SI( unidades == centenas )
tipoNumero = "El nmero es capica"
SINO
tipoNumero = "El nmero no es capica"

// Muestra el tipo de nmero


IMPRIMIR tipoNumero
}
SINO
IMPRIMIR "Ingrese un nmero de tres cifras"
FIN

Ejercicio 6:- Disee un algoritmo que califique el puntaje obtenido en el lanzamiento de tres
dados en base a la cantidad seis obtenidos, de acuerdo a lo siguiente: tres seis, excelente; dos
seis, muy bien; un seis, regular; ningn seis, psimo.

Algoritmo

INICIO
// Declaracin de variables
ENTERO dado1, dado2, dado3
CADENA calificacion

23
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

// Entrada de datos
LEER dado1, dado2, dado3

// Determina la calificacin
SI( dado1 + dado2 + dado3 == 18 )
calificacion = "Excelente"
SINO SI( dado1+dado2 == 12 || dado1+dado3 == 12 || dado2+dado3 ==
12 )
calificacion = "Muy bin"
SINO SI( dado1 == 6 || dado2 == 6 || dado3 == 6 )
calificacion = "Regular"
SINO
calificacion = "Psimo"

// Salida de resultados
IMPRIMIR calificacion
FIN

Ejercicio 7:- Una compaa dedicada al alquiler de automoviles cobra un monto fijo de $30
para los primeros 300 km de recorrido. Para ms de 300 km y hasta 1000 km, cobra un monto
adicional de $ 0.15 por cada kilmetro en exceso sobre 300. Para ms de 1000 km cobra un
monto adicional de $ 0.10 por cada kilmetro en exceso sobre 1000. Los precios ya incluyen el
18% del impuesto general a las ventas, IGV. Disee un algoritmo que determine el monto a
pagar por el alquiler de un vehculo y el monto includo del impuesto.

Algoritmo

INICIO
// Declaracin de variables
REAL kilomrec, montopag, montoigv, montofijo = 30, igv = 0.18

// Entrada de datos
LEER kilomrec

// Determina el monto a pagar


SI( kilomrec <= 300 )
montopag = montofijo
SINO SI( kilomrec <= 1000 )
montopag = montofijo + 0.15*(kilomrec-300)
SINO
montopag = montofijo + 0.15*700 + 0.10*(kilomrec-1000)

// Determina el monto del impuesto


montoigv = igv*montopag /(1+igv)

// Salida de resultados
IMPRIMIR montopag, montoigv
FIN

Ejercicio 8:- Disee un algoritmo que determine quienes son contemporneos entre Juan,
Mario y Pedro.

Algoritmo

INICIO
// Declaracin de variables
ENTERO juan, mario, pedro
CADENA contemporaneos

24
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

// Entrada de datos
LEER juan, mario, pedro

// Determina quienes son contemporneos


SI( juan == mario && mario == pedro )
contemporaneos = "Los tres son contemporneos"
SINO SI( juan == mario )
contemporaneos = "Juan y Mario son contemporneos"
SINO SI( juan == pedro )
contemporaneos = "Juan y Pedro son contemporneos"
SINO SI( mario == pedro )
contemporaneos = "Mario y Pedro son contemporneos"
SINO
contemporaneos = "No hay contemporneos"

// Salida de resultados
IMPRIMIR contemporaneos
FIN

Ejercicio 9:- El promedio de prcticas de un curso se calcula en base a cuatro prcticas


calificadas de las cuales se elimina la nota menor y se promedian las tres notas ms altas.
Disee un algoritmo que determine la nota eliminada y el promedio de prcticas de un
estudiante.

Algoritmo

INICIO
// Declaracin de variables
REAL pc1, pc2, pc3, pc4, pcmenor, promedio

// Entrada de datos
LEER pc1, pc2, pc3, pc4

// Determina la nota menor


pcmenor = pc1
SI( pc2 < pcmenor )
pcmenor = pc2
SI( pc3 < pcmenor )
pcmenor = pc3
SI( pc4 < pcmenor )
pcmenor = pc4

// Determina el promedio
promedio = (pc1 + pc2 + pc3 + pc4 - pcmenor )/3

// Salida de resultados
IMPRIMIR promedio, pcmenor
FIN

Ejercicio 10:- Disee un algoritmo que lea tres longitudes y determine si forman o no un
tringulo. Si es un tringulo determine de que tipo de tringulo se trata entre: equiltero (si tiene
tres lados iguales), issceles (si tiene dos lados iguales) o escaleno (si tiene tres lados
desiguales). Considere que para formar un tringulo se requiere que: "el lado mayor sea menor
que la suma de los otros dos lados".

Algoritmo

25
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

INICIO
// Declaracin de variables
REAL L1, L2, L3, suma
CADENA tipoRectangulo

// Entrada de datos
LEER L1, L2, L3<

// Determina el lado mayor


mayor = L1
SI( L2 > mayor )
mayor = L2
SI( L3 > mayor )
mayor = L3

// Determina la suma de los lados a excepcin del lado mayor


suma = L1 + L2 + L3 - mayor

// Determina de que tipo de tringulo se trata


SI( mayor < suma ){
SI( ( L1 == L2 ) && ( L2 == L3 ) )
tipoRectangulo = "Tringulo equiltero"
SINO SI( ( L1 == L2 ) || ( L1 == L3 ) || ( L2 == L3 ) )
tipoRectangulo = "Tringulo issceles"
SINO
tipoRectangulo = "Tringulo escaleno"
}
SINO
tipoRectangulo = "No es un tringulo"

// Salida de resultados
IMPRIMIR tipoRectangulo
FIN

Ejercicio 11:- Disee un algoritmo que lea tres nmeros enteros y determine el menor valor
positivo. Si los nmeros positivos son iguales, dar como menor a cualquiera de ellos.

Algoritmo

INICIO
// Declaracin de variables
ENTERO a, b, c, menor

// Entrada de datos
LEER a, b, c

// Determina el menor

// Aqu a, b y c podran ser positivos


SI( a > 0 ){
menor = a
SI( b > 0 && b < menor )
menor = b
SI( c > 0 && c < menor )
menor = c
}
// Aqu slo b y c podran ser positivos
SINO SI( b > 0 ){
menor = b

26
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

SI( c > 0 && c < menor )


menor = c
}
// Aqu slo c podran ser positivos
SINO SI( c > 0 ){
menor = c
}
// Guardamos el indicador -1 para saber que no hay positivos
SINO
menor = -1

// Salida de resultados
SI( menor != -1 )
IMPRIMIR menor
SINO
IMPRIMIR "No se ingres ningn nmero positivo"
FIN

Ejercicio 12:- Disee un algoritmo que lea tres nmeros y los imprima de mayor a menor y de
menor a mayor.

Algoritmo

INICIO
// Declaracin de variables
REAL n1, n2, n3, mayor, menor, medio

// Entrada de datos
LEER n1, n2, n3

// Determina el menor
menor = n1
SI( n2 < menor )
menor = n2
SI( n3 < menor )
menor = n3

// Determina el mayor
mayor = n1
SI( n2 > mayor )
mayor = n2
SI( n3 > mayor )
mayor = n3

// Determina el medio
medio = n1+n2+n3-mayor-menor

// Imprime en orden ascendente


IMPRIMIR menor, medio, mayor

// Imprime en orden descendente


IMPRIMIR mayor, medio, menor
FIN

Ejercicio 13:- Disee un algoritmo para obtener el grado de eficiencia de un operario de una
fbrica de tornillos, de acuerdo a las siguientes condiciones, que se le imponen para un perodo
de prueba:

27
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

- Menos de 200 tornillos defectuosos.


- Ms de 10000 tornillos producidos.

El grado de eficiencia se determina de la siguiente manera:

- Si no cumple niguna de las condiciones, grado 5.


- Si slo cumple la primera condicin, grado 6.
- Si slo cumple la segunda condicin, grado 7.
- Si cumple las dos condiciones, grado 8.

Las condiciones impuestas por la fbrica son:

torpro < 200 siendo torpro el nmero de tornillos producidos


tordef > 10000 siendo tordef el nmero de tornillos defectuosos

Algoritmo 1

INICIO
// Declaracin de variables
ENTERO torpro, tordef, grado

// Entrada de datos
LEER torpro, tordef

// Determina el grado de eficiencia


SI( tordef < 200 ){
SI( torpro > 10000 )
grado = 8
SINO
grado = 6
}
SINO{
SI( torpro > 10000 )
grado = 7
SINO
grado = 5
}

// Salida de resultados
IMPRIMIR grado
FIN

Algoritmo 2

INICIO
// Declaracin de variables
ENTERO torpro, tordef, grado

// Entrada de datos
LEER torpro, tordef

// Determina el grado de eficiencia


SI( tordef < 200 && torpro > 10000 )
grado = 8
SINO SI( tordef < 200 )
grado = 6
SINO SI( torpro > 10000 )
grado = 7

28
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

SINO
grado = 5

// Salida de resultados
IMPRIMIR grado
FIN

Ejercicio 14:- Se cuenta con los votos obtenidos por Juan, Pedro y Maria en una eleccin
democrtica a la presidencia de un club. Para ganar la eleccin se debe obtener como mnimo
el 50% de los votos ms 1. En caso que no haya un ganador se repite la eleccin en una
segunda vuelta. Van a la segunda vuelta los dos candidatos que obtengan la ms alta votacin.
Se anula la eleccin en caso de producirse un empate doble por el segundo lugar o un empate
triple. Disee un algoritmo que determine el resultado de la eleccin.

Algoritmo

INICIO
// Declaracin de variables
ENTERO vjuan, vpedro, vmaria, vmingan
CADENA resultado

// Entrada de datos
LEER vjuan, vpedro, vmaria

// Determina la votacin mnima para ganar


vmingan = (vjuan + vpedro + vmaria)/2 + 1

// Determina el resultado de la eleccin


SI( vjuan >= vmingan )
resultado = "Gana Juan "
SINO SI( vpedro >= vmingan )
resultado = "Gana Pedro"
SINO SI( vmaria >= vmingan )
resultado = "Gana Mara"
SINO SI( vpedro > vjuan && vmaria > vjuan )
resultado = "Pasan a la segunda vuelta Pedro y Mara"
SINO SI( vpedro > vmaria && vjuan > vmaria )
resultado = "Pasan a la segunda vuelta Pedro y Juan"
SINO SI( vmaria > vpedro && vjuan > vpedro )
resultado = "Pasan a la segunda vuelta Mara y Juan "
SINO
resultado = "Eleccin anulada"

// Salida de resultados
IMPRIMIR resultado
FIN

Ejercicio 15:- Disee un algoritmo que lea un nmero entero de 3 cifras, y forme el mayor
nmero posible con las cifras del nmero ingresado. El nmero formado debe tener el mismo
signo que el nmero ingresado.

Algoritmo

INICIO
// Declaracin de variables
ENTERO num1, num2, numaux, uni, dec, cen, menor, mayor,medio

29
Efectuado por: Ing. Hugo Moncayo C. Programacin Bsica

// Entrada de datos
LEER num1

// Si el nmero tiene tres cifras...


SI( ( num1 >= 100 && num1 <= 999 ) && ( num1 >= -999 && num1 <=
-100 ) ){

// Guarda el nmero en una variable auxiliar para preservar el


signo
numaux = num1

// Cambia el signo de num1 en caso de ser negativo


SI( num1 < 0 )
num1 = -num1

// Determina las cifras del nmero


cen = num1/100
dec = (num1%100)/10
uni = (num1%100)%10

// Determina la cifra menor


menor = cen
SI( dec < menor )
menor = dec
SI( uni < menor )
menor = uni

// Determina la cifra mayor


mayor = cen
SI( dec > mayor )
mayor = dec
SI( uni > mayor )
mayor = uni

// Determina la cifra del medio


medio = cen+dec+uni-mayor-menor

// Forma el nuevo nmero


SI( numaux > 0 )
num2 = mayor*100 + medio*10 + menor
SINO
num2 = -1*(menor*100 + medio*10 + mayor)

// Imprime el nuevo nmero


IMPRIMIR num2
}
SINO
IMPRIMIR "El nmero no tiene tres cifras"
FIN

Fuente: www.geocities.com/david_ees/algoritmia

30

Vous aimerez peut-être aussi