PDF de programación - Python - Fundamentos de programación - Ejercicios

Imágen de pdf Python - Fundamentos de programación - Ejercicios

Python - Fundamentos de programación - Ejerciciosgráfica de visualizaciones

Publicado el 11 de Mayo del 2021
6.808 visualizaciones desde el 11 de Mayo del 2021
843,0 KB
86 paginas
Creado hace 3a (13/03/2021)
Fundamentos de programación

Ejercicios

Curso 2020/21

1

2

Ejercicios de Fundamentos de Programación - revisión 01/11/2020

Copyleft © Alejandro Castán Salinas
Se otorga el permiso para copiar, distribuir y/o modificar este documento bajo
los términos de la licencia de documentación libre GNU, versión 1.3 o
cualquier otra versión posterior publicada por la Free Software Foundation.
Puedes consultar dicha licencia en http://www.gnu.org/copyleft/fdl.html.

El contenido de este documento puede cambiar debido a ampliaciones y
correcciones enviadas por los lectores. Encontrarás siempre la última versión
ca t/~acastan/textos/
.

del documento en http://www.xtec.



3

Índice de contenido
Preparados, listos, … ¡ya!.....................................................................................................................5
Práctica 1: Lenguajes de programación, compiladores e intérpretes, y entornos de desarrollo...........7
Práctica 2: Algoritmos secuenciales...................................................................................................16
Práctica 3: Estructuras de control alternativas....................................................................................21
Práctica 4: Estructuras de control iterativas........................................................................................27
Práctica 5: Estructuras de almacenamiento homogéneas unidimensionales (vectores y strings).......32
Práctica 6: Estructuras de almacenamiento homogéneas multidimensionales (matrices)..................42
Práctica 7: Estructuras de almacenamiento heterogéneas (diccionarios y clases)..............................48
Práctica 8: Funciones y modularidad..................................................................................................55
Práctica 9: Almacenamiento en ficheros.............................................................................................68
Práctica 10: Comunicación por red.....................................................................................................77
Práctica 11: Apuntadores y estructuras dinámicas de datos...............................................................82
¡Fin!....................................................................................................................................................85

4

Preparados, listos, … ¡ya!

Este documento no es un curso de programación. Tampoco es un curso de Python. Encontrarás
muchos buenos cursos sobre dichos temas en libros e Internet.
Este documento tan sólo contiene algunos ejercicios de programación, para ir practicando y fijando
lo aprendido en clases de programación básica. No pretende que resuelvas los problemas en Python,
aunque a principio de cada bloque de ejercicios haya un breve resumen de algunas características
necesarias de dicho lenguaje.
Este curso trabajamos con Python, pero en cursos anteriores utilizamos C o Java. El lenguaje de
programación no importa y el entorno de desarrollo tampoco. De hecho, las soluciones que
propongo no son “pythónicas”: intento que no contengan características distintivas de Python, sino
estructuras de datos, de control de flujo, y operadores que puedes encontrar en cualquier lenguaje de
programación.
Para programar hace falta curiosidad, pasión por los rompecabezas, y muchas ganas de divertirse.
En esta primera sección del documento adjunto algunas ideas para practicar la programación con
Python de una manera muy lúdica.

Python + Turtle
Python tiene el módulo turtle, que te permite dibujar gráficos vectoriales al estilo del antiguo
lenguaje de programación Logo. Un ejemplo de uso:
- https://www.mclibre.org/consultar/python/lecciones/python-turtle-1.html

Python + Pygame
Python tiene el módulo pygame, que te permite programar videojuegos 2D. Un ejemplo de uso:
- https://www.raspberrypi.org/magpi-issues/Essentials_Games_v1.pdf

Python + Blender
Blender, el programa libre y gratuito de diseño 3D, permite utilizar Python para interactuar con los
objetos. Encontrarás varios videotutoriales en internet. La documentación de referencia:
- https://docs.blender.org/manual/en/latest/advanced/scripting/introduction.html

Python + Robocode
¿Te atreves a utilizar una API para programar el comportamiento de un tanque, y lanzarlo a un arena
a competir con otros tanques?
- https://github.com/turkishviking/Python-Robocode

5

Python + Aplicaciones con interfaz gráfica
¿Estás cansado de escribir aplicaciones para la cónsola? ¿Te apetece utilizar librerías para que tu
aplicación muestre ventanas y elementos gráficos? Tk
- https://realpython.com/learning-paths/python-gui-programming/

, PyQt, wxPython, PySimpleG

i nter


, …

UI



Python + Minecraft
Python puede interactuar con el juego Minecraft. Puedes escribir programas que construyan
estructuras dentro del juego, o que varíen el comportamiento del personaje.
Un ejemplo de uso:
- https://www.raspberrypi.org/magpi-issues/Essentials_Minecraft_v1.pdf
Si dispones del juego Minecraft, que no es gratuito, para poder interactuar con Python debes:

1) Descargar e instalar un servidor de Minecraft como Spigot o Paper. Configurarlo para modo

de juego “creativo”.

