Este sitio web usa cookies de terceros para analizar el tráfico y personalizar los anuncios. Si no está de acuerdo, abandone el sitio y no siga navegando por él. ×


Curso de Pascal por Nacho Cabanes. Tema 2: Introducción a las variables.

Las variables son algo que no contiene un valor predeterminado, una posición de memoria a la que nosotros asignamos un nombre y en la que podremos almacenar datos.


En el primer ejemplo que vimos, puede que no nos interese escribir siempre el mensaje "Hola", sino uno más personalizado según quien ejecute el programa. Podríamos preguntar su nombre al usuario, guardarlo en una variable y después escribirlo a continuación de la palabra "Hola", con lo que el programa quedaría

program Saludo2;

var
  nombre: string[20];

begin
  writeln('Introduce tu nombre, por favor');
  readln(nombre);
  write('Hola ',nombre);
end.



Aquí ya aparecen más conceptos nuevos. En primer lugar, hemos definido una variable, para lo que empleamos la palabra var, seguida del nombre que vamos a dar a la variable, y del tipo de datos que va a almacenar esa variable.

Los nombres de las variables siguen las reglas que ya habíamos mencionado para los identificadores en general, y no se indica ningún punto y coma entre la palabra "var" y el nombre de la variable (o variables que se declaran)..

Con la palabra string decimos que la variable nombre va a contener una cadena de caracteres (letras o números). Un poco más adelante, en esta misma lección, comentamos los principales tipos de datos que vamos a manejar. En concreto, string[20] indica que el nombre podrá estar formado hasta por 20 letras o números

Nota: en la variante del lenguaje Pascal conocida como "Extended Pascal", la longitud máxima de una cadena de texto se indica con paréntesis, de modo que si algún compilador protesta con "string[20]", habrá que probar con "string(20)".

Pasemos al cuerpo del programa. En él comenzamos escribiendo un mensaje de aviso. Esta vez se ha empleado writeln, que es exactamente igual que write con la única diferencia de que después de visualizar el mensaje, el cursor (la posición en la que se seguiría escribiendo, marcada normalmente por una rayita o un cuadrado que parpadea) pasa a la línea siguiente, en vez de quedarse justo después del mensaje escrito.

Después se espera a que el usuario introduzca su nombre, que le asignamos a la variable "nombre", es decir, lo guardamos en una posición de memoria cualquiera, que el compilador ha reservado para nosotros, y que nosotros no necesitamos conocer (no nos hace falta saber que está en la posición 7245 de la memoria, por ejemplo) porque siempre nos referiremos a ella llamándola "nombre". De todo esto se encarga la orden readln.

Si queremos dar un valor a la variable nosotros mismos, desde el programa, usaremos la expresión := (un símbolos de "dos puntos" y otro de "igual", seguidos, sin espacios entre medias), así:

Edad := 17;


Finalmente, aparece en pantalla la palabra "Hola" seguida por el nombre que se ha introducido. Como se ve en el ejemplo, "writeln" puede escribir varios datos, si los separamos entre comas, pero eso lo estudiaremos con detalle un poco más adelante...

Sólo un comentario antes de seguir: lo que escribimos entre comillas en una orden "write" aparecerá tal cual en pantalla; lo que escribimos sin pantalla, es para que el ordenador intente adivinar su valor. Así, se nos pueden dar casos como estos:

write ( 'Hola' ) Escribe Hola
write ( nombre ) Escribe el valor de la variable nombre
write ( '3+3' ) Escribe el texto 3+3
write ( 3+3 ) Escribe el resultado de la operación 3+3 (6)

Está claro que + es el símbolo que usaremos para sumar. Para restar emplearemos -, para multiplicar * y para dividir /. Más adelante veremos más detalles sobre las operaciones aritméticas.


Tema 2.2: Tipos básicos de datos.

En Pascal debemos declarar las variables que vamos a usar, avisar a nuestro compilador para que les reserve espacio. Esto puede parecer incómodo para quien ya haya trabajado en lenguaje Basic, pero en la práctica ayuda a conseguir programas más legibles y más fáciles de corregir o ampliar. Además, evita los errores que puedan surgir al emplear variables incorrectas: si queremos usar "nombre" pero escribimos "nombe", la mayoría de las versiones del lenguaje Basic no indicarían un error, sino que considerarían que se trata de una variable nueva, que no tendría ningún valor, y normalmente se le asignaría un valor de 0 o de un texto vacío.

En Pascal disponemos de una serie de tipos predefinidos, y de otros que podemos crear nosotros para ampliar el lenguaje. Los primeros tipos que veremos son los siguientes:

Ejercicio propuesto: Crea un programa que, en lugar de preguntarte tu nombre, te pregunte tu edad y luego la escriba en pantalla.

 

Ejercicio propuesto: Crea un programa que te pregunte dos números del 1 al 10 y escriba su suma.

 

Ejercicio propuesto: Crea un programa que te pregunte tres letras y luego las escriba en orden inverso.

 

Ejercicio propuesto: Crea un programa que te pida tres palabras y las muestre separadas por espacios y en el orden contrario a como las has introducido (primero la tercera palabra, después la segunda y finalmente la primera).

 

Ejercicio propuesto: Crea un programa que te pida dos números reales y muestre en pantalla el resultado de multiplicarlos.

 

