Sunteți pe pagina 1din 7

Algoritmos y programas

Algoritmos

Un algoritmo es un método para resolver un problema. Para la creación de un programa


(resolver un problema) en un lenguaje de programación hay que sobrepasar al menos
cuatro pasos a saber:

Definición o análisis del problema.


Diseño del algoritmo.
Transformación del algoritmo en un programa.
Ejecución y validación del programa.

Definición o análisis del problema: Consiste en conocer a detalle de lo que se va a tratar,


es decir, antes de dar el paso siguiente es necesario saber cuál es el problema y como
enfrentarlo, buscar las posibles soluciones y escoger la más fiable y/o menos costosa.

Diseño del algoritmo: que describe la secuencia ordenada de pasos – sin ambigüedades
– que conduzcan a la solución de un problema dado.

Expresar el algoritmo como un programa en un lenguaje de programación adecuado.

Ejecución y validación del programa por la computadora.

Para llegar a la realización de un programa es necesario el diseño previo de un algoritmo,


de modo que sin algoritmo no puede existir un programa. Los algoritmos son
independientes tanto del lenguaje de programación en que se expresan como de la
computadora que los ejecuta. Sus características fundamentales son:

a) Debe ser preciso e indicar el orden de realización de cada paso.


b) Debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo
resultado cada vez.

c) Debe se finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea


debe tener un número finito de pasos.

d) Ha de cumplir tres partes: Entrada – Proceso – Salida.

Programas

Un programa está asociado intrínsecamente a la existencia de una computadora. Las


computadoras ejecutan programas. Los programas leen datos desde archivos, bases de
datos, redes, teclados, etc y escriben datos en archivos, bases de datos, redes, pantallas,
etc.

Los programas son ejecutados por el procesador de la computadora. Para ello tienen que
ser cargados en la memoria principal RAM. La carga de los programas en la memoria
esta a cargo de un tipo especial de programa o software llamado sistema operativo.

Un programa puede implementar uno o varios algoritmos, o puede ser tan simple que la
idea de algoritmo es poco aplicable. La tarea de un programador suele empezar diseñando
algoritmos para resolver los problemas planteados y luego implementarlos e incluirlos en
un programa.

Cuando hablamos de programa siempre existe la idea de que será ejecutado por una
computadora mientras que un algoritmo podría ser ejecutado por una persona.

Un programa está escrito en lenguaje máquina o por lo menos en un lenguaje que pueda
ser compilado o interpretado por algún tipo de máquina (a veces una máquina virtual).
Lenguajes de Programación: Son los utilizados para escribir los programas de
computadora. Un algoritmo es un programa cuando el procesador encargado de su
ejecución es una computadora. Los principales lenguajes utilizados son tres:

 Lenguaje de máquina.
 Lenguaje de bajo nivel (ensamblador).
 Lenguaje de alto nivel.

Los diferentes pasos o acciones de un algoritmo se expresan en os programas


como instrucciones, sentencias o proposiciones. Por consiguiente, un programa consta
de una secuencia de instrucciones cada una de las cuales especifica ciertas operaciones
que debe ejecutar la computadora. Existen sin embargo, determinados tipos de
instrucciones: Instrucciones de Entrada/Salida, aritmético-lógicas, selectivas y
repetitivas.

Lenguaje de máquina: Son aquellos que están escritos en lenguajes directamente


inteligibles por la máquina, ya que sus instrucciones son cadenas binarias que especifican
una operación y las posiciones o direcciones de memoria implicadas en la operación. Las
instrucciones en lenguaje de máquina dependen del hardware de la computadora y, por
tanto, diferirán de una computadora a otra.

Lenguaje de bajo nivel: Son más fáciles de utilizar que los lenguaje de máquina, pero
dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia es
el ensamblador. Las instrucciones en lenguaje ensamblador son instrucciones conocidas
como mnemotécnicos (mnemonics). Un programa escrito en lenguaje ensamblador no
puede ser ejecutado directamente por la computadora – en esto se diferencia
esencialmente del lenguaje máquina, sino que requiere una fase de traducción al lenguaje
máquina. El programa original se denomina programa fuente y el programa traducido en
lenguaje máquina se llama programa objeto. El traductor de programas fuente a objeto
es un programa llamado ensamblador (assembler) y existe en casi todas las
computadoras.
Lenguaje de alto nivel: Son los más utilizados por los programadores y son
independientes de la máquina, esto es, las instrucciones del programa de la computadora
no depende del hardware o de una computadora en particular, por lo tanto los programas
son portables, es decir, que pueden ser ejecutados en otras computadoras con poca o
ninguna modificación. Al igual que sucede con los lenguajes ensambladores, los
programas fuentes tienen que ser traducidos por programas traductores,
llamados compiladores e intérpretes.

Traductores de lenguaje: Los traductores de lenguaje son programas que traducen a su


vez los programas escritos en lenguaje de alto nivel a código máquina. Se dividen en
compiladores e intérpretes.

