Unidad I.
Conceptos y Definiciones
VII. CONTENIDOS DE LA MATERIA
UNIDAD 1 CONCEPTOS Y DEFINICIONES
1. Introducción a la programación de computadoras
2. Definición de lenguaje de programación
3. Clasificación de los lenguajes de programación
1. Por el nivel de abstracción
Lenguaje de máquina
Lenguaje de bajo nivel
Lenguajes de alto nivel
2. Por la forma de traducción
Compilador
Intérprete
4. Algoritmos
Definición
Diseño
3. Clasificación de los lenguajes de programación
Como se dijo, existen muchos lenguajes de programación. Cada uno responde a
dinámicas y necesidades diferentes; cada uno con sus particularidades y notaciones
en específico.
Convengamos que los lenguajes de programación, son en definitiva, un conjunto de
instrucciones que se escriben de acuerdo a una sintaxis predefinida y que cada una
de esas instrucciones tiene una semántica que la define.
En ese sentido, los lenguajes de programación podemos clasificarlos de muchas
formas, en este curso los clasificaremos por su forma de abstracción y por su forma
de traducción.
Clasificación de los Lenguajes de Programación:
Forma de Abstracción
Entendemos por abstracción, al nivel de orientación que tienen los
lenguajes con referencia al programador. Mientras más abstracción el
lenguaje está mas orientado al programador. Mientras menos
abstracción, el lenguaje está más orientado a la máquina, el nivel más
bajo de abstracción, es el CÓDIGO DE MÁQUINA.
Clasificación de los Lenguajes de Programación:
Forma de Traducción
Lenguajes de programación según el paradigma
ALGORITMO
Es una secuencia lógica de pasos a seguir para resolver un
problema o ejecutar una acción, podemos usar gráficos o texto
En casi todas las actividades del ser humano, seguimos un “algoritmo” para
cumplir algún objetivo.
La secuencia lógica de pasos, se refiere que debe:
➢ Ser finito: El algoritmo debe acabar tras un número finito de pasos
➢ Estar bien definido: Todas las ejecuciones del algoritmo con los mismos datos
de entrada deben devolver los mismos datos de salida.
ENTRADA PROCESO SALIDA
ALGORITMO
• Algoritmo:
(del árabe al-Khowârizmî ó Al-Juarismi)
“Conjunto ordenado y finito de operaciones
que permite hallar la solución de un
problema”
• Definiciones básicas:
– Procesador: cualquier entidad capaz de
resolver un problema
– Entorno: conjunto de utensilios que el
procesador puede utilizar
– Estado: situación en la que se encuentra
un entorno en un momento dado.
• Definiciones básicas
– Acción ó pasos:
Conjunto finito de operaciones que
permiten llegar de un estado inicial bien
definido a otro también bien definido.
– Tipos de acciones:
• Acción primitiva o elemental
– Puede ser realizada directamente por el procesador.
• Acción compuesta o abstracta
– Se descompone en acciones más elementales para
poder ser entendida por un procesador.
• Definición formal de algoritmo:
“Dado un procesador, un entorno, y un
problema bien definido, un algoritmo es
la secuencia finita de acciones
primitivas que llevan a la solución del
problema”
• Un Algoritmo necesita:
Un procesador de acciones
- El ser humano
- Computadora
Un entorno donde tiene sentido el
algoritmo
Breve reseña histórica:
Los primeros algoritmos registrados datan de
Babilonia, originados en las matemáticas como
un método para resolver un problema usando
una secuencia de cálculos más simples.
El primer algoritmo famoso es el cálculo del MCD
de dos números (Grecia, aproximadamente del s.
IV a. C.).
• En Informática:
– Un algoritmo es una secuencia de pasos a
seguir para resolver un problema usando
una computadora.
– La algoritmia o ciencia de los algoritmos,
es uno de los pilares de la informática.
Programación:
1. Establecer una secuencia de acciones que:
• puedan ser ejecutadas por el procesador
• realicen una determinada tarea
2. Fases:
• Resolución del problema propuesto => determinación de
un algoritmo.
• Adaptación del algoritmo al computador => codificar el
algoritmo en un lenguaje que el computador pueda
comprender.
• ¿Cómo se escribe un algoritmo?
Representándolo mediante un lenguaje →
lenguaje de representación algorítmica
Puede ser:
- En lenguaje natural
- En un pseudo código (identificación de
acciones primitivas de acuerdo al
procesador)
- En diagrama de flujo (pseudo código
gráfico)
- En cualquier otro lenguaje
EJEMPLOS DE ALGORITMOS
Multiplicación “à la russe”
Se escriben el multiplicando y el multiplicador iniciando dos
columnas.
Se obtienen los siguientes elementos de las columnas, hasta
que quede un 1 en la columna de la izquierda:
La columna de la izquierda se va dividiendo entre dos,
ignorando los restos.
La columna de la derecha se va multiplicando por dos.
El resultado se obtiene sumando los números de la columna
de la derecha cuyo número correspondiente de la columna
izquierda sea impar.
RECETA PARA BROWNIE DE CHOCOLATE
• Precalentar el horno a 165ºC y engrasar o cubrir con papel
sulfurizado un molde cuadrado de unos 20 centímetros de
lado.
• Derretir la mantequilla con el cacao en polvo, removiendo a
fuego lento hasta conseguir una mezcla homogénea y suave.
Retirar y dejar enfriar unos minutos. Echar en un recipiente
mediano y añadir los huevos uno a uno, y la vainilla, batiendo
con unas varillas.
• En otro recipiente mezclar la harina con el azúcar, la sal y
las nueces. Incorporar a la mezcla de cacao y remover bien
pero con suavidad, hasta tener una masa homogénea, sin
grumos secos. Llenar el molde y hornear durante unos 35-40
minutos. Esperar a que se enfríe antes de cortar.
Algoritmo de Euclides para encontrar
MCD(A,B)
• Si A = 0 entonces MCD(A,B)=B, ya que el
MCD(0,B)=B, y podemos detenernos.
• Si B = 0 entonces MCD(A,B)=A, ya que el
MCD(A,0)=A, y podemos detenernos.
• Escribe A en la forma cociente y residuo (A
= B ⋅Q + R).
• Encuentra MCD(B,R) al usar el algoritmo de
Euclides, ya que MCD(A,B) = MCD(B,R).
Confección de un pájaro a partir de un papel
cuadrado
Algoritmos
Usaremos a Karel el Robot para entender lo que es un
algoritmo:
Karel vive en su mundo de calles y avenidas
Calles
Karel
Avenidas
Qué puede hacer Karel?
Caminar por sus calles y avenidas con las siguientes
instrucciones:
move() se mueve una posición en la dirección que apunta
turnleft() gira a la izquierda
turnOff() termina su caminata
Ejemplo:
Queremos que Karel, estando en la avenida 1 y calle 1, vaya a la
avenida 1, calle 6, y vuelva a la avenida 1, calle 1.
move()
move()
move()
move()
move()
turnLeft()
turnLeft()
move()
move()
move()
move()
move()
turnOff()
Ejercicios para realizarlos clases
Hacer grupos de 4, escribir en una hoja el algoritmo para que:
1. Karel estando en la 1, 1 apuntando al norte (arriba), que vaya
a la calle 5 avenida 1, y regrese por la avenida 2, hasta la
calle 1 avenida 1 (lugar de origen).
2. Karel estando en la 1,1 apuntando al norte, que vaya a la
calle 1 avenida 5 y vuelva por la calle 2, hasta su lugar de
origen.
3. Karel estando en la 1,1 apuntando al note, que vaya a la calle
5, avenida 5 y regrese a su lugar de origen.