Algoritmo
Un
algoritmo, es un conjunto de instrucciones o reglas definidas y
no-ambiguas, ordenadas y finitas que permite, típicamente, solucionar un
problema, realizar un cómputo, procesar datos y llevar a cabo otras
tareas o actividades. Dados un estado inicial y una entrada, siguiendo
los pasos sucesivos se llega a un estado final y se obtiene una
solución.
Características de un algoritmoTodo algoritmo debe cumplir con estas características básicas:
Tienen inicio y fin: todo algoritmo comienza en un estado inicial con una serie de datos específicos, y culmina con una solución o salida.
Funcionan en secuencia: un algoritmo está compuesto por una serie de pasos ordenados.
Las secuencias son concretas: cada paso es claro y no deja lugar a la ambigüedad.
Los algoritmos son abstractos: son modelos o guías para ordenar procesos.
La cantidad de pasos de un algoritmo es finita.
Diagrama de flujo:
Como
diagrama de flujo se denomina la representación gráfica de todos los
pasos de que consta un proceso. Como tal, es la representación
esquemática de la sucesión de operaciones que componen un sistema. En un
diagrama de flujo, en este sentido, todas las acciones se encuentran
interrelacionadas para conducir a un resultado específico.
Pseudocódigo
El pseudocódigo es una forma de
expresar los distintos pasos que va a realizar un programa, de la forma más
parecida a un lenguaje de programación. Su principal función es la de
representar por pasos la solución a un problema o algoritmo, de la forma más
detallada posible, utilizando un lenguaje cercano al de programación.
Proceso Circulo
Definir
radio,superficie,perimetro como Real;
Escribir "Introduce
el radio de la circunferencia:";
Leer
radio;
superficie <- PI * radio ^ 2;
perimetro
<- 2 * PI * radio;
Escribir "La
superficie es ",superficie;
Escribir "El
perímetro es ",perimetro;
FinProceso
Lenguajes de programación estructurados.
Aunque los requerimientos actuales de software
son bastante más complejos de lo que la técnica de programación
estructurada es capaz, es necesario por lo menos conocer las bases de
los Lenguajes de Programación estructurados, ya que a partir de ellos se
evolucionó hasta otros lenguajes y técnicas más completas (orientada a
eventos u objetos) que son las que se usan actualmente.
La programación estructurada se define como una técnica para escribir
lenguajes de programación que permite sólo el uso de tres tipos de
sentencias o estructuras de control:
- Sentencias secuenciales.
- Sentencias selectivas (condicionales).
- Sentencias repetitivas (iteraciones o bucles).
Los lenguajes de programación que se basan en la programación
estructurada reciben el nombre de lenguajes de programación
estructurados.
La
programación estructurada fue de gran éxito por su sencillez a la
hora de construir y leer programas. Fue sustituida por la
programación modular, que permitía dividir los programas grandes en
trozos más pequeños (siguiendo la conocida técnica "divide y
vencerás"). A su vez, luego triunfaron los lenguajes orientados a
objetos y de ahí a la programación visual (siempre es más sencillo
programar gráficamente que en código, ¿no crees? ).
VENTAJAS
DE LA PROGRAMACIÓN ESTRUCTURADA
-
Los
programas son fáciles de leer, sencillos y rápidos.
-
El
mantenimiento de los programas es sencillo.
-
La
estructura del programa es sencilla y clara.
INCONVENIENTES
-
Todo
el programa se concentra en un único bloque (si se hace demasiado
grande es difícil manejarlo).
-
No
permite reutilización eficaz de código, ya que todo va "en
uno". Es por esto que a la programación estructurada le
sustituyó la programación modular, donde los programas se
codifican por módulos y bloques, permitiendo mayor
funcionalidad.
Ejemplos de lenguajes estructurados: Pascal,
C, Fortran.
Lenguajes de programación orientados a objetos.
Después de comprender que la programación estructurada no es útil cuando
los programas se hacen muy largos, es necesaria otra técnica de
programación que solucione este inconveniente. Nace así la Programación
Orientada a Objetos (en adelante, P.O.O.).
Los lenguajes de programación orientados a objetos tratan a los
programas no como un conjunto ordenado de instrucciones (tal como
sucedía en la programación estructurada) sino como un conjunto de
objetos que colaboran entre ellos para realizar acciones.
En la P.O.O. los
programas se componen de objetos independientes entre sí que
colaboran para realizar acciones.
Los objetos son
reutilizables para proyectos futuros.
Su primera desventaja es clara: no es una programación tan intuitiva como la estructurada.
A pesar de eso, alrededor del 55% del software que producen las empresas se hace usando esta técnica.
Razones:
- El código es reutilizable.
- Si hay algún error, es más fácil de localizar y depurar en un objeto que en un programa entero.
Características:
- Los objetos del programa tendrán una serie de atributos que los diferencian unos de otros.
- Se define clase como una colección de objetos con características similares.
- Mediante los llamados métodos, los objetos se comunican con otros produciéndose un cambio de estado de los mismos.
- Los objetos son, pues, como unidades individuales e indivisibles que forman la base de este tipo de programación.
Principales lenguajes orientados a objetos: Ada, C++, VB.NET, Delphi, Java, PowerBuilder, etc.