Vous êtes sur la page 1sur 16

Algoritmos

Algoritmo, Conjunto de
pasos secuenciales que
ordenados de una
manera correcta
permiten resolver un
problema concreto.
Para realizar un
algoritmo con éxito es
necesario tener bien
claro el objetivo a
lograr.

“Etapas del programador de software”


Algoritmos
Los pasos se deben
llevar a cabo uno
después del otro y
deben estar ordenados,
representan el camino
a seguir para resolver
un problema.
El orden en que se
ejecuta cada uno de los
pasos del algoritmo es
fundamental.

Por: Ing. Msc. Alberto Martín Medina Villacorta 1


Algoritmos Análisis y diseño de un algoritmo
Se representan  Objetivo: Comprar el libro “La Biblia de
gráficamente con Java 2” de Steven Holzner.
diagramas de flujo
o formas similares.
(El objetivo parece ambiguo, pero no lo es,
pues lo que se desea es comprar el libro).
También pueden
escribirse en forma  Algoritmo:
de pseudocódigo, Primero se tiene que condicionar la salida,
lo que además los existen dos opciones posibles, la primera
hacen muy fáciles
es que estamos en cualquier lugar y la
de entender.
segunda es que estamos en una librería.

Algoritmos Análisis y diseño de un algoritmo


¿…?
Cuando en algún caso no Una vez hecho esto se pide el libro en
se sabe que hacer, se debe cuestión, si lo tienen se adquiere y si no,
replantear el objetivo, se ira hacia otra librería en donde se repite
pues de hecho no estaba
este proceso.
claro.
Para estructurar un Se puede expresar de otra manera para
algoritmo de forma precisa INICIO convertirlo en un proceso secuencial de
solo existe una forma: modo que el algoritmo sea apto para
“empezar por el principio cualquier libro.
y terminar por el final”. FIN

Por: Ing. Msc. Alberto Martín Medina Villacorta 2


Ejemplo Observaciones
Pseudocódigo: Si se pone paso a paso se tiene  Si se realizan todos los pasos, se puede
por ejemplo: Algoritmo ComprarLibro comprar cualquier libro. (La connotación
Inicio del algoritmo es genérica)
1. Conocer el libro a comprar
2. Trasladarse a una librería  Una vez realizado el algoritmo se puede
3. Preguntar si tienen el libro obtener varios resultados finales:
deseado adquirir el libro o que el libro este
4. Si lo tienen
Comprarlo e ir a Fin
agotado o que no haya existido nunca.
Si no lo tienen  La prueba de escritorio: simula la puesta
Ir al paso 2. en marcha del algoritmo. (Para corregir)
Fin

Observaciones Clasificación de Algoritmos


 Se deben cumplir las ordenes del
algoritmo (Es decir hacer las tareas, no Algoritmos informales
solo pasar por ellas) • No pueden ser llevados a cabo por una
computadora.
• Las ejecuta el ser humano: ir al trabajo, dar
un beso, comprar un artículo, etc.

Algoritmos computacionales
• Son llevados a cabo por una computadora.
• Aprovecha la velocidad de procesamiento.

Por: Ing. Msc. Alberto Martín Medina Villacorta 3


Posible metodología… Concepto de código fuente
El código fuente es aquel algoritmo que ha
Transcripción sido transcrito siguiendo las reglas sintácticas
de un lenguaje de programación.
• Proceso que convierte un algoritmo en Es una forma no ejecutable de un programa
instrucciones que la computadora puede
informático.
entender, se ajusta a reglas sintácticas
del Lenguaje de Programación En el código fuente de un programa está
• Al concluir la transcripción se tiene un descrito por completo el funcionamiento
programa informático en forma de interno del programa (la lógica), por lo que
código fuente. puede ser estudiado para su edición.

Concepto de regla sintáctica Posible metodología…


