Está en la página 1de 10

ALGORITMOS Y ESTRUCTURA DE DATOS

FRBA – UTN

K1091

PROF. MARCELO LIPKIN


marcelolipkin@gmail.com
mlipkin@educación.Gob.ar
mlipkin@frba.utn.edu.ar

DIRECTOR CÁTEDRA PROF. DR. OSCAR BRUNO


Introducción a la programación

En este documento vamos a desarrollar conceptos generales referidos a la práctica de algoritmos.


A partir de los próximos documentos iremos desarrollando los diferentes elementos necesarios
para la construcción de algoritmos.

Temas a desarrollar en este documento:

• Algorítmia;
• Niveles de lenguaje;
• Entornos de desarrollo;
Algorítmia
Un algoritmo es una secuencia de pasos lógicos necesarios para llevar a
cabo una tarea especifica, como la solución de un problema. Se pueden
expresar algoritmos que representen tareas domésticas, tareas
laborales, tareas automatizadas, etc.
Los algoritmos informáticos son independientes tanto del lenguaje de
programación en que se expresan como de la computadora que los
ejecuta.
En cada problema el algoritmo se puede expresar en un lenguaje
diferente de programación y ejecutarse en una computadora distinta;
sin embargo el algoritmo será siempre el mismo.

Fuente: http://correo.uan.edu.mx/~iavalos/FP/FP1.html
Características de los algoritmos
Las características fundamentales que debe cumplir todo algoritmo son:
• Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
• Un algoritmo debe estar definido unívocamente. Si se sigue un algoritmo dos veces,
se debe obtener el mismo resultado cada vez.
• Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún
momento; o sea debe de tener un número finito de pasos.

La definición de un algoritmo debe describir tres partes: Entrada, Proceso y


Salida.

• Entrada son los datos a ser procesados


• Proceso es el cómo se procesan los datos
• Salida son los resultados del proceso aplicado a los datos de entrada
Lenguajes de programación (Lenguaje máquina,
ensamblador y de alto nivel)
Al igual que los idiomas que todos conocemos, para comunicarnos
entre nosotros, existen lenguajes que realizan la comunicación entre el
programador y las computadoras. Estos lenguajes permiten expresar
las instrucciones que el programador desea que la computadora
ejecute.
Los lenguajes se distinguen en:
• Lenguaje máquina: es el que utilizan los procesadores de las computadoras,
es propio de cada marca
• Lenguaje de bajo nivel: llamados assembler, son propios de cada procesador y
muy “cercanos” al lenguaje máquina
• Lenguajes de alto nivel: son los lenguajes muy “parecidos” a los lenguajes que
utilizamos habitualmente, se escribe mediante éstos, y luego son convertidos
a lenguaje máquina. Ejemplos COBOL, Pascal, C++, PhP, Java
Lenguajes máquina y bajo nivel ensamblado
• Se llama lenguaje máquina a las instrucciones que se dan
directamente a la computadora, utilizando una serie de dígitos
binarios o bits, representados por los números 0 y 1 que especifican
una operación. Aunque este lenguaje es el que entiende la
computadora, es muy difícil de manejar en la comunicación humana.
Las instrucciones en lenguaje máquina dependen del hardware de la
computadora y por lo tanto diferirán de una computadora a otra.
• Los lenguajes de bajo nivel son más fáciles de utilizar que los
lenguajes máquina, pero, al igual que ellos, dependen de la máquina
en particular. El lenguaje de bajo nivel por excelencia es el
ensamblador (assembler). Las instrucciones en lenguaje ensamblador
son conocidas como mnemotécnicos.
Lenguajes de alto nivel
Los lenguajes de alto nivel son los utilizados habitualmente por los
programadores. Están diseñados para escribir y entender los programas
de un modo natural. Un programa escrito en un lenguaje de alto nivel
es independiente de la máquina debido a que las instrucciones no
dependen del diseño del hardware o de una computadora en
particular.
En consecuencia, los programas escritos en lenguajes de alto nivel son
portables o transportables, lo que significa la posibilidad de poder ser
ejecutados con poca o ninguna modificación en diferentes tipos de
computadoras.
Herramientas
Para modelizar un problema la herramienta principal que necesitamos es papel, lápiz,
goma de borrar, concentración y razonamiento.

Mediante una descripción acotada mediante reglas específicas; diagramas con un


conjunto acotado de símbolos; lenguaje de programación, editor de texto (del tipo
block de notas) y compilador se pueden desarrollar programas y ejecutarlos (ponerlos
a funcionar).

Existen herramientas que facilitan el aprendizaje, por ejemplo Robomind


(programación de robot), PseInt (programación de aplicaciones en modo grafico) y
entornos de desarrollo con compiladores de diversos lenguajes de programación.
PseInt, entorno de desarrollo para uso educativo,
(http://pseint.sourceforge.net/)
Herramienta para asistir a un estudiante en sus
primeros pasos en programación. Mediante un
pseudo-lenguaje y un editor de diagramas permite
desarrollar programas.
Además se puede ver el resultado y exportar el
código a diversos lenguajes de programación
Flowgorithm , entorno de desarrollo para uso
educativo, http://www.flowgorithm.org/
Flowgorithm es un lenguaje de programación gratuito para principiantes que se basa en diagramas de
flujo gráficos simples.
Al utilizar diagramas de flujo, puede concentrarse en los conceptos de programación en lugar de en todos
los matices de un lenguaje de programación típico. También puede ejecutar sus programas directamente
en Flowgorithm. Y permite convertir interactivamente su diagrama de flujo a C ++, Java y otros

También podría gustarte