Ficha 01 - Presentación General (Prof. Frittelli)

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 25

Algoritmos y Estructuras de Datos

(AED) 2021

Universidad Tecnológica Nacional


Facultad Regional Córdoba
Ingeniería en Sistemas de Información
Director de Cátedra: Ing. Valerio Frittelli
Cursos: 1k01 al 1k19
Ficha 01: Fundamentos de
Programación
 ¿Qué es un Algoritmo?
Es la secuencia finita y ordenada de pasos que permite
resolver un problema.

 ¿Qué es una Computadora?


Es un aparato electrónico capaz de ejecutar (con
velocidad y precisión) un algoritmo.

 ¿Qué es un Programa?
Es un algoritmo escrito en forma técnica, de forma que
pueda ser interpretado y ejecutado por una computadora.
Algoritmos...

 Estructura de un Algoritmo

 El bloque de los Procesos contiene los pasos o instrucciones


que permiten transformar los Datos en los Resultados
buscados.
 Esos pasos típicamente se basan en un conjunto mínimo y
esencial de acciones válidas, que designamos como
Conjunto de Instrucciones Primitivas.
...y más Algoritmos...

 Las instrucciones primitivas son aquellas que mínimamente


se espera que sean comprendidas por quien ejecuta el
algoritmo.
 Ejemplo: Cuáles son las instrucciones primitivas que debe
comprender una persona para aplicar el conocido algoritmo
de sumar dos números de varios dígitos?
 Escribir los números uno sobre el otro y alinearlos hacia la
derecha.
 Sumar dos números de un dígito.
 Acarrear hacia la izquierda el primer dígito si la suma de dos
números de un dígito da un resultado de dos dígitos.
...y aún más Algoritmos!
 A pensar un poco ahora: Se pide diseñar un algoritmo básico para
cambiar una rueda de un automóvil. La rueda está sujetada por un
conjunto de 6 seis tuercas.
 … Pero sólo están permitidas las siguientes instrucciones o
acciones primitivas:
 Levantar el auto con el aparejo adecuado (un “gato”).
 Bajar el auto y desacoplar el aparejo o “gato”.
 Ajustar una tuerca.
 Desajustar una tuerca.
 Quitar una rueda de su lugar en la punta del eje.
 Colocar una rueda en la punta del eje.
 Repetir n veces una instrucción (o conjunto de instrucciones) que
se escriba tabulado hacia la derecha.
¿Solución? (Básica...)

1.) Repetir 6 veces:


1.1.) Desajustar la siguiente tuerca.
2.) Levantar el auto con el aparejo o “gato”.
3.) Quitar la rueda de la punta del eje.
4.) Colocar la rueda de auxilio en la punta del eje.
5.) Bajar el auto y desacoplar el aparejo o “gato”.
6.) Repetir 6 veces:
6.1.) Ajustar la siguiente tuerca.
Programas...
• El algoritmo anterior puede ser entendido por una persona,
pero no por una computadora.
• Para que una computadora pueda interpretar y aplicar un
algoritmo, el mismo debe plantearse en términos de
instrucciones primitivas muy técnicas y específicas, sin
ambigüedad ni errores.
• Se llama Lenguaje de Programación a una especificación de
símbolos, palabras especiales y reglas para combinarlos, que
permite escribir un algoritmo de forma que sea válido para
una computadora.
• Un algoritmo escrito mediante un Lenguaje de
Programación, es un Programa.
...y más Programas!
 Existen muchos Lenguajes de Programación, y cada uno se basa
en distintas estrategias y principios de programación: Python,
Java, C, C++, C#, Ada, Pascal… y muchos más.
 Con todos ellos, los Datos se almacenan dentro de la computadora
en un dispositivo llamado memoria. Las instrucciones o Procesos
del programa operan con esos datos y se obtienen Resultados que
son alojados en otros lugares de la misma memoria, para luego ser
presentados al usuario que ejecutó el programa.
Memoria y Variables
 La memoria puede entenderse como una tabla en la que cada
casillero (o grupo de casilleros) puede almacenar algún tipo de
valor o dato. En general, un casillero de la memoria se llama
celda de memoria o también byte.

 Cada grupo de bytes se asocia a un nombre o identificador,


