pre-laboratorio 1

Anuncio
PRE-LABORATORIO 1
ESTRUCTURA SECUENCIAL
La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en
secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la
siguiente y así sucesivamente hasta el fin del proceso. Una estructura secuencial se
representa de la siguiente forma:
En Turbo Pascal:
PROGRAM identificador;
USES
crt;
CONST
g=9.8;
VAR
i, n:integer
x: real;
BEGIN
instrucción1;
instrucción2;
…
readkey
END.
{cabecera del programa}
{unidades de trabajo}
{definiciones de constantes}
{declaración de variables}
{inicio del programa principal}
{instrucciones del programa}
{Detiene el programa hasta que se pulse una tecla}
{fin del programa}
1.1.- ASIGNACIÓN DE VALORES A LAS VARIABLES.
La asignación consiste, en el paso de valores o resultados a una zona de la memoria. Dicha
zona será reconocida con el nombre de la variable que recibe el valor. La asignación se puede
clasificar de la siguiente forma:
Simples: Consiste en pasar un valor constate a una variable.
En Turbo Pascal la asignación de un valor a una variable se realiza mediante el símbolo :=
por ejemplo:
a:=20;
Nombre:= 'Juan Pérez';
{La variable a toma el valor de 20}
{Nombre guardará la cadena "Juan Pérez"}
Contador: Consiste en usar la variable como un verificador del número de veces que se
realiza un proceso, observe que el incremento es de uno en uno.
En Turbo Pascal, el incremento de la variable contador se realiza así: a:=a+1;
DM / AA
1
Acumulador: Consiste en usar la variable como un sumador en un proceso, observe que
el incremento es variable.
En Turbo Pascal, la acumulación de un valor en una variable se realiza como sigue:
s := s + b;
{la variable “s” acumula los valores de b}
De trabajo: Donde puede recibir el resultado de una operación matemática que involucre
muchas variables, por ejemplo:
En Turbo Pascal, para almacenar el resultado de una operación matemática en una variable
se realiza asi:
a:= c+b*2/4;
area:= (base*altura)/2; {La variable area almacena el resultado de la expresión que
está a la derecha}
1.2.- LECTURA DE VALORES POR TECLADO.
En Turbo Pascal, los datos que se pueden leer son: enteros, reales, caracteres o cadenas. No se
puede leer un boolean o un elemento de tipo enumerado.
Los datos estructurados, arreglos (arrays), registros o conjuntos, no se pueden leer
globalmente y se suele recurrir a diseñar procedimientos específicos.
Los procedimientos de lectura son Read y ReadLn, y tienen el siguiente formato:
READ (var1, var2, ...);
READLN (var2, var2, ...);
Donde var1, var2,… son las variables que recibirán el valor por teclado.
En READ, después de pulsar la tecla ENTER, el cursor permanece inmediatamente después
del último caracter introducido. En READLN, el cursor se envía al principio de la siguiente
línea, tras pulsar la tecla ENTER.
Otra diferencia importante surge del siguiente análisis: supongamos que se quieren leer desde
teclado una serie de números enteros y reales, mediante las sentencias:
readln(int1, re1);
readln(int2);
donde int1 es una variable tipo entero (integer), y re1 es una variable tipo real (real).
Y suponga que el usuario ingresa los siguientes datos:
73 98.45 62 ENTER
45 ENTER
DM / AA
2
Cuando la computadora lee 73, lo coloca en la variable int1, luego lee el 98.45 (todo en la
misma línea, separados por un espacio) y lo coloca en re1. Pero como se trata de un readln
(read line) ignora todo el resto que esté en la misma línea (en este caso ignora al 62), y hace
un avance de carro (es decir, pasa a la línea siguiente). Al leer la línea siguiente coloca al 45
en int2. El resultado es:
int1 = 73
re1 = 98.45
int2 = 45
Ahora suponga que se tiene los mismos datos de entrada, pero con las siguientes sentencias:
read(int1, re1);
readln(int2);
En este caso lee el 73 y lo coloca en int1, luego lee el 98.45 y lo coloca en re1. Como se trata
de un read, no hace avance de línea, y pasa a ejecutar la sentencia siguiente (o sea el readln).
Al ejecutar el readln siguiente carga en int2 al número 62, porque el read anterior no había
hecho avance de línea, y por consiguiente el número 45 no se almacena en ninguna variable.
El resultado es:
int1 = 73
re1 = 98.45
int2 = 62
1.3.- ESCRITURA DE VALORES POR PANTALLA.
Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o
mensaje.
Este proceso se representa en lenguaje Turbo Pascal como sigue:
WRITE(“El resultado es:”, r); o también WRITELN(“El resultado es:”, r);
Donde “El resultado es:” es un mensaje que se desea aparezca literalmente en pantalla y r es
una variable que contiene un valor.
La diferencia consiste en que WRITE, muestra lo que esta entre paréntesis en la pantalla y el
cursor se queda en la misma línea; en tanto que WRITELN, muestra lo que esta entre
paréntesis y hace que el cursor pase a la siguiente línea.
1.4.- OPERADORES ARITMÉTICOS.
Los ejercicios de estructura secuencial, proporcionan una introducción a la lógica de
programación sin la necesidad de utilizar estructuras condicionales ni ciclos; sí el lector ya
conoce el manejo de dichas estructuras, se recomienda no implementarlas en los ejercicios de
DM / AA
3
este tema. Estos ejercicios están orientados a estudiantes de nivel universitario por lo que se
asume que la base matemática para el cálculo debe ser de dominio del lector. Los operadores
aritméticos a utilizar para las operaciones matemáticas, se indican en la tabla 1.1.
Tabla 1.1 Operadores Aritméticos en Turbo Pascal.
Operador
*
/
MOD
DIV
+
-
Significado
Multiplicación
División
Residuo de la División
División entera
Suma
Resta
Ejemplo
2*5
5/2
5 MOD 2
5 DIV 2
7+3
10 – 6
Resultado
10
2.5
1
2
10
4
1.5.- FUNCIONES MATEMÁTICAS.
También se pueden invocar funciones matemáticas de uso común, como se observa en la tabla
1.2.
Tabla 1.2 Funciones Matemáticas en Turbo Pascal.
Abs(x)
Real o Integer
ArcTan(x)
Chr(x)
Real o Integer
Integer
Valor
devuelto
igual que
x
Real
Char
Cos(x)
Exp(x)
Frac(x)
Int(x)
Ln(x)
Odd(x)
Ord(x)
Pred(x)
Round(x)
Succ(x)
Sin(x)
Sqr(x)
Sqrt(x)
Trunc(x)
Real o Integer
Real o Integer
Real o Integer
Real o Integer
Real o Integer
Integer
Integer o char
Integer o char
Real
Integer o char
Real o Integer
Real o Integer
Real o Integer
Real
Real
Real
Real
Integer
Real
Integer
Integer
Integer
Integer
Integer
Real
Real
Real
Integer
Instrucción
x
Función
Proporciona el valor absoluto de una variable
numerica x.
El arco cuya tangente es x.
Devuelve el carácter ASCII de un entero entre 0
y 255.
Proporciona el valor del coseno de x.
La exponencial de x(eX).
Parte decimal de x.
Parte entera de x.
Logaritmo neperiano de x.
True si x es impar, y false si es par.
Ordinal de una variable tipo ordinal x.
Ordinal anterior a la variable ordinal x.
Entero más próximo al valor x.
Ordinal siguiente a la variable ordinal x.
Seno de x.
Cuadrado de x.
Raiz cuadrada de x, para x>=O.
Parte entera de x.
DM / AA
4
EJEMPLO TIPO SECUENCIAL.
1.- Escribir un programa en Pascal que sume dos números:
Por ejemplo, si a = 4 y b = 3 entonces el resultado de sumar 4 + 3 será 7, este valor es
almacenado en la variable c.
PROGRAM suma;{programa que escribe la suma de 2 numeros en pantalla}
USES
crt;
{permite utilizar la función el borrado de la pantalla: clrscr}
VAR
a,b,c: integer;
BEGIN
clrscr:
{limpia la pantalla}
a:=4;
{se asigna un valor cualquiera a las variables "a" y "b"}
b:=3;
c:=a+b;
WRITE (c); {muestra en pantalla el valor de la suma}
readkey
{espera que se pulse una tecla para salir del programa}
END.
A continuación se resuelve el mismo problema anterior, pero haciendo la lectura por teclado
de los valores de las variables a y b.
PROGRAM suma;
USES
crt;
VAR
a,b,c:integer;
BEGIN
clrscr;
WRITELN ('Este programa suma dos numeros:');
WRITELN (' ');
WRITE ('Introduzca un numero: ');
READLN (a);
WRITE ('Introduzca otro numero: ' );
READLN (b);
WRITELN (' ');
c:=a+b;
WRITE ('EL RESULTADO ES: ');
WRITE (c);
readkey
END.
EJERCICIO PROPUESTO TIPO SECUENCIAL.
1.- Dados tres números determinar el promedio.
DM / AA
5
LABORATORIO 1
ESTRUCTURA SECUENCIAL
1.1.- OBJETIVO.
Al finalizar el laboratorio, el alumno estará en la capacidad de resolver problemas con
diferentes tipos de datos, relizar operaciones aritméticas y lógicas, asi como establecer
prioridades inherentes con dichas operaciones usando el Lenguaje de Programación Turbo
Pascal.
1.2.- EJERCICIOS.
1.- Dadas la base y la altura de un triángulo rectángulo, determine el área y el perímetro del
triángulo.
2.- Escribir un programa en Pascal que calcule el volumen de una esfera: radio = 3,
volumen de la esfera = 4/3 * PI * radio3
3.- Una temperatura Celsius (grado centígrado) C puede ser convertida a una temperatura
equivalente Fahrenheit F de acuerdo a la siguiente fórmula: F = (9/5) * C + 32
DM / AA
6
Descargar