Foros del Web » Programación para mayores de 30 ;) » Programación General »

Comenzando a programar: 5b- Constantes, booleanos y selección simple.

Estas en el tema de Comenzando a programar: 5b- Constantes, booleanos y selección simple. en el foro de Programación General en Foros del Web. LECCIÓN 5 - Parte b: Constantes, booleanos, selección simple Terminando de comprender esto, podemos declarar constantes de cualquier tipo primitivo de pascal: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 25/10/2011, 09:25
 
Fecha de Ingreso: enero-2011
Mensajes: 51
Antigüedad: 13 años, 2 meses
Puntos: 21
Comenzando a programar: 5b- Constantes, booleanos y selección simple.

LECCIÓN 5 - Parte b: Constantes, booleanos, selección simple

Terminando de comprender esto, podemos declarar constantes de cualquier tipo primitivo de pascal:

Código Pascal:
Ver original
  1. Const
  2.    letra= 'a';
  3.    palabra= 'Hola';
  4.    entero= 5;
  5.    unReal= 4.5;
  6.    booleano= true;
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.

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:
Writeln(‘Hola mundo’);
Readln(variable);
que escribir

Código:
writeln(‘Hola mundo’); readln(variable);
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.

Ejemplo:

Código:
writeln('Hola':10)
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.

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
  1. If condición then
  2.    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
  1. program ResenaIf;
  2.  
  3. var
  4.     numero: real;
  5.  
  6. begin
  7.     write('Ingresa un número: ');
  8.     readln(numero);
  9.  
  10.      If numero>50 then
  11.         writeln('Es mayor que 50.');
  12.  
  13. 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
  1. 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:
Ver original
  1. If numero>50 then
  2.    writeln('Es mayor que 50.');
en realidad para el compilador es

Código Pascal:
Ver original
  1. 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:
a:= 1 + 3;
es lo mismo que escribir

Código:
a:=
1 + 3;
o escribir

Código:
a:=

1
+
3;
o escribir

Código:
a:= 1
+

3

;
Del mismo modo es lo mismo escribir

Código:
writeln('Hola mundo');
que escribir

Código:
writeln(
'Hola mundo');
o

Código:
writeln
(
'hola
 mundo'
)


;
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.

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.

Última edición por Kyshuo; 17/11/2011 a las 10:23 Razón: Mejorar las vistas de código fuente

Etiquetas: entrada, ide, php, programa, sistema, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 17:21.