Intérpretes: Es un traductor que toma un programa fuente, lo traduce y a continuación


lo ejecuta. El lenguaje que opera bajo este formato se denomina lenguaje interpretado.

Compiladores: Es un programa que traduce los programas fuentes escritos en lenguaje


de alto nivel a lenguaje de máquina. El programa objeto obtenido de la compilación no
ha sido traducido normalmente a código máquina sino a ensamblador. Para obtener el
programa máquina real se utiliza un programa llamado enlazador (linker). El proceso de
enlazamiento conduce a un programa en lenguaje máquina directamente ejecutable.

Datos, Tipos de Datos y Operaciones Primitivas: El primer objetivo de toda


computadora es el manejo de la información o datos. Un dato es la expresión general que
describe los objetos con los cuales opera una computadora. Existen dos tipos de datos:
simples (sin estructuras) y compuestos (estructurados), los datos compuestos son
conjuntos de partidas de datos simples con relaciones definidas entre ellos. Los datos
simples son: numéricos, lógicos y carácter.

Datos numéricos: Es el conjunto de los valores numéricos y puede ser expresado


numérico entero (integer) y numérico real. Los enteros no tienen componentes
fraccionarias o decimales y pueden ser negativos o positivos. Los reales siempre tienen
un punto decimal.

Datos lógicos: También llamados booleanos —es aquel que solo puede tomar uno de dos
valores: verdadero (true) o falso (false). Se utiliza para representar las alternativas (si/no)
a determinadas condiciones.

Datos carácter: Este tipo de dato contiene un solo carácter. Los caracteres son:
alfabéticos (A-Z), numéricos (0-9) y especiales (¡ @ # $ % ^ & *…). Una cadena de
caracteres o string es una sucesión de caracteres que se encuentran delimitados por una
o dobles comillas.

Constantes y Variables: Una constante es un valor dentro de un programa que no puede


cambiar durante la ejecución del mismo. De igual modo los valores que son serán fijos
durante la ejecución se les llaman variables. Dependiendo del lenguaje, las variables
pueden ser enteras, reales, carácter, lógicas y de cadena. Una variable se identifica por el
nombre que se le asigna y el tipo que describe el uso de la variable.

Expresiones: Son combinaciones de constantes, variables, símbolos de operación,


paréntesis y nombres de funciones especiales. Las mismas son utilizadas en notación
matemática tradicional. Una expresión costa de operandos y operadores. Según sea el
tipo de objetos que manipulan, se clasifican las expresiones en aritméticas, relacionales,
lógicas y carácter.

Expresiones aritméticas: Las expresiones son análogas a las fórmulas matemáticas. Las
variables y constantes son numéricas y las operaciones son la suma, resta, multiplicación,
división, etc.

Reglas de prioridad:
a) Las operaciones que están encerradas entre paréntesis se evalúan primero. Si existen
diferentes paréntesis anidados, las expresiones mas internas se evalúan primero.

b) Las operaciones aritméticas dentro de una expresión suelen seguir el siguiente orden
de prioridad.

1.- exponencial

2.- multiplicación y división

3.- suma y resta

4.- multiplicación entera y residuo

En caso de coincidir varios operadores de igual prioridad en una expresión o subexpresión


encerrada entre paréntesis, el orden de prioridad en este caso es de izquierda a derecha.

Expresiones lógicas (booleanas) : Es una expresión que solo puede tener uno de dos
valores, verdadero o falso. Se forman combinando constantes lógicas, variables lógicas
y otras expresiones lógicas utilizando los operadores lógicos and, or, not y los operadores
relacionales =, <, >, <=, >= y <>.

Operadores de relación: Permiten realizar comparaciones de valores de tipo numérico


o carácter. Los operadores de relación sirven para expresar las condiciones en los
algoritmos.

Operadores lógicos: Los operadores lógicos son not, and y or. Not es la negación de
una proposición en tanto que los valores de and (y) y or (o) se recogen en la tabla de
verdad. En las expresiones lógicas se pueden mezclar operadores de relación y lógicos.
Funciones internas: Es un número determinado de operaciones especiales que se
requieren habitualmente en los programas y que están incorporadas en los lenguajes de
programación. Pertenecen a estas funciones las raíces cuadradas y las funciones
trigonométricas entre otras.

Operación de asignación: La operación de asignación es el modo de darle valores a una


variable. La acción de asignar es destructiva, ya que l valor que tuviera la variable antes
de la asignación se pierde y se reemplaza por el nuevo valor.

Entrada y salida de información: Los cálculos que realizan las computadoras requieren
para ser útiles la entrada de los datos necesarios para ejecutar las operaciones que
posteriormente se convertirán en resultados, es decir, salida.

Las operaciones de entrada permiten leer valores y asignarlos a determinadas variables.


Esta entrada se conoce como operación de lectura (read). La operación de salida se
denomina escritura (write).