Está en la página 1de 13

26/09/2022 – Algoritmos y programación.

Computador: Máquina que almacena y manipula información bajo el control de un


programa que puede cambiar.
Un programa es un conjunto de instrucciones paso a paso que le indican a un computador
como realizar una tarea dada. En cada momento, uno puede elegir ejecutar un programa de
acuerdo a la tarea que desea realizar.
Los lenguajes de programación se usan para darles instrucciones específicas al computador
(No ambiguas).

Procedimiento para crear programa:


 Comprenderlo.

Tarea de un computador: Código fuente (Lenguaje alto nivel) -> Compilador -> Código
máquina.
Algoritmo y pseudocódigo:
Una vez se comprenda el programa, el siguiente punto es establecer una secuencia de pasos
para poder obtener la respuesta deseada.

Programar: Indicarle al computador como ejecutar de forma ordenada una serie de


comandos u ordenes que solucionan un problema.
Programador (Solucionador de problemas).
Programa (Solución a un problema).

Historia:
 Ada Lovelace (Primera programadora: La máquina analítica) – 1961.
 Alan Turing (Máquina enigma: Lucha contra los nazis descifrada): Planteó la teoría
computacional que hoy en día trabaja.
 Dennis Ritchie (Creador SO Unix y lenguaje de programación C).
FECHAS:
- Parcial 1: 24 octubre.
- Parcial 2: 23 noviembre.
Python: Google Colab -> Gmail.
Programas de computador (Python).
- Metodología de solución de problemas:
1) Comprender el problema.
2) Modelaje: Encontrar datos de entrada y salida de un programa inyectando datos
de entrada que se compilan para obtener unos datos de salida (Trabajo
computador).
3) Construcción del algoritmo que solucione el problema.
4) Codificar y hacer pruebas.
Dato: Componente que un computador utiliza, almacena. Posee: Nombre, identificador
(Nombre computacional – Reglas estrictas: Inicia con letra, no lleva caracteres especiales,
para separar se puede usar la _ o $, Diferencia las mayúsculas de las minúsculas) y tipo
(Números: int (Entero) y float (Decimal), palabras (str: “c”), valores de verdad (bool: True
o False)).
DATO IDENTIFICADOR TIPO EJEMPLO
Placa del carro placa str “GUW278”
Cédula del vigilante cedula int 1013100935
Nombre del pueblo nombre_pueblo str “Funza”

Ciudad donde vive ciudad str “Chía”


Edad del amigo edad int 32
Sueldo del decano sueldo_decano float 45000000.1

Pasos que camine pasos int 6500


CPU (Cerebro), Memoria (Almacena datos), Dispositivos entrada y salida ->
Interconectados por buses.
28/09/2022 – Algoritmos y programación.
Si se desea separar un entero voluntariamente, no se usan puntos, sino, guiones al piso:
1_782_417
También se puede utilizar una e, para expresar un número float: 18e14 (Forma simplificada
de escribir 18 ×1014 o 10e-3 como 18 ×10−3 para no escribir el decimal completo.
Operaciones aritméticas Python.
 + Suma.
 - Resta.
 * Multiplicación.
 / División.
 // División entera (Solo obtiene la parte entera del resultado aproximando el
decimal).
 % Módulo o residuo.
 ** Potencia.
Tanto la división entera como el módulo tienen como resultado un número entero.
Ej:
3.5 * 2 = 7
5 / 2 = 2.5
5 // 2 = 2
5%2=1
5 // 10 = 0
5 / 10 = 0.5
4 ** 2 = 16
1
5 ** -2 = = 0.0625
52
1
√ 10=10 = 10 ** 0.5
2

Precedencia (Jerarquía de las operaciones).


1 + 2 * 5 = 11 (Se prioriza la multiplicación ante la suma).
Orden (En el mismo nivel se hacen las operaciones de izquierda a derecha):
1- ()
2- **
3- *, /, %, //
4- +, -
Ej.:
4+5-2 = 7
4 // 5 * 3 – 8/3 = 0*3-8/3 = 0*3 – 2.66 = 0 – 2.66 = - 2.66
2 * 3 ** 2 = 2 * 9 = 18
Operaciones avanzadas.
Se utiliza con un paquete llamado math.h:
Expresión Python
√x sqrt(x)
Trigonométricas (x debe estar en radianes) sin (x), cos (x), tan (x)
Trigonométricas inversas asin (x), acos (x), atan (x)
Algunas funciones Log (x), PI, e
e
x
exp(x)
¿ x∨¿ abs(x)
MCD gcd
MCM lcm
x
y
pow(x,y)

Reglas para traducir operaciones complejas matemáticas a el lenguaje de


programación Python.
1) Realice explicita la multiplicación (a * b)
2) Fracciones son divisiones, use paréntesis para separar numerador de denominador
1
(1 / 2 ) – ( →(1)/( a+2) ).
a+2
Ej.:

