lunes, 30 de mayo de 2011

PSEUDOCODIGO

El pseudocódigo (o falso lenguje) es utilizado por programadores para describir algoritmos en un lenguaje humano simplificado que no es dependiente de ningún lenguaje de programación. Por este motivo puede ser implementado en cualquiera lenguaje por cualquier programador que utilice el pseudocódigo.

HISTORIA DE LA PROGRAMACION

Sobre los últimos 50 años, los idiomas que programan han evolucionado del código binario de máquina a herramientas poderosas que crean las abstracciones complejas. Es importante entender por qué los idiomas han evolucionado, y qué capacidades que los idiomas más nuevos nos dan.

"Tan largo como no había máquinas, programar era ningún problema; cuando tuvimos unos pocas computadoras débiles, programar llegó a ser un problema templado y ahora que tenemos las computadoras gigantescas, programar ha llegado a ser un problema igualmente gigantesco. En este sentido que la industria electrónica no ha resuelto un solo problema, tiene sólo los creó - ha creado el problema de usar su producto". [Edsger. W. Dijkstra. "El Programista Humilde" (la Conferencia del Premio de Turing), Comunicaciones del ACM, Vol 15, No. 10 (el octubre 1972).]

E. W. Dijkstra habló estas palabras proféticas casi hace 28 años en su es la conferencia del Premio de Turing. En aquel momento, el 'las computadoras gigantescas él radio de probablemente tenido entre 64 y 128 kilobytes de la memoria verdadera, y a lo más unos pocos megaoctetos de artefactos de almacenamiento de acceso directo. Si él pensó que el problema era gigantesco entonces...

Uno de las llaves a programar exitoso son el concepto de la abstracción. La abstracción es la llave a la construcción sistemas complejos de software. Como el tamaño de nuestros problemas crece, la necesidad para la abstracción dramáticamente aumentos. En sistemas sencillos, característica de idiomas usados en el 1950s y '60s, un solo programista podría entender el problema entero, y por lo tanto manipula todas estructuras del programa y datos. Los programistas son hoy incapaces de entender todos los programas y los datos - es apenas demasiado grande. La abstracción se requiere a permitir que el programista para agarrar los conceptos necesarios.

La mayoría de los libros y el reglamento en la historia de programar los idiomas tienden a discutir los idiomas en términos de generaciones. Esto es un arreglo útil para clasificar los idiomas por la edad.

Historia de la Programación

Primera Generación

Al desarrollarse las primeras computadoras electrónicas, se vio la necesidad de programarlas, es decir, de almacenar en memoria la información sobre la tarea que iban a ejecutar. Las primeras se usaban como calculadoras simples; se les indicaban los pasos de cálculo, uno por uno.

John Von Neumann desarrolló el modelo que lleva su nombre, para describir este concepto de "programa almacenado". En este modelo, se tiene una abstracción de la memoria como un conjunto de celdas, que almacenan simplemente números. Estos números pueden representar dos cosas: los datos, sobre los que va a trabajar el programa; o bien, el programa en sí.

¿Cómo es que describimos un programa como números? Se tenía el problema de representar las acciones que iba a realizar la computadora, y que la memoria, al estar compuesta por switches correspondientes al concepto de bit, solamente nos permitía almacenar números binarios.

La solución que se tomó fue la siguiente: a cada acción que sea capaz de realizar nuestra computadora, asociarle un número, que será su código de operación (opcode) . Por ejemplo, una calculadora programable simple podría asignar los opcodes :

1 = SUMA, 2 = RESTA, 3 = MULTIPLICA, 4 = DIVIDE.

TIPOS DE DATOS

En los lenguajes de programación y en otros programas utilitarios tales como una planilla de calculos, un tipo de dato es un atributo de una parte de los datos que indica al ordenador (y/o al programador) algo sobre la clase de datos sobre los que se va a procesar. Esto incluye imponer restricciones en los datos, como qué valores pueden tomar y qué operaciones se pueden realizar. Tipos de datos comunes son: enteros, números de coma flotante (decimales), cadenas alfanuméricas, fechas, horas, colores, coches o cualquier cosa que se nos ocurra. Por ejemplo, en Java, el tipo "int" representa un conjunto de enteros de 32 bits cuyo rango va desde el -2.147.483.648 al 2.147.483.647, así como las operaciones que se pueden realizar con los enteros, como la suma, resta y multiplicación. Los colores, por otra parte, se representan como tres bytes denotando la cantidad de rojo, verde y azul, y una cadena de caracteres representando el nombre del color; las operaciones permitidas incluyen la adición y sustracción, pero no la multiplicación.
Éste es un concepto propio de la informtica, más específicamente de los lenguajes de programación, aunque también se encuentra relacionado con nociones similares de las matemáticas y la lógica.

EXTRUCTURAS DE CONTROL

Estructuras de Control

Hasta ahora algoritmos han consistido en simples secuencias de
instrucciones
n Existen tareas más complejas que no pueden ser resueltas así
(repetir una misma acción, realizar acciones diferentes en
función del valor de una expresión, etc.)
n Para resolver esto existen las estructuras de control:
n Una estructura de control tiene un único punto de entrada y un
único punto de salida.
n Una estructura de control se compone de sentencias o de otras
estructuras de control.
n Existen 3 tipos fundamentales de estructuras de control:
n Secuencial.
n Alternativa.
n Repetitiva.

EXTRUCTURAS DE CONTROL SECUENCIAL

EXTRUCTURAS DE CONTROL SECUENCIAL


Estructuras de Control. Secuencial
n La más sencilla, simplemente indica una secuencia de
acciones a ser ejecutadas de forma consecutiva.
n La composición secuencial no es conmutativa.
read *, a
read *, b
c = a + b
print *, c
leer a
leer b
c ß a + b
escribir c
read *, a; read *, b
c = a + b; print *, c
leer a; leer b
c ß a + b; escribir c
Acción 1
Acción 2
Acción n
Punto de salida
Punto de entrada
n Existe una notación alternativa, separando las
sentencias mediante el carácter.

EXTRUCTURAS DE CONTROL ALTERNATIVA SIMPLE

EXTRUCTURAS DE CONTROL ALTERNATIVA SIMPLE

Estructuras de Control. Alternativa simple
n Evalúa una expresión lógica y ejecuta una acción (o grupo de acciones)
si es cierta y no hace nada si es falsa.
if (expresión lógica) then
acciones
end if
si expresión lógica entonces
acciones
fin_si
Acción
Punto de salida
Punto de entrada
Expresión
lógica
VERDADERO FALSO
if (radio>0) then
longitud=2*pi*radio
end if
si radio>0 entonces
longitudß2·pi·radio
fin_si

EXTRUCTURAS DE CONTROL ALTERNATIVA DOBLE

EXTRUCTURAS DE CONTROL ALTERNATIVA DOBLE


Estructuras de Control. Alternativa doble
n Similar a la anterior, ejecuta una acción (o grupo de acciones) si la
expresión es cierta y otra acción (o grupo) si es falsa.
if (expresión lógica) then
acciones
else
acciones
end if
si expresión lógica entonces
acciones
si no
acciones
fin_si
if (radio>0) then
longitud=2*pi*radio
else
print *, ‘Error’
end if
si radio>0 entonces
longitudß2·pi·radio
si no
escribir ‘Error’
fin_si
n Ejemplo:
Acción
Punto de salida
Punto de entrada
Expresión
lógica
VERDADERO FALSO
Acción 6