Terminando de comprender esto, podemos declarar constantes de cualquier tipo primitivo de pascal:
Código Pascal:
La constante letra es del tipo char (aún no hemos trabajado con él) pero simplemente un valor char es un caracter, en este ejemplo la letra a minúscula. Vean que está entre comillas.Ver original
Const letra= 'a'; palabra= 'Hola'; entero= 5; unReal= 4.5; booleano= true;
La constante palabra es del tipo string porque contiene una cadena de caracteres. Si algo contiene más de un caracter pasa de ser char a ser string.
La constante entero pues contienen el valor integer 5, unReal contienen el valor real 4.5.
Finalmente la variable booleano contiene el valor true. Aún no hemos hablado mucho del tipo boolean, pero vayan teniendo en mente que sus dos únicos valores son true o false.
Booleanos:
El tipo boolean resulta extraño al principio. Solo contiene dos valores posibles: True y False. O sea, una variable del tipo boolean solo puede ser verdadera o falsa. Aunque en principio uno no puede imaginarse para qué puede servir una variable de este tipo, realmente resultarán muy útiles más adelante, cuando tengamos que comenzar a darle condiciones a nuestro programa para que tome distintos caminos de ejecución.
No es posible hacer write ni read de una variable boolean, esto incluye también a readln y writeln.
Boolean también puede ser cualquier expresión que pueda ser TRUE o FALSE. Por ejemplo:
5<10 ---> Esa expresión es verdadera, claramente 5 es menor que 10.
5>10 ---> Es expresión es falsa, claramente 5 no es mayor que 10.
Más adelante veremos como utilizar este tipo de cosas. Verán como las expresiones booleanas se converitrán en los puntos principales de sus programas ya que mediante dichas expresiones ustedes le dirán a sus programas qué camino acciones tomar.
Algunas notas generales: El punto y coma actúa como separador. Nosotros acostumbramos a escribir una instrucción por línea por una cuestión de legibilidad del código, sin embargo al compilador eso no le importa al igual que tampoco la sangría (indentación) que dejemos. De este modo resultará lo mismo escribir
Código:
que escribirWriteln(‘Hola mundo’); Readln(variable);
Código:
Algo más que se me pasó por alto al momento de hablar de la entrada estándar, simplemente porque jamás lo uso, es que ustedes pueden agregar, al igual que para los reales, un modificador de escritura para los strings.writeln(‘Hola mundo’); readln(variable);
Ejemplo:
Código:
Como ven, he agregado un :10 al final de la cadena. Esto indica que quiero que el último caracter de la cadena ocupe la décima columna de la salida, o sea, que la última letra ocupe el décimo espacio de la pantalla. De este modo, el programa correrá toda la palabra 'Hola' para que eso pase.writeln('Hola':10)
Si yo escribo writeln('Hola':5) verán que la palabra Hola parece un lugar más adelante de lo que debería, eso es para que la a ocupe el espacio 5 de la salida.
Sin embargo, si escribo writeln('Hola':2) no pasará nada, porque no hay modo de hacer que la última letra de mi palabra ocupe el segundo espacio de la salida, para eso debería recortar la palabra y pues, no se admite. Esto no dará error ninguno, simplemente no pasará nada al ejecutar el programa, se mostrará el string Hola como de costumbre y listo.
Les hago esta aclaración porque aparece en los siguientes ejercicios.
Ahora, antes de continuar hagan los ejercicios que tenían que ver con constantes. Luego [url=http://www.fing.edu.uy/inco/cursos/prog1/pm/field.php/Practicos/Practico2]entren en este enlace[/url], verán allí un nuevo listado de ejercicios interactivos.
SELECCIÓN BÁSICA: Una breve reseña de la instrucción IF...THEN:
En la siguiente sección del tutorial (y apenas en esta) aprenderemos a usar secuencias de selección para indicarle al programa qué camino ha de tomar en función de ciertas condiciones dadas así como también aprenderemos secuencias de repetición para indicarle al programa que debe volver a ejecutar cierto fragmento de código una cantidad de veces dada, o no. Es aquí donde la programación comienza a complicarse un poco y comenzamos a tener verdaderos dolores de cabeza cuando nuestros programas no hacen lo que nosotros queremos.
Es muy común que, en las secuencias de repetición, nunca se den las condiciones necesarias para finalizar la repetición y nuestro programa entre en un bucle infinito (conocido como loop) y quede colgado realizando la misma tarea hasta que nosotros lo cerremos o se bloquee el sistema. También es muy común que olvidemos alguna condición necesaria para que el programa tome un camino específico y por lo tanto funcione erróneamente, o que ni se nos haya cruzado por la cabeza que el usuario podría haber ingresado tal o cual instrucción y esto genere muchos errores en la ejecución de nuestro programa.
Por estos motivos es que cuando uno crea un programa debe probarlo con la peor intención posible para detectar la mayoría de los errores que puedan aparecer. Dedicaré una sección entera para hablar de la prueba de programas.
El ambiente de desarrollo IDE de Free Pascal tiene incluido un depurador (debugger). Esta es una herramienta que nos permitirá ver la ejecución de nuestro programa paso a paso y visualizar en una pequeña ventana los valores que nuestras variables van tomando para así, poder detectar errores que de otro modo serían imperceptibles.
Aprenderemos a usar esta herramienta más adelante, será muy importante.
Selección. Instrucción IF…THEN e IF…THEN…ELSE:
Como ya hemos visto que se vuelve necesario tomar distintos caminos según lo requieran las circunstancias. Por ejemplo, en nuestro programa que dividía dos cifras hacía falta mostrar un mensaje de error al usuario en caso de que este ingresara como segundo valor un 0 ya que esto causaría un error en tiempo de ejecución, y en caso contrario simplemente mostrar el resultado de la división. Aquí entra en juego la instrucción de selección if…then que en inglés significa (si…entonces). Su sintaxis es la siguiente:
Código Pascal:
Ver original
If condición then Instrucción;
Ahora solo les daré una simple reseña, en la próxima lección la ampliaré muchísimo más, o sea, la veremos por completo.
Veamos un pequeño programa que lea un número de la entrada estándar y nos diga si dicho número es mayor que 50:
Código Pascal:
Ver original
program ResenaIf; var numero: real; begin write('Ingresa un número: '); readln(numero); If numero>50 then writeln('Es mayor que 50.'); end.
Bien, este programa no supone ninguna dificultad. Lo nuevo está en la instrucción IF. Leemos un número de la entrada estándar y luego, en la línea 10 tenemos
Código Pascal:
Ver original
If numero>50 then
eso significa: Si numero es mayor que 50 entonces. Como ven, he colocado una expresión booleana en la condición del IF. Esto siempre será así, las condiciones siempre son booleanas, o sea, o se cumplen o no se cumplen. La línea 11 de nuestro programa es parte del IF, por tanto, se ejecutará sí y solo sí la condición del IF es verdadera (TRUE), en caso contrario será omitida por completo.
Lo que hace el programa en estos casos es evaluar la condición y se fija si es TRUE o FALSE. Si es TRUE entonces ejecuta la instrucción del IF. En este caso esa condición es verdadera si el número ingresado es etrictamente mayor a 50; si no es así, la condición es falsa y por lo tanto la línea 11 no se ejecuta.
Algo a notar es que luego del THEN no va un punto y coma (;), esto es porque IF condición THEN no es una instrucción completa, o sea, lo que yo escribí de esta manera
Código Pascal:
en realidad para el compilador esVer original
If numero>50 then writeln('Es mayor que 50.');
Código Pascal:
Ver original
If numero>50 then writeln('Es mayor que 50.');
por eso el punto y coma va al final de la instrucción writeln. Se suele escribir tal como yo lo hice por una cuestión de legibilidad, ya que más adelante veremos como ejecutar muchas instrucciones luego de un IF...THEN y no solo una como en este caso.
Por eso, como dije, el punto y coma es el separador (;) y no los saltos de línea (ENTER). Por ejemplo, si tenemos una variable a del tipo integer, esta asignación
Código:
es lo mismo que escribira:= 1 + 3;
Código:
o escribira:= 1 + 3;
Código:
o escribira:= 1 + 3;
Código:
Del mismo modo es lo mismo escribira:= 1 + 3 ;
Código:
que escribirwriteln('Hola mundo');
Código:
o writeln( 'Hola mundo');
Código:
Separador significa eso, finalizar una instrucción. El compilador buscará el punto y coma y esté donde esté para decirse a sí mismo "Ah, aquí termina esta instrucción", omitiendo por completo todos nuestros espacios y saltos de línea. Si quisieramos podemos escribir todo el código en una sola línea larguísima que funcionará igualmente, solo que será horrible para leer.writeln ( 'hola mundo' ) ;
Ejemplos:
Si tenemos un número A y un número B, podemos preguntar si:
A es mayor que B mediante A>B.
A es menor que B mediante A<B.
A es igual que B mediante A=B.
A es distinto de B mediante A<>B.
A es mayor o igual que B mediante A>=B.
A es menor o igual que B mediante A<=B.
Espero sus preguntas y sus dudas con los ejercicios.