obteniendo así una variable. Y cada variable puede almacenar
valores de ciertos tipos básicos que cada lenguaje provee.
Tipos de Datos en Python
 En Python, los tipos de datos más usuales son los siguientes:

 Y las siguientes son instrucciones básicas (o “instrucciones


primitivas”) de Python para manejo de variables:
a. Asignación de un valor: variable = 10
b. Visualización de su valor en pantalla: print(variable)
c. Carga desde el teclado de una cadena: variable =
input(‘mensaje’)
d. Carga de un entero: variable = int( input(‘mensaje’) )
e. Carga de un flotante: variable = float( input(‘mensaje’) )
Asignación – Creación de
Variables
 En Python, una variable es creada cuando se le asigna un
valor, y esa variable asume el tipo del valor que se le
asigna inicialmente. Para asignar un valor a una variable,
se usa el operador de asignación (=).
edad = 20 # crea una variable int con valor inicial 20
nombre = 'Ana' # crea una variable de tipo cadena (str) con valor 'Ana'
estudia = True # crea una variable de tipo boolean, con valor True
promedio = 8.79 # crea una variable float, con valor 8.79
 Note que un valor de tipo cadena de caracteres (str) se
encierra entre comillas simples ('Ana'), pero también es
válido en Python usar comillas dobles ("Ana").
El Shell de Python
 Al instalar Python en una computadora, se dispone de un programa
conocido como el Shell de Python (de hecho, Python ES este
programa...), que permite ejecutar instrucciones de Python una a
una, y probar su funcionamiento.
 Se puede correr el shell en consola negra de comandos, o se puede
correr en una ventana blanca de alto nivel con un poco más de
funcionalidades disponibles. Esta última se conoce como el IDLE
de Python, y es la que usaremos.
 En Windows, suele estar en la carpeta llamada C:\Program Files\
Python38\Lib\idlelib y es el programa idle.pyw. (también accesible
desde el grupo de programas Python en el Menú Inicio de
Windows).
Ejemplos de Instrucciones
(Ejecutar en el IDLE Python)
>>> x = 10
>>> print(x)
>>> print(‘Valor de x:’, x)
>>> edad = 22
>>> nom = 'Ana' # o bien: nom = "Ana"
>>> prom = 8.79
>>> print(‘Nombre:’, nom, ‘Edad:’, edad, ‘Promedio:’, prom)
Identificadores de Variables
 El nombre de una variable es provisto por el programador, pero
no cualquier nombre es válido. Se aplican las siguientes reglas
(que son de Python 2, aunque Python 3 es más amplio):
 Sólo puede contener letras del alfabeto inglés (mayúsculas y/o
minúsculas), o dígitos (0 al 9), o el guion bajo ( _ ).
 El nombre de una variable no debe comenzar con un dígito.
 Las palabras reservadas del lenguaje no pueden usarse como nombres.
 El nombre puede contener cualquier cantidad de caracteres de longitud.
 Python es case sensitive: hace diferencia entre minúsculas y mayúsculas,
y toma como diferentes a dos nombres de variables que no sean
exactamente iguales. El identificador sueldo no es igual al identificador
Sueldo: Python los tomará a ambos como dos variables diferentes.
Identificadores de Variables
 Las reglas anteriores son las que fija la versión Python 2. Pero en
Python 3 se permite usar letras acentuadas, o que no sean del
alfabeto inglés, o de idiomas no occidentales. Ejemplos:

 Los siguientes no son válidos en ninguna de las dos versiones:


Carga por teclado
 La función input() permite asignar a una variable un valor
tomado desde el teclado mientras se ejecuta la instrucción,
en lugar de asignar un valor fijo:
nombre = input('Ingrese su nombre: ')
 Cuando input() se ejecuta, hace lo siguiente:
1) Muestra en la consola estándar el mensaje que recibe entre sus
paréntesis.
2) Pone al programa en modo de espera, hasta que el usuario escriba una
cadena en el teclado y presione <Enter>.
3) Luego del <Enter>, la función toma la cadena que el usuario cargó, y la
asigna en la variable del lado izquierdo del operador de asignación.
Carga por teclado

nombre = input('Ingrese su nombre: ')


direccion = input('Ingrese su dirección: ')
 El valor cargado y retornado por input() es siempre de tipo
cadena de caracteres (str). Incluso si el usuario carga un
número, el mismo será devuelto en formato de cadena...
edad = input('Ingrese su edad: ')

 Si en este ejemplo, el usuario ingresa un 25, el valor


