Introducción a la programación con algoritmos y PSeInt
1. Introducción a la programación
Algoritmos con PSeInt
Facultad de Ingeniería Eléctrica y Electrónica
2. 2 FIEE-UNI
Algoritmo
Un algoritmo es un conjunto de pasos a seguir para resolver un problema.
Problema: Tengo un teléfono fijo y necesito llamar a alguien ¿Cuál es el algoritmo?
Algoritmo expresado en Diagrama de Flujo
Algoritmo expresado en Pseudocódigo
INICIO
Levante el fono
Espere el tono
Marque el número
Espere que contesten
Hable con la persona
Cuelgue el fono
FIN
INICIO
Levante el fono
FIN
Espere el tonoEspere el tono
Marque el número
Espere que contesten
Hable con la persona
Cuelgue el fono
3. 3 FIEE-UNI
Diagrama de flujo
Un diagrama de flujo es la representación gráfica de un algoritmo.
Problema: Se desea que la computadora sume dos números.
Describamos los símbolos:
El símbolo significa que allí empieza el algoritmo, el inicio del diagrama de
flujo.
El símbolo significa el ingreso o entrada de datos a la computadora,
generalmente desde el teclado.
El símbolo significa asignación o proceso, es un cálculo interno que realiza la
computadora, algo que no podemos ver ya que se realiza dentro del
procesador y en la memoria. La flechita indica que el resultado
de la suma se debe almacenar en la variable S.
El símbolo significa la salida de datos de la computadora, generalmente a la
pantalla. Observe que es el mismo símbolo de la entrada de datos.
INICIO
Leer
A, B
S A + B
Escribir
S
INICIO
S A + B
Leer
A, B
Escribir
S
FIN
4. 4 FIEE-UNI
El símbolo significa que allí termina el algoritmo. El final del diagrama de
flujo. Observe que es el mismo símbolo del inicio del algoritmo.
El símbolo índica la dirección que sigue el algoritmo. Obviamente también
existen flechas hacia arriba, derecha e izquierda. Como
convención, si no dibujamos la punta de la flecha, se
supone que va hacia abajo o a la derecha.
Además de estos símbolos existen otros. Sólo mencionare los que usaremos en este curso.
El símbolo Se usa para decisión, para elegir una de dos opciones.
El símbolo Se usa para repetir un conjunto de pasos un determinado número
de veces.
Pseudocódigo
Es la descripción de los pasos a seguir por el algoritmo, pero no gráficamente como en el
diagrama de flujo, si no con palabras claves. Mostremos el pseudocódigo para el ejemplo de la
suma de dos números.
INICIO
Leer A,B
SA+B
Escribir S
FIN
Expliquemos todas esas palabrotas:
INICIO Señala el principio del algoritmo.
Leer A,B Indica que se debe leer los valores de las variables A y B desde el teclado.
S A+B Almacena el resultado de la suma A+B en la variable S.
Escribir S Indica que el valor de la variable S debe escribirse en la pantalla.
FIN Señala el final del algoritmo.
FIN
5. 5 FIEE-UNI
PSeInt
PSeInt (Pseudo Interprete) es un software libre dirigido a estudiantes que se inician en la
programación. Permite diseñar el pseudocódigo, el diagrama de flujo y ejecutarlos.
Realicemos el seudocódigo y diagrama de flujo de la suma de dos números S = A + B.
1. Ejecuta el PSeInt
2. En la pantalla ya aparece el pseudocódigo para Inicio (Proceso) y Fin (FinProceso)
3. Debemos darle un nombre al pseudocódigo. En este caso “suma”.
6. 6 FIEE-UNI
4. Lo primero será leer el valor del primer sumando A. Clic al botón y
aparece el pseudocódigo escrito en pantalla, complete como se indica.
5. Luego tenemos que sumar los valores de A y B y asignarlos a la variable S. Clic al botón
y aparece el pseudocódigo escrito en pantalla, complete como se indica.
6. Por último tenemos que mostrar el resultado S. Clic al botón y aparece
el pseudocódigo escrito en pantalla, complete como se indica.
7. 7 FIEE-UNI
7. Para ejecutar el pseudocódigo presione la tecla F9.
8. Escriba por ejemplo:
7 y presione Enter
8 y presione Enter
Obtendrá el siguiente resultado.
9. Cierre la ventana y ahora veremos el diagrama de flujo. Presione la tecla F7.
* De aquí también se puede diseñar y editar directamente el diagramó de flujo y ejecutarlo.
8. 8 FIEE-UNI
* Si deseamos tener una presentación más amigable, podemos modificar el pseudocódigo tal
como se muestra a continuación.
9. 9 FIEE-UNI
Estructuras secuenciales
Una estructura secuencial es aquella donde los pasos a seguir están en secuencia o sea una
después de otra.
Ejercicios resueltos
1. Escribe un programa que lea dos números e imprima
su suma, diferencia, producto y cociente.
Diagrama de flujo:
Sean A y B los números leídos.
Sean S, D, P y C su suma, diferencia, producto y
cociente respectivamente.
2. Escriba un programa que lea las tres notas
de un alumno e imprima su promedio. El
promedio debe salir redondeado.
Diagrama de flujo:
Sean N1, N2 y N3 las 3 notas y P el promedio.
INICIO
S A + B
D A – B
M A × B
C A ÷ B
Leer
A, B
Escribir
S, D, M, C
FIN
INICIO
P redondear ((N1+N2+N3) ÷ 3)
Leer
N1, N2, N3
Escribir
P
FIN
10. 10 FIEE-UNI
3. Se desea saber qué porcentaje de hombres y mujeres
hay en un grupo de estudiantes. Escriba un programa que
lea cuantos hombres y mujeres hay en el grupo e imprima
su porcentaje.
Diagrama de flujo:
Sea H el número de hombres y PH su porcentaje.
Sea M el número de mujeres y PM su porcentaje.
Sea T el total de alumnos.
4. Diseñe un algoritmo que lea cierta cantidad de dólares
y muestre en pantalla la cantidad de soles y euros
equivalentes. (El tipo de cambio es 1 dólar = 2.80 soles
y 1 euro = 3.75 soles)
Diagrama de flujo:
Sea D la cantidad de dólares y S y E las cantidades en soles
y euros respectivamente.
INICIO
T H + M
PH H ÷ T
PM M ÷T
Leer
H, M
Escribir
PH ×100
PM ×100
FIN
INICIO
S D × 2.80
E S ÷ 3.75
Leer
D
Escribir
S, E
FIN
11. 11 FIEE-UNI
5. Una institución benéfica ha recibido tres
donaciones en soles, dólares y marcos. La
donación será repartida en tres rubros: 50%
para la implementación de un centro de salud,
40% para un comedor de niños y el resto para
gastos administrativos. Escriba un algoritmo
que lea las tres donaciones y determine el
monto en euros que le corresponde a cada
rubro. Considere que el tipo de cambio es: 1
dólar = 2.80 soles, 1 dólar = 1.46 marcos, 1
dólar = 0.75 euros.
Diagrama de flujo:
Sean S, D y M las donaciones en soles, dólares y
marcos respectivamente.
Sean CS, CN, GA las cantidades que
corresponden al centro de salud, comedor de
niños y gastos administrativos respectivamente.
Sea SD la conversión de los soles a dólares, MD
la conversión de los marcos a dólares y sea TD el
total de la donación en dólares. Sea TE el total
en euros.
6. Diseñe un algoritmo que determine la cifra de las
unidades de un número entero positivo.
Diagrama de flujo:
Para resolver este problema debe saber que existe un
operador llamado Mod que devuelve el resto de una
división entera.
Veamos unos ejemplos:
7 Mod 5 devolverá 2. Pues 7 ÷ 5 da 1 y sobra 2
16 Mod 3 devolverá 1. Pues 16 ÷ 3 da 5 y sobra 1
4 Mod 15 devolverá 15. Pues 4 ÷ 15 da 0 y sobra 4
Sea N el número entero positivo.
Sea U la cifra de las unidades.
INICIO
SD S ÷ 2.80
MD M ÷ 1.46
TD SD+D+MD
TE TD × 0.75
CS 0.5 × TE
CN 0.4 × TE
GA 0.1 × TE
Leer
S, D, M
Escribir
CS, CN, GA
FIN
INICIO
U N Mod 10
Leer
N
Escribir
U
FIN
12. 12 FIEE-UNI
7. El sueldo neto de un vendedor se calcula como la
suma de un sueldo básico de S/.250 más el 12%
del monto total vendido. Diseñe un algoritmo que
determine el sueldo neto de un vendedor sabiendo
que hizo tres ventas en el mes.
Diagrama de flujo:
Sea V1, V2 y V3 las tres ventas, sea MV el monto
vendido, SB el sueldo básico y SN el sueldo neto.
8. En países de habla inglesa es común dar la estatura
de una persona como la suma de una cantidad entera
de pies más una cantidad entera de pulgadas. Así, la
estatura de una persona podría ser 3' 2" ( 3 pies 2
pulgadas ). Diseñe un algoritmo que determine la
estatura de una persona en metros, conociendo su
estatura en el formato inglés. Considere que: 1 pie =
12 pulgadas, 1 pulgada = 2.54 cm, 1 m = 100 cm.
Diagrama de flujo:
El plan a seguir será el siguiente:
Leemos primero los pies (Ps) y lo convertimos a pulgadas
(P1).
Luego leemos las pulgadas (P) y la sumamos a las
obtenidas de los pies, así obtenemos el total (T=P1+P) en
pulgadas.
Luego convertimos el total a centímetros (C) y luego a
metros (M).
INICIO
SB 250
MV V1+V2+V3
SN SB + 0.12 × MV
Leer
V1, V2, V3
Escribir
SN
FIN
INICIO
P1 Ps × 12
T P+P1
C T × 2.54
M C ÷ 100
Leer
Ps, P
Escribir
M
FIN
13. 13 FIEE-UNI
Ejercicios propuestos
1. Una tienda que vende panetones regala un panetón por cada 5 panetones que compres.
Escriba un programa que lea la cantidad de panetones que compra un cliente e imprima
cuantos panetones se le regalará y también imprima el total de panetones que se llevará.
2. Escriba un programa que almacene en la variable A el número 2 y en la variable B el número
7 y luego mediante alguna operación intercambie los valores o sea que al final la variable A
debe tener el valor 7 y la variable B el valor 2. Para verificar imprima los valores de A y B
antes y después del intercambio.
3. En un negocio Juan invirtió 50 dólares, María 80 dólares y Timoteo 90 dólares. Si al terminar
el negocio se obtuvo una utilidad de 900 dólares, ¿Cuánto le corresponde a cada uno?
Estructuras condicionales
Una estructura condicional es aquella donde es posible elegir una determinada acción de
acuerdo al resultado de una comparación lógica. Se utiliza para que la computadora tome
decisiones frente a una determinada situación.
Ejercicio resuelto
1. Escribe un programa que
lea dos números y muestre
cual es el mayor.
Diagrama de flujo:
Sean A y B los números leídos
y M el mayor.
A > B
INICIO
Leer
A, B
FIN
Escribir
M
SINO
M AM B
15. 15 FIEE-UNI
Ejercicios propuestos
1. Escriba un programa que divida dos números y si el denominador es cero, que muestre un
mensaje de error.
2. Escriba un programa que lea dos números y muestre el siguiente menú:
1. Hallar el área de un rectángulo.
2. Hallar el área de un triángulo.
Luego escogerá una opción con el teclado ingresando el número 1 o 2 para elegir qué área
desea calcular.
3. Escriba un programa que lea las tres notas de un alumno e imprima si aprobó o no y con qué
promedio. Si aprobó que se muestre además el mensaje “¡Felicitaciones! En la UNI se
aprueba con 10.
4. Escriba un programa que lea dos números e imprima la diferencia del mayor menos el menor.
El programa debe darse cuenta cual es mayor para restar correctamente.
5. Escriba un programa que lea tres números e imprima el mayor.
6. Un obrero gana 1.2 dólar la hora normal y 1.8 dólar la hora extra, si consideramos que las
horas normales de trabajo son de 8 horas, escriba un programa que lea las horas diarias que
trabaja un obrero e imprima cuanto ganó.
Estructuras repetitivas
Una estructura repetitiva es aquella que donde ejecuta un conjunto de acciones un determinado
número de veces.
Ejercicio resuelto
1. Escribe un programa que imprima números desde 10 a 100 de 5 en 5.
16. 16 FIEE-UNI
Ejercicios propuestos
1. Escriba un programa que muestre la siguiente serie:
1, 4, 9, 16,…, 576, 625 y además al final muestre su suma.
2. Escriba un programa que muestre la siguiente suma:
3. Escriba un programa que muestre la siguiente suma:
4. Escriba un programa que lea 10 números e imprima el menor.
5. Escriba un programa que imprima los números primos de 1 hasta 1000.
6. Escriba un programa que genere y muestre aleatoriamente 20 enteros entre -10 y 10 e
imprima cuantos son positivos, negativos y ceros. Sugerencia: utilice la función AZAR.
7. Escriba un programa que muestre la siguiente suma:
8. Encontrar todos números de tres dígitos que sean iguales a la suma de los cubos de sus
dígitos.
17. 17 FIEE-UNI
9. Escriba un programa que imprima todos los números capicúas de 3 dígitos.
10. Escriba un programa que imprima la siguiente serie de números:
1
22
333
4444
55555
666666
7777777
88888888
999999999
11. Escriba un programa que imprima la siguiente serie de números:
999999999
88888888
7777777
666666
55555
4444
333
22
1
Apéndice 1: Operadores
Operador Significado Ejemplo
Relacionales
> Mayor que 3>2
< Menor que 'ABC'<'abc'
= Igual que 4=3
<= Menor o igual que 'a'<='b'
>= Mayor o igual que 4>=5
Lógicos
& ó Y Conjunción (y). (7>4) & (2=1) //falso
| ó O Disyunción (o). (1=1 | 2=1) //verdadero
~ ó NO Negación (no). ~(2<5) //falso
Algebraicos
+ Suma total <- cant1 + cant2
- Resta stock <- disp - venta
* Multiplicación area <- base * altura
/ División porc <- 100 * parte / total
^ Potenciación sup <- 3.41 * radio ^ 2
% ó MOD Módulo (resto de la división entera) resto <- num MOD div
La jerarquía de los operadores matemáticos es igual a la del álgebra, aunque puede alterarse
mediante el uso de paréntesis.
18. 18 FIEE-UNI
Apéndice 2: Funciones
Función Significado
RC(X) Raíz Cuadrada de X
ABS(X) Valor Absoluto de X
LN(X) Logaritmo Natural de X
EXP(X) Función Exponencial de X
SEN(X) Seno de X
COS(X) Coseno de X
ATAN(X) Arcotangente de X
TRUNC(X) Parte entera de X
REDON(X) Entero más cercano a X
AZAR(X) Entero aleatorio entre 0 y X-1
Algunas Observaciones
Se pueden introducir comentarios luego de una instrucción, o en líneas separadas,
mediante el uso de la doble barra ( // ). Todo lo que precede a //, hasta el fin de la línea,
no será tomado en cuenta al interpretar el algoritmo.
Nótese que no puede haber instrucciones fuera del programa, aunque si comentarios.
Las estructuras no secuenciales pueden anidarse. Es decir, pueden contener otras adentro,
pero la estructura contenida debe comenzar y finalizar dentro de la contenedora.
Los identificadores, o nombres de variables, deben constar sólo de letras y números,
comenzando siempre con una letra, y no pueden ser palabras reservadas (como para,
mientras, y, no, etc...)
Las constantes de tipo carácter se escriben entre comillas ( " ).
En las constantes numéricas, el punto ( . ) es el separador decimal.
Las constantes lógicas son Verdadero y Falso.