martes, 26 de marzo de 2013

UNIDAD 2 - 4TO. AÑO


UNIDAD 2
VARIABLES Y CONSTANTES

 CONSTANTES
Una constante es un dato cuyo valor no puede cambiar durante la ejecución del programa. Recibe un valor en el momento de la compilación y este permanece inalterado durante todo el programa.
Las constantes se declaran en una sección que comienza con la palabra reservada const. Después de declarar una constante ya se puede en el cuerpo principal del programa. Tienen varios usos: ser miembro en una expresión, en una comparación, asignar su valor a una variable, etc.
const
Pi = 3.141592;
Min = 0;
Max = 99;
Saludo = 'Hola';

VARIABLES

Una variable es un espacio e memoria al que se le pone un nombre, y su valor puede cambiar durante la ejecución de un programa.
Toda variable pertenece a un tipo de dato concreto. En la declaración de una variable se debe indicar el tipo al que pertenece. Así tendremos variables enteras, reales, booleanas, etc. Por otro lado, distinguimos tres partes fundamentales en la vida de una variable:
  • Declaración
  • Iniciación
  • Utilización
Declaración de variables


Esta es la primera fase en la vida de cualquier variable. La declaración se realiza en la sección que comienza con la palabra var.
Nota: Toda variable que vaya a ser utilizada en Pascal tiene que ser previamente declarada.
Iniciación de variables


Esto no es más que darle un valor inicial a una variable. Así como lo primero que se hace con una variable es declararla, lo siguiente tiene que ser iniciarla. Esto se hace para evitar posibles errores en tiempo de ejecución, pues una variable tiene un valor indeterminado después de declararla. Principalmente, existen dos maneras de otorgar valores iniciales a variables:
  • Mediante una sentencia de asignación
  • Mediante uno de los procedimientos de entrada de datos (read o readln)
Veamos un ejemplo que reúne los dos casos: 
   begin
      ...
     i:=1;
     readln(n);
     while i < n do begin
        (* cuerpo del bucle *)
        i := i + 1
     end;
      ...
   end.
         

Utilización de variables


Una vez declarada e iniciada una variable, es el momento de utilizarla. Esta es la parte que presenta un mayor abanico de posibilidades que iremos viendo a lo largo del curso.

DIFERENCIAS ENTRE AMBAS

Después de haber visto cada una por separado, pasemos a explicar las diferencias que existen entre constantes y variables. A primera vista pudieran parecer conceptos similares, pero realmente son cosas muy distintas. Y esta distinción viene dada por la posibilidad que tienen las variables para cambiar de valor.
Principales diferencias:
  • Las constantes ya reciben un valor inicial en su declaración
  • Las variables primero se declaran, luego se inician, y luego se usan
  • Las constantes, una vez declaradas mantienen su valor durante toda la ejecución del programa
  • En cambio, las variables pueden cambiar su valor tantas veces como deseen

INTRODUCCIÓN A LOS TIPOS DE DATOS

El tipo de un dato es el conjunto de valores que puede tomar durante el programa. Si se le intenta dar un valor fuera del conjunto se producirá un error.
La asignación de tipos a los datos tiene dos objetivos principales:
  • Por un lado, detectar errores en las operaciones
  • Por el otro, determinar cómo ejecutar estas operaciones
De Pascal se dice que es un lenguaje fuertemente tipeado. Esto quiere decir que todos los datos deben tener un tipo declarado explícitamente, y además que existen ciertas restricciones en las expresiones en cuanto a los tipos de datos que en ellas intervienen.
Una ventaja de los lenguajes fuertemente tipeados es que se gasta mucho menos esfuerzo en depurar (corregir) los programas gracias a la gran cantidad de errores que detecta el compilador.
Los tipos de datos, como casi todos los objetos de Pascal, se pueden declarar. La declaración de tipos ya se comentó en la unidad anterior.

CLASIFICACIONES EN LOS TIPOS DE DATOS

En Pascal existen gran variedad y cantidad de tipos de datos. Pero en este curso sólo se trataran los básicos para que puedas ir construyendo tus primeros programas.
Existen muchas clasificaciones para los tipos de datos, y dependiendo de la fuente que mires, te mostrarán una u otra. A continuación tienes una de las posibles clasificaciones:
Tipos simples

Como su nombre indica son los tipos básicos en Pascal. Son los más sencillos y los más fáciles de aprender. Por todo esto, serán en los que nos centremos.

Los tipos simples más básicos son: entero, lógico, carácter y real. Y la mayoría de los lenguajes de programación los soportan, no como ocurre con los estructurados que pueden variar de un lenguaje a otro.
Tipos estructurados

Mientras que una variable de un tipo simple sólo referencia a un elemento, los estructurados se refieren a colecciones de elementos.

Las colecciones de elementos que aparecen al hablar de tipos estructurados son muy variadas: tenemos colecciones ordenadas que se representan mediante el tipo array (vector), colecciones sin orden mediante el tipo conjunto, e incluso colecciones que contienen otros tipos, son los llamados registros.

LOS TIPOS BÁSICOS QUE NOS INTERESAN

Después de ver una de las posibles clasificaciones para los tipos de datos, pasemos a ver los que nos interesan: los tipos simples. Realmente de los tipos simples veremos los más básicos, que son: integer, boolean, char y real. Además, también hablaremos un poco de las cadenas de caracteres, los llamados strings.
El tipo integer (entero)


Como ya habrás leído el tipo de datos entero es un tipo simple, y dentro de estos, es ordinal. Al declarar una variable de tipo entero, estás creando una variable numérica que puede tomar valores positivos o negativos, y sin parte decimal.

El tipo boolean (lógico)


El tipo de datos lógico es el que te permite usar variables que disponen sólo de dos posibles valores: cierto o falso. Debido a esto, su utilidad salta a la vista, y no es otra que variables de chequeo. Nos sirven para mantener el estado de un objeto mediante dos valores:
  • si/no
  • cierto/falso
  • funciona/no funciona
  • on/off
  • etc.



El tipo real (real)


Como ya has visto, Pascal soporta el conjunto entero de números. Pero no es el único, también te permite trabajar con números pertenecientes al conjunto real.
El tipo de datos real es el que se corresponde con los números reales. Este es un tipo importante para los cálculos. Por ejemplo en los estadísticos, ya que se caracterizan por tratar fundamentalmente con valores decimales.
Nota: Aunque pueda que estés acostumbrado a escribir con coma los decimales, te advierto que en Pascal y en todos los lenguajes de programación se escribe con un punto. Por ejemplo: 3.1416
A continuación tienes un ejemplo en el que se utiliza el tipo real. En el puedes ver las dos formas de declarar una variable real, y también el uso de una constante real. Por si tienes curiosidad, el resultado de ejecutar el programa compilado es:
 Los tipos char y string (carácter y cadena)


Con el tipo carácter puedes tener objetos que representen una letra, un número, etc. Es decir, puedes usar variables o constantes que representen un valor alfanumérico. Pero ojo, cada variable sólo podrá almacenar un carácter.
Sin embargo, con las cadenas de caracteres (strings) puedes contener en una sola variable más de un carácter. Por ejemplo, puedes tener en una variable tu nombre.

PRÁCTICA 2
VARIABLES Y CONSTANTES


Ejercicio 1: ¿Qué diferencia existe entre una variable y una constante? ¿Quién establece esa diferencia?

Ejercicio 2: ¿Qué es una asignación? ¿Qué tipos de asignaciones existen? ¿Cuál es la diferencia entre ellos?

Ejercicio 3: ¿Qué es un contador? ¿En qué se diferencia de un acumulador? ¿Por qué son necesarios ambos conceptos?

Ejercicio 4: Para cada uno de los siguientes casos, designar una variable, decir de qué tipo es y ejemplificar con tres datos:
a)     Clubes de fútbol metropolitanos.
b)     Superficies de canchas de fútbol porteñas.
c)      Nombres de actores famosos.
d)     Edades de un grupo de niños.
e)     Pesos de los bebés al nacer en una determinada maternidad.
f)        Temperaturas máximas de cada día del mes de enero de 1998.
g)     Alturas de las mamás de los chicos del Colegio.
h)      Colores preferidos de los chicos de la Parroquia.
i)        Número que calzan las alumnas mujeres de 2do. año.
j)        Cantidad de alumnos rubios que hay en 6to. grado.