Ejercicio propuesto: Crea un programa que cree una variable de tipo boolean, le asigne el valor TRUE y luego muestre dicho valor en pantalla.

 

lista: array[1..200] of integer
Se suele emplear para definir vectores o matrices. Así, una matriz de dimensiones 3x2 que debiera contener números reales sería:
matriz1: array[1..3,1..2] of real
Para mostrar en pantalla el segundo elemento de la primera lista de números (o de un vector) se usaría

write( lista[2] );

y para ver el elemento (3,1) de la matriz,

writeln( matriz1[3,1] );

Veremos ejemplos más desarrollados de cómo se usan los Arrays cuando lleguemos al tema 6, en el que trataremos órdenes como "for", que nos permitirán recorrer todos sus elementos.

Ejercicio propuesto: Crea un programa que reserve espacio para un Array de 3 números enteros, que asigne a sus elementos los valores 3, 5 y 8, y que después muestre en pantalla la suma de los valores de sus 3 elementos.

 

program Record1;
var
  dato: record
    nombre: string[20];
    edad: byte;
end;

begin
  dato.nombre:='José Ignacio';
  dato.edad:=23;
  write('El nombre es ', dato.nombre );
  write(' y la edad ', dato.edad, ' años.');
end.

La única novedad en la definición de la variable es la aparición de una palabra end después de los nombres de los campos, lo que indica que hemos terminado de enumerar éstos.

Ya dentro del cuerpo del programa, vemos la forma de acceder a estos campos, tanto para darles un valor como para imprimirlo, indicando el nombre de la variable a la que pertenecen, seguido por un punto. El conjunto := es, como ya hemos dicho, la sentencia de asignación en Pascal, y quiere decir que la variable que aparece a su izquierda va a tomar el valor que está escrito a la derecha (por ejemplo, x := 2 daría el valor 2 a la variable x).


Ejercicio propuesto: Crea un programa que reserve espacio para un Array de 3 números enteros, que asigne a sus elementos los valores 3, 5 y 8, y que después muestre en pantalla la suma de los valores de sus 3 elementos.


Tema 2.3: With.

program Record2;
var
  dato: record
    nombre: string[20];
    edad: byte;
end;

begin
  with dato do
    begin
      nombre:='José Ignacio';
      edad:=23;
      write('El nombre es ', nombre );
      write(' y la edad ', edad, ' años.');
    end;
end.


Curso de Pascal. Tema 2: Ejercicios de ejemplo.

 Ejemplo 1: Cambiar el valor de una variable.
 Ejemplo 2: Sumar dos números enteros.
 Ejemplo 3: Media de los elementos de un vector.

Como todavía llevamos pocos conocimientos acumulados, la cosa se queda aquí, pero con la siguiente lección ya podremos realizar operaciones matemáticas algo más serias, y comparaciones lógicas.

 

Cambiar el valor de una variable.

program NuevoValor;

var
  numero: integer;
   
begin
  numero := 25;
  writeln('La variable vale ', numero);
  numero := 50;
  writeln('Ahora vale ', numero);
  numero := numero + 10;
  writeln('Y ahora ', numero);
  writeln('Introduce ahora tú el valor');
  readln( numero );
  writeln('Finalmente, ahora vale ', numero);
end.

Este programa no debería tener ninguna dificultad; primero le damos un valor (25), luego otro (50), luego modificamos este valor (50+10=60) y finalmente dejamos que sea el usuario quien dé un valor.

 

Sumar dos números enteros.

program SumaDosNumeros;

var
  numero1, numero2, suma: integer;

  begin
  writeln('Introduce el primer número');
  readln( numero1 );
  writeln('Introduce el segundo número');
  readln( numero2 );
  suma := numero1 + numero2;
  writeln('La suma de los dos números es: ', suma);
end.

Fácil, ¿no?  Pedimos dos números, guardamos en una variable su suma, y finalmente mostramos el valor de esa suma.
 

 

Media de los elementos de un vector.

Este es un programa nada optimizado, para que se adapte a los conocimientos que tenemos por ahora y se vea cómo se manejan los Arrays. Admite muchas mejoras, que iremos viendo más adelante.

Por si alguien no ha trabajado con vectores, me salto las explicaciones matemáticas serias: la idea es simplemente que vamos a hallar la media de una serie de números.

Como novedades sobre la lección, incluye la forma de dejar una línea de pantalla en blanco (con writeln), o de definir de una sola vez varias variables que sean del mismo tipo, separadas por comas.  Las operaciones matemáticas se verán con más detalle en la próxima lección.

program MediadelVector;

var
  vector: array [1..5] of real;
  suma, media: real;
  
begin
  writeln('Media de un vector con 5 elementos.');
  writeln;
  writeln('Introduce el primer elemento');
  readln(vector[1]);
  writeln('Introduce el segundo elemento');
  readln(vector[2]);
  writeln('Introduce el tercer elemento');
  readln(vector[3]);
  writeln('Introduce el cuarto elemento');
  readln(vector[4]);
  writeln('Introduce el quinto elemento');
  readln(vector[5]);
  suma := vector[1] + vector[2] + vector[3] + vector[4]
    + vector[5];
  media := suma / 5;
  writeln('La media de sus elementos es: ', media);
end.