retornado será de la forma '25' (cadena) que NO ES un int...
Carga por teclado
 Si se desea cargar por teclado un número entero, el valor
retornado por input() debe ser convertido a int, y eso puede
hacerse con la función int():

edad = int(input('Ingrese su edad: '))

 En el ejemplo, se ejecuta input(), la cual retorna la cadena


cargada, y esa cadena es tomada a su vez por int(), que intenta
convertirla a un número entero. Si la cadena sólo contiene dígitos
(y a lo sumo el signo menos), la conversión se hará, y edad
quedará asignada con el número entero. Pero si la cadena no
representa a un número entero, la función se interrumpirá y
lanzará un error.
Carga por teclado
 A su vez, la función float() permite convertir una cadena a un
valor float, siempre y cuando la cadena efectivamente represente
un número en coma flotante:
sueldo = float(input('Ingrese su sueldo: '))

 El siguiente ejemplo muestra la forma de cargar por teclado tres


variables, de tipos str, int y float respectivamente:

nombre = input('Ingrese su nombre: ')


edad = int(input('Ingrese su edad: '))
sueldo = float(input('Ingrese su sueldo: '))
Atención a las diferencias (1)...

a. No es lo mismo 15 que '15'. El primero es un int, el


segundo un valor str (o sea, una cadena de caracteres).
# Ejemplo correcto... # Ejemplo incorrecto...
x1 = 15 x1 = '15'
x2 = x1 + 1 x2 = x1 + 1
print(‘Valor de x2:’, x2) # efecto: error al ejecutar...
# muestra: Valor de x2: 16 # no puede sumar str + int
b. ¿Qué ocurrirá aquí?
n1 = int(input('Edad: '))
n1 = input('Edad: ') n2 = n1 + 1
n2 = n1 + 1 print('Nueva edad:', n2)
# error: str + int... # ¡correcto!
Atención a las diferencias (2)...

a. Al usar print(), lo que se escribe entre comillas simples o dobles


es un valor str (una cadena) y se muestra en forma literal.
x1 = 15
print(' x1')
# muestra: x1
b. Lo que no se encierra entre comillas se asume como un nombre
de variable. Si la misma existe, se muestra su valor. Si no existe,
Python lanza un error:
print(Hola)
x1 = 15 # error: no existe la variable llamada Hola
print(x1) print('Hola')
# muestra: 15 # correcto... muestra: Hola
Tipado Dinámico
 Dijimos que en Python, una variable es creada cuando se le
asigna un valor, y esa variable asume el tipo del valor que se
le asigna:
x = 10 # se crea x de tipo int.
y = 'Ana' # se crea y de tipo str.
z = True # se crea z de tipo boolean.
 Lo anterior implica que si a una variable que ya estaba
creada se le asigna un valor de otro tipo, la misma será
nuevamente creada y cambiará de tipo:
x = 10 # se crea x de tipo int.
x = 'Hola' # x cambia al tipo str.
x = True # x vuelve a cambiar, al tipo boolean.
Operadores Aritméticos en
Python
 Son símbolos que actúan sobre el valor de una variable o una
constante, aplicando operaciones aritméticas básicas.

 Recuerde: en una expresión de asignación, se evalúa y ejecuta


primero el lado derecho del operador =, y luego el resultado se
asigna en la variable del lado izquierdo.
Operadores Aritméticos
(ejemplo)
 En este ejemplo mostramos la forma de usar los operadores
aritméticos de la tabla anterior:
a = int(input("Primer valor: "))
b = int(input("Segundo valor: "))
suma = a + b
resta = a – b
prod = a * b
ce = a // b # cociente entero...
cr = a / b # cociente real (o flotante)...
re = a % b # resto entero de dividir a por b...
pot = a ** b
print('Suma:', suma, 'Resta:', resta, 'Producto:', prod)
print('Cociente entero:', ce, 'Cociente real:', cr)
print('Resto entero:', re, 'Potencia:', pot)
Muchas gracias...

Ing. Valerio Frittelli


Director Cátedra de AED
 Mail: vfrittelli@gmail.com
 Celular: +5493515959185
 También pueden contactarme por mensajería interna del Aula
Virtual.
 Horarios de oficina: Para atención de alumnos de cualquier
curso, por cualquier duda o consulta: antes de entrar a clase en
el 1k01 o el 1k04, o en el recreo, o al finalizar la clase.

También podría gustarte