Está en la página 1de 43

Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Programación Digital (IC246)


“Guía de Programación para Python 3.x”

Docente: M.Sc. Ing. Edmundo Canchari Gutiérrez

Universidad Nacional de San Cristóbal de Huamanga


Escuela Profesional de Ingeniería Civil

8 de septiembre de 2019
Contenido
1 Algoritmos
2 Elementos del lenguaje Python
3 Programación modular
4 Programación estructurada
Estructuras de decisión
Estructuras iterativas
5 Matrices
6 Gráficos
7 GUI and OOP
GUI
OOP
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Tabla de contenido

1 Algoritmos
2 Elementos del lenguaje Python
3 Programación modular
4 Programación estructurada
Estructuras de decisión
Estructuras iterativas
5 Matrices
6 Gráficos
7 GUI and OOP
GUI
OOP
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Algoritmo

Definición de algoritmo
Un algoritmo es un conjunto de instrucciones o reglas bien
definidas, ordenadas y finitas que permite llevar a cabo una
actividad mediante pasos sucesivos que no generen dudas a quien
deba hacer dicha actividad.

Medios de expresión de un algoritmo


Diagrama de flujo.
Pseudocódigos.
Diagrama Nassi-Shneiderman (diagramas NS).
...
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Diagrama de flujo

Figura 1: Símbolos para crear diagramas de flujo


Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Tabla de contenido

1 Algoritmos
2 Elementos del lenguaje Python
3 Programación modular
4 Programación estructurada
Estructuras de decisión
Estructuras iterativas
5 Matrices
6 Gráficos
7 GUI and OOP
GUI
OOP
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Tipos de datos

Tabla 1: Tipos de datos básicos en PyThon 3.x

Descripción Tipo Ejemplo


Entero int 3
De punto flotante float 10.25
Complejos complex 4 + 3j
Cadenas de texto str ”Hola mundo”
Valores booleanos bool True (cierto), False (Falso)
Listas list [1,3,4,”hola mundo”]
Tuplas tuple (1,3,4,”hola mundo”)
Diccionarios set {“lluvia” : “Arco iris” , “Noche” : “Luna” }
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Operadores aritméticos

Tabla 2: Operadores aritméticos en PyThon 3.x

Operación Operador Aridad Asociatividad


Exponenciación ** Binario Por la derecha
Identidad + Unario
Cambio de signo - Unario
Multiplicación * Binario Por la izquierda
División / Binario Por la izquierda
División entera // Binario Por la izquierda
Módulo o resto) % Binario Por la izquierda
Suma + Binario Por la izquierda
Resta - Binario Por la izquierda
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Operadores relacionales

Tabla 3: Operadores relacionales en PyThon 3.x

Operación Operador Aridad Asociatividad


Igual que == Binario
Distinto de != Binario
Menor que < Binario
Menor o igual que <= Binario
Mayor que > Binario
Mayor o igual que >= Binario
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Operadores lógicos

Tabla 4: Operadores lógicos en PyThon 3.x

Operación Operador Aridad Asociatividad


Negación not Uniario
Conjunción and Binario Por la izquierda
Disyunción or Binario Por la izquierda

Tabla 5: Tabla de valores de verdad

X Y not(X) not(Y) X and Y X or Y


V V F F V V
V F F V F V
F V V F F V
F F V V F F
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Operador de asignación y variables

En PyThon (al igual que otros muchos lenguajes de


programación), el operador de asignación es:

=
Asignar a una variable un tipo de dato admitido:

A = 12.56
B = {1, 2, "Hola"}
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Palabras reservadas

Palabras reservadas en Python 3.x


and, as, assert, break, class, continue, def, del, elif, else, except,
finally, for, from, global, if, import, in, is, lambda, nonlocal, not,
or, pass, raise, return, try, while, with, yield

Nota!
Las palabras reservadas no deben utilizarse como nombre de
variables, funciones, clases, . . .
Para su uso es necesario tener en cuenta su sintaxis.
Qué hace cada palabra reservada? (semántica).


Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Tabla de contenido

1 Algoritmos
2 Elementos del lenguaje Python
3 Programación modular
4 Programación estructurada
Estructuras de decisión
Estructuras iterativas
5 Matrices
6 Gráficos
7 GUI and OOP
GUI
OOP
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Funciones creados por el usuario en Python

1 def MyFunction(x,y,z):
2 # Sintaxis de una función general en Python 3.x
3 accion1
4 accion2
5 accion3
6 ...
7 accionn
8 return (variable)

Listing 1: Sintaxis para crear funciones en Python


Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Funciones creados por el usuario en Python

Donde:
def variable reservada, indica creación de una función.
MyFunction nombre de la función, debe cumplir las reglas
del nombre de una variable.
(x,y,z) datos de ingreso requeridas por la función, todos los
datos necesarios separados por comas, si la función no
requiere datos, es necesario especificar paréntesis.
: los dos puntos, es necesario por su sintaxis.
Accione1, AcciónN acciones asignadas a la función.
return variable reservada que especifica la variable de retorno
de la función.
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Tabla de contenido

1 Algoritmos
2 Elementos del lenguaje Python
3 Programación modular
4 Programación estructurada
Estructuras de decisión
Estructuras iterativas
5 Matrices
6 Gráficos
7 GUI and OOP
GUI
OOP
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Estructuras de decisión

Estructura de decisión simple


Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Estructuras de decisión

Estructura selectiva o alternativa


Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Estructuras de decisión

Estructura selectiva múltiple


Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Estructuras iterativas

Estructuras iterativa for


Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Estructuras iterativas

Estructuras iterativa for

Estructura iterativa for ... in

1 secuencia = range(1,10,2)
2 for elemento in secuencia:
3 Proceso 1
4 ...
5 Proceso n

Utilizado cuando se conoce con exactitud el número de veces que


se repetirá el proceso.
for inicia la estructura repetitiva, elemento toma cada
componente de secuencia para cada iteración.
El proceso repite tantas veces como componentes tenga
secuencia.
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Estructuras iterativas

Estructuras iterativa while


Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Estructuras iterativas

Estructuras iterativa while


Estructura iterativa while

1 # códigos anteriores
2 while (condición):
3 Proceso 1
4 ...
5 Proceso n

Utilizado cuando no conoce con exactitud el número de veces que


se repetirá el proceso, pero se dispone de una condición para
finalizar.
while inicia el proceso iterativo, para su ejecución requiere una
variable booleana.
El proceso repite tantas veces mientras la condición sea
evaluada a verdadero (True).
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Estructuras iterativas

Ecuaciones que aproximan Pi

√ √ √
p q p
2 2 2+ 2 2+ 2+ 2
= ∗ ∗ ... (1)
π 2 2 2
∞  
1 4 2 1 1
(2)
X
π= − − −
16k 8k + 1 8k + 4 8k + 5 8k + 6
k=0

π X (−1)n

= (3)
4 2n + 1
n=0

(2)n (n!)2

π
(4)
X
=
2 (2n + 1)!
n=0

π2 1 1 1 1 1
= 2 + 2 + 2 + 2 + 2 + ... (5)
6 1 2 3 4 5
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Estructuras iterativas

Fracciones continuas generalizadas (π )

Figura 2: Representación de π mediante fracciones continuas (I)


Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Estructuras iterativas

Fracciones continuas generalizadas (π )


Código fuente en Python 3.6.3 de la Ecuación anterior, la
implementación del diagrama de flujo y pseudocódigo queda a
cargo de los estudiantes.

1 def AproxPi_fcA(n):
2 #n es un número muy grande
3 fc=1
4 #Genera números consecutivos (descendente)
,→ desde n hasta cero
5 num=range(n,0,-1)
6 #Aproximación de PI mediante fracciones
,→ continuas generalizadas
7 for i in num:
8 fc=(2*i-1)+i**2/fc
9 return 4/fc
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Estructuras iterativas

Fracciones continuas generalizadas (π )

Figura 3: Representación de π mediante fracciones continuas (II)


Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Estructuras iterativas

Fracciones continuas generalizadas (π )


Código fuente en Python 3.6.3 de la Ecuación anterior,
implementar el diagrama de flujo y pseudocódigo.

1 def AproxPi_fcB(n):
2 #n es un número muy grande
3 fc=1
4 if (n%2)==0: #n necesariamente debe ser impar
5 n=n+1
6 #Genera números impares desde n hasta 3
7 impar=range(n,1,-2)
8 #Aproximación de PI mediante fracciones
,→ continuas generalizadas
9 for i in impar:
10 fc=6+i**2/fc
11 return 3+1/fc
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Tabla de contenido

1 Algoritmos
2 Elementos del lenguaje Python
3 Programación modular
4 Programación estructurada
Estructuras de decisión
Estructuras iterativas
5 Matrices
6 Gráficos
7 GUI and OOP
GUI
OOP
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Matrices

1 import numpy as np # Importar librería


2 m=4; n=3; p=6
3 C = np.zeros([m,p]) # Crear matrices
4 D = np.identity(m)
5 X = np.random.randint(-1000,1000,(m,n))
6 Y = np.random.randint(-500,500,(m,n))
7 # Obtener el elemento de la primera fila y primera
,→ columna
8 a = X[0,0]
9 # Modificar un elemento de una matriz
10 X[1,2]=200.56
11 # Número de filas y columnas de una amtriz
12 a=np.shape(X)
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Tabla de contenido

1 Algoritmos
2 Elementos del lenguaje Python
3 Programación modular
4 Programación estructurada
Estructuras de decisión
Estructuras iterativas
5 Matrices
6 Gráficos
7 GUI and OOP
GUI
OOP
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Gráficos

1 import numpy as np
2 import matplotlib.pyplot as plt
3 x=np.linspace(-50,50,200)
4 y=x*np.sin(x)
5 plt.figure()
6 plt.plot(x, y, linewidth=1, linestyle="-",
,→ color="red", marker="None", label="Basilea")
7 plt.legend(loc=4)
8 plt.xlabel("Número de Iteracion")
9 plt.ylabel("Valor de PI")
10 plt.title("Aproximación de PI")
11 plt.axis("tight")
12 plt.grid(True); plt.show()
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Tabla de contenido

1 Algoritmos
2 Elementos del lenguaje Python
3 Programación modular
4 Programación estructurada
Estructuras de decisión
Estructuras iterativas
5 Matrices
6 Gráficos
7 GUI and OOP
GUI
OOP
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

Interfaz gráfica de usuario

GUI:
Graphical user interface (Interfaz gráfica de usuario). Utilizaremos
QT Designer, se encuentra incluido en Anaconda 5.0.1, a tener en
cuenta
OOP:
Object-oriented programming (Programación orientada a objetos)
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

GUI

Interfaz gráfica de usuario


Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

GUI

Interfaz gráfica de usuario


Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

GUI

Interfaz gráfica de usuario


Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

GUI

Interfaz gráfica de usuario

Nota: se trabaja con dos archivos:


Archivo con extensión .ui (contiene la interfaz gráfica de
usuario, creado desde QT designer)
Archivo .pyw (contiene el código fuente implementado, creado
desde un IDE: Pycharm, spyder, ...)
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

GUI

Interfaz gráfica de usuario


Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

GUI

Interfaz gráfica de usuario


Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

GUI

Interfaz gráfica de usuario


Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

OOP

Programación orientada a objetos

GUI: Object-oriented programming (Programación orientada a


objetos)

La Programación Orientada a Objetos (POO u OOP según sus


siglas en inglés) es un paradigma de programación que usa objetos
y sus interacciones para diseñar aplicaciones y programas de
computadora. Está basado en varias técnicas, incluyendo herencia,
modularidad, polimorfismo, y encapsulamiento.
Algoritmos Elementos Programación modular Programación estructurada Matrices Gráficos GUI and OOP

OOP

Programación orientada a objetos

También podría gustarte