¿ x− y∨ ¿ →(|( x− y )|)/(1+2∗¿ √ ( x ) + x∗ y∗¿ 2)¿


1+2√ x + x y 2

√ s (s−a)(s−b)( s−c )→ √( s∗( s−a )∗( s−b )∗( s−c ) )

Programa usado para codificar.


Colab -> Cuadernos -> Celdas (Contenido: MD, Python, R, Julia).
Ipynb -> Interactive Python Notebook:
Print -> Mostrar en pantalla.
30/09/2022 – Algoritmos y programación.
 Usuario: Proporciona los datos de entrada (Necesarios para resolver el problema) a
través del teclado al programa de manera que el programa compila para arrojare
datos de salida (Solución al problema) que se proyectan en pantalla al usuario.
Ejercicios.
1) Un carro es conducido a una cierta velocidad; si se conoce la distancia entre Bogotá
y Caparrapí, determine cuántas horas le tomara al carro llegar a Caparrapí a la
velocidad dada.
Rta.:
- Dato, identificador, tipo:
D.E:
Velocidad del carro (v, float), distancia Bogotá-Caparrapí (dist, float).
D.S:
Tiempo que tardará en llegar a Caparrapí (horas, float).
Partes de un algoritmo.
- Un algoritmo debe tener las siguientes características:
1) Debe ser preciso y no contener ambigüedades.

Ej.:
- Algoritmos para resolver la ecuación de primer grado: ax + b = 0

Macro Algoritmo.
Para resolver el problema anterior se solicitan los valores para las variables a y b.
Posteriormente se calcula el valor de la incognita x
Y finalmente se muestra en pantalla el resultado.
Instrucciones básicas de Python.
- Print: Imprimir en pantalla -> print(“Hola mundo!!”)
- Input: Se utiliza para poder realizar entradas (Solicitar al usuario un valor para
poder trabajar) -> input(“Dime tu nombre ”)
- Type(): Saber el tipo de un dato o variable.
- Int()
- Float()
- Str()
Despliegue de datos.
Se imprime la información en diferentes líneas por cada print.
Print(a)
Se imprime la información en la misma línea.
Print(a,b)
La función integrada de input del usuario aloja el dato ingresado.

Nota: Se utiliza # para comentar el código.


05/10/2022 – Algoritmos y programación.
Problema.
 Programa:
10 exámenes ----- 1 hora
Total Estudiantes --------- x horas

Total Estudiantes * 1 hora / 10 Examenes -> Ecuación.


Funciones.
Las funciones son subprogramas que se encargan de calcular los D.S.
- Forma General:
def nombre-función(dato-entrada) -> tipo-dato-salida:
calculo-dato-salida
return dato-salida
Lo que corresponde a la función se encuentra indentado (Sangría).
Las funciones siempre van al principio del programa.
10/10/2022 – Algoritmos y programación.
Cuando se crea una función se esta reservando un espacio especial en la memoria que no se
va a afectar, aunque alteremos la variable que declaramos posteriormente para usar la
función (Es necesario declarar las variables del return para conservar sus valores).
La función return, es la que nos permite utilizar las variables declaradas dentro de la
función posteriormente.
Math.ceil: Aproxima el decimal hacia adelante (Techo).
Math.floor: Aproxima el decimal hacia atrás (Piso).
Pass: Omite la línea de código señalada.
Assert: Se utiliza para comprobar si es verdad lo que esta escrito en esa línea de código.
 Funciones que usan funciones:
Un programa se puede alimentar de funciones, sin embargo, las funciones pueden usar otras
funciones.
14/10/2022 – Algoritmos y programación.
Operadores relacionales.
 >: Mayor que
 >=: Mayor o igual que
 <: Menor que.
 <=: Menor o igual que.
 ==: Igual a.
 !=: Diferente de.
Las operaciones relacionales siempre tienen dos elementos a comparar.
Ej.:
3>2 – True
-14 > 5 – False
(1+1) <= 0 – False
“hola” == “hola” – True
“ANA” =! “ana” – True
8 == 2*3 – True
Conectores relacionales.
 AND
 OR
 NOT
(4>3) – True AND (2<4) – True -> True.
Tablas de verdad.
p q p and q p or q not p
True True True True False
True False False True False
False True False True True
False False False False True

 X = 18
 Y = -15
X < 0 - False OR Y < 0 – True -> True
X+Y > 0 – True AND X-Y < 0 – False -> False
 X = Y (Asignación)
 X == Y (Comparación)
A es múltiplo (Divisible) de B si A%B == 0
A no es múltiplo (Divisible).
0 de B si A%B != 0
19/10/2022 – Algoritmos y programación.
Instrucción condicional.
 Problema: Con clima soleado voy al parque. Con clima lluvioso me quedo en casa.
D.E:
Clima – Str
D.S:
Plan – Str
Función:
Def encontrar_plan(Clima: str) -> str
 Diagrama:

Si No
Plan -> Quedese en
Plan -> Vaya al
casa
parque
Clima == “soleado”

Para resolverlo utilizamos la función “if” - si y “else” – si no (Se debe tener en cuenta la
indentación)
 Programa:
if clima == “soleado”:
plan = “parque”
else:
plan = “casa”
return plan (Se ubica alineado con el if y else para que se aplique en ambos casos).
También existe una función denominada “elif”, la cual nos sirve para repasar otras
condiciones, si no se han cumplido las anteriores (Si no, si).
La devolución de dos o más datos de salida en una función se conoce como Tuple.
21/10/2022 – Algoritmos y programación.
La flor iris.
A partir del ancho y el largo del pétalo se puede determinar si una flor es virginica, setosa o
versicolor.
Largo
<5 Entre 5 y 10 >10
Ancho

<13 Virginica Virginica Versicolor

>=13 Setosa Versicolor Setosa

 D.E:
Ancho pétalo | ancho | float
Largo pétalo | largo | float
 D.S:
Flor | tipo | str
Este ejercicio se puede resolver a través de If anidados (Uno dentro de otro).
Frente al else únicamente pueden ir dos puntos.

31/10/2022 – Algoritmos y programación.


Instrucciones Repetitivas.
 While (Mientras que):
While preg:
Intrs
Otra instrs
Se le puede sumar, restar, multiplicar o dividir el valor deseado a una variable usando p. ej.
(i=i +1) o (i+=1), (i-=1), (i*=1), (i/=1).
02/11/2022 – Algoritmos y programación.
Progresiones aritméticas.
 Range(x):
X: Número final.
Ej.: Range(12) -> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11.
 Range(x, y):
X: Número inicial.
Y: Número final.
Ej.: Range(1010, 1021) -> 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019,
1020.
También sirve para números negativos.
 Range(x, y, z)
X: Número inicial.
Y: Número final.
Z: Salto entre números (Suma).
Ej.: Range(2, 15, 3) -> 2, 5, 8, 11, 14
Range(100, 40, -25) -> 100, 75, 50
Ej.: a, …, 7, 11, 15, 19, …, b-1
Range(a, b, 4)
Fórmula para hallar un término en una posición definida en una sucesión:
 Si el paso es +: Inicio + Paso * (Término a hallar - 1) + 1
 Si el paso es -: Inicio + Paso * (Término a hallar - 1) - 1

04/11/2022 – Algoritmos y programación.


Progresiones geométricas.
4, 20, 100, 100, 500, 2500, 12500…
El incremento está dado por una multiplicación o división.
Se puede hacer con un ciclo while asi para intervalos en los que sepamos el final:
Z = 4 (Inicio)
While Z <= 120 (Fin)
Print(z)
Z = Z * 2 (Incremento)
Print(“Fin”) -> Se pueden insertar en una lista.
 Listas en Python:
Se puede almacenar cualquier tipo de dato en ellas.
Pueden estar vacías: [].
Para añadir a la lista datos se puede usar el comando .append()
Ej.:
X = 25.
Logros = []
Logros.append(3) -> Logros = [ 3 ]
En Python quiero hacer algo 10 veces y para optimizar el cálculo cuando no conozcamos el
valor del último término o si es de n términos:
 For _ in range(10)
En este caso se omite el uso de una variable usando: _
En otros casos al for se le puede asignar una variable.

09/11/2022 – Algoritmos y programación.


Series raras (Sucesiones especiales)…
 Forma general para hallar sucesiones geométricas y guardarlas en una lista:
Hallar los primero n términos de: 00, 50, 12.5, 3.125

Def progresión(n: int) -> List[int]:


R = []
For _ m in range(n)
r.append(t)
t /= 4
Return r
 Ejemplo de una sucesión especial: [1, 3, 5..]

Primer término (i = 1) -> 0 (a1)


Segundo termino (i = 2) -> 1 (a2)
Tercer termino (i = 3) -> (a2) + 2(a1): a3 = 1 + 2*0 = 1
Cuarto termino (i = 4) -> (a3) + 2(a2): a4 = 1 + 2*1 = 3
Quinto termino (i = 5) -> (a4) + 2(a3): a5 = 3 + 2*1 = 5
 Ejemplo de una sucesión especial (2): [1, 2, 5, 26, 677…]
Mi -> { 1 si i=0

Mi -> { M i−12+1 Si i > 0

Primer término (i = 0) -> M 0=1

Segundo termino (i = 1) -> M 1=M 20 +1: (1)2 +1=2


Tercer termino (i = 2) -> M 2=M 21 +1: (2)2 +1=5

Cuarto termino (i = 3) -> M 3=M 22 +1:(5)2+1=26

Quinto termino (i = 4) -> M 4 =M 23 +1 :(26)2 +1=677

También podría gustarte