2) Descargar el módulo RaspberryJuice en la carpeta “plugins” de dicho servidor.
3) Ejecutar el servidor.
4) Ejecutar el juego Minecraft y escoger una partida multijugador contra tu servidor. Pulsa
simultáneamente las teclas <F3>+<P> para activar que cuando abandones la ventana del
juego éste no se paralice.

5) En la carpeta donde vayas a programar con Python, descarga las librerías

y
descomprímelas en la carpeta “mcpi”. Aquí tienes una descripción de las funciones de dicha
librería: http://www.stuffaboutcode.com/p/minecraft-api-reference.html

para Minecraft



Si no dispones del juego Minecraft, no lo compres. Puedes realizar un montaje más sencillo que el
anterior sobre Minetest, un clon gratuito y libre de Minecraft, En Linux me ha bastado con instalar
des de los repositorios los paquetes “minetest”, “minetest-mod-pycraft” y “python3-minecraftpi”.

Python + Raspberry
El miniordenador Raspberry Pi dispone de una línea de entradas y salidas digitales llamada GPIO
que permite conectar todo tipo de circuitos electrónicos e interactuar con ellos. Ejemplos de uso:
- https://www.raspberrypi.org/magpi-issues/Essentials_GPIOZero_v1.pdf
- https://realpython.com/python-raspberry-pi/
- https://gpiozero.readthedocs.io/en/stable/recipes.html

Python + sistemas y ciberseguridad
Hay mil y una librerías: Scapy para crear paquetes TCP/IP; shodan para interactuar con el buscador
Shodan; smtp
para enviar correo; Fabric para automatizar tareas de administración; dn s python

para consultas DNS; python-whois para consultas WHOIS; PyPDF4 para procesar o crear pdf;
ipaddress para cálculos de subnetting; pyHook para crear keyloggers; psutil, subprocess, os y sys
para interactuar con procesos y el sistema; shutil para manipular ficheros a nivel de directorio; etc.

lib



6

Práctica 1: Lenguajes de programación, compiladores e
intérpretes, y entornos de desarrollo

Objetivos de la práctica
● Conocer la historia de los lenguajes de programación más importantes.
● Entender los conceptos de código fuente, código máquina, compilador e intérprete.
● Familiarización con un entorno integrado de desarrollo.
● Familiarización con la estructura de un programa en lenguaje Python.
● Familiarización con las funciones de entrada y salida del lenguaje Python.
● Familiarización con los tipos de datos en Python y comprensión de los errores debidos al rango

de precisión de los tipos numéricos.

Algorítmica
Algoritmo es la exposición, paso a paso, de la secuencia de instrucciones que se ha de seguir para
resolver un determinado problema.
Estructura de datos es una representación en forma lógica de la información, una manera de
organizar una determinada información.
Lenguaje de programación son el conjunto de instrucciones que permiten controlar una máquina.
Un programa es la descripción de un algoritmo en un determinado lenguaje de programación.
● http://es.wikipedia.org/wiki/Algoritmo

● http://es.wikipedia.org/wiki/Estructura_de_datos

● http://es.wikipedia.org/wiki/Lenguaje_de_programación



Diagramas de flujo
El diagrama de flujo es un lenguaje visual de descripción de algoritmos. La representación gráfica
nos permite entender fácilmente el proceso, aunque para procesos muy complejos los diagramas de
flujo se vuelven demasiado extensos y, por lo tanto, intratables.
● http://es.wikipedia.org/wiki/Diagrama_de_flujo

● http://code.google.com/p/freedfd/



7

● http://www.youtube.com/watch?v=VvUuey811PU

● http://drakon-editor.sourceforge.net/



INICIO

FIN

Las cajas con forma de elipse indican el inicio y el
final del algoritmo

OPERACIÓN

FALSO

CONDICIÓN

CIERTO

Las cajas con forma de rectángulo indican una
operación, cálculos en general.

Las cajas con forma de rombos indican una
decisión. Según sea el resultado de evaluar la
expresión lógica el codigo se bifurcará hacia un
camino o hacia otro.

PEDIR
DATOS

DAR

RESULTADOS

Las cajas con forma de trapecios indican una
petición de datos o una salida de resultados.

ENLAZAR

OPERACIONES

Las flechas enlazan los diferentes pasos del
algoritmo y nos indican el orden de estos.

Ejemplo: descripción mediante diagrama de flujo del proceso a seguir un domingo por la mañana.

8

Ejemplo: descripción mediante diagrama de flujo del proceso a seguir para calcular una raíz
cuadrada.

Pseudocódigo
Pseudocódigo es un lenguaje escrito de descripción de algoritmos, con una sintaxis más coloquial y
menos rígida que la de los lenguajes de programación.
● http://es.wikipedia.org/wiki/Pseudocódigo

● http://pseint.sourceforge.net/



Ejemplo: descripción mediante pseudocódigo del proceso a seguir para calcular una raíz cuadrada.

programa RaizCuadrada
  • Links de descarga
http://lwp-l.com/pdf19183

Comentarios de: Python - Fundamentos de programación - Ejercicios (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad