Logo Studenta

Algortimos secuenciales con phyton

¡Este material tiene más páginas!

Vista previa del material en texto

Algoritmos secuenciales con Phyton
Robert Espinoza
Tipos de datos
 Entero
25
 Flotante
3.678
 Booleano o lógico
True
False
 Cadena de caracteres (string)
“Juan”
‘Rosales’
Tipos de datos
Enteros en otros sistemas de numeración
 Binario. Inician con 0b (Cero y b)
>>> 0b100 + 0b101 -------> 4 + 5
9
 Octal. Inician con 0o (Cero y o)
>>> 0o10 + 0o7 ---------> 8 + 7
15
 Hexadecimal. Inicia con 0x
>>> 0xF + 0x10 ---------> 15 + 16
31
Operadores aritméticos
Operadores para expresiones aritméticas. El nivel de precedencia 1 es el de 
mayor prioridad y el 4 el de menor.
Operadores aritméticos
>>> 2 + 3 + 1 + 2
8
>>> 2 + 3 * 2 + 5
13
>>> (2 + 3) * 2 + 5
15
>>> (2 + 3) * (2 + 5)
35
>>> 3 / 2
1.5
>>> 3 // 2
1
>>> -3 // 2
-2
>>> -3 / 2 - 1
-2.5
>>> -3 // 2 - 1
-3
>>> 17 % 5
2
>>> 2 ** 5
32
Operadores relacionales
Operadores relacionales
>>> 2 < 1
False
>>> 5 > 1
True
>>> 5 >= 1
True
>>> 5 > 5
False
>>> 4 == 4
True
>>> 1 != 3
True
Operadores lógicos
and
 La «y lógica» o conjunción
or
 La «o lógica» o disyunción 
not
 el «no lógico» o negación
Operadores lógicos
Operadores lógicos
Paridad, asociatividad y precedencia de los operadores lógicos.
Operadores lógicos
>>> True and False
False
>>> not True
False
>>> (True and False) or True
True
>>> True and True or False
True
>>> False and True or True
True
>>> False and True or False
False
Operadores de Phyton
Operadores de Phyton
>>> (True or (2 == 1 + 2)) == True
True
>>> 2 < 3 < 4
True
>>> (2 < 3) and (3 < 4)
True
>>> 2 < 3 > 1
True
>>> (2 < 3) and (3 > 1)
True
Variables y asignaciones
 Variable
 Es una posición de memoria que almacena un y que tiene un 
identificador como nombre
 Operador de asignación (=)
 Sirve para asignar un valor a una variable (no confundir con el 
operador de igualdad ==)
variable = expresión
 Ejemplos:
precio = 1500.25
edad = 35
apellido = “Estrada”
Variables y asignaciones
 El nombre de una variable es su identificador. 
 Un identificador debe estar formado por letras4 
minúsculas, mayúsculas, dígitos y/o el carácter de 
subrayado , con una restricción: que el primer 
carácter no sea un dígito.
 Hay una norma más: un identificador no puede 
coincidir con una palabra reservada o palabra clave
de Python: 
 and, as, assert, break, class, continue, def, del, elif, else, 
except, False, finally, for, from, global, if, import, in, is, 
lambda, nonlocal, None, not, or, pass, raise, return, True, 
try, with, while y yield.
Variables y asignaciones
 Calcular el área y perímetro (circunferencia) de un círculo
>>> pi = 3.14159265359
>>> r = 1.298373
>>> perímetro = 2 * pi * r
>>> perímetro
8.157918156839218
>>> área = pi * r **2
>>> área
5.296010335524904
Asignación
 Asignar no es comparar
>>> a = 10
>>> a
10
>>> a == 1
False
>>> a
10
Asignación
 Una asignación no es una ecuación
>>> x = 5
>>> x = x + 1
>>> x
6
Funciones básicas
 abs: calcula el valor absoluto de un número.
>>> abs (-3)
3
 float: conversión a flotante. Si recibe un número entero como 
argumento, devuelve el mismo número convertido en un 
flotante equivalente.
>>> float(3)
3.0
>>> float ('3.2')
3.2
>>> float('3.2e3')
3200.0
Funciones básicas
 int: conversión a entero. Si recibe un número flotante 
como argumento, devuelve el entero que se obtiene 
eliminando la parte fraccionaria.
>>> int (2.1)
2
>>> int (-2.9)
-2
>>> int ('2')
2
Funciones básicas
 str: conversión a cadena. Recibe un número y devuelve 
una representación de este como cadena.
>>> str (2.1)
'2.1'
>>> str (234E20)
'2.34e+22'
Funciones básicas
 round: redondeo. Puede usarse con uno o dos 
argumentos. Si se usa con un solo argumento, redondea 
el número al entero más próximo.
>>> round (2.1)
2
>>> round (2.9)
3
>>> round (-2.9)
-3
>>> round (2.1451, 2)
2.15
Funciones básicas
 ord: Devuelve el código unicode que corresponde a un 
carácter. 
>>> ord ('a')
97
>>> ord ("A")
65
 chr: Devuelve el carácter que corresponde a un código 
unicode. 
>>> chr (97)
'a'
>>> chr (65)
'A'
Funciones del módulo math
Función Significado
sin(x) Seno de x, que debe estar expresado en radianes.
cos(x) Coseno de x, que debe estar expresado en radianes.
tan(x) Tangente de x, que debe estar expresado en radianes.
exp(x) El número e elevado a x.
ceil(x) Redondeo hacia arriba de x (en inglés, «ceiling» significa 
techo).
floor(x) Redondeo hacia abajo de x (en inglés, «floor» significa 
suelo).
log(x) Logaritmo natural (en base e) de x.
log10(x) Logaritmo decimal (en base 10) de x.
sqrt(x) Raíz cuadrada de x (del inglés «square root»
pow(x,n) El número x elevado a n.
Funciones del módulo math
 Python también proporciona funciones trigonométricas, 
logaritmos, etc., pero no están directamente disponibles 
cuando iniciamos una sesión. 
 Antes de utilizarlas hemos de indicar a Python que vamos 
a hacerlo. Para ello, importamos cada función de un 
módulo.
>>> from math import sin
>>> sin (0)
0.0
 También podemos importar varias funciones
>>> from math import sin, cos
>>> from math import *
Funciones del módulo math
 Python provee de otra forma de importar y usar las 
funciones
>>> import math
>>> math.sin(0)
0.0
>>> math.cos(0)
1.0
 También se pueden importar algunas constantes útiles
>>> pi
3.141592653589793
>>> e
2.718281828459045
Programación estructurada
 La expresión flujo 
de control hace 
referencia al 
orden en el que se 
ejecutarán las 
instrucciones de un 
programa, desde 
su comienzo hasta 
que finaliza. 
Flujo de control de un programa
Programación estructurada
 La programación estructurada es una forma de escribir
programas de computadora de forma clara, utilizando
únicamente tres estructuras: secuencia, selección e
iteración; siendo innecesario y no permitiéndose el
uso de instrucciones de transferencia incondicional
(por ejemplo: Go to).
 El teorema del programa estructurado, de Böhm-
Jacopini, demuestra que todo programa puede
escribirse utilizando únicamente las tres instrucciones
de control siguientes:
 Secuencia
 Instrucción condicional.
 Iteración (bucle de instrucciones) con la condición
al principio
Programación estructurada
 Solamente con estas tres estructuras o “patrones
lógicos” se pueden escribir todos los programas y
aplicaciones posibles. Si bien los lenguajes de
programación tienen un mayor repertorio de
estructuras de control, éstas pueden ser construidas
mediante las tres básicas.
Programación estructurada
 Hoy en día las aplicaciones informáticas son mucho
más ambiciosas que las necesidades de aquellos años,
por lo que se desarrollaron nuevas técnicas, tales
como la programación orientada a objetos y el
desarrollo de entornos de programación que facilitan
la programación de grandes aplicaciones.
 De todas formas, el paradigma estructurado tiene
vigencia en muchos ámbitos de desarrollo de
programas y constituye una buena forma de iniciarse
en la programación de computadoras.
Estructuras de Control
 Las estructuras de control tienen una finalidad
bastante definida: señalar el orden en que tienen que 
sucederse o ejecutarse los pasos de un algoritmo o 
instrucciones en un programa.
 Pueden ser:
 Secuenciales
 Selectivas
 Iterativas
Estructuras secuenciales
 Son estructuras que obedecen la linealidad, es decir, no 
admiten saltos
 A la ejecución de una instrucción le sigue otra instrucción 
y así sucesivamente. 
 Mantiene la secuencia de acciones en el orden en el que 
aparecen las instrucciones.
acción 1
acción 2
acción n
acción 1
acción 2
…
acción n
Estructura secuencial
Ejemplo:
Sumar y multiplicar 2 números.
Inicio
x, y, z, w: reales
Leer y, z;
x  y + z;
w  y * z;
Escribir x, w;
Fin
Leer y, z
Inicio
Fin
Escribir x, w
x  y+z
w  y*z
Ejercicios
1. El primer problema es determinar el alcance y el tiempo de vuelode un 
proyectil lanzado con una velocidad inicial v0 y haciendo un ángulo de 
grados con la horizontal.
Ejercicios
g
v
R
2sen20
g
v
T
sen2 0
máximo alcance de un proyectil, g es la 
aceleración de la gravedad 
tiempo de vuelo 
180

gradosrad  para convertir entre grados y radianes 
Ejercicios
2. Parte del costo de producción de un producto se calcula 
por el tiempo de operación de una máquina utilizada. Se 
realizan pruebas para determinar este tiempo ingresando la 
hora de inicio de y de final de producción en el formato de 
horas, minutos y segundos registrados en la máquina. El 
costo está diferenciado por hora, minuto y segundo. 
Calcular dicho costo.
Por ejemplo, se tienen los siguientes datos de entrada: 
Hora Inicio: 14:30:15
Hora final: 16:40:20
Costo por hora: 60 soles
Costo por minuto: 2 soles
Costo por segundo: 0,20 soles
Ejercicios
Ejercicios
3. Estando en guerra, se necesita enviar a los aliados la cantidad 
de tanques disponibles en un valor encriptado, por lo que le 
encarga a usted dicha tarea.
La encriptación se hace mediante el ingreso de 5 valores de 5 
dígitos cada uno. Estos valores serán enviados a los aliados 
que ya tienen el programa hecho por usted.
Por ejemplo podrían ser estos valores:
Valor 1: 34571
Valor 2: 61254
Valor 3: 75120
Valor 4: 24712
Valor 5: 31652
Ejercicios
Suma de dígitos de primera diagonal: 8
Suma de dígitos de segunda diagonal: 14
Cantidad de tanques disponibles: 112
Su sistema, ya disponible en los aliados, tomarán los dígitos 
según la figura, donde los dígitos de las diagonales se suman y 
estos 2 valores se multiplican, el resultado será la cantidad de 
tanques disponibles:

Continuar navegando

Materiales relacionados