PROGRAMACION: DIAGRAMACION A.- ALGORITMOS Se denomina algoritmo a una serie de instrucciones paso a paso que permiten realizar un determinado proceso. Las operaciones se describen en función de otros procesos que ya han sido definidos o bien desde el punto de vista de procesos que son tan básicos que no necesitan ser definidos. Un ejemplo claro de algoritmo es una receta de cocina, donde un plato complicado se divide en una serie de operaciones que pueden ser básicas como: unir, revolver, batir, hervir, hornear; etc. o predefinidas como: caldo; mayonesa; claras a nieve; etc. Un algoritmo de computadora se describe a través de un lenguaje de programación. Cada una de las instrucciones de la sentencia será una sentencia del lenguaje. El conjunto del algoritmo y la representación de datos utilizada se conoce con el nombre de programa. En definitiva un programa es la descripción de un proceso en un determinado lenguaje. Niklaus Wirth define que un algoritmo o programa por computadora consiste en dos partes esenciales: Una descripción de acciones que deben ser ejecutadas y una descripción de los datos que son manipulados por esas acciones. El número de operaciones que debe realizar un algoritmo no se conoce de antemano, pero ese número debe ser finito. Las características fundamentales de un algoritmo son que debe ser preciso, finito, definido y no ambiguo. En general un algoritmo consta de tres partes: entrada, proceso y salida. Es conveniente en primera instancia la representación del algoritmo a través de lenguajes gráficos que permitan apreciar el comportamiento general del modelo propuesto. Estas representaciones gráficas se llevan a cabo mediante los "Diagramas en Bloque" y los "Diagramas de Flujo" o los "Organigramas de Chapin o de Nassi/Schneiderman". Por lo tanto para realizar un programa, se debe definir el problema para poder diseñar la solución. El diseño general elegido se desarrolla posteriormente en forma de algoritmo; diseñándolo de acuerdo a las técnicas de la programación estructurada o desarrollo top-down, que consiste en partir de la idea general y definir cada paso posterior con más detalle hasta llegar a la resolución del problema. Totalmente definido el algoritmo se comienza con la escritura del programa en un lenguaje de programación, tarea también denominada codificación. Codificado el programa, se debe efectuar la depuración o comprobación de funcionamiento correcto y expurgado de errores. Previo al empleo sistemático del programa, también llamado producción, se debe completar la documentación del mismo, tanto interna como externa. De esta exposición se puede llegar a varias conclusiones: •

La computadora no resuelve problemas por sí misma, únicamente sigue procedimientos cuidadosamente definidos. • Una computadora no releva al usuario de su responsabilidad de plantear cuidadosamente el trabajo, por el contrario, la computadora exige una planificación

Diagramación - Página 1

Área COMPUTACIÓN - Dpto. Cs. Básicas - F.I.C.E.S. - UNSL - 2000 mucho más cuidadosa. La computadora es mucho más rápida y precisa que un ser humano pero no puede decidir como proceder o que hacer con los resultados. • Una computadora de ninguna manera reduce la necesidad de un entendimiento amplio y detallado del área del problema o de un conocimiento completo de las matemáticas con las que está relacionada.

B.- ESTRUCTURA GENERAL DE UN PROGRAMA Datos, Tipos de Datos y Operaciones Primitivas En todo programa se maneja información o datos. El sistema de identificación de los datos se denomina definición de la estructura de datos. Los datos con los que trabaja un programador se sitúan o almacenan en objetos denominados variables. Las variables llevan un nombre llamado identificador que sirve para referenciar su valor o contenido. Este valor puede ser modificado tanta veces como se desee. La acción de atribuir un valor a una variable se denomina asignación. Los datos pueden ser de distinta naturaleza (número, caracteres, etc.). El tipo de variable es el conjunto de valores que puede tomar. En general podemos definir dos tipos fundamentales de datos: numéricos y no numéricos.

Datos Numéricos Los datos numéricos pueden ser números enteros o números reales. Los números enteros pueden ser positivos o negativos. Los reales tienen punto decimal, pudiéndose utilizar la notación científica o de punto flotante del siguiente formato: n = m + b^e donde m = mantisa, e = exponente, b = base del sistema de numeración, ^ símbolo de la exponenciación. Normalmente "m" puede contener de 6 a 15 dígitos y "e" 2 ó 3 dígitos positivos o negativos.