Ejercicio 5: Suponiendo la siguiente declaración de variables
           A: integer;
           B: integer;
           C: real:
           D: real;
           E: string;
           F: string;
           G: boolean;
           H: boolean;
           RES1:integer;
           RES2: real;
           RES3:string;
           RES4: boolean;
Decir si las siguientes asignaciones son correctas o no. Justificar
a)     RES1:= A+B
b)     RES2:= A+B
c)      RES3:= E+F;
d)     RES1:= A/B;
e)     RES4:= G and H;
f)        RES4:= G*H;
g)     RES2:= G+D;
h)      RES1:= C*D;
i)        RES2:= A/B

Ejercicio 6: Realizar un programa Pascal que pregunte al usuario su año de nacimiento y le informe cuántos años cumple en el corriente.

Ejercicio 7: Realizar un programa Pascal que, dadas las cantidades de alumnos de cada curso del colegio, devuelva la cantidad total de alumnos.

 


LOS PROCEDIMIENTOS DE SALIDA DE DATOS: WRITE Y WRITELN

Un programa por simple que sea, va a tener que mostrar cierta información de salida. Esto se consigue en Pascal mediante los procedimientos write y writeln. En este apartado, nos centraremos en el estudio de ellos.
Veamos como es la sintaxis de los procedimientos write y writeln, es decir, ¿cuál es la manera correcta de escribirlos?: 
write (ítem, ítem, ...);
writeln (ítem, ítem, ...);
Cada uno de estos ítems puede ser:
  • un valor literal
  • una constante con nombre
  • una variable
  • una llamada a una función
Nota: Un función especial que tiene writeln es como espaciador entre líneas. Así, llamando al procedimiento sin ningún parámetro produciremos un salto de línea.
En el siguiente ejemplo puedes observar llamadas a ambos procedimientos que resumen un poco todo esto que hemos mencionado: 
program Prueba_write;
const
   iva_factor = 0.16;
var
   num_udes : integer;
   total, precio_udad : real;
