UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 1. Introducción. 1. INTRODUCCION 1.1. Nociones básicas. A continuación se explican algunos conceptos básicos. Luego, éstos serán desarrollados en detalle, en capítulos posteriores. Programa. Proceso. Generalmente los programas se diseñan, para ser ejecutados o interpretados por un computador. El programa especifica las acciones a realizar sobre los datos; el proceso realiza o ejecuta las acciones en una máquina. El proceso se llama también computación. El programa es de naturaleza estática; el proceso es dinámico. Lenguaje de programación. Texto. El programa en sí mismo es un texto; es decir, una secuencia de caracteres agrupados en palabras que se relacionan y separan por signos de puntuación. El significado del texto debe especificarse en forma muy precisa, ya que será una máquina la encargada de ejecutarlo. Esta precisión y rigurosidad requiere un formalismo exacto; este formalismo se denomina lenguaje de programación. Entrada. Salida. Clases de computaciones. Un proceso acepta datos desde algún medio de entrada, los manipula (procesa) de acuerdo a las acciones especificadas por el programa, y luego genera como resultado un conjunto de datos que son enviados hacia la salida. Entonces un programa no describe solamente un proceso; sino una cantidad, generalmente no acotada, de procesos posibles de acuerdo a los valores de la entrada. Se dice que un programa describe una clase de computaciones. Debe asegurarse que todos los procesos actúen de acuerdo a las especificaciones del programa para todos los casos de la clase de computaciones. Si bien es posible verificar que se cumplen las especificaciones para una computación específica, de acuerdo a los valores dados de la entrada; es imposible hacerlo en un caso general, por la gran diversidad de casos de valores posibles que puede adoptar la entrada. Por esta razón la corrección de un programa debe asegurarse mediante un análisis y diseño cuidadoso. Compilación. Programas fuente y objeto. Para que un programa pueda ejecutarse en un computador debe ser traducid o a un lenguaje elemental, denominado de máquina, que es directamente interpretado por la electrónica. El proceso de traducción se denomina compilación y condensa el texto del programa fuente en un código binario que es propio del computador. La versión del programa en código de máquina se denomina programa objeto. Prof. Leopoldo Silva Bijit. 07-07-2003 1 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 1. Introducción. Pueden existir varios compiladores para un lenguaje dado, unos pueden ser más eficientes que otros, ya sea en velocidad de ejecución o en la cantidad de código de máquina generado. 1.2 Programa = Acciones + Datos. Programa: Un programa de computación consiste de un algoritmo, que describe las acciones que se realizarán; y de la descripción de los objetos (datos) que serán manipulados por dichas acciones. Algoritmo: En forma más precisa, un algoritmo es una secuencia finita de instrucciones, cada una de las cuales tiene un claro significado y puede ser realizada con una cantidad finita de esfuerzo y en un lapso finito. También puede decirse que un algoritmo es la descripción de acciones a ser realizadas para lograr un objetivo determinado. Instrucción. En una instrucción deben especificarse claramente la información de entrada, el tipo de manipulación de dicha entrada para obtener una información de salida; y cual es la próxima instrucción que debe realizarse. Nombre. Valor. Cuando se tienen muchos datos es preciso disponer de un mecanismo que los permita ubicar, y además es necesario un espacio físico para almacenar el valor de cada dato. Entonces un dato tiene asociado un nombre y un valor. El nombre establece una dirección; y el valor es el contenido. Constantes. Variables. Si en el tiempo en que se realiza la computación, el valor asociado a un nombre no cambia, se dice que ese dato es una constante; en caso contrario, el dato es una variable. Tipo de Dato: Debido a que el espacio para almacenar datos es finito, se requiere disponer de estrategias para ahorrar espacio. Una de ellas consiste en reservar un espacio de memoria de acuerdo al conjunto de valores que puede tomar un dato. Es decir, si el conjunto de valores es muy grande deberá reservarse cierto espacio; pero si el conjunto de valores tiene una cardinalidad menor el espacio dedicado puede ser menor. Prof. Leopoldo Silva Bijit. 07-07-2003 2 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 1. Introducción. Ejemplos: Si una variable puede tomar los valores de las letras del alfabeto necesitaremos un espacio determinado para su almacenamiento. Para una variable que pertenezca a los enteros positivos menores que 10.000 necesitaremos 4 espacios para su almacenamiento; asumiendo que el número se representa por dígitos decimales, y que cada dígito ocupa un espacio. Por otra parte, de acuerdo al conjunto de valores que puede tomar un dato, pueden definirse operaciones a efectuarse con los datos. Por ejemplo: en caso de números enteros, pueden definirse sumas y restas; posiblemente estas operaciones no se definan para manipular letras del alfabeto. Un tipo de dato describe el conjunto de valores que un objeto de ese tipo puede asumir; y las operaciones definidas sobre dicho tipo. El concepto de tipo facilita la manipulación de los objetos y permite al programador organizar mejor sus datos. Algunos compiladores revisan si las instrucciones emplean variables que tengan tipos compatibles y detectan errores en caso de existir incompatibilidades. Se denomina declaración de variables, al proceso que asocia un identificador (nombre de la variable) con un tipo de dato. Tipos estándares o básicos. En todo lenguaje se definen ciertos tipos de datos como estándares. Es decir, están definidos operadores y existe capacidad para manipular variables de esos tipos. Los tipos básicos o primitivos, suelen ser: Enteros, reales, caracteres, strings (secuencia de caracteres), lógicos o Booleanos. Estos tipos se denominan escalares por no tener componentes. Tipos Estructurados. Son los formados por la composición de tipos básicos. Un ejemplo típico es el arreglo, que está implementado prácticamente en todos los lenguajes; el arreglo introduce la posibilidad de tratar vectores y matrices por métodos computacionales. Estructuras de Datos. Algunos lenguajes proveen métodos para que el programador genere sus propias estructuras de datos. Como se verá, los más básicos son: el arreglo, el registro, el conjunto y el archivo. Prof. Leopoldo Silva Bijit. 07-07-2003 3 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 1. Introducción. La introducción de estructuras implica mecanismos de construcción y de selección; es decir, la forma de definir el valor de una componente, y por otra parte, accesar o leer el valor de una componente. Prof. Leopoldo Silva Bijit. 07-07-2003 4