Datos No Numéricos Son datos no numéricos se dividen en datos alfanuméricos y datos lógicos. Los alfanuméricos se agrupan en series o cadenas de caracteres (caracteres alfabéticos A,B,...,Y,Z,a,b,...,y,z; los dígitos 0,1,2,...,8,9; caracteres especiales !,@,#,$,%,(,),-, etc.). Los datos lógicos son aquellos que pueden tomar valores verdadero o falso.

Constantes, Variables y Expresiones. Una variable posee dos atributos: un nombre y un tipo. El nombre de las variables es una cadena de caracteres, mientras que por el tipo pueden ser enteras, reales, de caracteres o alfanuméricas y lógicas o booleanas. Una constante es un objeto de valor invariable durante todo el proceso. Los tipos de constantes pueden ser iguales a los tipos de variables.

Diagramación - Página 2

Área COMPUTACIÓN - Dpto. Cs. Básicas - F.I.C.E.S. - UNSL - 2000 Las expresiones son combinaciones de constantes, variables, operadores, paréntesis, nombres de funciones especiales. En el caso de las operaciones aritméticas se respetan las reglas del álgebra. Las expresiones pueden ser aritméticas o booleanas. Las expresiones aritméticas son análogas a las fórmulas matemáticas. Las variables y constantes son numéricas y las operaciones permitidas son las operaciones aritméticas clásicas. Las expresiones booleanas, cuyo resultado será verdadero o falso, o 0 y 1, combinan constantes, variables y expresiones booleanas por medio de los operadores lógicos AND, OR, NOT y XOR. La asignación del resultado de una expresión a una variable se realiza de derecha a izquierda y nunca a la inversa, es decir: Variable = Expresión

Constantes Las constantes son valores o datos específicos que no cambian durante la ejecución del programa; pueden ser numéricas o alfanuméricas. Las constantes numéricas pueden tomar cualquier valor numérico entero, fraccionario o real, con el que se puede operar aritméticamente y cuyo valor no cambia en el transcurso del programa. La parte entera se separa de la parte fraccionaria mediante el punto decimal y no con la coma. No deben existir separadores en los miles, millones, etc. Las constantes numéricas pueden estar precedidas por el signo + o - (suponiéndose que, cuando no tienen signo son positivas). Una constante puede tener exponencial, si se desea, siendo la notación exponencial equivalente a la notación científica, cambiando la base 10 por la letra E o D, según corresponda. El exponente puede ser positivo o negativo pero no puede ser fraccionario. La cantidad de cifras significativas que pueden tener los números varía con el equipo y con el lenguaje siendo típicas entre 6 y 10. Las constantes son datos numéricos específicos en la mayoría de los lenguajes se puede dar un nombre a una constante para utilizarlo en lugar de su valor, para esto se emplea la sentencia CONST; por ejemplo: CONST PI = 3.141592654 define el nombre PI como el valor 3.141592654 el cual no puede ser cambiado durante la ejecución del programa. Las siguientes cantidades son ejemplos válidos de constantes numéricos para la mayoría de los lenguajes y las tres columnas representan los mismos valores:

Diagramación - Página 3

Área COMPUTACIÓN - Dpto. Cs. Básicas - F.I.C.E.S. - UNSL - 2000 0 +0 -0 1 +1 0.1E+1 -5280 -5.28E+3 -.5280E4 +1492 1492 1.492E+3 -0.0000613 -6.13E-5 -613E-7 3000000 3E6 3E+6 También existen las constantes alfanuméricas, denominadas hileras, cadenas de caracteres o strings. Estas están formadas por sucesiones de caracteres (como letras, números o caracteres especiales como +, -, /, *, =, $, ...., etc.) que pueden incluir espacios en blanco. Estas cadenas de caracteres se delimitan con doble encomillado. La cantidad máxima de caracteres varía de equipo en equipo. Las strings se utilizan para representar información no numérica como: nombres, direcciones, etc.; para identificar o rotular resultados numéricos o para imprimir mensajes textuales.

Variables Las variables son la identificación de lugares donde se almacena información o los datos sobre los que trabaja el programa. Desde el punto de vista físico, estos lugares son celdillas, o grupos de celdillas, de la memoria central del ordenador. Las variables pueden ser modificadas durante la ejecución de un programa. El concepto de variable de los lenguajes de programación no es muy diferente del concepto de variable en matemática. En matemática, una variable es un nombre simbólico usado para indicar una magnitud a la que se puede asignar un valor efectivo. Las variables pueden representar números o una cadena de caracteres (string). Una variable numérica consta de una letra del alfabeto inglés y puede ir o no seguida de otras letras o dígitos, dependiendo de la versión del lenguaje que se utilice. En muchos lenguajes se pueden utilizar los siguientes tipos de variable numéricas: •

Variables Enteras (INTEGER): indica que puede almacenar números enteros con una precisión de dos bytes (en el rango de -32768 a 32767). • Variables Enteras Largas (LONG INTEGER): indica que puede almacenar números enteros con una precisión de cuatro bytes (en el rango de -2147483648 a 2147483647). • Variables Reales de Simple Precisión (SINGLE PRECISION): indica que puede almacenar números reales con una precisión de cuatro bytes (aproximadamente 7 dígitos significativos). • Variables Reales de Doble Precisión (DOUBLE PRECISION): indica que puede almacenar números reales con una precisión de ocho bytes (aproximadamente 15 dígitos significativos).

Operadores Las constantes, variables o ambas, pueden combinarse en operaciones llamadas expresiones. Los operadores especifican los procedimientos a ser realizados en las mismas.

Diagramación - Página 4

Área COMPUTACIÓN - Dpto. Cs. Básicas - F.I.C.E.S. - UNSL - 2000 Existen tres tipos de operadores: • •

Aritméticos: son los mas comunes y designan operaciones matemáticas. Relacionales: determinan las comparaciones que se realizaron entre dos valores o entre dos expresiones. • Lógicos: permiten realizar combinaciones de operaciones relacionales y operaciones de tipo lógico como AND, OR o NOT.



Instrucciones y Tipos de Instrucciones.

Las instrucciones disponibles en un lenguaje de programación dependen del tipo de lenguaje. Es por esto que estudiaremos las acciones básicas que se pueden implementar de modo general en un algoritmo y que esencialmente soportan todos los lenguajes. Las acciones o instrucciones básicas son independientes del tipo de lenguaje. La clasificación más usual es la siguiente: a. Instrucciones de inicio/fin b. instrucciones de asignación c. instrucciones de lectura/escritura d. instrucciones matemáticas e. instrucciones lógicas y de relación f. instrucciones de bifurcación g. instrucciones especiales

a. Instrucciones de inicio/fin Indican el comienzo o el fin del proceso.

b. Instrucciones de asignación: La acción de asignación es el modo de darle valores a una variable. Se representa con el símbolo u operador "