Algoritmos Resueltos Con Python
Algoritmos Resueltos Con Python
Autores:
Volumen No. 1
Editorial EIDEC
NIT: 900583173-1
ISBN: 978-958-53018-2-5
DOI: https://doi.org/10.34893/6kbn-5a63
Fecha Publicación: 2020-10-28
[email protected]
www.editorialeidec.com
Colombia
Prefacio ...................................................................................................... 5
Índice de Tablas ........................................................................................ 11
Índice de Figuras ....................................................................................... 12
Introducción .............................................................................................. 13
1. Lenguaje de Programación Python ............................................... 15
1.1 Python .................................................................................... 15
a. Pseudocódigos ....................................................................... 36
b. Diagramas.............................................................................. 36
b. Constantes ............................................................................. 39
c. Variables................................................................................ 39
a. Operaciones aritméticas........................................................ 39
a) Propósito general
e) Orientado a Objetos
Python está diseñado para soportar el paradigma de la
programación orientado a objetos (POO), donde todos los
módulos se tratan como entidades que tienen atributos, y
comportamiento. Lo cual, en muchos casos, ayuda a crear
programas de una manera sencilla, además de que los
componentes son reutilizables.
f) Funciones y librerías
El lenguaje trae consigo diversas funciones incluidas en la
carpeta de instalación; muchas de ellas para la interacción con
Cadenas de texto, números, listas, ficheros, sistema operativo,
etc.
Además, en el mercado, existen muchas librerías de terceros
que se pueden importar los cuales podrían facilitar a la
creación de interfaces gráficas como puede ser Tkinter. Si se
desea crear videojuegos, se podría importar alguna otra
librería como Pygame. O si se trata de hacer operaciones con
grandes cantidades de datos se podría importar NumPy. Así
se pueden encontrar infinidad de librerías orientadas a
diferentes campos.
g) Sintaxis clara
Python tiene una sintaxis muy visual (fácil de leer), gracias a
su notación indentada (Agregar márgenes a la izquierda
cuando estos los requieran para identificar estructura de datos)
Tabla 2
Atajos de búsqueda y remplazo
Búsqueda y remplazo
Ctrl+F Buscar
Ctrl+H Remplazar
F3/Shift+F3 Buscar siguiente/anterior
Tabla 3
Atajos de mutiCursor y Selección
MutiCursor y Selección
Tabla 4
Atajos de administración de archivos
e) Soporte de multicursor:
Esta característica es resaltante porque permite editar varias
partes del documento al mismo tiempo.
f) Terminal Integrada:
En muchos lenguajes, y en especial en Python, se inicia
haciendo aplicaciones de consola lo que significa que para
ejecutarlos se necesita de una terminal. El proceso que
normalmente se seguiría sería: salir del editor, ir a la ubicación
del archivo, abrir una terminal y ejecutar el programa.
La ventaja de tener una terminal integrada es que no hace falta
salir del editor para ejecutar el programa en construcción;
además de que se puede invocar con una combinación de
teclado, lo cual puede varías dependiendo de la configuración
g) Personalizable
También es personalizable lo que significa que el editor se
adapta a la exigencia del usuario y no de forma contraria, por
lo que los usuarios pueden cambiar el tema del editor, los
atajos de teclado y las preferencias.
h) Marketplace
Es una tienda de extensiones para VS Code el cual esta
soportado por una comunidad de desarrolladores que suben
sus plugin.
Gracias a su buscador se pueden encontrar infinidad de nueva
funcionalidad para convertir el editor en un gran entorno de
desarrollo. En el Marketplace se pueden conseguir temas
nuevos, por si los que ya vienen instalados no son suficientes,
así como soportes de resaltado para otros lenguajes y ayudas
de autocompletado.
Para acceder al Marketplace basta presionar en el botón
Extensiones que está en la parte izquierda del editor o
presionar la combinación de teclas: Ctrl + Shift + X. Una vez
en la interfaz de Marketplace solo debe escribir el nombre de
algún plugin que se quiera integrar a VS Code.
Si se tiene dudas de lo que una extensión realiza, puede hacer
clic sobre él, posteriormente se abrirá una ventana detallando
toda la información acerca de este.
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 26 / 257
Figura 8. Presentación de Marketplace.
Para guardar el archivo puede hacer uso del menú File seguido de
la opción Save o usar el atajo de teclas Ctrl + S.
Nota: no olvidar el “.py” al final del nombre del archivo, esto es
importante para decirle al sistema operativo que el archivo es un
programa de Python.
El fichero puede ser almacenado en cualquier lugar de su disco
duro, de preferencia en un espacio que sea fácil de hallar para su
futura interacción con el archivo.
Figura 13. Para abrir una terminal en la carpeta donde está ubicado
a. Pseudocódigos
Los pseudocódigos son conjunto de instrucciones del
lenguaje natural, como el castellano o el inglés, un ejemplo
se muestra en la siguiente figura.
b. Diagramas
Es una representación que usa símbolos predefinidos para
diagramar un algoritmo, con el fin de que sea fácil de seguir
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 36 / 257
la lógica, indicando el inicio y el termino de los mismos.
Las más conocidas son el diagrama de flujo y Carta N-S.
S
N1+N2
2.3 Datos
a. Identificadores
Llamaremos identificador al nombre que se les da a las
casillas de memoria en una computadora, lugar donde se
guarda o almacena los valores que se le asigna a las constantes
y variables. El primer carácter que forma un identificador
debe ser una letra (a, b. c, .. , z).
b. Constantes
Las constantes son objetos que no cambian de valor durante
la ejecución de un algoritmo.
c. Variables
Las variables son objetos que pueden cambiar su valor durante
la ejecución del algoritmo.
c) 15/3*(7+(68-15*33+(45^2/5)/3)/2)+19
15/3*(7+(68-15*33+(2025/5)/3)/2)+19
15/3*(7+(68-15*33+ 405 / 3)/2)+19
15/3*(7+(68-495+ 405/ 3)/2)+19
15/3*(7+(68-495+ 135)/2)+19
15/3*(7+(-427+ 135)/2)+19
15/3*(7+ (-292)/2)+19
15/3*(7-146 ) +19
15/3*(-139) +19
5 *-139 +19
-695 + 19
-676
c. Operaciones lógicas
Las operaciones lógicas son las ultimas en realizarse, opera
sobre valores booleanos VERDAERO (1) y FALSO (0), la
siguiente tabla muestra su jerarquía y que operadores se
considera. (Cairó et al., 1993)
texto = input()
#Además input puede tener un parámetro indicando al usuario
#que debe ingresar
#O la simplificada
entero = int( input())
#O de la forma directa
decimal = float( input())
3.3 Escribir
La instrucción Escribir se emplea para poder visualizar
resultados o valores que contiene una variable, también para
mostrar mensajes, por lo general el resultado se aprecia en la
pantalla de la computadora o impreso en papel. Permite:
Mostrar el resultado
Visualizar el resultado
Imprimir el valor resultante
Su empleo dentro de un Pseudocódigo (Algoritmo en
instrucciones) es:
Escribir <Valor Resultante>
#ESCRIBIR O MOSTRAR EN PYTHON
numero = 5
print(numero) #Muestra el valor de 'numero' por pantalla
dia = 10
mes = "Septiembre"
anio = "1990" #Es recomendable usar solo caracteres Ingleses para evitar error
#format()
#Otra manera interesante de imprimir es utilizando la función format()
# "cadena de texto".formta()
Ejercicio 1.
Se desea calcular la distancia recorrida (m) por un móvil que
tiene velocidad constante (m/s) durante un tiempo t (s),
considerar que es un MRU (Movimiento Rectilíneo
Uniforme).
Solución:
Primero se procede a determinar los datos de entrada y la salida
a obtener, obsérvese.
Entrada Identificador
Velocidad Constante (m/s) V
Tiempo (s) T
Salida
Distancia Recorrida (m) D
#Entradas
print("Ingrese la velocidad y el tiempo de la unidad móvil")
#convirtiendo entrada a Entero
V = float( input("Velocidad: ") )
T = int( input("Tiempo: ") )
#Proceso
D = V*T
#Salida
print(D)
-------------------------------------------------------
Ejercicio1: CALCULAR DISTANCIA.
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 54 / 257
-------------------------------------------------------
Ingrese la velocidad y el tiempo de la unidad móvil
Velocidad: 10
Tiempo: 20
200.0
Ejercicio 2.
Se necesita obtener el promedio simple de un estudiante a partir
de sus tres notas parciales N1, N2 y N3.
Solución:
Procederemos a determinar los datos de entrada y la salida a
obtener, obsérvese.
Entrada Identificador
Promedio P
Salida
Primera Nota Parcial N1
Segunda Nota Parcial N2
Tercera Nota Parcial N3
#Entradas
print("Ingrese las 3 notas del alumno N1 , N2, N3")
N1 = int( input("N1: "))
N2 = int( input("N2: "))
N3 = int( input("N3: "))
#Proceso
P = int( (N1+N2+N3)/3 )
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 56 / 257
#Salida
print("\nSalida: ")
print(P)
-------------------------------------------------------
Ejercicio2: PROMEDIO DE 3 NOTAS.
-------------------------------------------------------
Ingrese las 3 notas del alumno N1, N2, N3
N1: 15
N2: 10
N3: 14
Salida:
13
Ejercicio 3.
Se necesita elaborar un algoritmo que solicite el
número de respuestas correctas, incorrectas y en blanco,
correspondientes a postulantes, y muestre su puntaje final
considerando que por cada respuesta correcta tendrá
3 puntos, respuestas incorrectas tendrá -1 y respuestas en
blanco tendrá 0.
Solución:
Procederemos a determinar los datos de entrada y la salida a
obtener, obsérvese.
Entrada Identificador
Puntaje Final PF
Salida
Número de Respuestas Correctas RC
Número de Respuestas Incorrectas RI
Número de Respuestas en Blanco RB
#Entradas
print("Ingrese número de respuestas correctas: ")
RC = int( input())
print("Ingrese número de respuestas incorrectas: ")
RI = int( input())
print("Ingrese número de respuestas en blanco: ")
RB = int( input())
#Proceso
PCR = RC*3
PRI = RI*-1
PRB = RB*0
-------------------------------------------------------
Ejercicio3: PUNTAJE FINAL.
-------------------------------------------------------
Ingrese número de respuestas correctas:
8
Ingrese número de respuestas incorrectas:
6
Ingrese número de respuestas en blanco:
4
El puntaje total es: 18
Ejercicio 4.
Elaborar un algoritmo que permita ingresar el número de
partidos ganados, perdidos y empatados, por ABC club en el
torneo apertura, se debe de mostrar su puntaje total,
teniendo en cuenta que por cada partido ganado obtendrá 3
puntos, empatado 1 punto y perdido 0 puntos.
Solución:
Procederemos a determinar los datos de entrada, la salida y
variables intermedias, obsérvese.
DATOS Identificador
Salida
Puntaje Total PT
Entrada
Número de Partidos Ganados PG
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 60 / 257
Número de Partidos Empatados PE
Número de Partidos Perdidos PP
Intermedio
Puntaje de Partidos Ganados PPG
Puntaje de Partidos Empatados PPE
Puntaje de Partidos Empatados PPP
#Entradas
print("Ingrese número de partidos ganados")
PG = int( input())
print("Ingrese número de partidos empatados")
PE = int( input())
print("Ingrese número de partidos perdidos")
PP = int( input())
#Proceso
PPG = PG*3
PPE = PE*1
PPP = PP*0
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("Puntaje Final: ", PF)
-------------------------------------------------------
Ejercicio4: PUNTAJE TOTAL DE PARTIDOS.
-------------------------------------------------------
Ingrese número de partidos ganados
5
Ingrese número de partidos empatados
3
Ingrese número de partidos perdidos
4
SALIDA:
-------------------------------------------------------
Puntaje Final: 18
Ejercicio 5.
Entrada Identificador
Número de Gigabyte del Disco Duro GB
Número de Megabyte del Disco Duro MG
Salida
Número de Micro Disco 3.5 MD
#Entradas
print("Ingrese GB: ")
GB = float( input())
#Proceso
MG = GB*1024
MD = MG/1.44
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print(MD)
#En caso de Decimal Aproximar al siguiente entero
#Ya que la parte decimal debe ser almacenada en otro DISCO 3.5
print("Numero de Discos necesarios: ", math.ceil(MD))
-------------------------------------------------------
Ejercicio5: NÚMERO DE MICRO DISCOS 3.5 NECESARIOS
-------------------------------------------------------
Ingrese GB:
2
SALIDA:
-------------------------------------------------------
1422.2222222222222
Número de Discos necesarios: 1423
E
J
E
EJE X
Solución:
Un punto en el plano tiene dos coordenadas (X ,Y), entonces el
punto A tendrá sus coordenadas (AX, AY) y el punto B de
manera similar (BX, BY), luego se tiene los siguientes datos:
Entrada Identificador
Coordenada X de A AX
Coordenada Y de A AY
Coordenada X de B BX
Coordenada Y de B BY
Salida
Distancia entre el punto A y B D
#Entradas
print("Ingrese coordenadas del Punto A: ")
AX = float(input("Ax: "))
AY = float(input("Ay: "))
#Proceso
D = ( (AX-BX)**2 + (AY-BY)**2 )**0.5
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("Resultado:", D)
SALIDA:
-------------------------------------------------------
Resultado: 1.4142135623730951
Ejercicio 7.
Elaborar un algoritmo que solicite 2 números y muestre
el promedio de ambos.
Solución.
Determinamos los datos de entrada, salida y procesos.
PSEUDOCÓDIGO
ALGORITMO Promedio
Var
N1, N2, S: Entero
P: Real
Inicio
Leer (N1)
Leer (N2)
S N1 + N2
PS/2
Escribir (P)
Fin
Inicio
Leer (N1)
Leer (N2)
S N1 + N2
PS/2
Escribir (P)
Fin
#Entradas
print("Ingrese notas: ")
N1 = int( input("N1: "))
N2 = int( input("N2: "))
#Proceso
S = N1 + N2
P = S/2
#Salida
print("\nSALIDA: ")
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 72 / 257
print("-------------------------------------------------------")
print("Promedio:", P)
#Salida
-------------------------------------------------------
Ejercicio7: PROMEDIO DE DOS NÚMEROS.
-------------------------------------------------------
Ingrese notas:
N1: 12
N2: 9
SALIDA:
-------------------------------------------------------
Promedio: 10.5
Ejercicio 8.
Construya un diagrama de flujo tal que, dado como datos la base
y la altura de un rectángulo, calcule el perímetro y la superficie
de este.
Solución.
Determinamos los datos de entrada, salida y procesos.
Entrada Identificador
Base del rectángulo BASE
Altura del rectángulo ALTO
Salida
Superficie SUP
Perímetro PER
PSEUDOCODIGO
ALGORITMO Rectángulo
Var
BASE, ALTO: Real
SUP, PER: Real
Inicio
Leer (BASE, ALTO)
SUP BASE * ALTO
PER 2*(BASE+ALTO)
Escribir (SUP, PER)
Fin
#Entradas
print("Ingrese Base y Alto: ")
BASE = float( input("Base: "))
ALTO = float( input("Alto: "))
#Proceso
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("Superficie:", SUP)
print("Perímetro:", PER)
-------------------------------------------------------
Ejercicio8: CALCULAR PERÍMETRO Y SUPERFICIE DEL RECTÁNGULO
-------------------------------------------------------
Ingrese Base y Alto:
Base: 6
Alto: 8
SALIDA:
-------------------------------------------------------
Superficie: 48.0
Perímetro: 28.0
Ejercicio 9.
Construya un diagrama de flujo (DF) que resuelva un problema
que tiene una gasolinera. Los dispensadores de esta registran lo
que “surten” en galones, pero el precio de la gasolina está fijado
en litros. El DF debe calcular e imprimir lo que hay que cobrarle
al cliente.
Solución.
Entrada Identificador
Litros por galón (constante) LITXG
Precio por litro (constante) PRECIOXL
Cantidad surtida CONSU
Salida
PSEUDOCODIGO
ALGORITMO Gasolinera
Const
LITXG = 3.785
PRECIOXL = 4.50
Var
CONSU, TOTAL: Real
Inicio
Leer (CONSU)
TOTAL COSU * LITXG* PRECIOXL
Escribir (TOTAL)
Fin
#Constantes
LITXG = 3.785
PRECIOXL = 4.50
#Entradas
consu = float( input("Ingresar consumo: "))
#Proceso
total = consu*LITXG*PRECIOXL
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("Total:", total)
-------------------------------------------------------
Ejercicio9: GASOLINERA.
-------------------------------------------------------
Ingresar consumo: 4
SALIDA:
-------------------------------------------------------
Total: 68.13
Ejercicio 10.
Construya un DF tal que, dado como datos el radio y la altura de
un cilindro, calcule e imprima el área y su volumen.
Solución.
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 77 / 257
Entrada Identificador
Valor de PI (constante) PI
Radio RADIO
Altura del cilindro ALTO
Salida
Volumen del cilindro VOL
Área del cilindro ARE
PSEUDOCODIGO
ALGORITMO Cilindro
Const
PI = 3.1416
Var
RADIO, ALTO, VOL, AREA: Real
Inicio
Leer (RADIO, ALTO)
VOL PI * RADIO^2 * ALTO
ARE 2*PI * RADIO (ALTO+RADIO)
Escribir (VOL, ARE)
Fin
#Constantes
PI = 3.1416
#Entradas
print("Ingrese Radio y Alto: ")
radio = float( input("Radio: "))
alto = float ( input("Alto: "))
#Proceso
vol = PI * radio**2 * alto
are = 2*PI*radio*(radio + alto)
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("Volumen:", vol)
print("área:", are)
-------------------------------------------------------
Ejercicio10: CALCULAR ÁREA Y VOLUMEN DEL CILINDRO.
-------------------------------------------------------
Ingrese Radio y Alto:
Radio: 3
Alto: 4
SALIDA:
-------------------------------------------------------
Volumen: 113.0976
área: 131.9468
Algoritmo esfera
Var
v,r: real //volumen=v y radio=r
Const
Pi=3.1416
Inicio
Escribir Ingrese el radio:
Leer (r)
v 4/3*Pi*r^3
Escribir ("El volumen de la esfera es: ",v)
Fin
Diagrama de Flujo.
Inicio
“Ingrese el radio:”
v← 4/3*Pi*r^3
Fin
#Constantes
PI = 3.1416
#Entradas
r = float( input("Ingrese Radio: "))
#Proceso
v = 4/3 * PI * r**3
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("El volumen de la esfera es:", v)
-------------------------------------------------------
Complemento1: CALCULAR VOLUMEN DE LA ESFERA.
-------------------------------------------------------
Ingrese Radio: 1
SALIDA:
-------------------------------------------------------
El volumen de la esfera es: 4.1888
Algoritmo perimetro
Var
p,h: real //h=altura y p=perímetro
Inicio
Escribir ("Ingrese altura del triángulo:")
Leer (h)
p h/3^0.5)
Escribir ("El perímetro del triangulo será:",p)
Fin
Diagrama de Flujo.
Inicio
"Ingrese altura
del triángulo:"
p←3*(2*h/3^0.5)
Fin
#Entradas
print("Ingrese altura del triángulo: ")
h = float( input())
#Proceso
p = 3*(2*h)/3**0.5
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("El perímetro del triángulo será:", p)
-------------------------------------------------------
Complemento2: PERÍMETRO TRIANGULO EQUILÁTERO.
-------------------------------------------------------
Ingrese altura del triángulo:
4
SALIDA:
-------------------------------------------------------
El perímetro del triángulo será: 13.85640646055102
Diagrama de Flujo.
Inicio
d s /do
e s /eu
Fin
#Constantes
EU = 3.84
DO = 2.28
#Entradas
print("Ingrese la cantidad de soles:")
s = float( input())
#Proceso
d = s/DO
e = s/EU
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("En", s, "soles hay ", e, "euros")
print("En", s, "soles hay ", d, "dólares")
-------------------------------------------------------
Complemento3: CAMBIOS DE SOLES a EUROS y DÓLARES
-------------------------------------------------------
Ingrese la cantidad de soles:
50
SALIDA:
-------------------------------------------------------
En 50.0 soles hay 13.020833333333334 euros
En 50.0 soles hay 21.92982456140351 dólares
Algoritmo velocidad
Var
v,t,d: real //v=velocidad, t=tiempo y d=distancia
Inicio
Escribir ("Ingrese el tiempo en segundos:")
Leer (t)
Escribir ("Ingrese la distancia en metros:")
Leer (d)
v d/t
Escribir ("La velocidad es: ",v, m/s
Fin
Diagrama de Flujo.
Inicio
"Ingrese el tiempo en
segundos:"
"Ingrese la distancia en
metros:"
v d/t
Fin
#Entradas
print("Ingrese el tiempo en segundos:")
t = float( input())
print("Ingrese la distancia en metros:")
d = float( input())
#Proceso
v = d/t
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("La velocidad es:", v, "m/s")
-------------------------------------------------------
Complemento4: CALCULAR LA VELOCIDAD DE UN MÓVIL.
-------------------------------------------------------
Ingrese el tiempo en segundos:
10
Ingrese la distancia en metros:
200
SALIDA:
-------------------------------------------------------
La velocidad es: 20.0 m/s
Algoritmo precio_artículo
Var
p,c: real
d:entero
Inicio
Escribir ("Ingrese costo unitario del artículo:")
Leer (c)
Escribir ("Ingrese el número de docenas:")
Leer (d)
p d*12*c
Escribir ("El precio del artículo es: ",p)
Fin
"Ingrese costo
unitario del
artículo:"
"Ingrese el
número de
docenas:"
p d*12*c
Fin
#Entradas
print("Ingrese costo unitario del artículo:")
c = float( input())
print("Ingrese el número de docenas:")
d = int( input())
#Proceso
p = d*12 * c
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("El precio del artículo es:", p)
-------------------------------------------------------
Complemento5: CALCULAR MONTO A PAGAR.
-------------------------------------------------------
Ingrese costo unitario del artículo:
1.5
Ingrese el número de docenas:
5
SALIDA:
-------------------------------------------------------
El precio del artículo es: 90.0
Diagrama de Flujo.
Inicio
"Ingrese número
de millas:"
k←m*mi
Fin
#Entradas
print("Ingrese número de millas:")
m = float( input())
#Proceso
k = m*MI
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print(m, "millas tiene", k, "kilómetros")
-------------------------------------------------------
Complemento6: Millas a Kilómetros.
-------------------------------------------------------
Ingrese número de millas:
30
SALIDA:
-------------------------------------------------------
30.0 millas tiene 48.28032 kilómetros
Diagrama de Flujo.
Inicio
b,c
alfa
a (b^2+c^2-2*b*c*cos(alfa*Pi/180))^0.5
Fin
#Librerias
import math #Necearia para fórmulas matemáticas
#Constantes
PI = 3.1416
#Entradas
print("Ingrese lados del triángulo:")
b = float( input("Lado b: "))
c = float( input("Lado c: "))
print("Ingrese el ángulo en grados sexagesimales:")
alfa = float( input())
#Proceso
#fórmula para calcular lado 'a' con alfa transformado
a = ( b**2 + c**2 - 2*b*c * math.cos( alfa*PI/180 ) )**0.50
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("El lado a es:", a)
-------------------------------------------------------
Complemento7: CALCULAR EL TERCER LADO DEL TRIANGULO
-------------------------------------------------------
Ingrese lados del triángulo:
Lado b: 4
Lado c: 3
Ingrese el ángulo en grados sexagesimales:
90
SALIDA:
Pseudocódigo.
va = velocidad del cuerpo “a”
vb = velocidad del cuerpo “b”
te = tiempo de encuentro
D = distancia que separa “a” de “b”
Algoritmo edad
Var
D,va,vb,te: real
Inicio
Escribir ("Ingrese las velocidades:")
Leer (va,vb)
Escribir ("Ingrese la distancia que los separa:")
Leer (D)
te← D/(va+vb)
Escribir ("Los cuerpos se encontraran en:",te," segundos")
Fin
Inicio
va,vb
te← D/(va+vb)
Fin
#Entradas
print("Ingrese las velocidades:")
va = float( input("Va: "))
vb = float( input("Vb: "))
print("Ingrese la distancia que los separa:")
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 95 / 257
D = float( input())
#Proceso
te = D/(va+vb)
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("Los cuerpos se encontraran en:", te, "segundos")
-------------------------------------------------------
Complemento8: TIEMPO DE ENCUENTRO.
-------------------------------------------------------
Ingrese las velocidades:
Va: 5
Vb: 4
Ingrese la distancia que los separa:
50
SALIDA:
-------------------------------------------------------
Los cuerpos se encontrarán en: 5.555555555555555 segundos
Pseudocódigo.
x = ángulo en radianes
sex = ángulo en grados sexagesimales
cen = ángulo en grados centesimales
Diagrama de Flujo.
Inicio
"Ingrese ángulo en
radianes:"
sex x*180/Pi
cen x*200/Pi
Fin
#Constantes
PI = 3.1416
#Entradas
print("Ingrese ángulo en radianes:")
x = float( input())
sex = x*180/PI
cen = x*200/PI
#Proceso
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("En sexagesimales es:", sex)
print("En centesimales es:", cen)
-------------------------------------------------------
Complemento9: RADIANES a SEXAGESIMALES y CENTESIMALES
-------------------------------------------------------
Ingrese ángulo en radianes:
1
SALIDA:
-------------------------------------------------------
En sexagesimales es: 57.29564553093965
En centesimales es: 63.66182836771072
Algoritmo distancia
Var
dis,x1,y1,z1,x2,y2,z2: real
Inicio
Escribir ("Ingrese valores de los puntos x1 ,y1 y z1")
Leer (x1,y1,z1)
Escribir ("Ingrese valores de los puntos x2,y2 y z2")
Leer (x2, y2, z2)
dis ((z2-z1)^2+(y2-y1)^2+(x2-x1)^2)^0.5
Escribir ("La distancia es: ",dis)
Fin
Inicio
"Ingrese valores de
los puntos x1 y x2:"
x1,x2
"Ingrese valores de
los puntos y1 y y2:"
y1,y2
dis← ((y2-y1)+(x2-x1))^0.5
Fin
#Entradas
print("Ingrese valores del punto A(x1, y1 y z1): ")
x1 = float( input("x1: "))
y1 = float( input("y1: "))
z1 = float( input("z1: "))
#Proceso
dis = ( (z2-z1)**2 + (y2-y1)**2 + (x2-x1)**2 )**0.5
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("La distancia es:", dis)
-------------------------------------------------------
Complemento10: DISTANCIA DE DOS PUNTOS en 3D.
-------------------------------------------------------
Ingrese valores del punto A(x1, y1 y z1):
x1: 0
y1: 0
z1: 0
Ingrese valores del punto B(x2, y2 y z2):
x2: 1
y2: 1
z2: 0
SALIDA:
-------------------------------------------------------
La distancia es: 1.4142135623730951
Donde :
CONDICION expresa la
condición o conjunto de
condiciones a evaluar.
Falso
OPERACIÓN expresa la NO
CONDICION
operación o conjunto de
operaciones que se van
a realizar si la condición
Verdadero
resulta verdadera. SI
OPERACION
Entrada Identificador
Numero entero NUM
Salida
Mensaje impreso “Numero pequeño”
#Entradas
print("Ingrese un número: ")
x = int( input())
#Proceso
if x < 100 :
-------------------------------------------------------
EVALUAR SI NUMERO MENOR A 100.
-------------------------------------------------------
Ingrese un número:
40
Número Pequeño
Entrada Identificador
Numero X x
Numero Y y
Salida
Mensaje impreso “El menor es” #
#Entradas
print("Ingrese 2 números: ")
x = int( input("Primer Número: "))
y = int( input("Segundo Número: "))
#Salida
-------------------------------------------------------
Ejemplo2: IMPRIMIR EL MENOR DE DOS NÚMEROS.
-------------------------------------------------------
Ingrese 2 números:
Primer Número: 10
Segundo Número: 20
SALIDA:
-------------------------------------------------------
El menor es: 10
Si <selector> igual
<Valor1>: <operación 1>
<valor2>: <operación 2>
.................................
#para acceder a los elementos se hace uso de la funcion .get del diccionario
# diccionario.get(AlgunArgumento, mensaje por Defecto)
Ejercicio 11
Construir un diagrama de flujo, tal que dado como dato la
calificación de un alumno, escriba “aprobado” en caso de que esa
calificación sea mayor a 10.
Solución.
Dato: CAL (variable real que representa la calificación del
alumno).
ALGORITMO Resultado
Var
CAL: Real
Inicio
Leer (CAL)
Si CAL > 10 entonces
Escribir (“Aprobado”)
Fin_si
Fin
#Entradas
CAL = float( input("Ingrese Calificación: "))
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
if CAL > 10 :
print("Aprobado")
-------------------------------------------------------
Ejercicio11: VERIFICAR SI UN ALUMNO ESTA APROBADO
-------------------------------------------------------
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 113 / 257
Ingrese Calificación: 12
SALIDA:
-------------------------------------------------------
Aprobado
Ejercicio 12
Solución.
PSEUDOCODIGO
ALGORITMO Resultado
Var
SUE: Real
Inicio
Leer (SUE)
Si SUE < 1000 entonces
AUM SUE * 0.15
SUE SUE + AUM
Fin_si
Escribir (SUE )
Fin
#Entradas
SUE = float( input("Ingrese Sueldo: "))
#Proceso
if SUE < 1000:
AUM = SUE*0.15
SUE = SUE + AUM
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("El sueldo es:", SUE)
-------------------------------------------------------
Ejercicio12: SUELDO A PERCIBIR
-------------------------------------------------------
Ingrese Sueldo: 500
SALIDA:
-------------------------------------------------------
El sueldo es: 575.0
SALIDA:
-------------------------------------------------------
El sueldo es: 1200.0
Ejercicio 13
PSEUDOCODIGO
ALGORITMO Resultado
Var
año: Entero
Inicio
Escribir (“Ingrese año”)
Leer (año)
Si (año mod 4) Y (año mod 100 <> 0) O (año mod 400 = 0) entonces
Escribir (“El año es BISIESTO”)
sino
Escribir (“El año NO es BISIESTO”)
Fin_si
Fin
#Entradas
anio = int( input("Ingrese año: "))
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
if (anio % 400 == 0) or (anio % 4 == 0) and (anio % 100 != 0):
print("El año es BISIESTO")
else:
print("El año NO es BISIESTO")
SALIDA:
-------------------------------------------------------
El año es BISIESTO
SALIDA:
-------------------------------------------------------
El año NO es BISIESTO
Ejercicio 14
100 * V si _ NUM 1
si _ NUM 2
100 ^ V
VAL
100 / V si _ NUM 3
0 para _ cualquier _ otro _ valor
Solución.
Datos: NUM, V
Donde:
NUM: Es una variable de tipo entero, representa el
tipo de calculo que se va a realizar.
V: Variable de tipo entero que se utiliza para el
cálculo de la función.
#Entradas
print("Ingrese valores: ")
NUM = int( input("Tipo de Calculo: "))
V = int( input("Ingrese V: "))
#Proceso
#usando un diccionario
Funcion = {
1 : 100*V,
2 : 100**V,
3 : 100/V
}
#DICCIONARIO.get(ElementoABuscarEnDiccionario, PorDefecto)
#porDefecto: En caso de que el elemnto no se encuentre.
VAL = Funcion.get(NUM, 0)
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print(VAL)
-------------------------------------------------------
Ejercicio14: FUNCIÓN.
-------------------------------------------------------
Ingrese valores:
Tipo de Calculo: 1
Ingrese V: 3
SALIDA:
-------------------------------------------------------
300
Ingrese valores:
Tipo de Calculo: 2
Ingrese V: 3
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 120 / 257
SALIDA:
-------------------------------------------------------
1000000
Ingrese valores:
Tipo de Calculo: 3
Ingrese V: 3
SALIDA:
-------------------------------------------------------
33.333333333333336
Ingrese valores:
Tipo de Calculo: 4
Ingrese V: 3
SALIDA:
-------------------------------------------------------
0
Ejercicio 15
Se desea leer por teclado un número comprendido entre 0 y 10
(inclusive) y se desea visualizar si el número es par o impar.
Solución.
Dato: NUM variable de tipo entero, almacena el número
leído por teclado.
#Entradas
NUM = int( input("Ingrese número:" ))
#Proceso
#Usando un diccionario
par_Impar = {
1 : 'Impar',
3 : 'Impar',
5 : 'Impar',
7 : 'Impar',
9 : 'Impar',
2 : 'Par',
4 : 'Par',
6 : 'Par',
8 : 'Par',
10 : 'Par'
}
-------------------------------------------------------
Ejercicio15: PAR O IMPAR.
-------------------------------------------------------
Ingrese número: 10
SALIDA:
-------------------------------------------------------
Par
Ingrese número: 5
SALIDA:
-------------------------------------------------------
Impar
Ingrese número: 11
SALIDA:
-------------------------------------------------------
Numero fuera de Rango
Ejercicio 16
#Entradas
A = int( input("Ingrese A: "))
B = int( input("Ingrese B: "))
C = int( input("Ingrese C: "))
print("\nSALIDA: ")
print("-------------------------------------------------------")
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 124 / 257
#Proceso
if A > B :
if A > C:
if B > C:
print(A, B, C)
else:
print(A,C,B)
else:
print(C,A,B)
else:
if B > C :
if A > C :
print(B,A,C)
else:
print(B,C,A)
else:
print(C,B,A)
-------------------------------------------------------
Ejercicio16: DETERMINA LA SALIDA.
-------------------------------------------------------
Ingrese A: 2
Ingrese B: 90
Ingrese C: 45
SALIDA:
-------------------------------------------------------
90 45 2
Diagrama de Flujo.
Inicio
Inicio
"Ingrese
"Ingrese tres
tres
números:"
números:"
a,b,c
a,b,c
V F
V a+b=c
a+b=c F
"IGUALES"
"IGUALES" "DISTINTOS"
"DISTINTOS"
Fin
Fin
#Entradas
print("Ingrese tres números")
a = int( input("Ingrese a: "))
b = int( input("Ingrese b: "))
c = int( input("Ingrese c: "))
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
if a + b == c :
print("IGUALES")
else:
print("DISTINTOS")
-------------------------------------------------------
Complemento1: IGUALES O DISTINTOS.
-------------------------------------------------------
Ingrese tres números
Ingrese a: 10
Ingrese b: 5
Ingrese c: 15
SALIDA:
-------------------------------------------------------
IGUALES
Diagrama de Flujo.
Inicio
"Ingrese dos
números:"
a,b
V F
a<b
"Los números son: ",a," , ",b "Los números son: ",b," , ",a
Fin
#Entradas
print("Ingrese dos números: ")
a = int( input("Ingrese a: "))
b = int( input("Ingrese b: "))
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
if a < b:
print("Los números son:", a, b)
else:
print("Los números son:", b, a)
-------------------------------------------------------
Complemento2: MOSTRAR DE MENOR A MAYOR.
-------------------------------------------------------
Ingrese dos números:
Ingrese a: 50
Ingrese b: 40
SALIDA:
-------------------------------------------------------
Los números son: 40 50
"Ingrese el costo
del artículo:"
costo
"Ingrese la marca:"
V F
costo>=2000 y m="NOSY"
pa← costo*0.90
pt← pa*0.95
V F
costo>=2000 y m<>"NOSY"
pt← costo*0.90
V F
costo<2000 y m=NOSY"
pa← costo*0.95
pt← pa+pa*0.20
V F
costo<2000 y m<>NOSY"
pt← costo*1.20
Fin
#Entradas
print("Ingrese el Costo del artículo: ")
costo = float( input())
#Proceso
if costo >= 2000 and m == "NOSY" :
pa = costo*0.90
pt = pa*0.95
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("Usted pagara:", pt, "soles")
SALIDA:
-------------------------------------------------------
Usted pagara: 171.0 soles
4. Algoritmo, que dada una fecha del año 2000 (representada por
el día, el mes y el año en formato numérico dd/mm/aaaa),
calcule el día siguiente. Asuma que el mes tiene 30 días.
Pseudocódigo.
Algoritmo fecha
Var
a,m,d:entero
Inicio
Escribir ("Ingrese la fecha")
Escribir ("Año")
Leer (a)
Escribir ("Mes")
Leer (m)
Escribir ("Día")
Leer (d)
si d>0 y d<30 Entonces
Escribir (d+1)
Escribir (m)
Escribir (a)
Sino
si m>0 y m<12 Entonces
Escribir ("1")
Escribir (m+1)
Escribir (a)
Sino
Escribir ("1")
Escribir ("1")
Escribir (a+1)
Fin Si
Fin Si
Fin
Inicio
"Ingrese la fecha:"
Año”
"Mes"
"Día"
V F
d>0 y d<30
d+1,m,a V F
si m>0 y m<12
1,m+1,a 1,1,a+1
Fin
#Entradas
print("Ingrese la fecha: ")
a = int( input("Año: "))
m = int( input("Mes: "))
d = int( input("Día: "))
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
if d > 0 and d < 30 :
print("Mañana es:", d+1, m, a)
else:
if m > 0 and m < 12 :
print("Mañana es:", 1, m+1, a)
else:
print("Mañana es:", 1, 1, a+1)
-------------------------------------------------------
Complemento4: CALCULA EL DÍA SIGUIENTE.
-------------------------------------------------------
Ingrese la fecha:
Año: 2019
Mes: 11
Día: 24
SALIDA:
-------------------------------------------------------
Mañana es: 25 11 2019
Pseudocódigo.
Algoritmo tiempodeenc
Var
v1,v2,t,d:real
Inicio
Escribir ("Ingrese las velocidad de ambos vehículos")
Leer (v1)
Leer (v2)
Escribir ("Ingrese la distancia que los separa")
Leer (d)
si v1>0 y v2>0 Entonces
t← d/(v1+v2)
Escribir (t)
Sino
Escribir ("ERROR")
Fin Si
Fin
Inicio
v1,v2
V F
v1>0 y v2>0
t← d/(v1+v2)
"ERROR"
Fin
#Proceso
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
-------------------------------------------------------
Complemento5: CALCULAR TIEMPO DE ENCUENTRO.
-------------------------------------------------------
Ingrese las velocidades de ambos vehículos:
V1: 5.5
V2: 8
Ingrese la distancia que los separa:
Distancia: 400
SALIDA:
-------------------------------------------------------
29.62962962962963 segundos
Diagrama de Flujo.
Inicio
a,b,c
V F
a<0
r← a*b*c r← a+b+c
Fin
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 139 / 257
El código del complementario 6 en Python es el siguiente:
# -*- coding: utf-8 -*-
#Entradas
print("Ingrese los 3 números:")
a = int( input("a: "))
b = int( input("b: "))
c = int( input("c: "))
#Proceso
if a < 0 :
r = a*b*c
else:
r=a+b+c
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print(r)
-------------------------------------------------------
Complemento6: NÚMEROS, EL PRIMERO DECIDE.
-------------------------------------------------------
Ingrese los 3 números:
a: 4
b: 5
c: 3
SALIDA:
-------------------------------------------------------
12
Inicio
a,b,c
d← b^2 – 4*a*c
V F
d>0
Fin
El código del complementario 7 en Python es el siguiente:
# -*- coding: utf-8 -*-
#Entradas
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 142 / 257
print("Ingrese valores de la ecuación cuadrática:")
a = int( input("a: "))
b = int( input("b: "))
c = int( input("c: "))
#Proceso
d = b**2 - 4*a*c
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
if d > 0 :
x1 = ( (-b) + d**0.5 )/ 2*a
x2 = ( (-b) - d**0.5 )/ 2*a
print("Raíces reales:", x1, x2)
else:
print("Raíces Irracionales")
-------------------------------------------------------
Complemento7: RAÍCES DE ECUACIÓN CUADRÁTICA.
-------------------------------------------------------
Ingrese valores de la ecuación cuadrática:
a: 1
b: 5
c: 6
SALIDA:
-------------------------------------------------------
Raíces reales: -2.0 -3.0
Algoritmo menu
Var
opc:entero
A,R,l,C:real
Const
Pi=3.1416
Inicio
Escribir ("Ingrese valores del menú:”)
Escribir ("1: Área del triángulo:”)
Escribir ("2: Área del círculo:”)
Leer (Opc)
Si Opc igual
1: Escribir (“Área del Triángulo”)
Escribir (“Ingrese el lado del triángulo”)
Leer (l)
A← ((3 ^ 0,5)/ 4) * l ^ 2
Escribir (“El área del triángulo es:”, A)
2: Escribir(“Área del Circulo”)
Escribir (“Ingrese el radio del círculo”)
Leer (R)
C← Pi * R ^ 2
Escribir (“El área del círculo es:”, C)
Otro: “error”
Fin selector
Fin
Opc
1 Opc igual
2 Otro
l R
A← ((3 ^ 0,5)/ 4) * l ^ 2 C← Pi * R ^ 2
Fin
if Condicion1:
#Se ejecuta si la Condicion1 es Verdadera
Declaraciones
elif Condicion2:
#Constantes
PI = 3.1416
#Entradas
print("Ingrese valores del menú:")
print("1: Área del triángulo:")
print("2: Área del círculo:")
#Proceso
if Opc == 1 :
print("Área del Triángulo")
print("Ingrese el lado del triángulo")
L = float( input("L: "))
A = ( (3 ** 0.5)/ 4) * L**2
print("\nEl área del triángulo es:", A)
elif Opc == 2:
print("Área del Círculo")
print("Ingrese el radio del círculo")
R = float( input("R: "))
C = PI * R**2
print("\nEl área del círculo es:", C)
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 146 / 257
else:
print("\nerror")
-------------------------------------------------------
Complemento8: TRIÁNGULO O CÍRCULO
-------------------------------------------------------
Ingrese valores del menú:
1: Área del triángulo:
2: Área del círculo:
Opc: 2
Área del Círculo
Ingrese el radio del círculo
R: 3
Para i vi hasta vf
Operaciones
Pseudocódigo
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 148 / 257
Desde <var índice> <vi> hasta <vf>
<operaciones>
…..
…..
fin desde
Donde:
Var = variable índice de control
Vi = Valor inicial
Vf = Valor final
no
condición
si
operaciones
Operacion
es
no Condic
si
ión
Repetir
<Operaciones>
…
…
hasta que <condición>
while condicion:
#Se ejecuta mientras la condición es verdadera
#Ejemplo
i=1
while i < 10:
#Se ejecuta si i es menor a 10
print(i)
i = i + 1 #contador
#Para evitar crear un loop infinito
#debemos hacer que la condición sea FALSA en algún
#momento. (será falsa cuando i sea igual a 10)
#FOR
#El FOR de Python no es el clásico que existe en C++ o
#java, es un FOREACH.
#Significa que necesita de una lista para iterar
#Itera tantos elementos tenga la lista.
lista = [1,3,5,2,4,7,8,6,9]
#este for imprime pro pantalla los valores de la lista
for elemento in lista:
#En cada iteración ELEMENTO toma un valor de LISTA
print(elemento)
#range(inicio, fin)
range(1, 10) #Crea una lista desde 1 hasta 9: [1,2,3,4,5,6,7,8,9]
#FOR Y RANGE
#Se usa en situaciones en el que queremos
# que un for itere cierta cantidad de veces.
#Funcionamiento
# Range crea una LISTA de acuerdo con sus parámetros
# En cada iteración i toma un valor de la LISTA
for i in range(10):
print(i)
#BREAK
#Sentencia que permite Salir de un Bucle
for i in range(100):
print(i)
if i == 4:
#Cuando i tenga el valor de 4
break #Se rompe el bucle
#CONTINUE
#Permite detener la iteración actual y
#continuar con la siguiente
for i in range(10)
if i == 5:
#cuando i tome el valor de 5
#Saltará a la siguiente iteración
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 152 / 257
#por lo tanto no se imprimirá su valor
continue
print(i)
Algoritmo interés
Var
I, j, M : entero
C : real
Inicio
Mientras (C<0) o (I<=0) o (I>=100) o (M <=0)
Escribir (“Introduce el capital, el interés y el tiempo apropiados ”)
Leer (C, I, M)
Fin Mientras
#Inicialización
C = -1
I=0
M=0
#Entradas
while (C<0) or (I<=0) or (I>=100) or (M <=0):
print("Introduce el capital, el interés y el tiempo apropiados")
C = int( input("Capital: "))
I = int( input("Interés: "))
M = int( input("Tiempo en Años: "))
#Proceso
for i in range(M):
C = C*( 1 + I/100)
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print ("Tienes", C , "soles")
-------------------------------------------------------
Ejercicio1: CALCULA EL INTERÉS.
-------------------------------------------------------
Introduce el capital, el interés y el tiempo apropiados
Capital: 1000
Interés: 10
Tiempo en Años: 5
SALIDA:
-------------------------------------------------------
Tienes 1610.5100000000002 soles
Algoritmo Divisores
Var
Numero, i, suma : entero
Inicio
Escribir (“Introduce un número, y para acabar uno negativo”)
Leer (Número)
Mientras (numero > 0)
Suma 0
Desde i=1 hasta numero div 2
Si (Numero mod i =0) entonces
suma suma + i
Fin si
Fin desde
suma suma + numero
Escribir (“La suma de los divisores del número es “, suma )
Leer (Numero)
Fin mientras
Fin
for i in range(1,numero+1):
if numero % i == 0 :
Suma = Suma + i
#Salida
print("\nSALIDA: ")
print("----------------------------------------------------")
print("La suma de los divisores del número es:", Suma, "\n" )
SALIDA:
-------------------------------------------------------
La suma de los divisores del número es: 18
Algoritmo n_primos
Const
primero = 1
limite = 1000
Var
Cont, i, j : entero
primo : booleano
Inicio
Cont 0
Desde i= primero hasta limite
primo verdadero
j2
mientras (i > j) y (primo = verdadero)
Si (i mod j = 0) entonces
primo falso
sino
jj+1
Fin si
Fin mientras
Si primo = verdadero entonces
escribir (i, “ es primo”)
Cont Cont + 1
Fin si
Fin desde
Escribir (“Entre “, primero, ” y “ , limite, ” hay “,
Cont, ” nº primos”)
Fin
if primo == True :
print(i, "es primo.")
Cont = Cont + 1
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("Entre", primero, "y" , limite, "hay", Cont, "nº primos")
-------------------------------------------------------
Ejercicio3: NÚMEROS PRIMOS ENTRE 1 Y 1000.
-------------------------------------------------------
2 es primo.
3 es primo.
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 160 / 257
5 es primo.
7 es primo.
11 es primo.
13 es primo.
.
..
977 es primo.
983 es primo.
991 es primo.
997 es primo.
SALIDA:
-------------------------------------------------------
Entre 2 y 1000 hay 168 nº primos
#Constantes
#Entradas
print("Introduce un número: ")
N = int( input())
while N > 0 :
RESTO = N % 10
print(RESTO)
-------------------------------------------------------
Ejercicio4: DETERMINAR LA SALIDA.
-------------------------------------------------------
Introduce un número:
456871
1
7
8
6
5
4
#Inicialización
e=1
num = 1
den = 1
i=1
#Sería un caso de Do While
#PERO: Python no tiene implementado la sintaxis Do While
#por lo tanto habrá que ingeniárselas
#DO
num = x**i
den = den*i
i=i+1
e = e + num/den
#WHILE
while not (num/den < 0.000001):
num = x**i
den = den*i
i=i+1
e = e + num/den
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("e elevado al", x, "es: ", e)
-------------------------------------------------------
Ejercicio5: CALCULANDO e^x.
-------------------------------------------------------
Ingrese el valor de X:
2
SALIDA:
-------------------------------------------------------
e elevado al 2 es: 7.3890560703259105
-------------------------------------------------------
Ejercicio6: DETERMINAR VALOR Y RANGO MAYOR A 300.
-------------------------------------------------------
SALIDA:
-------------------------------------------------------
El rango es: 8 y el resultado es: 34
Pseudocódigo.
Algoritmo numeros_pares
Var
c,x,num: entero
Inicio
c←0
Escribir ( Ingrese 100 números:”)
Para x←1 hasta 100 salto 1
Leer (num)
Si num mod 2 = 0 entonces
c←c+1
Fin si
Fin para
Escribir ( Hay ,c,” números pares :”)
Fin
Inicio
Inicio
Ingrese
Ingrese 100
100 números:”
números:”
c←0
c←0
Para
Para xx ←1
←1 hasta
hasta 100
100
num
num
FF
num
num mod
mod 2=0
2=0
V
V
c←
c← c+1
c+1
xx
Hay”
Hay” ,c,”
,c,” números
números pares
pares :”
:”
Fin
Fin
#Inicializar
c=0
#Proceso
print("Ingrese 10 números: ")
if num % 2 == 0 :
c=c+1
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("Hay", c, "números pares")
-------------------------------------------------------
Complemento1: CONTAR NÚMEROS PARES.
-------------------------------------------------------
Ingrese 10 números:
Ingrese Número: 2
Ingrese Número: 3
Ingrese Número: 4
Ingrese Número: 7
Ingrese Número: 4
Ingrese Número: 5
Ingrese Número: 7
Ingrese Número: 8
Ingrese Número: 4
Ingrese Número: 5
SALIDA:
-------------------------------------------------------
Hay 5 números pares
Pseudocódigo.
Algoritmo cubos_pares
Var
c,i: entero
Inicio
Para i←2 hasta 20 salto 2
c← i^3
Fin para
Escribir ( El cubo de ",i," es: ",c )
Fin
Diagrama de Flujo.
Inicio
c←i^3
Fin
#Proceso
start = 2
stop = 20
step = 2 #incrementar de 2 en 2
for i in range(start, stop+1, step):
c = i**3
-------------------------------------------------------
Complemento2: PARES Y SUS CUBOS.
-------------------------------------------------------
El cubo de 2 es 8
El cubo de 4 es 64
El cubo de 6 es 216
El cubo de 8 es 512
El cubo de 10 es 1000
El cubo de 12 es 1728
El cubo de 14 es 2744
El cubo de 16 es 4096
El cubo de 18 es 5832
El cubo de 20 es 8000
Pseudocódigo.
Algoritmo cubos_primos
Var
i,a,b,co: entero
Inicio
b←2
Para i←2 hasta 29
co← 0
Para a←2 hasta b/2
Si b mod a = 0 entonces
co←co+1
a← b
Fin si
Fin para
Si co = 0 entonces
Escribir ("El cubo de ", b," es: ", b^3)
Fin si
b← b+1
Fin para
Fin
Inicio
b←2
co←0
b mod a = 0
co←co+1
a←b
co=0
b←b+1
Fin
#Inicializar
b=2
#Proceso
for i in range(1, 29):
co = 0
if co == 0 :
print("El cubo de", b," es: ", b**3)
b=b+1
-------------------------------------------------------
Complemento3: CUBO DE UN NÚMERO PRIMO.
-------------------------------------------------------
El cubo de 2 es: 8
El cubo de 3 es: 27
El cubo de 4 es: 64
El cubo de 5 es: 125
El cubo de 7 es: 343
El cubo de 11 es: 1331
El cubo de 13 es: 2197
El cubo de 17 es: 4913
El cubo de 19 es: 6859
El cubo de 23 es: 12167
El cubo de 29 es: 24389
Pseudocódigo.
Algoritmo serie
Var
s,ser,a,n: entero
Inicio
Escribir ( Ingrese el número de términos:”)
Leer (n)
s←5
ser←0
Para a←1 hasta n
s← s+5
ser←ser+s
Fin para
Escribir ( La suma de la serie es: ",ser)
Fin
Inicio
Ingrese el número
de términos:”
s←5
ser←0
s← s+5
ser← ser+s
La suma de la serie
es:”,ser
Fin
#Proceso
for a in range(1, n+1):
s=s+5
ser = ser + s
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("La suma de la serie es:", ser)
-------------------------------------------------------
Complemento4: CALCULAR SUMA DE SERIE.
-------------------------------------------------------
Ingrese el número de términos:
3
SALIDA:
-------------------------------------------------------
La suma de la serie es: 45
Algoritmo suma
Var
S,X,N:
Inicio
S← 0
Escribir ("Ingrese numero de términos:")
Leer (N)
Para X←1 hasta N
Si X mod 2=0 entonces
S← S-(1/X)
sino
S← S+(1/X)
Fin Si
Fin para
Escribir ("La suma será:",S)
Fin
Diagrama de Flujo.
Inicio
S←0
V F
X mod 2=0
S← S-(1/X) S← S+(1/X)
Fin
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 177 / 257
El código del complementario 5 en Python es el siguiente:
#Inicializar
S=0
#Entradas
print ("Ingrese número de términos:")
N = int( input())
#Proceso
for x in range(1, N+1):
if x % 2 == 0 :
S = S - (1/x)
else:
S = S + (1/x)
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print ("La suma será:", S)
-------------------------------------------------------
Complemento5: CALCULAR SUMA DE SERIE 2.
-------------------------------------------------------
Ingrese número de términos:
20
SALIDA:
-------------------------------------------------------
La suma será: 0.6687714031754279
Pseudocódigo.
Algoritmo invertido
Var
aux,aux2,i,n : entero
Inicio
aux← 0
aux2← 0
i← n
Escribir ("Ingrese un numero:")
Leer (n)
Para i←10 hasta n
aux← i mod 10
i← i div 10
aux2← aux2*10+aux
Fin Para
aux2← aux2*10+i
Escribir ("El numero invertido sera:",aux2)
Fin
aux← 0
aux2← 0
i← n
Ingrese un número:”
aux← i mod 10
i← i div 10
aux2← aux2*10+aux
aux2← aux2*10+i
Fin
#Inicializar
aux = 0
aux2 = 0
#Entradas
print("Ingrese un número: ")
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 180 / 257
n = int( input())
#Proceso
i = 10
#TODO: REPORTAR COMO ERROR
while i <= n:
aux = n%10
n = n // 10
aux2 = aux2*10 + aux
aux2 = aux2*10 + n
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("El número invertido será:", aux2)
-------------------------------------------------------
Complemento6: INVERTIR NÚMERO.
-------------------------------------------------------
Ingrese un número:
37368
SALIDA:
-------------------------------------------------------
El número invertido será: 86373
Pseudocódigo.
Algoritmo primo
Var
con,n : entero
Inicio
Escribir ("Ingrese un numero:")
leer (n)
Para con← 2 hasta n-1
Si n mod con <>0 entonces
con← con+1
Fin Si
Fin para
si con=n Entonces
escribir (n, " Es un numero primo")
sino
escribir (n, " No es un numero primo")
Fin Si
Fin
con← 2
Ingrese un número:”
V F
n mod con <> 0
con← con+1
con
V F
con=n
Fin
#Entradas
print("Ingrese un número:")
n = int( input())
#Proceso
for i in range(2, n):
if n % i == 0 :
con = con + 1
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
if con == 0:
print (n, " Es un número primo")
else:
print (n, " No es un número primo")
-------------------------------------------------------
Complemento7: DETERMINAR SI UN NÚMERO ES PRIMO.
-------------------------------------------------------
Ingrese un número:
23
SALIDA:
-------------------------------------------------------
23 Es un número primo
Ingrese un número:
27
SALIDA:
-------------------------------------------------------
27 No es un número primo
Pseudocódigo.
Algoritmo ceros
Var
c,num,i,n : entero
Inicio
Escribir ("Ingrese la cantidad de números a evaluar:")
Leer (n)
c← 0
Escribir ("Ingrese los números:")
Para i← 1 hasta n
Leer (num)
Si num=0 Entonces
c← c+1
FinSi
Fin para
Escribir ("Hay ", c, " números ceros")
Fin
"Ingrese la cantidad de
números a evaluar:"
c← 0
Para i← 1 hasta n
V F
num=0
c← c+1
Fin
#Entradas
print ("Ingrese la cantidad de números a evaluar:")
n = int( input())
#Inicializar
c=0
#Proceso
for i in range(1, n+1):
num = int( input("Ingrese número: "))
if num == 0 :
c = c+1
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print ("Hay ", c, " números ceros")
-------------------------------------------------------
Complemento8: NÚMERO DE CEROS ENTRE NÚMEROS.
-------------------------------------------------------
Ingrese la cantidad de números a evaluar:
10
Ingrese número: 1
Ingrese número: 0
Ingrese número: 5
Ingrese número: 0
Ingrese número: 8
Ingrese número: 0
Ingrese número: 4
Ingrese número: 5
Ingrese número: 6
Ingrese número: 0
Pseudocódigo.
Algoritmo mayme
Var
may,men,lim,i,n : entero
Inicio
Escribir ("Ingrese la cantidad de números a comparar:")
leer (lim)
Escribir ("Ingrese los números: ")
leer (n)
men← n
may← n
Para i← 1 hasta lim
leer (n)
si n<men Entonces
men← n
Sino
si n> may Entonces
may← n
FinSi
Fin Si
Fin Para
Escribir ("El numero menor es :" ,men)
Escribir ("El numero mayor es :", may)
Fin
"Ingrese la cantidad de
números a comparar:"
lim
men← n
may← n
V F
n<men
V
n> may
men← n may← n
Fin
#Entradas
print ("Ingrese la cantidad de números a comparar:")
lim = int( input())
print ("Ingrese los números: ")
n = int( input("Ingrese número: "))
#Proceso
men = n
may = n
if n < men :
men = n
else:
if n > may :
may = n
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print ("El número menor es :" ,men)
print ("El número mayor es :", may)
-------------------------------------------------------
Complemento9: DETERMINA EL MAYOR Y MENOR.
-------------------------------------------------------
Ingrese la cantidad de números a comparar:
5
Ingrese los números:
Ingrese número: 4
Ingrese número: 20
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 190 / 257
Ingrese número: 35
Ingrese número: 4
Ingrese número: 3
SALIDA:
-------------------------------------------------------
El número menor es: 3
El número mayor es: 35
Pseudocódigo.
Algoritmo caracter
Var
can,m,a,i : entero
Inicio
ca← 0
Escribir ("Ingrese 50 caracteres:")
Para i←1 hasta 50
Leer (m)
Si m ="a" Entonces
ca← ca+1
Fin Si
Fin Para
Escribir ("En 50 caracteres hay ",ca," caracteres a")
Fin
ca← 0
"Ingrese 50 caracteres:"
F
m ="a"
V
ca← ca+1
Fin
#Inicializar
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 192 / 257
ca = 0
#Entradas
numCar = 10
print("Ingrese", numCar, "caracteres: ")
#Proceso
for i in range(0, numCar):
m = input("Ingrese Caracter: ")
if m == "a" :
ca = ca + 1
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print ("En", numCar, "caracteres hay", ca, "caracteres 'a'")
#Salida
-------------------------------------------------------
Complemento10: CUANTAS VECES SE REPITE "a".
-------------------------------------------------------
Ingrese 10 caracteres:
Ingrese Caracter: a
Ingrese Caracter: p
Ingrese Caracter: l
Ingrese Caracter: a
Ingrese Caracter: c
Ingrese Caracter: a
Ingrese Caracter: b
Ingrese Caracter: l
Ingrese Caracter: e
Ingrese Caracter: s
SALIDA:
-------------------------------------------------------
En 10 caracteres hay 3 caracteres 'a'
Pseudocódigo.
Algoritmo par
Var
i,c,n:entero
Inicio
i← 1
c← 0
Mientras i<=100 hacer
Leer (n)
Si n mod 2=0 Entonces
c← c+1
Fin Si
i← i+1
Fin Mientras
Escribir ("En 100 números enteros hay ",c," números pares")
Fin
Diagrama de Flujo.
Inicio
c← 0
i← 1
Si No
i<=100
F
n mod 2=0
c← c+1
i← i+1
Fin
#Inicializar
i=1
c=0
numEntradas = 10
#proceso
print("Ingrese", numEntradas, "Números:")
while i <= numEntradas:
n = int( input("Ingrese número: "))
if n%2 == 0 :
c=c+1
i=i+1
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print ("En", numEntradas, "números enteros hay", c, "números pares")
-------------------------------------------------------
Complemento11: CONTAR CUANTOS SON PARES.
-------------------------------------------------------
Ingrese 10 Números:
Ingrese número: 5
Ingrese número: 20
Ingrese número: 35
Ingrese número: 11
Ingrese número: 16
Ingrese número: 4
Ingrese número: 80
Ingrese número: 21
Ingrese número: 23
Ingrese número: 50
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 195 / 257
SALIDA:
-------------------------------------------------------
En 10 números enteros hay 5 números pares
Pseudocódigo.
Algoritmo cupar
Var
i,p:entero
Inicio
i← 2
Mientras i<=20 Hacer
Si i mod 2=0 Entonces
p← i^3
Escribir ("El cubo de ",i," es: ",p)
Fin Si
i← i+1
Fin Mientras
Fin
Inicio
i← 2
Si No
i<=20
i mod 2=0
F
V
p← i^3
i← i+1
Fin
#Entradas
#Inicializar
i=2
#Proceso
while i <= 20 :
if i%2 == 0 :
p = i**3
print("El cubo de", i, "es:", p)
i=i+1
-------------------------------------------------------
Complemento12: IMPRIMIR PARES Y SUS CUBOS.
-------------------------------------------------------
El cubo de 2 es: 8
El cubo de 4 es: 64
El cubo de 6 es: 216
El cubo de 8 es: 512
El cubo de 10 es: 1000
El cubo de 12 es: 1728
El cubo de 14 es: 2744
El cubo de 16 es: 4096
El cubo de 18 es: 5832
El cubo de 20 es: 8000
Pseudocódigo.
Algoritmo sueldopo
Var
c,i,ce : entero
smayor,sueldo: real
Inicio
Escribir ("Ingrese la cantidad de empleados:")
Leer (ce)
i← 1
smayor← 0
Escribir ("Ingrese los sueldos:")
Mientras i<=ce Hacer
Leer (sueldo)
Si (sueldo>smayor) Entonces
smayor← sueldo
c← i
FinSi
i← i+1
Fin Mientras
Escribir "El empleado numero ",c," tiene el mayor sueldo que es: ",smayor
Fin
Inicio
"Ingrese la cantidad de
empleados:"
ce
i← 1
smayor← 0
"Ingrese los
sueldos:"
Si No
i<=ce
sueldo
F
sueldo>smayor
smayor← sueldo
c← i
i← i+1
Fin
#Entradas
print ("Ingrese la cantidad de empleados:")
ce = int( input())
#Inicializar
i=1
smayor = 0.0 #Inicializando Real
#Proceso
print("Ingrese los sueldos: ")
while i <= ce :
sueldo = float( input("Ingrese sueldo {0}: ".format(i)))
i=i+1
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print ("El empleado numero ", c, "tiene el mayor sueldo que es:", smayor)
-------------------------------------------------------
Complemento14: EMPLEADOS, SUELDO MAYOR.
-------------------------------------------------------
Ingrese la cantidad de empleados:
5
Ingrese los sueldos:
Ingrese sueldo 1: 1000
Ingrese sueldo 2: 800
Ingrese sueldo 3: 1500
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 201 / 257
Ingrese sueldo 4: 900
Ingrese sueldo 5: 850
SALIDA:
-------------------------------------------------------
El empleado numero 3 tiene el mayor sueldo que es: 1500.0
1 2 3 4 5 6 7 8 9 10 11 12
8000
1991
1992
1993 X
1994
1995
Ventas [1993,3]
#LISTA
# En Python existen diferentes estructuras de datos
# El que más se parece a vectores y Matrices son las
# LISTAS.
#LISTA VACÍA
#Una lista vacía se declara usando los caracteres '[]'
miLista = []
#FUNCIÓN APPEND
miLista.append("Leche")
miLista.append("Pan")
miLista.append("Queso")
# Ejemplo:
print(miLista[0]) #Accede al primer elemento
print(miLista[1]) #Accede al segundo elemento
print(miLista[2]) #Accede al tercer elemento
#FUNCIÓN SORT
#Las litas tienen muchas funciones para interactuar con ellas
# Una de ellas es SORT.
# SORT: ordena los elementos de manera ascendente
numeros = [5, 1, 3, 2, 4]
numeros.sort() #lista ordenada: [1,2,3,4,5]
print(numero)
#FUNCIÓN LEN
# LEN es una función de Python muy dinámica, que permite
# conocer el tamaño de su parámetro: Este puede ser Listas,
# o cadenas de texto u otra estructura de datos.
numeros = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
tamNumeros = len(numeros) #tamNumeros es igual a 10
print(tamNumeros)
#Matrices en Python
# Para simular una matriz en Python Se puede aprovechar la
# capacidad de almacenar listas dentro de otras listas.
#Se tiene los clientes: sus nombres y teléfonos
clienteA = ["Juan","123-234"]
clienteB = ["Pedro","345-746"]
Agenda = []
Agenda.append(clienteA)
Agenda.append(clienteB)
print(Agenda) #Agenda: [["Juan","123-234"], ["Pedro","345-746"]]
#ACCEDER A SUS DATOS
# Se debe hacer uso de los índices, como en otros lenguajes.
# El conteo de índices inicia en 0
Vectores
1. Lectura de 20 elementos enteros de un vector denominado
alfa.
APLICANDO DESDE APLICANDO MIENTRAS
i=i+1
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print(F) #Imprimimos la lista
-------------------------------------------------------
Vector1: LECTURA DE N ELEMENTOS ENTEROS.
-------------------------------------------------------
Ingrese Número de elementos a Ingresar:
10
Ingrese Elemento: 5
Ingrese Elemento: 7
Ingrese Elemento: 8
Ingrese Elemento: 9
Ingrese Elemento: 10
Ingrese Elemento: 3
Ingrese Elemento: 4
Ingrese Elemento: 2
Ingrese Elemento: 23
Ingrese Elemento: 29
SALIDA:
#Inicializar
Suma = 0
Media = 0.0
C=0
Temp = [] #Lista vacía para almacenar temperaturas
#Entradas
print("Ingrese cantidad de Temperaturas: ")
N = int( input())
#Proceso
for i in range(N):
temperatura = float( input("Ingrese Temperatura {0}: ".format(i + 1) ))
Temp.append(temperatura)
Suma = Suma + Temp[i]
#Tambien se puede usar esta línea En lugar de la anterior:
#Suma = Suma + temperatura
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print ("La media es ", Media)
print ("Total de temperaturas >= a la media es", C)
SALIDA:
-------------------------------------------------------
La media es 14.5
Total de temperaturas >= a la media es 3
#Entradas
print("Ingrese número de elementos del vector")
N = int( input())
#Proceso
if 1 <= N and N <= 200:
for i in range(1,N+1):
elemento = int( input("Ingrese Entero {0}: ".format(i)))
VEC.append(elemento)
i=0
-------------------------------------------------------
Vector3: ORDENAR Y QUITAR ELEMENTOS REPETIDOS DEL VECTOR.
-------------------------------------------------------
Ingrese número de elementos del vector
5
Ingrese Entero 1: 12
Ingrese Entero 2: 13
Ingrese Entero 3: 12
Ingrese Entero 4: 5
Ingrese Entero 5: 4
Matrices
1. Realizar el Pseudocódigo para sumar 2 matrices.
Sean 2 matrices A y B ambas bidimensionales, para que se
puedan sumar deben poseer el mismo número de filas y
columnas, cada elemento de la matriz resultante será la suma
de los correspondientes elementos de las matrices A y B.
C(i , j) = A (i , j) + B (i , j)
La matriz resultante es “C”.
#Inicializar
A = []
B = []
C = []
#Entradas
print ("Ingrese dimensión de la matriz,máximo 100")
S = int( input("Número de Filas: "))
R = int( input("Número Columnas: "))
#Proceso
for i in range(S):
A.append( [] ) #Agregamos una i fila vacía en A
B.append( [] ) #Agregamos una i fila vacía en B
C.append( [] ) #Agregamos una i fila vacía en C
for j in range(R):
A[i].append( int( input("A{}{}: ".format(i+1,j+1))))
B[i].append( int( input("B{}{}: ".format(i+1,j+1))))
C[i].append( A[i][j] + B[i][j])
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print(A)
print(B)
print(C)
SALIDA:
-------------------------------------------------------
Matriz A: [[1, 2], [3, 4], [5, 6]]
Matriz B: [[2, 3], [4, 5], [6, 7]]
Matriz C: [[3, 5], [7, 9], [11, 13]]
for j in range(N):
elemento = input( "A{}{}: ".format(i, j) )
A[i].append( int(elemento))
BAND = True
i=0
while i < N and BAND == True:
j=0
while j < i-1 and BAND == True:
if A[i][j] == A[j][i]:
j=j+1
else:
BAND = False
i=i+1
if BAND:
print("SI ES SIMÉTRICA")
else:
print("NO ES SIMÉTRICA")
else:
print("La dimensión de la matriz no es correcta.")
Donde:
M es una variable entera que representa el número de años
entre 1 y 30 inclusive.
N es una variable entera que representa el número de
sucursales de la empresa entre 1 y 35 inclusive.
MONTO i j Variable real (matriz de 2 dimensiones)
representa lo que se vendió en el año I en la sucursal J
La información que necesitan los directores de la empresa
para tomar decisiones es la siguiente:
a. Sucursal que más ha vendido en los M años.
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 221 / 257
b. Promedio de ventas por año.
c. Año con mayor promedio de ventas.
MAX 0
Desde J 1 hasta N hacer
SUMA 0
Desde I 1 hasta M hacer
SUMA SUMA + MONTO (I , J)
Fin desde
Si SUMA > MAX entonces
MAX SUMA
SUC J
Fin si
Fin desde
Escribir (“Sucursal que mas vendió”, SUC )
MAX 0
Desde I 1 hasta M hacer
SUMA 0
Desde J 1 hasta N hacer
SUMA SUMA + MONTO (I , J)
Fin desde
PROM SUMA / N
Escribir (“Promedio de ventas del año” , I, “ es “, PROM)
Si PROM > MAX entonces
MAX PROM
AÑO I
Fin si
Fin desde
Escribir (“Año con mayor promedio”, AÑO )
Fin
#Inicializar
MONTO = [] #Se crea una lista vacía
#Entradas
print("Ingrese número de sucursales y años: ")
N = int( input("Número de Sucursales: "))
M = int( input("Número de Años: "))
for i in range(M):
MONTO.append( [] ) #Se Agrega la fila i
for j in range(N):
print("Ingrese ventas de la sucursal", j+1 , "en el año", i+1 )
venta = int( input())
MONTO[i].append(venta)
#Proceso
print("\nSUCURSAL CON MÁS VENTAS: ")
print("-------------------------------------------------------")
MAX = 0
for j in range(N):
SUMA = 0
for i in range(M):
SUMA = SUMA + MONTO[i][j]
for j in range(N):
SUMA = SUMA + MONTO[i][j]
PROM = SUMA/N
print ("Promedio de ventas del año" , i+1, "es", PROM)
-------------------------------------------------------
Matriz3: SUCURSALES DE UNA EMPRESA.
-------------------------------------------------------
Ingrese número de sucursales y años:
Número de Sucursales: 2
Número de Años: 3
Ingrese ventas de la sucursal 1 en el año 1
300
Ingrese ventas de la sucursal 2 en el año 1
400
Ingrese ventas de la sucursal 1 en el año 2
250
Ingrese ventas de la sucursal 2 en el año 2
350
Ingrese ventas de la sucursal 1 en el año 3
350
Ingrese ventas de la sucursal 2 en el año 3
500
Pseudocódigo.
Algoritmo productoescalar
Var
V1: array(1..3) de entero
V2: array(1..3) de entero
sum,x,y,z,i,P:entero
Inicio
Para i←1 hasta 3
Leer (V1(i))
Fin para
Para i←1 hasta 3
Leer (V2(i))
Fin para
sum← 0
Para i←1 hasta 3
P=V1(i)*V2(i)
sum←sum+P
Fin para
Escribir (“El producto escalar es:”, sum)
x←V1[2]* V2[3]- V1[3]* V2[2]
y← V1[1]* V2[3]- V1[3]* V2[1]
z← V1[1]* V2[2]- V1[2]* V2[1]
Escribir (“El producto vectorial es: ”,x,"i - ",y,"j + ", z," k")
Fin
El
#Inicializa
#Entradas
for i in range(3):
V1[i] = int( input("V1({}): ".format(i+1)))
for i in range(3):
V2[i] = int( input("V2({}): ".format(i+1)))
#Proceso
sum = 0
for i in range(3):
P = V1[i]*V2[i]
sum = sum + P
-------------------------------------------------------
Complemento1: PRODUCTO VECTORIAL Y ESCALAR.
-------------------------------------------------------
Algoritmo inv_caract
Var
v: array (1..n) de caracter
n, i, z, d: entero
Inicio
Leer (n)
Para i←1 hasta n
Leer (v(i))
Fin para
z← “ ”
d← n
Para i← 1 hasta n div 2
z← v(i)
v(i)← v(d)
v(d)← z
d← d – 1
Fin para
Para i← 1 hasta n
Escribir (v(i))
Fin para
Fin
#Entradas
print("Ingrese dimensión del vector: ");
n = int( input())
v = n*[''] #Se inicializa un vector con valores por defecto
for i in range(n):
v[i] = input("Ingrese Caracter: ")
#Proceso
z = ''
d=n
for i in range(n//2):
z = v[i]
v[i] = v[d-1]
v[d-1] = z
d=d-1
#Salida
for i in range(n):
print(v[i])
-------------------------------------------------------
Complemento2: INVERTIR VECTOR DE CARACTERES.
-------------------------------------------------------
Ingrese dimensión del vector:
10
Ingrese Caracter: c
Ingrese Caracter: a
Ingrese Caracter: r
Ingrese Caracter: p
Ingrese Caracter: e
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 229 / 257
Ingrese Caracter: t
Ingrese Caracter: i
Ingrese Caracter: t
Ingrese Caracter: a
Ingrese Caracter: s
s
a
t
i
t
e
p
r
a
c
#inicializar
N = []
#Llenar N con elementos de 1 a 100
#Proceso
#como 1 no es primo, y se encuentra la posicion 0
B[0] = False
if N[j] % N[i] == 0:
B[j] = False
for i in range(100):
#Si el valor de B[i] = 1
if B[i]:
print(N[i])
#Salida
-------------------------------------------------------
Complemento3: CRIBA DE ERATÓSTENES.
-------------------------------------------------------
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 232 / 257
67
71
73
79
83
89
97
#Inicializar
V = 100*[0] #Inicializamos un vector con 100 elementos por defecto
i=0
#Entradas
print ("Ingrese tamaño del vector")
n = int( input())
opc = -1
while opc != 0:
print("\n-------------------------------------------------------")
print("Ingrese 1 para añadir un elemento al vector")
print("Ingrese 2 para eliminar un elemento del vector")
print("Ingrese 3 para listar el contenido del vector ")
print("Ingrese 4 para contar las apariciones de Un número en el vector")
print("Ingrese 5 para calcular la media y el máximo de los elementos de un vector
")
print("Ingrese 0 para terminar")
#Leer Opcion
opc = int( input("Ingrese Opción: "))
#print("\n")
if opc == 1:
if (i < n) :
#Agraga en la posicion 0 y luego incrementa i
V[i] = int( input("IngreseEntero: "))
i=i+1
elif opc == 2:
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 235 / 257
print("Ingrese el número que desea eliminar")
num = int( input())
if num > 0:
a=0
#Busca NUM en el array
for j in range(i):
if V[j] == num :
a=j
break
#Re-organizar el array
if a >= 0 and a <= i:
for j in range(a, i-1 +1):
V[j] = V[j+1]
V[i] = 0
i=i-1
elif opc == 3:
if i > 0:
for j in range(i):
print(V[j])
elif opc == 4:
c=0
print("Ingrese numero para contar número de apariciones: ")
num = int( input())
for j in range(i):
if num == V[j] :
c=c+1
elif opc == 5:
max = V[0]
ma = 0
for j in range(i):
if max < V[j]:
max = V[j]
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 236 / 257
ma = ma + V[j]
ma = ma/i
print("El maximo es:", max, " y la media es: ", ma)
elif opc == 0:
print("FIN DE PROGRAMA")
break
-------------------------------------------------------
Complemento4: INTERACTUAR CON UN VECTOR A TRAVÉS DE
OPCIONES.
-------------------------------------------------------
Ingrese tamaño del vector
10
-------------------------------------------------------
Ingrese 1 para añadir un elemento al vector
Ingrese 2 para eliminar un elemento del vector
Ingrese 3 para listar el contenido del vector
Ingrese 4 para contar las apariciones de Un número en el vector
Ingrese 5 para calcular la media y el máximo de los elementos de un vector
Ingrese 0 para terminar
Ingrese Opción: 1
IngreseEntero: 5
Algoritmo posicion
Var
valor:array(1..m) de entero
i,m,r:entero
Inicio
Escribir ("Ingrese numero de elementos del arreglo")
Leer (m)
Escribir ("Ingrese los elementos del arreglo")
Para i← 1 hasta m
Leer (valor(i))
Fin Para
//Búsqueda del valor dentro del arreglo
Escribir ("Ingrese el valor buscado")
Leer bus
Escribir ("La posición del valor buscado será:")
Para i← 1 hasta m
Si valor(i)=bus entonces
r← i
Escribir (r)
Fin Si
Fin Para
Fin
V1(i)
V2(i)
sum← 0
P← V1(i)*V2(i)
sum←sum+P
Fin
#Inicializar
valor = []
#Entradas
print ("Ingrese número de elementos del arreglo")
m = int( input())
print ("Ingrese los elementos del arreglo")
for i in range(m) :
elemento = int( input("Ingrese Elemento: "))
valor.append(elemento)
-------------------------------------------------------
Complemento5: BUSCAR ELEMENTO DENTRO DEL ARRAY.
-------------------------------------------------------
Ingrese número de elementos del arreglo
6
Ingrese los elementos del arreglo
Ingrese Elemento: 2
Ingrese Elemento: 5
Ingrese Elemento: 3
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 240 / 257
Ingrese Elemento: 6
Ingrese Elemento: 7
Ingrese Elemento: 8
Ingrese el valor buscado:
6
La posición del valor buscado será:
La posición del elemento es 4
#Inicializar
V1 = []
#Entradas
print ( "Ingrese cantidad de elementos del vector: ")
n = int( input())
#Proceso
print ( "Los elementos del vector son: ")
for y in range(n):
for x in range(n-1):
if V1[x] < V1[x+1]:
m = V1[x]
V1[x] = V1[x+1]
V1[x+1] = m
print(V1)
-------------------------------------------------------
Complemento6: ORDENAR DESCENDENTEMENTE EL VECTOR.
-------------------------------------------------------
Ingrese cantidad de elementos del vector:
8
Ingrese los valores del vector:
V1: 2
V2: 30
Algoritmo añadir
Var
V: array (1..100) de entero
x,c,y,a:entero
Inicio
Escribir ( Ingrese los 10 valores del vector”)
Leer (V(11))
Para x1 hasta 10
Para V1 hasta 11
Si c(y) > vec (x) entonces
a V(y)
V(y) V(x)
V(x) a
Fin si
Fin para
Fin para
Para x 1 hasta 10
Escribir (V(x))
Fin para
Fin
#Inicializar
V = []
#Entradas
print("Ingrese los 10 valores del vector: ")
for i in range(10):
valor = int( input("valor {}: ".format(i+1)))
V.append(valor)
#Proceso
#Ordenar el vector
for x in range(11):
for y in range(10):
if V[y] > V[x]:
a = V[y]
V[y] = V[x]
V[x] = a
#Inicializar
Vec = []
#Entradas
print ("Ingrese dimensión del vector: ")
tamVec = int( input())
pares = tamVec*[0]
impares = tamVec*[0]
vpr = 0
i=0
for x in range(tamVec):
if Vec[x] % 2 == 0:
pares[vpr] = Vec[x]
vpr = vpr + 1
else:
impares[i] = Vec[x]
i=i+1
print(impares[0:i])
print ( "El vector de impares tiene", i, "elementos")
else:
print ( "Los 2 vectores son iguales en número de elementos")
-------------------------------------------------------
Algoritmo Animal
Var
animal:array(1..200) de cadena
x:entero
nom:cadena
Inicio
Para x←1 hasta 200
Escribir ( Ingrese los nombres de los animales:”)
Leer (animal(x))
Fin para
Escribir ( Ingrese animal buscado:”)
Leer nom
Escribir ( Los animales serán:”)
Para x←1 hasta 200
Si (animal(x)=nom) entonces
Escribir (animal(x-1))
Escribir (animal(x+1))
Fin si
Fin para
Fin
#Inicializar
animal = []
#Entradas
print ("Ingresar dimensión del array: ")
tamArray = int( input())
if animal[x] == nom:
if x == 0:
#Como es Primero: No tiene vecino Izquierdo
#Imprimir solo el derecho
print(animal[x+1])
elif x == tamArray-1:
#Como es Ultimo: No tiene vecino Derecho
#Imprimir solo el Izquierdo
print(animal[x-1])
else:
#Imprimir Izquierda y derecha
print(animal[x-1])
print(animal[x+1])
#Salida
-------------------------------------------------------
Complemento9: JUGANDO CON NOMBRES DE ANIMALES.
-------------------------------------------------------
Ingresar dimensión del array:
5
Ingrese los nombres de los animales:
Ingrese Animal1: gato
Ingrese Animal2: perro
Ingrese Animal3: gallo
Ingrese Animal4: caballo
Ingrese Animal5: oveja
Ingrese animal buscado:
gallo
El animal tiene como vecino a:
-------------------------------------------------------
perro
caballo
֍ Bucle
֍ Computadora
֍ Constante
֍ Dato
֍ Estructuras Repetitivas
֍ Estructuras Selectivas
֍ Funciones
֍ Identificadores
֍ Matrices
֍ Procedimientos
֍ Programa
֍ Pseudocódigos
֍ Variables
֍ Vectores
https://books.google.com.pe/books?id=nrNvPwAACAAJ
McGraw-Hill.
https://books.google.com.pe/books?id=G4ecAAAACAAJ
ENI.
Jordi, m. G., Angela, m. P., Xavier, m. A., pau, V. A., Pere, & Fatos, X.
Paraninfo.
Mundigraf.
https://books.google.com.pe/books?id=GpWRrgEACAAJ
Universitat de València.
https://books.google.com.pe/books?id=jwBdAAAAMAAJ