begin
   precio_udad := 198;
   num_udes := 4;
   total := num_udes * precio_udad;
   
   write  ('El precio sin IVA de',num_udes:3,' unidades es');
   writeln(total:8:0,' pesos);
   writeln; 
   writeln;  (* separamos 2 lineas *)
 
   total := total + total * iva_factor; 
 
   write  ('El precio con IVA de',num_udes:3,' unidades es');
   writeln(total:8:2,' pesos)
end.
                
Salida del programa:
El precio sin iva de  4 unidades es     792 pesos
 
 
El precio con iva de  4 unidades es  918.72 pesos
            
A que adivino cuál es la pregunta del millón para ti en este momento...
¿Cuál es la diferencia entre write y writeln?
Es algo muy sencillo que casi suena a tontería. Se trata de que el procedimiento writeln pasa el cursor a la siguiente línea después de escribir los ítems, mientras que write lo deja después del último carácter.

FORMATOS EN LA SALIDA DE DATOS

En una llamada a uno de los procedimientos write, además de incluir ítems, también podemos especificar de qué manera se mostrarán en la pantalla estos ítems. Son los llamados formatos de salida.
Estos formatos no son gran cosa, pero te permitirán jugar un poco con la apariencia que presentarán tus datos. Podrás especificar el número de posiciones para el campo de escritura. Y para los valores reales, el número de decimales a mostrar.
La sintaxis de ambos formatos se muestra a continuación.
writeln(ítem: anchura ...)
writeln(ítem_real: anchura: dígitos ...)
anchura: valor entero que indica la anchura total del campo de escritura digitos: valor entero que indica el número de decimales a mostrar

LOS PROCEDIMIENTOS DE ENTRADA

En este apartado trataremos la entrada de datos, también conocida como lectura de datos. En Pascal existen dos procedimientos que nos permiten leer datos de la entrada estándar (el teclado) son read y readln.
A continuación puedes echarle un vistazo a la sintaxis de estos procedimientos: 
read (variable1, variable2, ...);
readln (variable1,variable2, ...);
A diferencia de los procedimientos write, con read y readln sólo puedes usar variables como parámetros. Esto es lógico ya que las variables pueden cambiar su valor en el cuerpo del programa. Los tipos de datos permitidos para estas variables son: enteros, reales, caracteres o cadenas de caracteres.
¿Cómo funcionan read y readln?
  • Ambos procedimientos esperan a que pulses la tecla ENTER antes de asignar valores a variables
  • Si intentas leer más de una variable en una llamada, tendrás que teclearlas en el orden en el que aparecen en el procedimiento
  • Además, si no quieres tener problemas, lo mejor será que dejes uno o más espacios entre los datos que teclees.
  • La principal diferencia entre ambas es que después de leer los datos, read deja el cursor a continuación del último carácter, mientras que readln lo pasa al comienzo de la siguiente línea.
En el siguiente ejemplo se utilizan varias llamadas a read y readln. Es un ejemplo típico de entrada/salida. En él se solicitan datos al usuario y éste tiene que introducirlos por teclado. A continuación del código tienes una de las posibles entradas correctas. 
program Datos_Personales;
var
   Nombre   : string[15];
   Ap1, Ap2 : string[20];
   Edad     : integer;
 
begin
   write('Introduce nombre: ');
   readln(Nombre);
   write('Primer apellido : ');
   readln(Ap1);
   write('Segundo apellido: ');
   readln(Ap2);
   write('Introduce edad  : ');
   readln(Edad);
end.
       
Una posible entrada correcta
Introduce nombre: Benito
Primer apellido : Santos
Segundo apellido: Feijoo
Introduce edad : 21


PRÁCTICA 3
ALGORITMOS


  1. Se leen dos números enteros. Informar la suma, la resta, la multiplicación y la división de ambos.
  2. Se leen dos números reales. Informar la suma de sus cuadrados.
  3. Se leen dos números enteros. Calcular la raíz cuadrada del primero y restársela al triple del segundo. Informar el resultado.
  4. Se leen cuatro números enteros. Sumar los dos primeros, dividir esa suma por el tercero y multiplicar este resultado por el cuarto. Informar el resultado.
  5. Informar el promedio de cinco números leídos por teclado.
  6. Dados dos números enteros, sumarlos, dividir esta suma por 10 y mostrar por pantalla el cuadrado de este último número obtenido.
  7. Dados dos números cualesquiera, elevar al cuadrado el primero de ellos y multiplicar por 5 el segundo. Mostrar la suma de los dos resultados obtenidos anteriormente.
  8. Dados los tres lados de un triángulo, hallar el perímetro.
  9. Dadas la base y la altura de un triángulo, hallar el área.
  10. Dados los lados de un rectángulo, calcular el perímetro, la superficie y la diagonal.
  11. Dado un valor en kilómetros, expresarlo en metros.
  12. Calcular el sueldo de un empleado conociendo la cantidad de horas trabajadas y el valor que gana por hora.
  13. Se lee el precio de costo de un producto. Se desea conocer el precio de venta (con una recarga del 30%) y el IVA (20% sobre el precio de venta) que paga el consumidor.
  14. Dado un valor que representa la temperatura en grados Fahrenheit, mostrar la misma temperatura en grados centígrados. La fórmula de conversión es:                       C = 5/9 (F-32).
  15. En un curso de Ciencias de la Computación, la calificación final del estudiante se determina a partir del rendimiento en tres aspectos del trabajo cuatrimestral. Existe una calificación de exámenes parciales, que cuenta con 30 % del total; la calificación de trabajo de taller con 20 % del total; y el examen final con el 50 % restante. Se leen las calificaciones y se pide informar la nota final.
  16. Una compañía de ventas de automóviles paga, a su personal de la sección de ventas, un salario de 1000 pesos, más una comisión de 20 pesos por automóvil vendido, más 5 % del valor de venta. Diseñar un algoritmo para calcular el salario de un vendedor en un mes dado, conociendo el número de automóviles vendidos y el precio de cada uno de estos.

No hay comentarios.:

Publicar un comentario