1.Introducción Los Lenguajes de programación son aplicaciones específicas diseñadas para crear otras aplicaciones o programas. Son programas para crear programas. Se basan en un sistema de instrucciones preestablecidas que indican al ordenador lo que debe realizar Son códigos integrados compuestos por un vocabulario, con una sintaxis y una semántica que permite elaborar infinitas secuencias válidas de tareas e instrucciones
Los lenguaje de programación permiten crear programas específicos que ofrezcan solución a programas particulares Para llevar a cabo cualquier tarea, el ordenador necesita tener información sobre la tarea y un método para ejecutarla PROGRAMA: conjunto de instrucciones convenientemente ordenadas que indican al ordenador qué procesos y tareas debe seguir. Cada una de las instrucciones tiene un función específica y está escrita en un lenguaje que el ordenador entiende
En resumen, los lenguajes de programación: Constituyen sistemas de palabras-órdenes (lengua o idioma), ya establecidos. Comprensibles tanto por el programador como por la máquina, Permiten desarrollar programas
Clasificación de los Lenguajes de Programación: a) Lenguajes de Alto-Bajo nivel
b) Lenguajes Interpretados o Compilados
c) Lenguajes clásicos, visuales y de Internet
d) Por el objetivo
a) Lenguajes de Alto-Bajo nivel El nivel de un lenguaje hace referencia a su proximidad al lenguaje natural, considerándose de más nivel cuanto más cercanos están a este y de menos nivel cuando más cerca están del lenguaje máquina El lenguaje de más bajo nivel o lenguaje máquina es el que utiliza el ordenador, el que la máquina entiende, basado en un sistema de 0 y 1. Son difíciles de aprender y manejar, ya que no resultan cercanos al ser humanos, pero son rápidos ya que evitan las traducciones intermedias. Fueron los primeros en aparecer. Los lenguajes de alto nivel son más fáciles de aprender y permiten despreocuparse de la arquitectura del ordenador. Ejemplos son: BASIC, PASCAL, FORTRAN, C (aunque este es intermedio)
b) Lenguajes Interpretados o Compilados Los LP deben traducirse (excepto el código máquina) para que sean interpretables (o inteligibles) por el ordenador. Esta traducción puede hacerse mediante:
Los Lenguajes interpretados, se encargan de realizar la traducción instrucción a instrucción a la vez que se ejecuta el programa. Son más lentos, pero mejores cuando el proceso de traducción/ejecución se realiza en repetidas ocasiones, por lo que son más adecuados para principiantes. Los Lenguajes compilados traducen el programa entero y luego lo montan generando un programa ejecutable por si sólo. Una vez compilado el programa, el compilador no tiene porque estar presente, pudiéndose transportar el programa ejecutable a cualquier ordenador, sin necesidad de manejar el compilador.
c) Lenguajes clásicos, visuales y de Internet Los Lenguajes clásicos están basados en un lenguaje en el que se escribe el código necesario para realizar las operaciones que se requieren (posteriormente será traducido o compilado, generando un programa ejecutable). Los más conocidos son el BASIC, el PASCAL, el C, el COBOL y el CLIPPER Los Lenguajes visuales son más avanzados y están basados en objetos. Cada entidad del programa (eventos, acciones..) es un objeto sobre el que se definen operaciones. Estos permiten almacenar los objetos (con todo su código) en una serie de librerías. Son lenguajes muy intuitivos que sustituyen las líneas de código por directas representaciones gráficas. P.ej.: Visual Basic Los Lenguajes de Internet son lenguajes específicos diseñados para la creación de páginas Web y realizar su programación (motores de búsqueda, seguridad, establecimiento de comunicaciones ). Son la última generación de lenguajes. Existen distintos tipos dependiendo del grado de especialización. P ej.: JAVA, HTML
d) Por el Objetivo Los programas pueden clasificarse por el objetivo para el que fueron creados:
BASIC, PASCAL: aprendizaje de programación C y C++: programación de sistemas COBOL, RPG, Natural: gestión de empresas FORTRAN: cálculo numérico CLIPPER, ACESS, Dbase, Delphi, SQL: bases de datos Visual BASIC, Visual C: programación en Windows HTLM, JAVA, PERL: Internet (páginas Web) Lingo: programas multimedia Prolog, Lisp: Inteligencia Artificial
2. Metodología de la programación: aspectos básicos
La programación puede ser entendida como un PROCESO DE SOLUCIÓN DE PROBLEMAS que tiene lugar en dos etapas:
Obtener la solución del problema. Comprende: un análisis detallado de la situación y, la búsqueda de tácticas que conduzcan a la solución Codificar esta información en un lenguaje informático concreto
El método general de programación es: PROBLEMA INFORME ALGORÍTMICO PROGRAMA Análisis y resolución Codificación 1. PROBLEMA: actividad que no sabemos cómo llevar a cabo
2. INFORME ALGORITMICO: la actividad se analiza en busca de la forma de resolución. El resultado se plasma en un informe que contiene: La descripción de la tarea y la enumeración de los objetivos a conseguir El procedimiento empleado Los recursos y elementos necesarios El algoritmo (la secuencia en la que hay que realizar cada una de las operaciones)
3. PROGRAMA: el algoritmo, traducido a un lenguaje de programación específico, se convierte en un programa que el ordenador puede ejecutar
¿Qué es un algoritmo?
Un método para resolver un problema mediante una serie de pasos precisos, definidos, finitos
precisos: indicar el orden de presentación de cada paso definidos: si se siguen dos veces se obtiene igual resultado finitos: tiene un número determinado de pasos
Una receta de cocina puede resultar similar (en cuanto a concepto) a un algoritmo o programa
3. BASIC: Estructura general de un programa
Ejemplo de un programa en BASIC 10 CLS 20 PRINT CALCULO DEL CONSUMO DE GASOLINA" 30 PRINT "POR FAVOR, INTRODUZCA LOS LITROS" 40 INPUT LITROS 50 PRINT "INTRODUZCA LOS KILOMETROS" 60 INPUT KILOMETROS 70 LET CONSUMO = LITROS / KILOMETROS * 100 80 PRINT El CONSUMO ES:; CONSUMO
Si lo ejecutamos.. CALCULO DEL CONSUMO DE GASOLINA POR FAVOR, INTRODUZCA LOS LITROS ?450 INTRODUZCA LOS KILÓMETROS ?1000 EL CONSUMO ES: 45
Una sentencia o instrucción escrita en lenguaje BASIC indica las tareas que debe realizar la computadora. Las sentencias constan de una o varias palabras reservadas (INPUT, REM, etc.) y una sintaxis (operadores, signos de puntuación, etc.) asociada que constituyen el formato de la misma y cuyo conocimiento es imprescindible para escribir programas.
Las sentencias pueden ser: Ejecutables: avanzan el flujo de control de la lógica del programa (leer una entrada, escribir una salida, realizar una operación, etc.) No ejecutables: no avanzan en el flujo del programa (introducen comentarios, asignan variables, etc).
NORMAS GENERALES El programa estará compuesto por una serie de instrucciones que han de ejecutarse siguiendo un orden determinado. De esta forma tres son las reglas generales:
Cada instrucción se numera Las instrucciones sucesivas van en orden creciente Cada número va seguido de una instrucción
4. Sentencias o instrucciones en BASIC
REM REM es una sentencia no ejecutable y permite introducir comentarios en los programas. A esta práctica se la denomina documentación. FORMATO: REM texto del comentario Reglas de funcionamiento: Se puede situar en cualquier parte del programa Se pueden poner tantas líneas REM con observaciones cómo y donde queramos
Ejemplo: 10 REM Esto es un programa de prueba
CLS FORMATO: CLS Reglas de funcionamiento: Se puede situar en cualquier parte del programa
Ejemplo: 10 CLS
La sentencia CLS permite dejar la pantalla en blanco. Durante la escritura de programas se necesita diseñar, en puntos específicos, instrucciones de limpieza o borrado de la pantalla, a fin de dar claridad a los resultados o mensajes que aparecen en la pantalla
PRINT Visualiza datos por pantalla. El formato contiene una lista de expresiones que pueden ser constantes o variables. FORMATO: PRINT [lista de expresiones] [,][;] Reglas de funcionamiento: Una coma (separa un tabulador) o punto y coma (enlaza los mensajes) deben separar cada expresión Una sentencia PRINT sola imprime por pantalla una línea en blanco Las expresiones deben ir entre comillas. Las variables no. Ejemplos: PRINT BASIC es un lenguaje de programación PRINT valor PRINT hola, adios PRINT 3 + 5
Ejemplo 10 REM Esto es una prueba 20 CLS 30 PRINT ************************** 40 PRINT estoy aprendiendo a programar 50 PRINT ************************** Por pantalla saldría:
************************** estoy aprendiendo a programar **************************
Variables y Constantes
Constante: es un valor que no cambia. Una constante conserva el mismo valor cada vez que se hace un cálculo o se ejecuta un programa. Ejemplo: Pi (3.1416). a) Constante numérica: es un número que contiene un máximo de 8 caracteres b) Constante alfanumérica: es una cadena de caracteres que se colocan entre comilllas. Ejemplo : Hola
Variable: Un valor que fluctúa. En su memoria central el ordenador reserva ciertas casilllas para determinados valores que no se fijan. Pueden adquirir valores provisionales que sirven en un momento determinado y pueden sustituirse por otros (generalmente para identificarlos se hace con una letra) a) Variables numéricas: (sólo pueden contener cifras) y se identifican por letras o palabras (A, B, C, num,..). b) Variables alfanuméricas: (pueden contener cifras y letras). Se identifican por letras o palabras seguidas del símbolo dólar (A$, B$, expr$, …).
Ejemplo variables numéricas 10 CLS 20 PRINT "CONSUMO DE GASOLINA" 30 PRINT "POR FAVOR, INTRODUZCA LOS LITROS" 40 INPUT LITROS (variable) 50 PRINT "INTRODUZCA LOS KILOMETROS" 60 INPUT KILOMETROS (variable) 70 CONSUMO = LITROS / KILOMETROS * 100 (variable) 80 PRINT CONSUMO (variable) 10 CLS 20 PRINT "CONSUMO DE GASOLINA" 30 PRINT "POR FAVOR, INTRODUZCA LOS LITROS" 40 INPUT A (variable) 50 PRINT "INTRODUZCA LOS KILOMETROS" 60 INPUT B (variable) 70 C = A / B * 100 (variable) 80 PRINT C (variable)
Ejemplo variables alfanuméricas 10 CLS 20 PRINT INTRODUZCA SU NOMBRE 30 INPUT NOMBRE$ (variable) 40 PRINT INTRODUZCA SU APELLIDO 50 INPUT APELLIDO$ (variable) 60 NOMBREYAPELL$ = NOMBRE$ + APELLIDO$ (variable) 70 PRINT BUENAS TARDES ; 80 NOMBREYAPELL$ (variable) 10 CLS 20 PRINT INTRODUZCA SU NOMBRE 30 INPUT A$ (variable) 40 PRINT INTRODUZCA SU APELLIDO 50 INPUT B$ (variable) 60 C$ = A$ + B$ (variable) 70 PRINT BUENAS TARDES ; 80 C$ (variable)
LET Asigna un valor a una variable. Esto es, almacena un determinado valor en una posición de memoria
FORMATO: LET [Nombre + Valor de la variable]
Reglas de funcionamiento: El nombre es opcional y en la práctica se omite
Ejemplos: 10 LET A = 17 20 LET B = A + 1
10 A= 17 20 B= A + 1
Ejemplo:10 LET A = 1720 LET B = 3330 LET C = A + B40 LET D = A – B50 LET E = A * B60 PRINT A, B, C, D, E Si lo ejecutamos (RUN)17 33 50 -16 531
INPUT Solicita al usuario valores para asignarlos a una o más variables. Si en nuestro programa se coloca la instrucción INPUT la ejecución del programa se detendrá, presentará un signo de interrogación, y esperará la respuesta del usuario que debe introducir los datos que desee utilizar. La instrucción lo que hace es asignar el valor que introduce el usuario a una variable
INPUT A (Espera una variable numérica) INPUT A$ (Espera una variable alfanumérica)
FORMATO: INPUT [Nombre de la variable] INPUT [Expresión entrecomillada][;][Nombre de la variable]
Reglas de funcionamiento: INPUT puede actuar como la sentencia PRINT colocando una cadena de caracteres entrecomillados para que esta cadena aparezca en pantalla al mismo tiempo que el signo de interrogación. Es indispensable aquí colocar un punto y coma después de la cadena de caracteres. Ejemplo:
10 CLS 20 REM programa para el cálculo de la longitud de una circunferencia 30 INPUT CUAL ES SU NOMBRE ; A$ 40 INPUT CUAL ES EL RADIO DE SU CIRCUNFERENCIA ; R 50 LET C= 2 * 3.1416 * R 60 PRINT QUERIDO ; 70 PRINT A$ 80 PRINT LA LONGITUD DE SU CIRCUNFERENCIA ES: ; 90 PRINT C
GOTO Provoca un salto de línea en el flujo general del programa. FORMATO: GOTO Número de línea
Reglas de funcionamiento: No es recomendable utilizarla con mucha frecuencia Según se aprendan otras instrucciones y operadores debe evitarse su uso
Ejemplos: GOTO 30
IF THEN ELSE Permite introducir condiciones para ejecutar una instrucción o instrucciones. Puede tener varios formatos FORMATO: IF expresión lógica THEN sentencia(s) [:]
FORMATO: IF expresión lógica THEN sentencia(s) ELSE sentencia(S)
FORMATO: IF expresión lógica THEN sentencia(s) ELSE Sentencia(s) END IF
Reglas de funcionamiento: La expresión lógica puede ser una expresión lógica o relacional en la que se incluyan operadores lógicos o de comparación Las sentencias de la cláusula THEN sólo se ejecutan si la expresión lógica es verdadera. Si la condición es falsa, se ejecutan las instrucciones de la de la cláusula ELSE, si existe, o se sigue la siguiente instrucción del programa.
Ejemplos: 10 IF A>B THEN GOTO 30 60 IF A$=S THEN GOTO 10 ELSE GOTO 90
Operadores de comparación
Operadores lógicos
FOR TO NEXT Permite repetir un conjunto de instrucciones un número fijo de veces. Se denomina bucle controlado por contador, debido a que se necesita una variable numérica que actúa como contador y que se incrementa o disminuye en un valor constante a partir de un valor inicial, después de cada iteración del bucle FORMATO: FOR v=vi TO vf [STEP x] sentencia(s) NEXT v
Reglas de funcionamiento:
Una sentencia FOR debe existir siempre con una sentencia NEXT y viceversa. La variable v controladora del bucle actúa de contador. vi es el valor inicial de la variable v, vf es el valor final y X es el incremento/decremento del contador; cuando se omite la sentencia STEP, el valor por defecto es el incremento en 1. La sentencia NEXT marca el final del bucle y punto en el que la variable contador se incrementa/decrementa. El bucle se termina cuando v toma un valor mayor que vf
Ejemplo 1: 10 PRINT N, CUADRADO 20 FOR N=1 TO 3 30 PRINT N, N*N 40 NEXT N
Ejemplo 2: 10 FOR N=1 TO 3 20 PRINT N, CUADRADO 30 PRINT N, N*N 40 NEXT N
Salida ej 1: N CUADRADO 1 1 2 4 3 9
Salida ej 2: N CUADRADO 1 1 N CUADRADO 2 4 N CUADRADO 3 9
5. Resolución de problemas con el ordenador
Pasos comunes en la creación de un programa entendido como un proceso de resolución de problemas: Análisis del problema: definición del problema. Diseño del algoritmo: proceso que convierte los resultados del análisis del problema en un diseño modular con refinamientos sucesivos que permita una posterior traducción a un lenguaje Las herramientas más utilizadas para diseñar algoritmos son: Diagramas de flujo: representación gráfica del algoritmo Pseudocódigo: las instrucciones se escriben en palabra que facilita tanto la escritura como la lectura de programas
INICIO NUM SUM=0 FIN SUM2=0 Diagramas de flujo VARIANZA=(SUM2/NUM)- MEDIA**2 MEDIA= SUM/NUM X=X+1 SUM2= SUM2 + DATO*DATO VARIANZA MEDIA ES X < NUM DATO SUM= SUM+DATO SI NO
Pseudocódigo
INICIO {poner variables a cero} hacer SUMATORIO = 0 hacer SUMATORIO2 = 0 {entrada de datos} borrar la pantalla introducir NUMERO para X de 1 a NUMERO introducir DATO hacer SUMATORIO = SUMATORIO + DATO hacer SUMATORIO2 = SUMATORIO2 + DATO * DATO fin para {calculo de media y varianza} hacer MEDIA = SUMATORIO / NUMERO hacer VARIANZA=(SUMATORIO2/NUMERO) – MEDIA * MEDIA {presentacion de resultados} visualizar MEDIA visualizar VARIANZA FIN
10 REM ******************************* 20 REM **CALCULO DE MEDIA Y VARIANZA** 30 REM ******************************* 40 REM *INICIALIZACION DE VARIABLES* 50 SUMATORIO = 0 60 SUMATORIO2 = 0 70 REM *ENTRADA DE DATOS* 80 CLS 90 PRINT "ESTE PROGRAMA CALCULA LA MEDIA Y VARIANZA" 100 INPUT "¨CUANTOS DATOS VA A INTRODUCIR"; NUMERO 110 FOR X = 1 TO NUMERO 120 INPUT "INTRODUZCA UN DATO ", DATO 130 SUMATORIO = SUMATORIO + DATO 140 SUMATORIO2 = SUMATORIO2 + DATO * DATO 150 NEXT X 160 REM *CALCULAR* 170 MEDIA = SUMATORIO / NUMERO 180 VARIANZA = (SUMATORIO2 / NUMERO) – (MEDIA * MEDIA) 190 REM *SALIDA RESULTADOS* 200 PRINT 210 PRINT 220 PRINT "MEDIA="; MEDIA 230 PRINT "VARIANZA="; VARIANZA 240 END
Codificación de un programa: traducción del algoritmo en un lenguaje de programación Compilación y ejecución: traducirlo al lenguaje máquina. Este proceso se realiza mediante el compilador y el sistema operativo Verificación y depuración: ejecutar el programa con una amplia variedad de datos de prueba para determinar si el programa tiene errores. La depuración es el proceso de encontrar los errores del programa y corregirlos
a. Errores de sintaxis: uso incorrecto de las reglas del lenguaje de programación b. Errores de ejecución: se producen por instrucciones que el ordenador puede comprender pero no ejecutar (por ejemplo, dividir por cero) c. Errores lógicos: se producen en la lógica del programa. La fuente de error suele ser el diseño del algoritmo
Documentación y mantenimiento: descripciones de los pasos a dar en el proceso de resolución un problema Puede ser interna o externa. La documentación interna es la contenida en la línea de comandos (por ejemplo, líneas rem). La documentación externa incluye el análisis, los diagramas de flujo y/o pseudocódigos, manuales de usuario con instrucciones para ejecutar el programa y analizar los resultados La documentación es muy importante cuando se desea corregir posibles errores futuros o cambiar el programa. Tales cambios se denominan mantenimiento del programa
Bibliografía básica
Algarabel, S. y Sanmartin, J. (1990). Métodos Informáticos aplicados a la Psicología. Madrid: Pirámide.
Joyanes, L. (1994). Programación en QuickBasic/Qbasic. 2ª Edición. Madrid: McGraw-Hill.