Las reglas de sintaxis, son todas las restricciones
técnicas sobre las que se construyen todos los Digitación
lenguajes de programación.
• Proceso en el que se pasa el código fuente
Por ejemplo, en C, C++ y Java para declarar una del papel a un editor de texto, en el cual
variable de tipo entero, se hace así: se guardara en formato digital.
int miVariable;
Se debe hacer tal cual, si se escribe Int o INT el Compilación
compilador del C, C++ y Java al revisar el código
indicará un error de sintaxis. • Compilación, es el proceso de revisión del
En Visual Studio: Dim miVariable as Integer
programa para ver si cumple las reglas
sintácticas del lenguaje utilizado.

Por: Ing. Msc. Alberto Martín Medina Villacorta 4


Concepto de compilación El proceso de compilación
Para llevar a cabo este proceso, todo lenguaje
de programación cuenta con un programa
llamado compilador el cual dice si el programa
contiene errores y en que líneas de código
están, inclusive da sugerencias de corrección.
Es el proceso de traducción del código fuente
(escrito en un lenguaje de programación) a
lenguaje máquina (código objeto) para que
pueda ser ejecutado por las computadoras,
que sólo entienden el lenguaje máquina.

Que detecta el compilador Que NO detecta el compilador


• Son parecidos a los errores de
• Si no se programa de forma
ortografía de un idioma.
Errores Error de correcta el compilador no
• Se caracterizan por omitir o puede decidir lo que se
Sintácticos modificar las reglas de Lógica debe hacer.
sintaxis.
• Este tipo de errores solo
puede detectarse en las
llamadas “pruebas de
Errores de • El compilador sugiere cierta
forma de escribir el código
escritorio” o por ensayo.
Precaución para evitar errores futuros. • Son errores del
programador

Por: Ing. Msc. Alberto Martín Medina Villacorta 5


Posible metodología… Algoritmos - Características
Ejecución
• Cuando el compilador indica que no existen Genéricos
errores se podrá “correr” el programa • Que sean una solución reutilizable.
esperando que cumpla con el objetivo
deseado.
Finitos
Optimización
• Que tengan un límite de sentencias a
• Llamado “mejora”, o “pruebas”, si el ejecutar.
programa funciona, se trata de simplificar el
código para hacer más eficiente el programa.

Algoritmos - Características Algoritmos - Características


Correctos Eficientes
• Es decir que no tengan • Deben
errores de ninguna optimizar el
índole. tiempo de
procesamiento
Precisos y el espacio de
memoria
• No tienen ambigüedades necesario.
que generen dudas
respecto a su
comportamiento.

Por: Ing. Msc. Alberto Martín Medina Villacorta 6


Concepto de Programa Lenguajes de Programación
Un programa informático es la implementación Se habla de instrucciones que se le dan a una
de un algoritmo computacional en un lenguaje computadora para que realice ciertas tareas u
de programación. operaciones mediante instrucciones llamados
Esta formado por instrucciones que la “programas”
computadora realiza mediante las operaciones Una instrucción es un conjunto de símbolos que
o tareas que se le indican para resolver un representan un mandato y se forman mediante
problema. símbolos pertenecientes al conjunto de
Para poder realizar programas se necesitan de componentes del lenguaje (Componente léxico)
los lenguajes de programación. y son construidos siguiendo las reglas
sintácticas del mismo.

Lenguajes de Programación
Fases de un Programa

Fuente: http://www.webbizarro.com/noticias/814/los-lenguajes-de-programacion-mas-utilizados/

Por: Ing. Msc. Alberto Martín Medina Villacorta 7


Lenguajes de Programación Lenguajes de Programación

February 2, 2016

Lenguajes de Programación Lenguajes de Programación

Por: Ing. Msc. Alberto Martín Medina Villacorta 8


Lenguajes de Programación
Niveles de lenguajes
• Instrucciones en forma binaria.
Lenguaje
• Depende de la arquitectura de la
Máquina computadora.

• Ensamblador, cada línea de código


