Tema 6. Introducción a la programación de ordenadores. · 1.Algoritmos y programas. ... se puede...
Transcript of Tema 6. Introducción a la programación de ordenadores. · 1.Algoritmos y programas. ... se puede...
Tema 6. Introducción a la programación de ordenadores. 1º de Bachillerato
Tema 6. Introducción a la programación de ordenadores.
1. Algoritmos y programas.
2. Lenguajes de programación.
• Lenguajes de bajo nivel.
• Lenguajes de alto nivel:
➢ Lenguajes de tercera generación.
➢ Lenguajes de cuarta generación.
➢ Lenguajes orientados a objetos.
3. Creación de un programa.
4. Variables y constantes.
5. Operadores aritméticos básicos.
6. Operadores relacionales y lógicos.
7. Instrucciones
• Simples.
• Compuestas.
1. Algoritmos y programasLa palabra Programación resulta muy cercana y familiar; se puede relacionar con un programade televisión, con un programa político, con la programación de horas de estudio, etc.
Al fijarnos en los ejemplos anteriores, vemos que todos ellos tienen algo en común: intentanrealizar una actividad de un modo ordenado.
Cuando se especifican y determinan los pasos que se deben dar, así como el orden en que hande realizarse para poder llevar a cabo cualquier actividad, estamos especificando lo que sedefine como algoritmo.
Página 1
Tema 6. Introducción a la programación de ordenadores. 1º de Bachillerato
Supongamos que queremos escuchar un disco de música. Para hacer esto necesitamos definiruna serie de pasos que constituirán el algoritmo:
1. Dirigirnos a la estantería.
2. Seleccionar el CD a escuchar.
3. Sacar el CD seleccionado de la estantería.
4. Abrir la funda y extraer el CD.
5. Abrir la bandeja del reproductor de CD.
6. Introducir en la bandeja el CD seleccionado.
7. Cerrar la bandeja del reproductor.
8. Pulsar play.
Se puede definir un algoritmo como la sucesión de pasos que se deben realizar desde que seplantea el problema hasta que este queda perfectamente resuelto.
Un programa es similar a un algoritmo: la gran diferencia es que los pasos que permitenresolver el problema deben escribirse en un determinado lenguaje de programación para que elordenador pueda ejecutarlos y encontrar así la solución.
2. Lenguajes de programaciónLa programación es la rama de la informática que permite crear programas propios para resolverdistintos problemas. Para ello es necesario utilizar un software especial, denominadogenéricamente lenguajes de programación.
Existen distintos criterios para clasificar los lenguajes de programación; uno de ellos permitedividirlos en cuatro grandes grupos:
✗ Lenguajes de bajo nivel.
✗ Lenguajes de alto nivel:
➢ Lenguajes de tercera generación
➢ Lenguajes de cuarta generación
➢ Lenguajes orientados a objetos.
Lenguajes de bajo nivelLos principales lenguajes de bajo nivel son el lenguaje máquina y el lenguaje ensamblador.
El lenguaje máquina
Éste es el único lenguaje que entiende el ordenador, ya que utiliza el alfabeto binario, es decir, 0y 1.
Fue el primer lenguaje que se empleó en la programación de ordenadores, pero dejó de
Página 2
Tema 6. Introducción a la programación de ordenadores. 1º de Bachillerato
utilizarse, ya que era muy frecuente cometer errores y resultaba difícil de memorizar lasdistintas instrucciones.
Hay que resaltar que el lenguaje máquina no es portable; es decir, un mismo programa no puedeser utilizado en ordenadores de características diferentes.
El lenguaje ensamblador
El lenguaje ensamblador fue el primer intento de sustituir el lenguaje máquina por otro másparecido a los que utilizan las personas. En este lenguaje, cada instrucción está formada por unconjunto de hasta cuatro caracteres más los operadores, lo cual resulta más sencillo de recordarque una cadena de unos y ceros (bits); además, se disminuye la probabilidad de cometer erroresdurante su escritura.
Debido a que utiliza instrucciones, el lenguaje ensamblador necesita un compilador, es decir, unprograma que traduzca las instrucciones escritas en lenguaje máquina, único lenguaje que elordenador puede entender.
Lenguajes de alto nivelEstos lenguajes son posteriores a los de bajo nivel, y se crearon con los siguientes objetivos:
• Lograr la independencia del ordenador, ya que estos lenguajes sí son portables.
• Aproximar aún más sus instrucciones al lenguaje humano (mayor nivel de abstracción), demodo que los programas se puedan leer y escribir más fácilmente. Para ello utilizan palabrasen lugar de cadenas de símbolos sin aparente significado, reduciendo así las posibilidades decometer errores.
• Suministrar librerías de rutinas, con las funciones de uso frecuente: entrada/salida, manejo detablas, manejo de ficheros, etc; de este modo se evita tener que crearlas cada vez que senecesiten.
Los lenguajes de alto nivel no son inteligibles directamente para el ordenador, sino que utilizanun intérprete que va traduciendo en programa para que el ordenador pueda ejecutarlo. Lasdiferencias entre un compilador y un intérprete se pueden resumir de la siguiente forma: elintérprete traduce y ejecuta cada línea del programa siguiendo la secuencia del mismo; por elcontrario, el compilador traduce el programa completo, creando uno nuevo ya inteligible para elordenador, llamado programa objeto. Posteriormente , éste debe ser montado (linkado),operación que consiste en enlazarlo con las librerías de rutinas, para crear así un nuevo ficheroejecutable por el ordenador, denominado programa ejecutable.
Lenguajes de tercera generación
Existen distintos tipos de estos lenguajes (lógicos, funcionales,...) entre los que destacamos loslenguajes procedimentales, que son aquellos que especifican mediante algoritmos la serie depaso a seguir para obtener la solución a un determinado problema.
Entre los componentes de este tipos de lenguajes, nos encontramos con los datos, con los que
Página 3
Tema 6. Introducción a la programación de ordenadores. 1º de Bachillerato
nos permitirá trabajar dicho lenguaje y un conjunto de instrucciones con los que describimos losalgoritmos.
Los lenguajes de tercera generación más conocidos son Fortran, Pascal, Lisp, y C.
Lenguajes de cuarta generación
Los lenguajes de cuarta generación nacieron para solucionar problemas muy concretos. Hasta elmomento, se habían creado únicamente lenguajes de propósito general que no eran válidos paragenerar algunos programas específicos; por ello se comenzaron a crear lenguajes másespecializados.
Para el usuario, estos lenguajes son muy intuitivos, ya que se centran en necesidades muyespecíficas. En la mayoría de los casos suelen estar formados por una serie de precompiladores,llamados así porque traducen previamente su código a un lenguaje de alto nivel (normalmentelenguaje C) y posteriormente a lenguaje máquina para obtener el fichero ejecutable.
Entre los lenguajes de cuarta generación podemos destacar:
SQL. Se trata de un lenguaje de consulta a base de datos.
4GL. Permite generar aplicaciones con ayuda de una gran cantidad de módulos preprogramadosen lenguaje C.
Lenguajes orientados a objetos
Los lenguajes de alto nivel se basan principalmente en la programación estructurada; sinembargo, los lenguajes orientados a objetos se centran en los datos, objetos, indicando cómohan de ser y definiendo las operaciones a las que se les va a someter.
Existen varios lenguajes que soportan programación orientada a objetos : Visual Basic, ObjectPascal, Smalltalk, C++, C#, Visual C++, Visual J, etc.
3. Creación de un programa
Cuando un programador se plantea la necesidad de crear un programa, no se lanza a escribirdirectamente las instrucciones que solucionan el problema, ya que lo habitual es que unprograma real necesite 1.000, 5.000, 10.000 o más líneas de instrucciones.
La creación de un programa se realiza en una serie de fases, que deben llevarse a cabo de formasecuencial y ordenada: análisis del problema y división en subproblemas (si es necesario),búsqueda del algoritmo, codificación en el lenguaje de programación adecuado, compilación delprograma fuente, montaje o linkado del programa, ejecución para comprobar su funcionamientoy, por último, explotación y mantenimiento del programa.
Búsqueda del algoritmo. Se suelen usar distintas herramientas: organigramas, pseudocódigo,etc. Se puede decir que es en esta fase donde realmente se resuelve el problema, ya que un buenalgoritmo garantiza, casi siempre, un buen funcionamiento del programa.
Página 4
Tema 6. Introducción a la programación de ordenadores. 1º de Bachillerato
Ejemplo de algoritmo en pseudocódigo:
inicionum1 = 0 num2 = 0leer de teclado num1 y num2si num1 > num2
visualizar “Mayor =”, num1si no
visualizar “Mayor=”, num2fin
Codificación del programa. En esta fase se escribe el algoritmo obtenido en la fase anterior en ellenguaje de programación elegido. El resultado final será la creación de un fichero con lasinstrucciones necesarias para resolver el problema, denominado programa fuente. Esta fasedebería ser la más corta, ya que se trata simplemente de escribir las instrucciones indicadas porel algoritmo. A continuación se muestra el algoritmo anterior escrito en un lenguaje deprogramación (lenguaje C):
#include <stdio.h>void main (){
int num1, num2;prinf(“Introduce el primer número: “);scanf(“%d”, &num1);prinf(“Introduce el segundo número: “);scanf(“%d”, &num2);if (num1>num2)
printf(“El mayor es %d”, num1);else
printf(“El mayor es %d”, num2);}
4. Variables y constantes.
Podemos decir que las variables y constantes son espacios reservados en la memoria delordenador a los que se les puede dar un nombre donde uno puede almacenar diferentes tipos dedatos. Estos datos son los que nuestro programa usa durante su ejecución. En el ejemploanterior num1 y num2 son dos variables que almacenan números. La diferencia entre unavariable y una constante es que la información contenida en una variable puede variar a lo largode la ejecución del programa mientras que el una constante toma el valor al comienzo de laejecución del programa y este valor no se puede cambiar durante la ejecución del programa.
Las constantes se utilizan para almacenar valores ya establecidos con un nombre más fácil derecordar. Por ejemplo, si necesitamos utilizar el número pi en nuestro programa varias veces,podemos almacenar el valor de pi en una constante y referenciar esa constante cada vez quenecesitemos el número pi.
Página 5
Tema 6. Introducción a la programación de ordenadores. 1º de Bachillerato
Existen diferentes tipos de variables en función del tipo de dato que almacenen. La variable sedefine siempre antes de su uso y en esta definición (declaración) se indica qué tipo de datoalmacenará.
Los diferentes tipos de variables pueden variar en función del lenguaje utilizado, pero todosusan unos tipo generales como pueden ser: números enteros, números reales, carácter, cadenasde caracteres, booleano (verdadero o falso), etc.
Instrucciones de entrada y salidaSon instrucciones que se usan para introducir datos desde el exterior (por ejemplo el teclado) enuna variable o mostrar su valor a través de un dispositivo externo (por ejemplo la pantalla).
5. Operadores aritméticos básicosLa función de los operadores aritméticos es permitir realizar las operaciones básicas (sumas,restas, divisiones y multiplicaciones) con los datos de las distintas variables. Los operadoresaritméticos básicos y la acción que realiza cada uno de ellos, son los que se muestran en lasiguiente tabla.
OperaciónOperación OperadorOperador AcciónAcción
Suma + Calcula la suma de dos o más variables numéricas.
Diferencia Calcula la diferencia entre dos variables numéricas.
Multiplicación * Multiplica el valor de las variables numéricas.
División / Calcula el valor de la división de dos variables numéricas.
El orden en el que se van a ejecutar los distintos operadores aritméticos en una misma fórmulaes el habitual:
1º Multiplicaciones 2º Divisiones 3º Sumas 4º Restas
Cuando existen varias operaciones con la misma prioridad, se realizan de izquierda a derecha.
Los paréntesis modifican el orden de la prioridad (se realizan primero las operaciones incluidasen ellos), y en caso de que existan paréntesis dentro de otros, se ejecutan en primer lugar lasoperaciones indicadas en los paréntesis interiores.
Página 6
Tema 6. Introducción a la programación de ordenadores. 1º de Bachillerato
Ejercicios
Calcula las siguientes expresiones e indica el valor del resultado
num1 = 2num2 = 8num3 = 3num4 = 12num5 = 1
resultado = num4-num3+num2*num1+num5
resultado = num4-(num3+num2)*num1+num5
resultado = (num4-(num3+num2))*num1+num5
resultado = num4-(num3+num2)*(num1+num5)
6. Operadores relacionales y lógicos
Los operadores relacionales son los habituales: mayor que, menor que, menor o igual que...,aunque algunos de ellos se escriben de un modo especial.
En la siguiente tabla se muestran los operadores relacionales junto a su escritura.
OperadorOperador SímboloSímbolo
Mayor que >
Menor que <
Mayor o igual que >=
Menor o igual que <=
Igual que ==
Distinto que !=
Operadores lógicosA la hora de expresar una condición, además de los operadores relacionales, se puede utilizaralguno de los denominados operadores lógicos: Y, O y NO.
Operador NO. También conocido como operador negación. Al aplicarlo sobre una expresión,hace que ésta tome el valor verdadero cuando la condición no se cumpla, y falso cuando sí secumpla. Debe tenerse en cuenta que la expresión sobre la que actúa este operador debe estarencerrada entre paréntesis.
Operador Y. Este operador permite relacionar dos o más expresiones en una condición; en esecaso, la condición sólo tomará el valor verdadero cuando se cumplan todas las expresiones; si
Página 7
Tema 6. Introducción a la programación de ordenadores. 1º de Bachillerato
hubiera al menos una expresión que no se cumpliera, el valor de la condición sería falso.
Operador O. Este operador relaciona varias expresiones en una misma función si, de modo queésta tomará el valor verdadero en cuanto se cumpla, al menos, una de las expresiones; sólotomará el valor falso si todas las expresiones de la condición son falsas.
Es posible utilizar varios operadores lógicos a la vez. En este caso el programa los evaluará enel siguiente orden:
1º Operador NO 2º Operador Y 3º Operador O
Para modificar este orden deben emplearse paréntesis; las expresiones escritas entreparéntesis se evaluarán en primer lugar.
Los valores de los operadores quedan resumidos en las siguientes tablas (tablas de verdad):
a NO a a b a Y b a b a O b
V F V V V V V V
F V V F F V F V
F V F F V V
F F F F F F
Ejercicios
Evalúa las siguientes expresiones como verdaderas o falsas, si: a=1, b=2,c=3, d=4.
• a > b && c > d
• a > b || c > d
• b > a && c > d
• a != b
• c <= a || c >=d
7. Instrucciones
Instrucciones Simples
Página 8
Tema 6. Introducción a la programación de ordenadores. 1º de Bachillerato
Instrucciones declarativasSon instrucciones que se utilizan para declarar los objetos que se van a usar en el programa,estos objetos son los datos con los que trabajaremos en el programa y que estarán almacenadosen una determinada zona de memoria.
Instrucciones de entrada y salidaLas instrucciones de salida se utilizan para presentar, en pantalla o impresora, comentarios,mensajes al usuario, contenidos de las variables, resultados de una expresión,...
Las instrucciones de entrada se utilizan para tomar datos del exterior y guardarlos en variables.Una instrucción de entrada detiene la ejecución del programa y espera a que el usuariointroduzca un dato por teclado. El valor tecleado se introduce en la variable que se indique enla instrucción y continua la ejecución del programa.
Una intrucción de entrada suele estar precedida por una de salida, para que en ésta leindiquemos al usuario la información que queremos que introduzca.
Instrucciones de asignaciónEste tipo de instrucciones se utilizan para asignar valores a las variables dentro de un programa,teniendo en cuenta que si la variable ya contenía un valor, éste será destituido por el valornuevo que se le asigne.
Instrucciones de control.Este tipo de instrucciones modifican el flujo de control secuencial que sigue un programa. Sonde varios tipos, y las veremos en el tema siguiente.
Instrucciones CompuestasEstas instrucciones están formadas por un conjunto de instrucciones simples que desarrolladasen un lugar apartado del resto y agrupadas bajo un nombre son llamadas desde cualquier puntodel programa. Una vez ejecutadas el control del programa vuelve a la instrucción siguiente querealizó dicha llamada.
Página 9