Algoritmos Python PDF
Algoritmos Python PDF
www.detodoprogramacion.org
Algoritmos resueltos con Python
Colección:
Tecnologías de la información y la comunicación (TIC)
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
comiteeditorial@editorialeidec.com
www.editorialeidec.com
Colombia
www.detodoprogramacion.org
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 4 / 257
www.detodoprogramacion.org
Prefacio
www.detodoprogramacion.org
resolver un problema ingenieril en varios subsistemas, aplicando
la técnica divide y vencerás.
www.detodoprogramacion.org
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 7 / 257
www.detodoprogramacion.org
CONTENIDO
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
www.detodoprogramacion.org
a. Identificadores....................................................................... 39
b. Constantes ............................................................................. 39
c. Variables................................................................................ 39
a. Operaciones aritméticas........................................................ 39
www.detodoprogramacion.org
6.1 Vectores y Matrices ...............................................................203
www.detodoprogramacion.org
Índice de Tablas
www.detodoprogramacion.org
Índice de Figuras
Figura 1. Pruebas en el intérprete por la línea de comando de Python. ...... 16
Figura 2. Accediendo a la línea de comando de Python mediante CMD ... 17
Figura 3. Características opcionales para instalar en Python. .................... 19
Figura 4. Opciones avanzadas de la instalación de Python. ....................... 20
Figura 5. Comprobar la instalación de Python en el Sistema Operativo. ... 20
Figura 6. Abriendo la terminal integrada de VS Code ............................... 25
Figura 7. Configuración del atajo de teclas de la terminal integrada. ........ 26
Figura 8. Presentación de Marketplace. .................................................... 27
Figura 9. Instalación del plugin Python. ................................................... 27
Figura 10. Primer programa en Python. .................................................... 28
Figura 11. Guardando el archivo con el nombre: saludo.py ...................... 29
Figura 12. Pasos para ejecutar un programa en Python usando CMD ....... 29
Figura 13. Para abrir una terminal en la carpeta donde está ubicado ......... 30
Figura 14. Abrir un directorio en VS Code, usando Open Folder… .......... 31
Figura 15. Vista posterior al abrir un directorio con: Open Folder… ........ 31
Figura 16. Ejecutando un programa de Python con el botón Ejecutar........ 32
Figura 17. Ejecutando un Python de la segunda manera. .......................... 33
Figura 18. Pensando en una idea .............................................................. 35
Figura 19. Secciones de un algoritmo ....................................................... 35
Figura 20. Algoritmo mediante Pseudocódigo .......................................... 36
Figura 21. Diagrama de flujo (izq.) y Carta N-S (der.).............................. 37
Figura 22. Diagrama de flujo de una estructura condicional simple .........103
Figura 23. Diagrama de flujo de una estructura condicional doble ...........107
Figura 24. Diagrama de flujo de una estructura condicional múltiple .......111
www.detodoprogramacion.org
Introducción
www.detodoprogramacion.org
mediante un pseudocodigo y un diagrama de flujo. 3).
Instrucciones básicas de un algoritmo, en esta parte se
complementa al capítulo 2 con las instrucciones que realiza todo
algoritmo, de leer datos y después de un proceso obtener un
resultado. 4). Estructuras selectivas, se analiza las estructuras
simples, dobles y multiples para el desarrollo de algoritmos. 5).
Estructuras repetitivas, en este capitulo se aborda las
instrucciones desde, mientras, repetir, los que nos permiten
realizar bucles en nuestros programas. 6). Vectores y matrices
funcionales, se estudia los temas de arreglos unidimensionales y
multidimensionales.
www.detodoprogramacion.org
1
1. Lenguaje de Programación Python
1.1 Python
Python es un lenguaje de programación de alto nivel, es decir las
sintaxis que se suele usar es fácil de leer para un ser humano, a
comparación de otros lenguajes como java y c++, ya que la
filosofía del lenguaje es proporcionar una sintaxis muy limpia y
que beneficie con código leíble. (Challenger-Pérez et al., 2014)
Python es una de las herramientas tecnológicas que en los últimos
años se ha hecho muy popular, gracias a varias razones como:
La cantidad de librerías que contiene.
La rapidez con la que se crean los programas.
Es multiplataforma (se puede desarrollar y ejecutar programas
en, Linux, Windows, Mac, Android y otros)
Python es gratuito, incluso para propósitos empresariales.
a) Propósito general
www.detodoprogramacion.org
c) Interpretado
Al ser una ventaja la capacidad de crear programas
rápidamente, una desventaja que posee Python es que el un
programa debe ser interpretado, lo que hace que sea más lento
que un programa compilado (traducido a binario, 1’s y 0’s)
que se comunica directamente con microprocesador, ya que
es el intérprete quién se comunica con el microprocesador.
d) Interactivo
Posterior a su instalación Python dispone de un intérprete por
la línea de comandos en el que se pueden introducir
sentencias. La ventaja de tener esta terminal es que uno puede
ir probando comandos de Python que no ha entendido bien y
hacer pruebas con él. O probar que hacen algunos trozos de
código del programa que se esté desarrollando.
www.detodoprogramacion.org
Figura 2. Accediendo a la línea de comando de Python mediante CMD
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)
www.detodoprogramacion.org
los cuales deben implementarse obligatoriamente si se quiere
evitar errores y que el programa ejecute satisfactoriamente.
En varios lenguajes, para separar trozos de código, se usan
caracteres como las llaves o las palabras reservadas begin y
end. En ocasiones muchos programadores novicios obvian la
indentación generando así caos en el programa que están
escribiendo, lo cual dificulta la lectura para los humanos. Otra
desventaja de no indentar el código es que si ocurre un error
en el programa será mucho más difícil encontrarlo, por no
decir que en algunos casos será imposible. La buena
indentación de código hace que podamos entender y mantener
el código en futuros porvenires.
Para realizar la indentación se debe hacer uso de la tecla
tabulador, colocando un margen a la izquierda del trozo de
código que iría dentro de una función o un bucle.
Otra de las ventajas es que los programadores tengan una
estandarización de reglas para escribir un código claro y
leíble.
1.3 Instalación de Python:
Python se puede descargar de manera gratuita de su página oficial
https://www.python.org/downloads/, para los ejercicios de este
libro se está usando Python 3.
Sobre el instalador haga doble clic. En la ventana que salga es
recomendable dejar las configuraciones por defecto que sugiere
Python:
Documentation: permite instalar la documentación al cual se
puede acceder sin necesidad de internet.
Pip: Es una herramienta que permite integrar paquetes y
librería de terceros.
Tcl/tk: una librería que permite crear interfaces gráficas para
Python.
www.detodoprogramacion.org
Figura 3. Características opcionales para instalar en Python.
www.detodoprogramacion.org
Figura 4. Opciones avanzadas de la instalación de Python.
www.detodoprogramacion.org
Si uno tiene dudas acerca de los comandos o instrucciones de
Python tiene a su disposición una infinidad de blog en internet,
muchos de ellos en español.
Existen muchas librerías a disposición para todo tipo de campos
de estudios, Python es una gran herramienta de apoyo para la
ciencia.
1.5 Visual Studio Code
Visual Studio Code o VS Code (como se le conoce) es un
proyecto de Microsoft de código abierto que además es
multiplataforma por lo que se podrá ejecutar en Windows, Linux,
o macOs.
VS Code es un editor de código moderno y muy poderoso gracias
a sus muchas funcionalidades prácticas al momento de trabajar
con código. Algunas de las ventajas que tiene son:
Soporte para depuración de errores, significa que este entorno
de desarrollo proporciona herramientas para ir probando el
código buscar errores y si fuera necesario se podría hacer
seguimiento de la ejecución línea a línea.
a) Resaltado de sintaxis.
Como en todo editor de texto, no podría faltar, el resaltado de
sintaxis que es una excelente ayudada a la hora de identificar
elementos del código; como pueden ser las palabras claves del
lenguaje en el que se esté trabajando, los comentarios, las
funciones y clases.
Tiene soporte de resaltado de sintaxis para casi todos los
lenguajes como puede ser: Bash, C, C++, Closure, C#, Go,
Java, Lua, Makefile, Markdown, Objective-C, Perl, PHP,
PowerShell, Python, R, Ruby, SQL, Visual Basic, XML,
HTML, CSS, Javascript, JSON, Less, Sass, Typescript, etc.
En caso de que algún resaltado de sintaxis aún no se encuentre
instalado puede hacer uso del Marketplace (que también ya
viene integrado), para instalarlo.
www.detodoprogramacion.org
b) Control integrado de Git.
Una de las herramientas que no podría faltar, y que es una gran
ayuda a nivel profesional, es el control de versiones Git. Git
es otra herramienta potente que todo programador debe
aprender para le gestión, orden de las versiones de los
proyectos que se van creando. Otra de sus ventajas es que Git
ayuda a organizar el trabajo en equipos y multi-equipos
gracias a su filosofía de ramas, por lo que cada equipo estaría
trabando en una rama aislada; una vez hayan finalizado su
respectiva tarea puede unir cada avance a la rama principal.
c) Autocompletado inteligente de código.
Otra de las ayudas que no debe faltar en todo editor de texto
es: el autocompletado inteligente, que sugiere lo que quizá se
quiere escribir; esto significa que puede que no escribirse toda
la palabra siempre, eso ahorrar tiempo y da la posibilidad de
terminar el programa mucho más rápido.
d) Atajos de teclado.
Otro de los aspectos a tener en cuenta tener atajos de teclado,
lo que permite hacer tareas muy rápido y sin necesidad de usar
el mouse. VS Code tiene una infinidad de atajos de teclado,
ellos pueden ser agrupados en distintos grupos, algunos de los
más importantes son:
Atajos de edición básica. Son aquellos que permiten agilizar
tareas al momento de escribiendo código.
Atajos de navegación. Aquellos facilitan el desplazarse por
toda la página; su potencial resalta en documentos muy largos,
donde moverse de una a otra función es tediosa.
Atajos de búsqueda y remplazo. Estos atajos permiten
encontrar palabras claves que se quiere buscar, y puede
moverse a través de ellas; en algunas ocasiones quizá la
palabra haya sido mal escrita o se desea cambiar por una mejor
nomenclatura, para ellos se dispone de la opción de remplazar
y remplazar todo.
www.detodoprogramacion.org
Atajos de administrador de archivos. Son aquellos atajos de
teclado permiten abrir, crear, cerrar archivos, así como crear
nuevas carpetas. Prácticamente permiten moverse por un árbol
de directorios dentro del mismo editor, evitando la necesidad
de abrir el Administrador de archivos del sistema operativo.
Tabla 1
Atajos de edición básica
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
www.detodoprogramacion.org
Alt+Click Insertar cursor
Seleccionar todas las ocurrencias de la
Ctrl+Shift+L
selección actual
Ctrl+F2 Select all occurrences of current word
Ctrl+L Seleccionar línea
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
www.detodoprogramacion.org
Descargado de: www.detodopython.com
del idioma del teclado; si la configuración está en español la
combinación será Ctrl + Ñ.
Nota: la terminal se abrirá en la path (dirección) de la carpeta
abierta en el editor de texto.
www.detodoprogramacion.org
Figura 7. Configuración del atajo de teclas de la terminal integrada.
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
www.detodoprogramacion.org
Figura 8. Presentación de Marketplace.
www.detodoprogramacion.org
1.7 Ejecutar código Python
En esta primera prueba se creará un programa que imprima por
consola el clásico hola mundo. Se recomienda copiar el codigo a
su editor de texto y guardarlo con el nombre: saludo.py,
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.
www.detodoprogramacion.org
Figura 11. Guardando el archivo con el nombre: saludo.py
www.detodoprogramacion.org
moverse entre directorios, listar elementos del directorio, crear,
mover, eliminar ficheros.
Otro atajo interesante que traen los Administradores de archivos
es la posibilidad de abrir terminales en el directorio donde te
encuentres.
En Windows existe el atajo Shift + Anti-Clic (clic derecho), el
cual desplegará la opción Abrir ventana de comandos aquí, con
este paso lo que queda es ejecutar el archivo Python.
Figura 13. Para abrir una terminal en la carpeta donde está ubicado
www.detodoprogramacion.org
Figura 14. Abrir un directorio en VS Code, usando Open Folder…
www.detodoprogramacion.org
La desventaja de usar este acceso directo es que funciona
excelente con programas que no necesitan mucha interacción
con el usuario.
www.detodoprogramacion.org
Figura 17. Ejecutando un Python de la segunda manera.
www.detodoprogramacion.org
2
2. Lenguaje y Algoritmos
El ser humano pensante por naturaleza ha hecho uso del lenguaje
desde épocas remotas para comunicarse con los demás, a medida que
evolucionó, desarrolló herramientas tecnológicas que facilitaron este
proceso, pasando por señales de humo, palomas mensajeras, cartas,
telégrafo, teléfono hasta hoy en día donde encontramos computadoras,
tablets, smartphones, la red de redes (internet), los satélites, la nube,
entre muchas otras que seguirán apareciendo. Particularmente son las
herramientas denominadas computadoras las que nos llaman la
atención para este particular, el ser humano se comunica con ellas, le
da instrucciones que deben ejecutar retornando un resultado que nos
servirá para tomar decisiones. (Aguilar, 2008)
Estas instrucciones que reciben las computadoras se hacen a través de
programas para computadoras que se crean mediante un lenguaje de
programación como el C++, Visual Studio, Delphi, Java, etc. Estos
programas deben seguir una lógica y orden independientemente del
lenguaje de programación en el que fueron hechos.
La forma estandarizada de crear esta lógica es mediante algoritmos,
seguramente en algún momento de nuestras vidas hemos oído de esta
palabra, o hemos hecho uso del mismo, por ejemplo cuando
preparamos un café, cuando hacemos la tarea, en cada cosa que
realizamos aplicamos algoritmos, y de manera especializada aquellos
que se encuentran en el mundo de la ingeniería y las ciencias
computacionales; el término algoritmo históricamente hablando se
remonta a la antigüedad, el nombre se tomó en honor al matemático
árabe “Abu al-Khwwarizmi” que vivió entre los siglos VIII y IX,
quien se encargó de difundir el conocimiento de la antigua Grecia e
India. Su aporte se centró no en dar nuevos teoremas o postulados
matemáticos sino en simplificar la matemática a un nivel que pueda
ser fácilmente entendido por el hombre común. Aunque él no creo el
primer algoritmo su aporte ya mencionado le dio este honor.
www.detodoprogramacion.org
2.1 ¿Qué es un algoritmo?
www.detodoprogramacion.org
• Determinismo: El algoritmo, dado los mismos datos de
entrada en diferentes ejecuciones del algoritmo, siempre
debe arrojar los mismos resultados.
• Precisión: Los pasos que se siguen en el algoritmo deben
ser precisados con claridad para evitar dudas.
• Finitud: Es decir debe tener un inicio y un fin. El
algoritmo, independientemente de la complejidad, siempre
debe ser de longitud finita.
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
www.detodoprogramacion.org
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
www.detodoprogramacion.org
b. Datos alfanuméricos
Dentro de este tipo de datos encontramos el tipo carácter (un
solo carácter) y el tipo cadena (secuencia de caracteres). Son
datos cuyo contenido pueden ser letras del abecedario (a, b, c
.. z), dígitos (0, 1, 2 , .., 9) o sím- bolos especiales ( #, ?,
$, \, *, etc.)
Un dato tipo carácter contiene un solo carácter. Por ejemplo:
'a' 'B' '$' '9' '-' '#* 'f'
Un dato tipo cadena contiene un conjunto de caracteres.
“abcde” “$9#7” “Carlos Gómez” “Rosario” “754-27-
22”
c. Datos lógicos
Dentro de este tipo de datos encontramos los booleanos. Son
datos que sólo pueden tomar dos valores: verdadero (true) o
falso (false).
www.detodoprogramacion.org
verdad = 1
falso = 0
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.
www.detodoprogramacion.org
aritmética será un número. Si los operadores que se evalúan
son del mismo nivel entonces se comienza por el operador que
se encuentra al extremo izquierdo.
Si la operación combinada presenta paréntesis de agrupación
entonces se debe evaluar comenzando por el paréntesis más
interno.
Los operadores aritméticos son:
www.detodoprogramacion.org
A continuación, algunos ejemplos demostrativos.
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
www.detodoprogramacion.org
Tabla 6
Operaciones Aritméticos en Python
www.detodoprogramacion.org
(64> (7+8*3^4)) > ((15*2) = (30*2/4))
(64 > (7+8*81)) > ((15*2) = (30*2/4))
(64 > (7+648)) > ((15*2) = (30*2/4))
(64> 655) > ((15*2) = (30*2/4))
FALSO > ((15*2) = (30*2/4))
FALSO > (30 = (30*2/4))
FALSO > (30 = (60/4))
FALSO > (30 = 15)
FALSO > FALSO
FALSO
Tabla 8
Operaciones relacionales en Python
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)
www.detodoprogramacion.org
Tabla 9
Prioridad de operadores lógicos.
www.detodoprogramacion.org
2.6 Ejercicios complementarios
www.detodoprogramacion.org
40+3*3+4-10/10
40+9+4-1
49+4-1
53-1
52
e) 500- ((6 -1)*8/4*3+16/(10-2))-5
500- (5*8/4*3+16/8)-5
500- (40/4*3+16/8)-5
500- (10*3+2)-5
500- (30+2)-5
500- 32-5
468-5
463
f) 4 / 2 * 3 / 6 + 6 / 2 / 1 / 5 mod 2 / 4 * 2
2 * 3 / 6 + 6 / 2 / 1 / 5 mod 2 / 4 * 2
6 / 6 + 6 / 2 / 1 / 5 mod 2 / 4 * 2
1 + 6 / 2 / 1 / 5 mod 2 / 4 * 2
1 + 3 / 1 / 5 mod 2 / 4 * 2
1 + 3 / 5 mod 2 / 4 * 2
1 + 0.6 mod 2 / 4 * 2
1 + 0.6 / 4 * 2
1 + 0.15 * 2
1 + 0.30
1.30
g) 14 – (7 + 4 * 3 - [(-2)* 2 * 2 - 6) ] ) + (22 + 6 - 5 * 3) + 3 - (5
- 23 div 2)
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 46 / 257
www.detodoprogramacion.org
Como ya se conoce la forma de procesar, se toma y reduce
todos los paréntesis internos.
14 – (7 + 4 * 3 - [(-4) * 2 - 6)]) + (28 - 15) + 3 - (5 - 11)
14 – (7 + 4 * 3 - [(-8) - 6)]) + 13 + 3 - (-6)
14 – (7 + 4 * 3 - [-14]) + 13 + 3 - (-6)
14 – (7 + 12 - [-14]) + 13 + 3 - (-6)
14 – (19 - [-14]) + 13 + 3 - (-6)
14 – 33 + 13 + 3 - (-6)
-19 + 13 + 3 - (-6)
-6 + 3 - (-6)
-3 - (-6)
3
h) ((1580 mod 6*2^7) > (7+8*3^4)) > ((15*2) = (60*2/4))
((1580 mod 6*128) > (7+8*81)) > ((30) = (120/4))
((2*128) > (7+648)) > (30 = (120/4))
((256) > (7+648)) > ((30) = (30))
((256) > (655)) > V
F >V
F
i) NO (15 >= 7^2) O (43 – 8 * 2 div 4 <> 3 * 2 div 2)
NO (15 >= 49) O (43 – 16 div 4 <> 6 div 2)
NO (V) O (43 – 4 <> 3)
F O (39 <> 3)
F O (V)
V
j) (15<=7*3^2 Y 8>3 Y 15<6) O NO (7*3 < 5+12*2 div 3^2)
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 47 / 257
www.detodoprogramacion.org
(15<=7*9 Y V Y F) O NO (21 < 5+ 24 div 9)
(15<=63 Y V Y F) O NO (21 < 5+ 2)
(V Y V Y F) O NO (21 < 7)
(V Y V Y F) O NO (F)
(V Y V Y F) O V
Cuando existe una triple comparación lógica, se desglosa en
dos grupos simples vinculados mediante una Y entonces se
tiene (V Y V Y F) =>> (V Y V) Y (V Y F)
(V Y V) Y (V Y F) O V
(V Y F) O V
FOV
V
www.detodoprogramacion.org
3
3. Instrucciones Básicas en un Algoritmo
En este capítulo se busca afianzar el criterio de análisis y diseño de
algoritmos, para ello nos valemos de herramientas como los
Pseudocódigos, describimos sus partes y usos.
Así mismo emplearemos diagramas de flujo, como una representación
equivalente a un Pseudocódigo, esta práctica nos llevara a desarrollar
mejor el aspecto de análisis y diseño de un algoritmo.
A continuación, se describe las instrucciones básicas que se utilizaran
para construir algoritmos. (Cairó et al., 1993)
3.1 Leer
La instrucción de Lectura viene a ser aquella mediante la cual
se ingresa uno o más datos por medio del teclado que luego
internamente será guarda en una variable, este valor se
requerirá para realizar cálculos y hallar la solución a un
algoritmo. Permite:
Solicitar un dato inicial
Requerir un dato de entrada
www.detodoprogramacion.org
#Leer datos de teclado es facil gracias a la función: input() de python
#El cual nos devolverá una cadena de texto
#El cual debemos capturar en alguna variable
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())
www.detodoprogramacion.org
3.2 Asignar
Esta instrucción asigna un valor a una variable, mediante un
símbolo flecha “”, esta flecha reemplaza al símbolo igual
para no confundir con el operador lógico “=”, a diferencia de
la instrucción leer esta no se ingresa por teclado sino mediante
una instrucción en el mismo Pseudocódigo. Permite:
Operar sobre el dato obteniendo nuevo valor
Procesar los datos, obteniendo nuevo valor
Su empleo dentro de un Pseudocódigo (Algoritmo en
instrucciones) es:
Variable <Valor>
#OPERADOR ASIGNACIÓN EN PYTHON
#En Python como en muchos otros lenguajes se usa el operador:
# '='
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
www.detodoprogramacion.org
# Para mostrar resultados por la pantalla tenemos la función
# print()
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()
www.detodoprogramacion.org
3.4 Ejercicios del tema
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
www.detodoprogramacion.org
Leer (T) // se lee y almacena en la variable T el tiempo que
tarda el vehículo
D V * T // Se procede a calcular la distancia y asignar el
valor a la variable D
Escribir (D) //Se imprime el valor que contiene la variable D
FIN
Este segmento de Pseudocódigo se puede llevar a cualquier
lenguaje de programación para su implementación, solamente
requiere reemplazar las instrucciones por los comandos que use
el lenguaje.
Nota: Las dos barras inclinadas “//” indica que lo que sigue en
esa línea es un comentario, no interviene en ninguna de las
instrucciones.
El código en Python para resolver el Ejercicio1 es el siguiente:
#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
www.detodoprogramacion.org
-------------------------------------------------------
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
www.detodoprogramacion.org
Una vez determinado los tres elementos de un algoritmo
(entrada, proceso, salida) procedemos a construir la parte
medular del Pseudocódigo. Siempre colocar la palabra INICIO
para comenzar y FIN al terminar.
INICIO
Escribir (“Ingrese las 3 notas del alumno N1, N2, N3”)
//muestra el mensaje en pantalla
Leer (N1) // se lee y almacena en la variable N1 la nota
número uno del alumno
Leer (N2) // se lee y almacena en la variable N2 la nota
número dos del alumno
Leer (N3) // se lee y almacena en la variable N3 la nota
número tres del alumno
P (N1 + N2 + N3) / 3 // Se procede a calcular el promedio
y asignar el valor a la variable P
Escribir (P) //Se imprime el valor que contiene la variable P:
promedio obtenido
FIN
El código del Ejercicio 2 en Python es el siguiente:
#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
www.detodoprogramacion.org
#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
www.detodoprogramacion.org
Otras variables intermedias para usar:
Puntaje de Respuestas Correctas PRC
Puntaje de Respuestas Incorrectas PRI
Puntaje de Respuestas en blanco PRB
www.detodoprogramacion.org
Leer (RC)
Escribir (“Ingrese número de respuestas incorrectas”)
Leer (RI)
Escribir (“Ingrese número de respuestas en blanco”)
Leer (RB)
// Procedemos a realizar el cálculo de cada grupo de respuestas
PRC RC * 3 //No olvidar que el asterisco “*” es el símbolo
de multiplicación
PRI RI * -1
PRB RB * 0
PF PRC + PRI + PRB
Escribir (PF) //Se imprime el puntaje final
FIN
El código del Ejercicio 3 en Python es el siguiente:
# -*- coding: utf-8 -*-
#Decoración: Nombre del Algoritmo
print("-------------------------------------------------------")
print("Ejercicio3: PUNTAJE FINAL.")
print("-------------------------------------------------------")
#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
www.detodoprogramacion.org
PF = PCR + PRI + PRB
#Salida
print("El puntaje total es:", PF)
-------------------------------------------------------
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
www.detodoprogramacion.org
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
www.detodoprogramacion.org
#Decoración: Nombre del Algoritmo
print("-------------------------------------------------------")
print("Ejercicio4: PUNTAJE TOTAL DE PARTIDOS.")
print("-------------------------------------------------------")
#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.
www.detodoprogramacion.org
Elaborar un algoritmo que permita calcular el número de micro
discos 3 .5 necesarios para hacer una copia de seguridad, de la
información almacenada en un disco cuya capacidad se conoce.
Hay que considerar que el disco duro está lleno de información,
además expresado en gigabyte. Un micro disco tiene 1.44
megabyte y un gigabyte es igual a 1,024 megabyte.(Vinuesa,
1966)
Solución:
Procederemos a determinar los datos de entrada, la salida y
variables intermedias, obsérvese.
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
www.detodoprogramacion.org
Escribir (MD)
FIN
El código del Ejercicio 5 en Python es el siguiente:
# -*- coding: utf-8 -*-
import math #librería necesaria para usar funciones Matemáticas
#en este caso math.ceil(), que redondea un numero al Entero superior
#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
www.detodoprogramacion.org
Ejercicio 6.
Se tiene los puntos A y B en el cuadrante positivo
del plano cartesiano, elabore el algoritmo que permita obtener
la distancia entre A y B.
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
www.detodoprogramacion.org
fórmula matemática siguiente:
#Entradas
print("Ingrese coordenadas del Punto A: ")
AX = float(input("Ax: "))
AY = float(input("Ay: "))
www.detodoprogramacion.org
BY = float(input("By: "))
#Proceso
D = ( (AX-BX)**2 + (AY-BY)**2 )**0.5
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print("Resultado:", D)
SALIDA:
-------------------------------------------------------
Resultado: 1.4142135623730951
www.detodoprogramacion.org
algoritmo realiza.
Inicio y Fin: En este segmento es donde se colocan las
instrucciones que va a ejecutar el algoritmo. Similar a lo que
hicimos en los ejercicios anteriores.
Var: Aquí se declaran las variables que se usaran en el algoritmo,
se escribe la palabra “Var” y debajo se lista todas las variables
que se usaran.
Const: Sección de declaración de constantes, se escribe la palabra
“Const” y debajo se lista todas las constantes a utilizar con su
valor correspondiente, aquí se utiliza el símbolo igual “=” en vez
de la flecha.
www.detodoprogramacion.org
3.6 Diagramas de flujo símbolos usados
Se dijo que los diagramas de flujo son representaciones graficas
de un algoritmo, en ese sentido utiliza simbologías propias (Tabla
2.1), mismas que son necesarias conocer para poder desarrollar
las soluciones algorítmicas. Si bien es cierto en la tabla no se
indican todos los símbolos que emplea un diagrama de flujo si
están los más usados, algunos otros especiales se indicaran en los
siguientes temas.
Tabla 11
Símbolos usados frecuentemente en diagramas de flujo
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.
www.detodoprogramacion.org
Entrada Identificador
Número 1 N1
Número 2 N2
Salida
Promedio P
Otras variables
Suma parcial S
PSEUDOCÓDIGO
ALGORITMO Promedio
Var
N1, N2, S: Entero
P: Real
Inicio
Leer (N1)
Leer (N2)
S N1 + N2
PS/2
Escribir (P)
Fin
www.detodoprogramacion.org
El diagrama de flujo se construye reemplazando cada comando
con su correspondiente símbolo gráfico, la construcción inicia
desde la instrucción INICIO y termina, en FIN. En el diagrama
de flujo no se declaran las variables ni constantes.(Regino, 2003)
Inicio
Leer (N1)
Leer (N2)
S N1 + N2
PS/2
Escribir (P)
Fin
www.detodoprogramacion.org
Una forma reducida del
diagrama de flujo se muestra a
continuación, obsérvese que la
lectura de datos de N1 y N2 se
agrupa en un solo símbolo de
lectura, por ser operaciones
continuas y que ejecutan la
misma instrucción “leer”.
De forma similar para el caso de
asignar valores a la variable S y
P.
#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
www.detodoprogramacion.org
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
www.detodoprogramacion.org
La superficie (SUP) se calcula multiplicando la base (BASE) por
la altura (ALTO), en el caso del perímetro (PER) es 2 veces la
suma de la base y la altura 2 x (BASE+ALTO)
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
www.detodoprogramacion.org
SUP = BASE*ALTO
PER = 2*(BASE + ALTO)
#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
www.detodoprogramacion.org
Total a pagar por lo surtido TOTAL
PSEUDOCODIGO
ALGORITMO Gasolinera
Const
LITXG = 3.785
PRECIOXL = 4.50
Var
CONSU, TOTAL: Real
Inicio
Leer (CONSU)
TOTAL COSU * LITXG* PRECIOXL
Escribir (TOTAL)
Fin
www.detodoprogramacion.org
#Decoración: Nombre del Algoritmo
print("-------------------------------------------------------")
print("Ejercicio9: GASOLINERA.")
print("-------------------------------------------------------")
#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
www.detodoprogramacion.org
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
www.detodoprogramacion.org
print("-------------------------------------------------------")
#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
www.detodoprogramacion.org
3.7 Ejercicios complementarios
1. Dado el radio de un círculo, calcule el volumen de la esfera
correspondiente.
Pseudocódigo.
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
www.detodoprogramacion.org
Nota: Si se desea imprimir un texto este se coloca entre
comillas “”, caso contrario se tomará como variable y se
imprimirá lo que contiene. Para imprimir varias cosas se separan
por comas.
El código del Complementario 1 en Python es el siguiente:
# -*- coding: utf-8 -*-
#Decoración: Nombre del Algoritmo
print("-------------------------------------------------------")
print("Complemento1: CALCULAR VOLUMEN DE LA ESFERA.")
print("-------------------------------------------------------")
#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
www.detodoprogramacion.org
Pseudocódigo.
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
www.detodoprogramacion.org
# -*- coding: utf-8 -*-
#Decoración: Nombre del Algoritmo
print("-------------------------------------------------------")
print("Complemento2: PERÍMETRO TRIANGULO EQUILÁTERO.")
print("-------------------------------------------------------")
#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
www.detodoprogramacion.org
Pseudocódigo.
Algoritmo cambio
Var
d,e,s: real //d=dólares, e=euros y s=soles
Const
eu=3.84
do=2.82
Inicio
Escribir ("Ingrese la cantidad de soles:")
Leer (s)
d s /do
e s /eu
Escribir ("En ",s," soles hay ",e " euros")
Escribir ("En ",s," soles hay ",d " dólares")
Fin
Diagrama de Flujo.
Inicio
d s /do
e s /eu
Fin
www.detodoprogramacion.org
El código del Complementario 3 en Python es el siguiente:
# -*- coding: utf-8 -*-
#Decoración: Nombre del Algoritmo
print("-------------------------------------------------------")
print("Complemento3: CAMBIOS DE SOLES a EUROS y DÓLARES")
print("-------------------------------------------------------")
#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
www.detodoprogramacion.org
4. Dado el tiempo en segundos y la distancia en metros de un
móvil, ingresados por teclado, calcule la velocidad
correspondiente.
Pseudocódigo.
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
www.detodoprogramacion.org
El código del Complementario 4 en Python es el siguiente:
# -*- coding: utf-8 -*-
#Decoración: Nombre del Algoritmo
print("-------------------------------------------------------")
print("Complemento4: CALCULAR LA VELOCIDAD DE UN MÓVIL.")
print("-------------------------------------------------------")
#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
www.detodoprogramacion.org
Pseudocódigo.
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
www.detodoprogramacion.org
El código del Complementario 5 en Python es el siguiente:
# -*- coding: utf-8 -*-
#Decoración: Nombre del Algoritmo
print("-------------------------------------------------------")
print("Complemento5: CALCULAR MONTO A PAGAR.")
print("-------------------------------------------------------")
#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
www.detodoprogramacion.org
Pseudocódigo.
Algoritmo millas_kilom
Var
m,k: real //m=millas y k=kilómetros
Const
mi=1.609344
Inicio
Escribir ("Ingrese número de millas:")
Leer (m)
k m*mi
Escribir (m," millas tiene ",k," kilómetros")
Fin
Diagrama de Flujo.
Inicio
"Ingrese número
de millas:"
k←m*mi
Fin
www.detodoprogramacion.org
El código del Complementario 6 en Python es el siguiente:
# -*- coding: utf-8 -*-
#Decoración: Nombre del Algoritmo
print("-------------------------------------------------------")
print("Complemento6: Millas a Kilómetros.")
print("-------------------------------------------------------")
#Constantes
MI = 1.609344
#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
www.detodoprogramacion.org
Pseudocódigo.
El ángulo “alfa” esta dado en grados sexagesimales, para el
cálculo del lado “a” hay que pasar “alfa” a radianes,
transformando se tiene “alfa*Pi/180”
Algoritmo tercer_lado
Var
b,c,alfa: real
Const
Pi=3.1416
Inicio
Escribir ("Ingrese lados del triángulo:")
Leer (b,c)
Escribir ("Ingrese el ángulo en grados sexagesimales:")
Leer (alfa)
//formula para calcular lado a con alfa transformado
a (b^2+c^2-2*b*c*cos(alfa*Pi/180))^0.5
Escribir ("El lado a es: ", a)
Fin
Diagrama de Flujo.
Inicio
b,c
alfa
a (b^2+c^2-2*b*c*cos(alfa*Pi/180))^0.5
Fin
www.detodoprogramacion.org
El código del Complementario 7 en Python es el siguiente:
# -*- coding: utf-8 -*-
#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:
www.detodoprogramacion.org
-------------------------------------------------------
El lado a es: 5.000008815684476
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
www.detodoprogramacion.org
Diagrama de Flujo.
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
www.detodoprogramacion.org
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
www.detodoprogramacion.org
Algoritmo grados
Var
x,sex,cen: real
Const
Pi=3.1416
Inicio
Escribir ("Ingrese ángulo en radianes:")
Leer (x)
sex x*180/Pi
cen x*200/Pi
Escribir ("En sexagesimales es: ",sex)
Escribir ("en centesimales es: ",cen)
Fin
Diagrama de Flujo.
Inicio
"Ingrese ángulo en
radianes:"
sex x*180/Pi
cen x*200/Pi
Fin
www.detodoprogramacion.org
El código del Complementario 9 en Python es el siguiente:
# -*- coding: utf-8 -*-
#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
www.detodoprogramacion.org
Pseudocódigo.
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
www.detodoprogramacion.org
Diagrama de Flujo:
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: "))
www.detodoprogramacion.org
VISITA
www.detodopython.com
print("Ingrese valores del punto B(x2, y2 y z2): ")
x2 = float( input("x2: "))
y2 = float( input("y2: "))
z2 = float( input("z2: "))
#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
www.detodoprogramacion.org
4 Descargado de: www.detodopython.com
4. Estructuras Selectivas
Las estructuras selectivas conocidas también como lógicas selectivas
se encuentran en la solución algorítmica de casi todo tipo de
problemas. La utilizamos cuando en el desarrollo de la solución de un
problema debemos tomar una decisión, para establecer un proceso o
señalar un camino alternativo a seguir.
Esta toma de decisión expresada en un rombo en el diagrama de flujo
se basa en la evaluación de una o más condiciones que nos señalaran
como alternativa el camino a seguir.
Las estructuras algorítmicas selectivas se clasifican en tres:
Simple
Doble
Múltiple
4.1 Estructura selectiva simple
Se identifican porque están compuestos únicamente de un solo
camino para la condición. La estructura selectiva de tipo simple
evalúa esta condición, si el resultado es verdadero (entonces)
ejecuta el conjunto de acciones asociadas a él (operaciones o
acciones), caso contrario, si es falso, no hace nada.(Lenguaje
Logo Iii. Explorando la Programación, s. f.)
Su representación en pseudocódigo es:
Sí <condición > entonces
<Operaciones o acciones>
…
fin sí
www.detodoprogramacion.org
Su representación en diagrama de flujo se muestra en la figura
siguiente
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”
www.detodoprogramacion.org
De lo planteado se deduce que después de ingresar el número
entero NUM se debe realizar una evaluación de este valor,
evaluar condición, en el caso que el número sea menor que 100
entonces debe imprimirse un mensaje “número pequeño”, caso
contrario no se hace nada.
El pseudocódigo seria así:
1. Algoritmo Número
2. Var
3. x: Entero
4. Inicio
5. Escribir (“Ingrese un número”)
6. Leer (x)
7. Si (x < 100) entonces
8. Escribir (“NUMERO PEQUEÑO”)
9. Fin si
10. Fin
Las instrucciones que se encuentran desde la línea 7 a la 9
comprende el uso de la estructura condicional simple.
Analizando:
www.detodoprogramacion.org
Línea 9: Esta línea indica la finalización del condicional
simple, siempre debe indicarse el final del condicional con
Fin sí.
#Entradas
print("Ingrese un número: ")
x = int( input())
#Proceso
if x < 100 :
www.detodoprogramacion.org
#NOTA: para inidicar que tdodo esta dentro
#de la estructura IF hay que hacer uso de la
#indentación con ayuda de la tecla TABULADOR
print("Número Pequeño")
-------------------------------------------------------
EVALUAR SI NUMERO MENOR A 100.
-------------------------------------------------------
Ingrese un número:
40
Número Pequeño
www.detodoprogramacion.org
Donde :
CONDICION expresa la
condición o conjunto de
condiciones a evaluar.
OPERACIÓN1 expresa la Verdadero Falso
operación o conjunto de SI NO
CONDICION
operaciones que se van a
realizar si el resultado de la
condición es verdadero.
OPERACIÓN2 expresa la
operación o conjunto de OPERACIÓN 1 OPERACIÓN 2
operaciones que se van a
realizar si la el resultado de
la condición es falso.
Entrada Identificador
Numero X x
Numero Y y
Salida
Mensaje impreso “El menor es” #
www.detodoprogramacion.org
imprimirá el mismo mensaje pero con el valor de y. El
pseudocódigo es el siguiente:
1. Algoritmo Menor
2. Var
3. x, y : Entero
4. Inicio
5. Escribir (“Ingrese 2 números”)
6. Leer (x, y)
7. Si (x > y) entonces
8. Escribir (“El menor es : ”, y)
9. sino
10. Escribir (“El menor es : ”, x)
11. Fin si
12. Fin
Las instrucciones que se encuentran desde la línea 7 a la 11
comprende el uso de la estructura condicional doble. Analizando:
www.detodoprogramacion.org
Línea 10: Se imprime el mensaje “El menor es:” y, luego se pasa
a la línea 11.
#Entradas
print("Ingrese 2 números: ")
x = int( input("Primer Número: "))
y = int( input("Segundo Número: "))
#Salida
www.detodoprogramacion.org
print("\nSALIDA: ")
print("-------------------------------------------------------")
-------------------------------------------------------
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>
.................................
www.detodoprogramacion.org
[<En otro caso>: <operacin n+1>]
fin selector
Nota: Dentro del selector múltiple el término <En otro caso> se
ejecuta cuando la expresión no toma ninguno de los valores que
aparecen antes.
Su representación en diagrama de flujo se muestra en la figura
24.
www.detodoprogramacion.org
8: "Agosto",
9: "Septiembre",
10: "Octubre",
11: "Noviembre",
12: "Diciembre"
}
argument = int( input("Ingrese número de mes: "))
#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).
www.detodoprogramacion.org
PSEUDOCODIGO
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
www.detodoprogramacion.org
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
www.detodoprogramacion.org
# -*- coding: utf-8 -*-
#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
www.detodoprogramacion.org
Solución.
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
www.detodoprogramacion.org
El código del ejercicio 13 en Python es el siguiente:
#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")
www.detodoprogramacion.org
-------------------------------------------------------
EjercicioN: VERIFICAR SI EL AÑO ES BISIESTO.
-------------------------------------------------------
Ingrese año: 2000
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.
www.detodoprogramacion.org
PSEUDOCODIGO
ALGORITMO Función
Var
NUM, V: Entero
Inicio
Leer (NUM, V)
Si NUM igual
1: VAL 100*V
2: VAL 100V
3: VAL 100/V
En otro caso: VAL 0
Fin Selector
Escribir (VAL)
Fin
www.detodoprogramacion.org
#Decoración: Nombre del Algoritmo
print("-------------------------------------------------------")
print("Ejercicio14: FUNCIÓN.")
print("-------------------------------------------------------")
#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
www.detodoprogramacion.org
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.
www.detodoprogramacion.org
PSEUDOCODIGO
ALGORITMO Par_Impar
Var
NUM: Entero
Inicio
Escribir (“Ingrese número”)
Leer (NUM)
Si NUM igual
1,3,5,7,9 : Escribir (“Impar”)
0,2,4,6,8,10 : Escribir(“Par”)
Fin Selector
Fin
#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'
}
www.detodoprogramacion.org
#Salida
print("\nSALIDA: ")
print("-------------------------------------------------------")
print(par_Impar.get(NUM, "Numero fuera de Rango"))
-------------------------------------------------------
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
www.detodoprogramacion.org
El código del ejercicio 16 en Python es el siguiente:
# -*- coding: utf-8 -*-
#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
www.detodoprogramacion.org
#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
www.detodoprogramacion.org
Pseudocódigo.
Algoritmo igdis
Var
a,b,c: entero
Inicio
Escribir ("Ingrese tres números:")
Leer (a,b,c)
Si (a+b=c) entonces
Escribir ("IGUALES")
sino
Escribir ("DISTINTOS")
Fin Si
Fin
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
www.detodoprogramacion.org
El código del complementario 1 en Python es el siguiente:
# -*- coding: utf-8 -*-
#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
www.detodoprogramacion.org
Pseudocódigo.
Algoritmo orden_creciente
Var
a,b: entero
Inicio
Escribir ("Ingrese dos números:")
Leer a,b
Si (a<b) entonces
Escribir ("Los números son: ",a," , ",b)
sino
Escribir ("Los números son: ",b," , ",a)
Fin Si
Fin
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
www.detodoprogramacion.org
El código del complementario 2 en Python es el siguiente:
#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
www.detodoprogramacion.org
Determinar cuánto pagará, con IGV incluido, un cliente
cualquiera por la compra de su aparato. IGV = 20%
Pseudocódigo.
Algoritmo costoart
Var
pa,pt,costo: real
m:cadena
Inicio
Escribir ("Ingrese el costo del artículo:")
Leer costo
Escribir ("Ingrese la marca:")
Leer (m)
Si (costo>=2000) y (m="NOSY") entonces
pa← costo*0.90
pt← pa*0.95
Escribir ("Usted pagara: ",pt," soles")
Fin Si
Si (costo>=2000) y (m<>"NOSY") entonces
pt← costo*0.90
Escribir ("Usted pagara: ",pt," soles")
Fin Si
Si (costo<2000) y (m="NOSY") entonces
pa← costo*0.95
pt← pa+pa*0.20
Escribir ("Usted pagara: ",pt," soles")
Fin Si
Si (costo<2000) y (m<>"NOSY") entonces
pt← costo*1.20
Escribir ("Usted pagara: ",pt," soles")
Fin Si
Fin
www.detodoprogramacion.org
Diagrama de flujo.
Inicio
"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
www.detodoprogramacion.org
El código del complementario 3 en Python es el siguiente:
# -*- coding: utf-8 -*-
#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")
www.detodoprogramacion.org
NOSY
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
www.detodoprogramacion.org
Diagrama de Flujo.
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
www.detodoprogramacion.org
El código del complementario 4 en Python es el siguiente:
# -*- coding: utf-8 -*-
#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
www.detodoprogramacion.org
5. Algoritmo, que calcule el tiempo de encuentro de 2 vehículos
que van en sentido opuesto, teniendo como datos la distancia
inicial que los separa y la velocidad de cada uno.
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
www.detodoprogramacion.org
Diagrama de Flujo.
Inicio
v1,v2
V F
v1>0 y v2>0
t← d/(v1+v2)
"ERROR"
Fin
www.detodoprogramacion.org
#Entradas
print("Ingrese las velocidades de ambos vehículos: ")
v1 = float( input("V1: "))
v2 = float( input("V2: "))
print("Ingrese la distancia que los separa: ")
d = float( input("Distancia: "))
#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
www.detodoprogramacion.org
Pseudocódigo.
Algoritmo numeros
Var
a,b,c,r:entero
Inicio
Escribir ("Ingrese los 3 números:")
Leer (a)
Leer (b)
Leer (c)
si a<0 Entonces
r← a*b*c
Sino
r← a+b+c
Fin Si
Escribir (r)
Fin
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
www.detodoprogramacion.org
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
www.detodoprogramacion.org
SALIDA:
-------------------------------------------------------
-60
www.detodoprogramacion.org
Descargado de: www.detodopython.com
Diagrama de Flujo.
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
www.detodoprogramacion.org
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
www.detodoprogramacion.org
Pseudocódigo.
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
www.detodoprogramacion.org
Diagrama de Flujo.
Inicio
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:
www.detodoprogramacion.org
#Si la Condicion1 no se Ejecuto
#y si la Condicion2 es Verdadera
Declaraciones
elif Condicion3:
#Si la Condicion2 no se Ejecuto
#y si la Condicion3 es Verdadera
Declaraciones
else:
#Si las condiciones anteriores no se cumplen
Declaraciones
#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
www.detodoprogramacion.org
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
www.detodoprogramacion.org
5
5. Estructuras Repetitivas
Las computadoras están especialmente diseñadas para todas aquellas
aplicaciones en las cuales una operación o conjunto de ellas deben
repetirse muchas veces (ciclos repetitivos).
Las estructuras que repiten una secuencia de instrucciones un número
determinado de veces se denominan bucles. En algunos algoritmos
podemos establecer a priori que el bucle se repetirá un número de
veces. Es decir, el número de repeticiones no dependerá de las
proposiciones dentro del ciclo, a esta estructura se le conoce como
PARA O DESDE. (Lecca, 1998)
Por otra parte, en algunos algoritmos no podemos establecer a priori
el bucle, sino que dependerá de las proposiciones dentro del mismo.
En este grupo de estructuras se encuentra MIENTRAS y REPETIR.
Para i vi hasta vf
Operaciones
Pseudocódigo
Algoritmos resueltos con Python ISBN: 978-958-53018-2-5 148 / 257
www.detodoprogramacion.org
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
www.detodoprogramacion.org
Pseudocódigo.
Mientras <condición> hacer
<operaciones>
…..
…..
fin mientras
Operacion
es
no Condic
si
ión
www.detodoprogramacion.org
Pseudocódigo.
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)
www.detodoprogramacion.org
#FUNCIÓN RANGE
#RANGE es una función que crea lista de acuerdo a sus paramentros
#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
www.detodoprogramacion.org
#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
www.detodoprogramacion.org
Diagrama de Flujo.
www.detodoprogramacion.org
El código del ejercicio 1 en Python es el siguiente:
# -*- coding: utf-8 -*-
#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
www.detodoprogramacion.org
2. Calcular la suma de los divisores de cada número
introducido por teclado. Terminaremos cuando el número
ingresado sea negativo.
Pseudocódigo.
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
www.detodoprogramacion.org
Diagrama de Flujo.
www.detodoprogramacion.org
El código del ejercicio 2 en Python es el siguiente:
# -*- coding: utf-8 -*-
#Decoración: Nombre del Algoritmo
print("-------------------------------------------------------")
print("Ejercicio2: Calcula la suma de divisores.")
print("-------------------------------------------------------")
#Entradas
print("Introduce un número, y para acabar uno negativo:")
numero = int( input("Núm: "))
while numero > 0 :
Suma = 0
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
www.detodoprogramacion.org
Pseudocódigo.
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
www.detodoprogramacion.org
El código del ejercicio 3 en Python es el siguiente:
# -*- coding: utf-8 -*-
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
www.detodoprogramacion.org
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
www.detodoprogramacion.org
El código del ejercicio 4 en Python es el siguiente:
# -*- coding: utf-8 -*-
#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
www.detodoprogramacion.org
Realizar el algoritmo (Diagrama de flujo) que tome un valor
para X y calcule ex hasta que xn/n! (error o aproximación) sea
menor a 0.00001
www.detodoprogramacion.org
#Constantes
#Entradas
print("Ingrese el valor de X: ")
x = int( input())
#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
www.detodoprogramacion.org
El código del ejercicio 6 en Python es el siguiente:
# -*- coding: utf-8 -*-
www.detodoprogramacion.org
print("El rango es:", cont, "y el resultado es:", An)
-------------------------------------------------------
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
www.detodoprogramacion.org
Diagrama de Flujo.
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
www.detodoprogramacion.org
print("-------------------------------------------------------")
#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
www.detodoprogramacion.org
2) Escribir un algoritmo que imprima los 10 primeros números
pares comenzando en 2 e imprima también sus respectivos
cubos. Por ejemplo: 2 – 8 ; 4 – 64; 6 – 216 …
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
www.detodoprogramacion.org
El código del complementario 2 en Python es el siguiente:
#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
www.detodoprogramacion.org
3) Escribir un algoritmo que imprima los 10 primeros números
primos comenzando en 2 e imprima también sus respectivos
cubos. Por ejemplo: 2 – 8 ; 3 – 27; 5 –125 …
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
www.detodoprogramacion.org
Diagrama de Flujo.
Inicio
b←2
co←0
b mod a = 0
co←co+1
a←b
co=0
b←b+1
Fin
www.detodoprogramacion.org
El código del complementario 3 en Python es el siguiente:
# -*- coding: utf-8 -*-
#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
www.detodoprogramacion.org
4) Construya un algoritmo que, dado una entrada n, calcule la
suma de los términos de una progresión aritmética como la
que se muestra a continuación: 10; 15; 20; 25; 30 …..Tn. Esto
es, su algoritmo debe calcular el valor: 10 + 15 + 20 + 25 + 30
+ … + Tn.
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
www.detodoprogramacion.org
Diagrama de Flujo
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
www.detodoprogramacion.org
#Entradas
print( "Ingrese el número de términos: ")
n = int( input())
#Inicializar
s=5
ser = 0
#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
www.detodoprogramacion.org
Pseudocódigo.
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
www.detodoprogramacion.org
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
www.detodoprogramacion.org
6) Escribir un algoritmo que invierta los dígitos de un número
positivo entero. Usar operadores módulo y división para ir
obteniendo los dígitos uno a uno. Por ejemplo, si se ingresa
37368 debe retornar el numero 86373
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
www.detodoprogramacion.org
Diagrama de Flujo:
Inicio
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
www.detodoprogramacion.org
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
www.detodoprogramacion.org
Diagrama de Flujo:
Inicio
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())
www.detodoprogramacion.org
Descargado de: www.detodopython.com
#Inicializar
con = 0
#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
www.detodoprogramacion.org
8) Escriba un algoritmo tal que dado como datos X números
enteros, obtenga el número de ceros que hay entre estos
números. Por ejemplo, si se ingresa 6 datos: 9 0 4 8 0 1
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
www.detodoprogramacion.org
Diagrama de Flujo:
Inicio
"Ingrese la cantidad de
números a evaluar:"
c← 0
Para i← 1 hasta n
V F
num=0
c← c+1
Fin
www.detodoprogramacion.org
El código del complementario 8 en Python es el siguiente:
# -*- coding: utf-8 -*-
#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
www.detodoprogramacion.org
SALIDA:
-------------------------------------------------------
Hay 4 números ceros
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
www.detodoprogramacion.org
Diagrama de Flujo.
www.detodoprogramacion.org
Inicio
"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
www.detodoprogramacion.org
El código del complementario 9 en Python es el siguiente:
# -*- coding: utf-8 -*-
#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
www.detodoprogramacion.org
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
www.detodoprogramacion.org
Diagrama de Flujo.
Inicio
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
www.detodoprogramacion.org
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'
www.detodoprogramacion.org
11) Ingresar por teclado 100 números enteros y calcular cuántos
de ellos son pares. Se imprime el resultado.
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
www.detodoprogramacion.org
El código del complementario 11 en Python es el siguiente:
# -*- coding: utf-8 -*-
#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
www.detodoprogramacion.org
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
www.detodoprogramacion.org
Diagrama de Flujo.
Inicio
i← 2
Si No
i<=20
i mod 2=0
F
V
p← i^3
i← i+1
Fin
www.detodoprogramacion.org
El código del complementario 12 en Python es el siguiente:
# -*- coding: utf-8 -*-
#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
www.detodoprogramacion.org
13) Para una empresa con N empleados, se desarrolla un
algoritmo donde se ingresa como datos el número de orden y
sueldo de cada empleado, debe imprimirse el numero de orden
del empleado con el mayor sueldo asi como su sueldo. Haga
el algoritmo correspondiente.
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
www.detodoprogramacion.org
Diagrama de Flujo.
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
www.detodoprogramacion.org
El código del complementario 14 en Python es el siguiente:
# -*- coding: utf-8 -*-
#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
www.detodoprogramacion.org
Ingrese sueldo 4: 900
Ingrese sueldo 5: 850
SALIDA:
-------------------------------------------------------
El empleado numero 3 tiene el mayor sueldo que es: 1500.0
www.detodoprogramacion.org
6
6. Vectores y Matrices Funcionales
En los temas anteriores se ha introducido el concepto de datos de tipo
simple, como un número entero, real o carácter. Muchas veces se
necesita, procesar una colección de valores que están relacionados
entre sí por algún método, por ejemplo, una serie de temperaturas, una
lista de trabajadores, relación de inscritos a un evento, etc. El procesar
estos datos utilizando datos simples, resultaría muy complejo, por ello
los lenguajes de programación incluyen características de estructuras
de datos, representado por los Arrays (vectores y matrices) de una o
muchas dimensiones respectivamente.
Un array es una secuencia de posiciones de la memoria central a la que
se puede acceder directamente, que contiene datos del mismo tipo y
que puede ser relacionado y usado mediante el empleo de índices.
www.detodoprogramacion.org
Podemos acceder a cada elemento del array de manera
independiente a través de los índices.
<nom_array>: array [LI .. LS] de <tipo>
Ejemplo:
sueldo: array [1 .. 8] de real
sueldo: array [1990 .. 1997] de real
Asignación de un dato a una posición concreta del array:
<nom_array>[indice] valor
1 2 3 4 5 6 7 8 9 10 11 12
8000
www.detodoprogramacion.org
1 2 3 4 5 6 7 8 9 10 11 12
1990
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
www.detodoprogramacion.org
# Mediante la función APPEND se puede agregar elementos a la
# lista. Cada elemento se añadirá al último de la lista
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)
www.detodoprogramacion.org
#se desea un subconjunto del 2 al 7
subconjunto = numeros[2:8] #subconjunto: [2, 3, 4, 5, 6, 7]
print(subconjunto)
#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
www.detodoprogramacion.org
6.4 Ejercicios del Tema
Vectores
1. Lectura de 20 elementos enteros de un vector denominado
alfa.
APLICANDO DESDE APLICANDO MIENTRAS
www.detodoprogramacion.org
El código del ejercicio 1 de Vectores en Python usando
mientras (while) es el siguiente:
# -*- coding: utf-8 -*-
#Decoración: Nombre del Algoritmo
print("-------------------------------------------------------")
print("Vector1: LECTURA DE N ELEMENTOS ENTEROS.")
print("-------------------------------------------------------")
#inicializar
i=1
F = [] #Inicializamos una LISTA VACÍA
#Entrada
print("Ingrese Número de elementos a Ingresar: ")
numElementos = int( input())
#Proceso
while i <= numElementos:
elemento = int( input("Ingrese Elemento: "))
F.append(elemento) #Agregamos el elemento a la lista
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:
www.detodoprogramacion.org
-------------------------------------------------------
[5, 7, 8, 9, 10, 3, 4, 2, 23, 29]
www.detodoprogramacion.org
Algoritmo Temperaturas
Const
N = 100
Var
Temp : array (1..N) de real
I,C : Entero
Suma, Media : Real
Inicio
Suma 0
Media 0
C0
Desde I 1 hasta N hacer
Leer (Temp(I))
Suma Suma + Temp(I)
Fin desde
Media Suma / N
Desde I 1 hasta N hacer
Si Temp(I) >= Media entonces
CC+1
Escribir (Temp(I))
Fin Si
Fin desde
Escribir (“La media es “, Media)
Escribir (“Total de temperaturas >= a media
es”, C)
Fin
www.detodoprogramacion.org
El código del ejercicio 2 de Vectores en Python es el
siguiente:
# -*- coding: utf-8 -*-
#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)
www.detodoprogramacion.org
Descargado de: www.detodopython.com
-------------------------------------------------------
Vector2: MEDIA DE TEMPERATURAS.
-------------------------------------------------------
Ingrese cantidad de Temperaturas:
5
Ingrese Temperatura 1: 20.5
Ingrese Temperatura 2: 10
Ingrese Temperatura 3: 15
Ingrese Temperatura 4: 22
Ingrese Temperatura 5: 5
20.5
15.0
22.0
SALIDA:
-------------------------------------------------------
La media es 14.5
Total de temperaturas >= a la media es 3
www.detodoprogramacion.org
Dato: VEC (1..N) ; donde 1<=N<=200 y VEC es un
arreglo unidimensional de enteros ordenados, cuya
capacidad máxima es de 200 elementos.
www.detodoprogramacion.org
VEC = [] #Inicializamos una lista vacía
#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
www.detodoprogramacion.org
SALIDA:
-------------------------------------------------------
[4, 5, 12, 13]
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”.
www.detodoprogramacion.org
El código del ejercicio 1 de Matrices en Python es el
siguiente:
#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)
www.detodoprogramacion.org
-------------------------------------------------------
Matriz1: SUMA DE MATRICES.
-------------------------------------------------------
Ingrese dimensión de la matriz, máximo 100
Número de Filas: 3
Número Columnas: 2
A11: 1
B11: 2
A12: 2
B12: 3
A21: 3
B21: 4
A22: 4
B22: 5
A31: 5
B31: 6
A32: 6
B32: 7
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]]
www.detodoprogramacion.org
Dato: A (1..N, 1..N) donde 1<= N <=100 y A es un
arreglo bidimensional de tipo entero.
www.detodoprogramacion.org
El código del ejercicio 2 de Matrices en Python es el
siguiente:
# -*- coding: utf-8 -*-
#Decoración: Nombre del Algoritmo
print("-------------------------------------------------------")
print("Matriz2: VERIFICAR SI LA MATRIZ ES SIMÉTRICA.")
print("-------------------------------------------------------")
#Inicializar
A = []
#Entradas
print("Ingrese dimensiones del arreglo")
N = int( input())
#Proceso
if 1 <= N and N <= 100:
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.")
www.detodoprogramacion.org
-------------------------------------------------------
Matriz2: VERIFICAR SI LA MATRIZ ES SIMÉTRICA.
-------------------------------------------------------
Ingrese dimensiones del arreglo
3
A00: 1
A01: 2
A02: 3
A10: 2
A11: 5
A12: 0
A20: 3
A21: 0
A22: 5
SI ES SIMÉTRICA
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
www.detodoprogramacion.org
b. Promedio de ventas por año.
c. Año con mayor promedio de ventas.
www.detodoprogramacion.org
Algoritmo Automotriz
Var
MONTO : array (1..30, 1..35) de real
I,J , SUC , AÑO : Entero
SUMA, MAX, PROM : Real
Inicio
Escribir (“Ingrese numero de sucursales y años”)
Leer ( N , M)
Desde I 1 hasta M hacer
Desde J 1 hasta N hacer
Escribir (“Ingrese ventas de la sucursal”, J , “en el año”. I )
Leer ( MONTO(I , J) )
Fin desde
Fin desde
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
www.detodoprogramacion.org
El código del ejercicio 3 de Matrices en Python es el siguiente:
# -*- coding: utf-8 -*-
#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]
www.detodoprogramacion.org
print("-------------------------------------------------------")
MAX = 0
for i in range(M):
SUMA = 0
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
www.detodoprogramacion.org
-------------------------------------------------------
Promedio de ventas del año 1 es 350.0
Promedio de ventas del año 2 es 300.0
Promedio de ventas del año 3 es 425.0
Año con mayor promedio 3
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
www.detodoprogramacion.org
Código del complementario 1 en Python es el siguiente:
# -*- coding: utf-8 -*-
#Decoración: Nombre del Algoritmo
print("-------------------------------------------------------")
print("Complemento1: PRODUCTO VECTORIAL Y ESCALAR.")
print("-------------------------------------------------------")
#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.
-------------------------------------------------------
www.detodoprogramacion.org
V1(1): 1
V1(2): 2
V1(3): 3
V2(1): -1
V2(2): 1
V2(3): 2
El producto escalar es: 7
El producto vectorial es: 1i -5j 3k
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
www.detodoprogramacion.org
El código del complementario 2 en Python es el siguiente:
# -*- coding: utf-8 -*-
#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
www.detodoprogramacion.org
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
www.detodoprogramacion.org
Pseudocódigo.
Algoritmo primos
Var
N: array (1..100) de entero
B: array (1..100) de lógico
i,j: entero
Inicio
Desde i← 1 hasta 100
N(i)← i
Fin desde
N(1)← 0
Desde i← 2 hasta 99
Desde j← i+1 hasta 100
Si (N(j) mod N(i) =0) entonces
B(j)← 0
Fin si
Fin desde
Fin desde
Desde i← 1 hasta 100
Si (B(i)=1) Entonces
Escribir (N(i))
Fin si
Fin desde
Fin
#inicializar
N = []
#Llenar N con elementos de 1 a 100
www.detodoprogramacion.org
for i in range(1, 100+1):
N.append(i)
#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
www.detodoprogramacion.org
67
71
73
79
83
89
97
www.detodoprogramacion.org
Pseudocódigo.
Algoritmo opciones
Var
V:array(1..100) real
i, j, a,nn, c, num,max, ma: real
n,opc:entero
Inicio
i← 0
Escribir ("Ingrese tamaño del vector")
Leer (n)
Repetir
Escribir("Ingrese 1 para añadir un elemento al vector”)
Escribir(“Ingrese 2 para eliminar un elemento del vector”)
Escribir(“Ingrese 3 para listar el contenido del vector ”)
Escribir(“Ingrese 4 para contar las apariciones de Un número en el vector”)
Escribir(“Ingrese 5 para calcular la media y el máximo de los elemnetos de un vector”)
Escribir(“Ingrese 0 para terminar")
Leer (opc)
Si opc igual
1: Si (i < n) entonces
i← i + 1
Leer (V(i))
Fin si
2: Escribir ("Ingrese el número que desea eliminar")
Leer (num)
Si (num> 0) entonces
a← 0
Desde j← 1 hasta i
Si a(j) = nn entonces
a← j
j← i
Fin si
Fin desde
Si a> 0 y a<= i entonces
Desde j ← a hasta i – 1
V(j) ← V(j + 1)
Fin desde
V(i) ← 0
i← i – 1
Fin si
Fin si
3: Si i > 0 entonces
Desde j ← 1 hasta i
Escribir (a(j))
Fin desde
Fin si
4: c← 0
Escribir ("Ingrese numero para contar número de apariciones")
Leer (nn)
Desde j← 1 hasta i
Si nn = a(j) entonces
c← c + 1
Fin_si
Fin_ desde
Escribir (" El número de apariciones es: " , c)
5: max← a(1)
ma← 0
Desde j ← 1 hasta i
Si max<a(j) entonces
max← a(j)
Fin si
ma← ma + a(j)
Fin desde
ma← ma / i
Escribir ("El maximo es:", max, " y la media es: ", ma)
0: Fin Selector hasta que
opc← 0
Fin
www.detodoprogramacion.org
Descargado de: www.detodopython.com
#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
www.detodoprogramacion.org
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
www.detodoprogramacion.org
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
www.detodoprogramacion.org
5) Elaborar algoritmo que busque en forma secuencial un
VALOR dentro de un arreglo de N elementos numéricos y
retorne su posición.
Pseudocódigo.
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
www.detodoprogramacion.org
Diagrama de Flujo.
Inicio
V1(i)
V2(i)
sum← 0
P← V1(i)*V2(i)
sum←sum+P
Fin
www.detodoprogramacion.org
El código del complementario 5 en Python es el siguiente:
# -*- coding: utf-8 -*-
#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
www.detodoprogramacion.org
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
www.detodoprogramacion.org
El código del complementario 6 en Python es el siguiente:
# -*- coding: utf-8 -*-
#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
www.detodoprogramacion.org
V3: 40
V4: 5
V5: 8
V6: 15
V7: 35
V8: 21
Los elementos del vector son:
[40, 35, 30, 21, 15, 8, 5, 2]
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
www.detodoprogramacion.org
# -*- coding: utf-8 -*-
#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
www.detodoprogramacion.org
-------------------------------------------------------
Complemento7: INGRESAR VALOR EN EL VECTOR ASCENDENTE.
-------------------------------------------------------
Ingrese los 10 valores del vector:
valor 1: 1
valor 2: 20
valor 3: 27
valor 4: 28
valor 5: 5
valor 6: 6
valor 7: 2
valor 8: 8
valor 9: 11
valor 10: 45
Ingrese valor a insertar: 15
1
2
5
6
8
11
15
20
27
28
45
www.detodoprogramacion.org
Pseudocódigo.
Algoritmo Par_im
Var
vec: array (1..100) de entero
pares: array (1..100) de entero
impares: array (1..100) de entero
v, vpr, i : entero
Inicio
Escribir ( Ingrese los 100 valores del vector”)
Para x 0 hasta 99
Leer (vec (x))
Fin para
Para x 1 hasta 99
Si vec (x) mod 2 = 0 entonces
pares(vpr)vec(x)
vprvpr + 1
sino
impares(i) vec (x)
i i + 1
Fin si
Fin para
Escribir ( El vector de pares tiene” , vpr, elementos”)
Escribir ( El vector de impares tiene”,i, elementos”)
Si vpr > i entonces
Escribir ( El vector de pares es el más grande”)
sino
Si i> vpr entonces
Escribir ( El vector de impares es el mas grande”)
Si no
Escribir ( Los 2 vectores son iguales en numero de elementos”)
Fin si
Fin si
Fin
www.detodoprogramacion.org
El código del complementario 8 en Python es el siguiente:
# -*- coding: utf-8 -*-
#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")
www.detodoprogramacion.org
if vpr > i :
print ( "El vector de pares es el más grande")
else:
print ( "Los 2 vectores son iguales en número de elementos")
-------------------------------------------------------
www.detodoprogramacion.org
Pseudocódigo.
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())
www.detodoprogramacion.org
print ( "Ingrese animal buscado:")
nom = input()
print ( "El animal tiene como vecino a:")
print("-------------------------------------------------------")
for x in range(tamArray):
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
www.detodoprogramacion.org
7. Glosario
֍ Algoritmo
֍ Bucle
֍ Computadora
֍ Constante
֍ Dato
www.detodoprogramacion.org
֍ Diagrama de flujo
֍ Estructuras Repetitivas
֍ Estructuras Selectivas
֍ Funciones
֍ Identificadores
www.detodoprogramacion.org
֍ Lenguaje de programación
֍ Matrices
www.detodoprogramacion.org
֍ Postulados
֍ Procedimientos
֍ Programa
֍ Pseudocódigos
֍ Variables
www.detodoprogramacion.org
de datos que puede cambiar de valor y es de diferentes tipos
(numéricos, cadena, fecha, etc.)
֍ Vectores
www.detodoprogramacion.org
8. Bibliografía
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
www.detodoprogramacion.org
Lenguaje Logo Iii. Explorando la Programación. (s. f.). EUNED.
Universitat de València.
https://books.google.com.pe/books?id=jwBdAAAAMAAJ
www.detodoprogramacion.org
DETODOPROGRAMACION.ORG
www.detodoprogramacion.org
www.detodopython.com
www.gratiscodigo.com