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

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

Estas en el tema de Comenzando a programar: 5a- Constantes, booleanos y selección simple. en el foro de Programación General en Foros del Web. LECCIÓN 5 - Parte a: Constantes, booleanos, selección simple En esta lección terminaremos con los aspectos básicos del lenguaje, tales como lo han sido la ...
  #1 (permalink)  
Antiguo 25/10/2011, 09:09
 
Fecha de Ingreso: enero-2011
Mensajes: 51
Antigüedad: 13 años, 10 meses
Puntos: 21
Comenzando a programar: 5a- Constantes, booleanos y selección simple.

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

En esta lección terminaremos con los aspectos básicos del lenguaje, tales como lo han sido la salida y la entrada estándar. Veremos entonces lo que son las constantes y una descripción un poco superflua de lo que es el tipo boolean y las expresiones boolean, ya que serán esenciales para el resto del curso.

Luego de eso comenzaremos con lo que sería ya el segundo capítulo: SELECCIÓN Y REPETICIÓN, aunque en esta lección solo veremos la selección básica.

Comencemos entonces.

Introducción a las constantes:

Al igual que podemos definirnos variables, que son objetos cuyos valores van cambiando (variando) a lo largo del programa, también podemos definirnos constantes, que serán objetos cuyo valor no cambiará nunca a lo largo del programa. Veremos un ejemplo en el cual intentaré hacerles entender la necesidad de las constantes.
El siguiente programa pedirá como entrada en reales el precio sin IVA de cinco productos que están a la venta en un almacén. Luego mostrará el precio de dichos productos con el IVA agregado.

Para quienes no lo saben, el IVA es un porcentaje que se agrega al precio de los productos que compramos. Ese porcentaje es propio de cada país.
Por ejemplo, en mi país el IVA es un 23%, por lo tanto los comercios le agregan ese porcentaje al precio de cada producto y el total es lo que pagamos al comprarlo.

Para que quede bien claro: supongan que un comercio obtiene cierto producto P a $100. El 23% de 100 es 23, por lo tanto nosotros compraremos el producto P a $123.

Veamos el programa entonces:

Código Pascal:
Ver original
  1. PROGRAM preciosIVA;
  2.  
  3. Const
  4.    iva= 23;
  5.  
  6. Var
  7.    harina, leche, azucar, sal, arroz: real;//Precios de los productos.
  8.    porcentaje: real; //Para calcular cuanto se debe sumar al precio.
  9.  
  10. BEGIN
  11.  
  12.    //Mostramos mensajes al usuario y leemos los datos desde la entrada.
  13.    write('Precio HARINA : ');
  14.    readln(harina);
  15.    write('Precio LECHE : ');
  16.    readln(leche);
  17.    write('Precio AZUCAR : ');
  18.    readln(azucar);
  19.    write('Precio SAL : ');
  20.    readln(sal);
  21.    write('Presto ARRÓZ : ');
  22.    readln(arroz);
  23.  
  24.    //Dejamos una línea en blanco.
  25.    writeln;
  26.  
  27.    //Calculamos el porcentaje de IVA para harina.
  28.    porcentaje:= harina*iva/100;
  29.    //Mostramos el nuevo precio al usuario.
  30.    writeln('HARINA + IVA : ',harina+porcentaje:2:2);
  31.  
  32.    //Calculamos el porcentaje de IVA para leche.
  33.    porcentaje:= leche*iva/100;
  34.    //Mostramos el nuevo precio al usuario.
  35.    writeln('LECHE + IVA : ',leche+porcentaje:2:2);
  36.  
  37.    //Calculamos el porcentaje de IVA para azucar.
  38.    porcentaje:= azucar*iva/100;
  39.    //Mostramos el nuevo precio al usuario.
  40.    writeln('AZUCAR + IVA : ',azucar+porcentaje:2:2);
  41.  
  42.    //Calculamos el porcentaje de IVA para sal.
  43.    porcentaje:= sal*iva/100;
  44.    //Mostramos el nuevo precio al usuario.
  45.    writeln('SAL + IVA : ',sal+porcentaje:2:2);
  46.  
  47.    //Calculamos el porcentaje de IVA para arroz.
  48.    porcentaje:= arroz*iva/100;
  49.    //Mostramos el nuevo precio al usuario.
  50.    writeln('ARROZ + IVA : ',arroz+porcentaje:2:2);
  51. END.

Bien, en la línea 3 vemos la palabra reservada const, que indica que desde allí se declararán constantes. La sintaxis para declaración de constantes es

NombreDeLaConstante= valor;

donde valor representa un valor de algún tipo primitivo de pascal (integer, real, char, string entre algún otro). El nombre de la constante es un identificador. En este caso, en la línea 4 del programa hemos declarado la constante iva y le hemos dado el valor 23, que representa el 23% que vale el IVA en mi país.
Notar que las constantes se declaran antes que las variables.

A una constante no debemos declararle un tipo ya que este está implícito en el valor asignado a la misma. En este ejemplo le hemos dado a iva el valor 23 que es un entero, entonces iva es del tipo integer.

Luego, en las líneas 7 y 8 declaramos las variables del programa, una para el precio de cada producto y una para calcular el porcentaje de IVA que le corresponde al precio de cada producto para luego sumárselo al mismo.