Lenguaje de es una instrucción.
bajo nivel • Instrucciones elementales.
Lenguaje de • Por ejemplo C
nivel medio
• Instrucciones de forma abstracta,
Fuente: http://www.business2community.com/tech-gadgets/top-20-popular-
programming-languages-2017-01791470#0dczAccqWldBxPq9.97 Lenguaje de deben ser traducidas .
alto nivel • Independientes de la arquitectura
de la computadora

Componente léxico Resumen


Es un elemento de un lenguaje de programación
y puede ser:

Palabra
Literal Operador
reservada

Comentario Delimitador Identificador

Fuente: http://vannelarenas.blogspot.pe/2011/06/mapa-conceptual-lenguajes-de.html

Por: Ing. Msc. Alberto Martín Medina Villacorta 9


Lenguajes de programación: Los más representativos
Evolución

• Imagen tomada de http://www.usemoslinux.com/tag/rust/

Los más representativos Los más representativos

• Imagen de Duke, la mascota de Java, se distribuye bajo una licencia libre!

Por: Ing. Msc. Alberto Martín Medina Villacorta 10


Los más representativos Los más representativos

Los más representativos Los más representativos

Por: Ing. Msc. Alberto Martín Medina Villacorta 11


Los más representativos Los más representativos

Los más representativos Los más representativos

Por: Ing. Msc. Alberto Martín Medina Villacorta 12


Los más representativos Los más representativos

Los más representativos Algunos recursos

www.levenez.com/lang/

Por: Ing. Msc. Alberto Martín Medina Villacorta 13


Lenguajes de alto nivel
Clasificación: Lenguajes de alto nivel Ventajas:
• Genera un código mas sencillo y comprensible
Programación
estructurada • Escribir un código valido para diversas
Lenguajes maquinas y, posiblemente, sistemas operativos.
imperativos Desventajas:
Programación
orientada a • Reducción de velocidad al ceder el trabajo de
Lenguajes de objetos bajo nivel a la maquina.
alto nivel
• Algunos requieren que la maquina cliente
posea una determinada plataforma.
Lenguajes
declarativos • Principales lenguajes de alto nivel: BASIC, PHP,
PERL, RUBY, MATLAB, JAVA

Lenguajes de alto nivel Traductores


• Son muy parecidos al lenguaje humano, manejan
conceptos, tipos de datos, etc., de una manera Son programas que transforman programas
cercana al pensamiento humano abstrayéndose hechos en un lenguaje de alto nivel al lenguaje
del funcionamiento de la máquina. máquina(producen código máquina).
• Fueron creados para que sea mas fácil crear Existen diferentes
programas ya que podemos entender lo que tipos de
escribimos y nos es mas sencillo. traductores: los
• Una sola instrucción de lenguaje de alto nivel compiladores y
los interpretes,
contiene varias instrucciones de un lenguaje de
los que realizan la
bajo nivel y así mismo este tiene varias en
misma función de
lenguaje maquina. distintas maneras

Por: Ing. Msc. Alberto Martín Medina Villacorta 14


Funciones de un Traductor Diferencia: Compilador-Interprete
Cualquier lenguaje puede ser ejecutado tanto
Programa en
Programa vía intérprete o vía compilador, pero algunos
lenguaje de
alto nivel
Traductor lenguajes suelen asociarse a una vía más que a
la otra y por esto son llamados “Lenguajes
interpretados” o “Lenguajes compilados”
Programa en respectivamente.
Computadora lenguaje En general la principal desventaja de los
máquina
intérpretes, es que cuando un programa es
interpretado suele ejecutarse mas lento que si
el miso programa estuviese compilado.

Traductores Funciones del Compilador


Compilador: programa que toma como entrada
un texto escrito en un lenguaje llamado código
fuente y da como salida otro texto en un
lenguaje denominado objeto.
Interprete: son programas que analizan,
traducen y ejecutan instrucciones de un
programa en forma secuencial, no se traduce
instrucción alguna hasta haber finalizado la
instrucción anterior. (p.e. motor de scripts)

Por: Ing. Msc. Alberto Martín Medina Villacorta 15


Resumen para “programa”

Por: Ing. Msc. Alberto Martín Medina Villacorta 16