En las líneas 13 a 22 inclusive, mostramos mensajes al usuario y leemos los valores de las entradas para cada producto. Luego, en la línea 25 indicamos mediante el procedimiento writeln que queremos dejar una línea en blanco. Esto se hace llamando al procedimiento sin pasarle campos entre paréntesis.
Las soluciones a esto que habían dado antes ustedes constaban de escribir writeln(' '), o sea, escribir un espacio y luego bajar de renglón. Eso es una solución ficticia al problema de escribir una línea en blanco. Pascal admite que escribamos el procedimiento writeln; sin paréntesis y dejará una línea en blanco. Otra forma es escribir writeln(); sin pasarle campos entre los paréntesis.

En la línea 28 calculamos el porcentaje de IVA para la harina asignando este valor a la variable porcentaje. Esta operación es simple. Si uno tiene un valor y quiere saber un porcentaje de ese valor simplemente multiplica dicho valor por el porcentaje que quiere obtener y divide el resultado entre 100. Por ejemplo, si tenemos el número 278 y queremos saber el 15% de ese número simplemente realizamos la operación 278*15/100 lo cual nos daría 41,7. Ese valor corresponde al 15% de 278. De este modo calculamos el porcentaje de IVA para cada producto multiplicando su precio por el valor de la constante iva y dividiendo entre 100.

En la línea 30 mostramos un mensaje al usuario y el precio de la harina más el porcentaje de IVA del mismo, en este caso más un 23%.
Repetimos esto hasta el final de la aplicación.

Notar que siempre usamos la variable porcentaje para calcular el 23% de cada precio. El símbolo de asignación ( := ) borra el contenido anterior de la variable y asigna el nuevo, o sea, la sobrescribe (ya lo dije en lecciones anteriores).

Ahora veamos el mismo programa pero sin el uso de la constante iva:

Código Pascal:
Ver original
  1. PROGRAM preciosIVA;
  2.  
  3. Var
  4.    harina, leche, azucar, sal, arroz: real;//Precios de los productos.
  5.    porcentaje: real; //Para calcular cuanto se debe sumar al precio.
  6.  
  7. BEGIN
  8.  
  9. //Mostramos mensajes al usuario y leemos los datos desde la entrada.
  10. write('Precio HARINA : ');
  11. readln(harina);
  12. write('Precio LECHE : ');
  13. readln(leche);
  14. write('Precio AZUCAR : ');
  15. readln(azucar);
  16. write('Precio SAL : ');
  17. readln(sal);
  18. write('Precio ARRÓZ : ');
  19. readln(arroz);
  20.  
  21. //Dejamos una línea en blanco.
  22. writeln;
  23.  
  24. //Calculamos el porcentaje de IVA para harina.
  25. porcentaje:= harina*23/100;
  26. //Mostramos el nuevo precio al usuario.
  27. writeln('HARINA + IVA : ',harina+porcentaje:2:2);
  28.  
  29. //Calculamos el porcentaje de IVA para leche.
  30. porcentaje:= leche*23/100;
  31. //Mostramos el nuevo precio al usuario.
  32. writeln('LECHE + IVA : ',leche+porcentaje:2:2);
  33.  
  34. //Calculamos el porcentaje de IVA para azucar.
  35. porcentaje:= azucar*23/100;
  36. //Mostramos el nuevo precio al usuario.
  37. writeln('AZUCAR + IVA : ',azucar+porcentaje:2:2);
  38.  
  39. //Calculamos el porcentaje de IVA para sal.
  40. porcentaje:= sal*23/100;
  41. //Mostramos el nuevo precio al usuario.
  42. writeln('SAL + IVA : ',sal+porcentaje:2:2);
  43.  
  44. //Calculamos el porcentaje de IVA para arroz.
  45. porcentaje:= arroz*23/100;
  46. //Mostramos el nuevo precio al usuario.
  47. writeln('ARROZ + IVA : ',arroz+porcentaje:2:2);
  48. END.
Esta versión funciona exactamente igual a la anterior, con la diferencia de que en el código, donde antes teníamos el identificador iva ahora hay un 23.

Ahora imaginen la siguiente situación: el valor de IVA cambia en un momento dado y se les pide que reestructuren su programa para el nuevo valor de IVA. Si ustedes hicieron su programa tal como esta última versión deberán buscar en su código cada una de las veces en que usaron el 23 para calcular el porcentaje de IVA y cambiarlo por el nuevo valor, mientras que en la versión con constante solo es ir a donde está declarada iva y modificar ahí su valor con lo cual no sería necesario tocar más nada del código. Esta acción puede realizarla hasta alguien que no haya sido el propio programador, mientras que en el código sin constante, si uno no fue quien programó deberá primero sentarse a leer y entender el código hasta que pueda efectivamente hacer una búsqueda de los lugares donde se realizó el cálculo del IVA para poder modificarlos.

En este ejemplo no resulta difícil modificar todos los 23 que hay, pero imaginen una base de datos de un supermercado en el cual hay miles de productos y precios diferentes. ¿Sería mejor buscar y cambiar todos y cada uno de los valores en que usamos el 23, o sería mejor declarar una constante y solo cambiar un 23? Normalmente los códigos son muy extensos y complicados, por lo cual una tarea de revisión total y búsqueda exhaustiva sería muy tediosa y difícil, además de que es muy probable que se nos pase por alto alguna expresión a modificar. El uso de constantes es muy recomendable cuando se va a usar un mismo valor muchas veces.

Nota: No puede usarse una constante a la izquierda de una asignación. Por ejemplo sería erróneo escribir iva:= 10 ya que iva no puede ser modificada. Esto es un error de sintaxis.

Continuamos en la parte b....

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

Etiquetas: entrada, ide, lenguaje, programa, 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 11:33.