Está en la página 1de 32

CAPÍTULO 2. ESTRUCTURA SECUENCIAL O LINEAL.

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.

ESTRUCTURA GENERAL DE UN PROGRAMA.

La estructura general de un programa en Pascal se escribe de la siguiente forma:

PROGRAM nombre_del_programa;{cabecera del programa}


CONST
g=9.8; {definiciones de constantes}
resp=’s’
TYPE
{declaración de tipos}
VAR
i, n:integer {declaración de variables}
x: real;
{Definición de subprogramas}
BEGIN {inicio del programa principal}
instrucción1; {instrucciones del programa}
instrucción2;

END. {fin del programa}

La sentencia PROGRAM es la declaración del nombre del programa y consta de tres


partes: la palabra reservada PROGRAM, a continuación un identificador utilizado como el
nombre del programa y al final un punto y coma ";". Por ejemplo:

PROGRAM suma_de_dos_numeros;

Esta declaración es siempre la primera línea en cualquier programa de Pascal.


DECLARACIÓN DE CONSTANTES Y VARIABLES.

Para declarar las constantes se utiliza la palabra reservada CONST seguida de un


identificador al que se le dará un valor determinado, un signo de igual "=", el valor que
recibirá el identificador y al final un punto y coma ";". Ejemplo:

CONST pi = 3.1415926;

De esta forma, el identificador pi recibirá el valor de 3.1415926 y no será posible cambiarlo


en el transcurso del programa.

Es posible declarar varias constantes sucesivamente, puede ser una por renglón o varias en
un solo renglón. Cuando se hace esto, la palabra CONST solo se pone una sola vez como
cabecera y a continuación todas las constantes por definir. Ejemplo:

CONST
PI = 3.1415926;
Nombre = 'Juan Gutiérrez';
Unidad = 1;

Otra forma de escribir lo mismo es así:

CONST PI = 3.1415926; Nombre = 'Juan Gutiérrez'; Unidad = 1;

Pero por razones de legibilidad es preferible la primera opción.

La declaración de variables se lleva a cabo de la misma forma, solo que en lugar de la


palabra CONST se utiliza la palabra VAR, y en lugar de "= valor;", se utiliza: tipo,
sustituyendo "tipo" por alguna clase válida de datos en Pascal. Ejemplo:
VAR
Num_entero: Integer;
Nombre: String;

Después de haber realizado todas las declaraciones se puede iniciar con el programa
principal. (Es posible, antes del programa, declarar las funciones y procedimientos, pero
eso se analizará posteriormente).

El programa principal inicia con la palabra reservada BEGIN y termina con la palabra
END., esta última con un punto al final.

Cada línea de código, enunciado, sentencia o instrucción completa que se escriba deberá
terminar con un punto y coma ";".

IDENTACIÓN.

La identación o sangría es una técnica para escribir el código de un programa, consistente


en situar las líneas de código a diferentes niveles de tabulación o profundidad, de forma que
se facilite su lectura al ser revisado.

COMENTARIOS.

Al programar es conveniente agregar comentarios para poder saber que función tiene cada
parte del código, en caso de que no se utilice durante algún tiempo. Además se facilita el
trabajo a otros programadores que puedan utilizar el archivo fuente.

En Pascal se coloca los comentarios entre llaves o también entre los símbolos (* para
empezar el comentario y *) para terminar el comentario.
IDENTIFICADORES.

Un identificador es un nombre que referencia a una constante, una variable, una estructura
de datos, una función o una etiqueta en un programa. Está constituido por una secuencia
(sin espacios) de letras, dígitos y caracteres de subrayado. El identificador debe comenzar
por una letra o el carácter de subrayado, aunque este último suele quedar reservado para el
sistema. La longitud en caracteres de los identificadores varía según el compilador, pero lo
más usual son 32 caracteres, para Pascal se puede utilizar el identificador en mayúsculas o
minúsculas, por ejemplo: EDAD, edad, Edad, son identificadores válidos e idénticos.

Ejemplos válidos: NOMBRE_APELLIDO, IMPUESTO, NOTA2, H346


Ejemplos no válidos: NOMBRE APELLIDO, EJ?AB, 23ALX, 4NOM, &NOM

Para la escritura del identificador no se debe emplear las palabras clave o reservadas del
lenguaje (son palabras que tienen un significado especial y que no se pueden utilizar para
otros propósitos), ver tabla 1.4.

Tabla 1.4. Palabras reservadas en PASCAL.

And array begin case const div


Do downto else end file for
forward function goto if in label
Mod nil not of or packed
procedure program record repeat set then
To type until var while with
absolute asm destructor implementation interface object
Private shr unit virtual constructor external
Inline interrupt shl string uses xor

TIPOS DE DATOS.
Los diferentes objetos de información con los que un programa Pascal trabaja se conocen
colectivamente como datos. Todos los datos tienen un tipo asociado con ellos.
La asignación de tipos a los datos tienen dos objetivos principales:
a. Detectar errores de operaciones en programas.
b. Determinar cómo ejecutar las operaciones.
Pascal se conoce como un lenguaje “fuertemente tipeado” (strongly-typed), esto significa
que todos los datos utilizados deben tener sus tipos declarados explícitamente y el lenguaje
limita la mezcla de tipos en las expresiones.

Tipos de Datos Predefinidos.

Los datos son cifras originales que por sí solas tienen poco significado. Son los conceptos
básicos o elementales como el nombre de las cosas o personas, las cantidades, etc.

Tipos enteros: En esta categoría Pascal cuenta con 5 tipos diferentes (tabla 1.5), cada uno
abarca un rango específico de valores y utilizan una diferente cantidad de memoria
dependiendo de ese rango. Naturalmente el trabajar con rangos menores nos ofrece una
mayor velocidad y menor espacio en memoria, pero si se utilizan enteros largos se cuenta
con mayor precisión.

Tabla 1.5. Tipos de datos enteros.


Nombre Rango(desde...hasta) Tamaño (bytes) Formato
Integer -32.768 a 32.767 2 Entero con signo
Word 0 a 65535 2 Entero sin signo
ShortInt -127 a 127 1 Entero corto con signo
Byte 0 a 255 1 Entero corto sin signo
LongInt -2.147.483.648 a 2.147.483.647 4 Entero largo con signo

Tipos reales: Los números reales son aquellos que cuentan con una parte decimal. En
Pascal se cuenta con varios tipos de datos reales (ver tabla 1.6), pero no se puede utilizar,
más que el tipo real, en máquinas que no cuenten con un coprocesador matemático.

Tabla 1.6. Tipos de datos reales.


Nombre Rango (desde...hasta) Tamaño (bytes) Cifra significativas
Real 2,9E-39 a 1,7E38 6 11-12
Single 1,5E-45 a 3,4E38 4 6-7
Double 5,0E-307 a 1,7E307 8 15-16
Extended 1,9E-4932 a 1,1E493210 10 19-20
Comp -9,2E18 a 9,2E18 8 18-19

Los números reales deben llevar por fuerza al menos un dígito de cada lado del punto
decimal así sea éste un cero. Como ejemplo, el número 5 debe representarse como: 5.0, el
.5 como 0.5, etc.

En este tipo de datos se utiliza la notación científica, que es igual a la de las calculadoras, el
dígito que se encuentra a continuación de la E representa la potencia a la que se elevará el
número 10 para multiplicarlo por la cantidad a la izquierda de dicha E:

3.0E5 = 3.0 * 10^5 = 3.0 * 100000 = 300000


1.5E-4 = 1.5 * 10^-4 = 1.5 * 0.0001 = 0.00015

Tipo carácter (Char): El tipo Char depende del código de caracteres empleado por la
máquina. El más utilizado es el código ASCII. Una variable o constante tipo Char puede
contener un solo carácter especificado entre apóstrofes. Ejem. 'a' 'M'

Tipo Lógico (Boolean): Pueden tomar dos valores True (verdadero) False (falso). El
identificador estándar boolean define una variable de este tipo.

Tipo Cadena (String): Una cadena (string) es una secuencia de caracteres que tiene una
longitud máxima de 255 caracteres. Los caracteres que componen la cadena se delimitan
con apóstrofes. Ejemplo: 'abcd' longitud de la cadena 4, '' cadena vacía o nula.

Una variable de cadena se define utilizando la palabra reservada String y el tamaño físico
máximo que pueda alcanzar durante la ejecución del programa.
Ejemplo:
Var
Varcad: String[80]; {almacena hasta 80 caracteres}
Nombre: String; {almacena hasta 255 caracteres}

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 Pascal la asignación de un valor a una variable se realiza mediante el símbolo := por


ejemplo:

a:=20; {La variable a toma el valor de 20}


Nombre:= 'Juan Pérez'; {Nombre guardará la cadena "Juan Pérez"}

Reglas:
1. Una variable en el lado derecho de una sentencia de asignación debe tener un valor
antes de que la sentencia de asignación se ejecute, o sea, hasta que un programa le da
valor a una variable, esa variable no tiene valor. Ejemplo: y:= x+1
Si x no tiene un valor antes de ejecutar la línea anterior se produce un error lógico o
ambigüedad. A una variable que no se le ha dado valor se dice que no se ha
inicializado.
2. En la izquierda de una sentencia de asignación solo pueden existir variables. No es
válida la sentencia: SalarioBruto-deducciones:=34.015

 Contador: Consiste en usar la variable como un verificador del número de veces que
se realiza un proceso, observe que para el ejemplo el incremento es de uno en uno,
pero puede ser otro valor siempre y cuando sea constante.
En Pascal, el incremento del variable contador se realiza así:

a:=a+1;

 Acumulador: Consiste en usar la variable como un sumador en un proceso, observe


que el incremento es variable.

En 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 Pascal, para almacenar el resultado de una operación matemática en una variable se


realiza así:

a:= c+b*2/4;
area:= (base*altura)/2; {La variable area almacena el resultado de la expresión que está a la
derecha}

ENTRADA DE DATOS POR TECLADO.

En 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, 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 carácter 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 y int2 son variables 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

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

SALIDA DE DATOS 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 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 está entre paréntesis en la pantalla y
el curso se queda en la misma línea; en tanto que WRITELN, muestra lo que está entre
paréntesis y hace que el cursor pase a la siguiente línea.

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

Tabla 1.7. Operadores Aritméticos.


Operador Significado Ejemplo Resultado
* Multiplicación 2*5 10
/ División real 5/2 2.5
MOD Residuo de la División 5 MOD 2 1
DIV División entera 5 DIV 2 2
+ Suma 7+3 10
- Resta 10 – 6 4

El operador suma (+) realiza la suma de dos operandos numéricos.

5 + 2
3.1 + 2.5

Los resultados son:

7 (valor entero)
5.6 (valor real)

El operador resta (+) realiza la resta de dos operandos numéricos.

5 – 2
3.1 - 2.5

Los resultados son:

3 (valor entero)
0.6 (valor real)
El operador multiplicación (*) realiza la multiplicación de dos operandos numéricos.

5 * 2
3.1 * 2.5

Los resultados son:

10 (valor entero)
7.75 (valor real)

El operador división real (/) realiza la división real entre dos operandos numéricos.

5 / 2
3.1 / 2.5
6 / 2

Sus resultados son:

2.5 (valor real)


1.24 (valor real)
3.0 (valor real)

El operador división entera (div) realiza la división entera entre dos operandos
numéricos enteros.

5 div 2
3.1 div 2.5

El operador división entera (div) no puede operar con operandos numéricos reales. Por
tanto, al evaluar las expresiones de este ejemplo se obtienen los valores:

2 (valor entero)
ERROR (no se puede evaluar; ambos operandos deben ser valores enteros)

El operador módulo (mod) realiza la división entera entre dos operandos numéricos
enteros, devolviendo el resto de la misma.
5 mod 2
3.1 mod 2.5

Al igual que el operador división entera (div), el operador módulo (mod) tampoco puede
operar con operandos numéricos reales. De modo que, en este caso, los resultados son:

1 (valor entero)

ERROR (no se puede evaluar; ambos operandos deben ser valores enteros)

FUNCIONES MATEMÁTICAS.

También se pueden invocar funciones matemáticas de uso común, como se observa en la


tabla 1.8.

Tabla 1.8. Funciones Matemáticas Predefinidas.

Instrucción x Valor Función


devuelto
Abs(x) Real o Integer igual que x Proporciona el valor absoluto de una variable
numérica x.
Sin(x) Real o Integer Real Seno de x.
Cos(x) Real o Integer Real Proporciona el valor del coseno de x.
Sqr(x) Real o Integer Real Cuadrado de x.
Sqrt(x) Real o Integer Real Raíz cuadrada de x, para x>=O.
ArcTan(x) Real o Integer Real El arco cuya tangente es x.
Exp(x) Real o Integer Real La exponencial de x(eX).
Ln(x) Real o Integer Real Logaritmo neperiano de x.

OPERADORES RELACIONALES.

Los Operadores Relacionales (ver tabla 1.9) permiten realizar la comparación entre dos
expresiones aritméticas con la finalidad de tomar una decisión en función del resultado de
dicha comparación; dicho resultado tiene un valor booleano: verdadero o falso.

Tabla 1.9. Operadores relacionales o de comparación.


Operador Significado
> Mayor que
< Menor que
= Igual a
<> Diferente de
>= Mayor o Igual que
<= Menor o Igual que

Las condiciones pueden ser compuestas o complejas a partir de varias condiciones simples
mediante el uso de los operadores lógicos.


OPERADORES LÓGICOS.

Tabla 1.10. Operadores lógicos.

Operador Significado
AND Y Lógico
OR O Lógico
NOT Negación Lógica

Los resultados de evaluar una condición compuesta para el operador AND y para el
operador OR se muestra en la tabla 1.11:

Tabla 1.11. Operador AND y OR.

P Q P AND Q P OR Q
F F F F
F V F V
V F F V
V V V V

En tanto que para el operador NOT, ver tabla 1.12.

Tabla 1.12. Operador NOT.

P NOT P
F V
V F

PRIORIDAD DE LOS OPERADORES.

Cuando en expresiones coincidan diversos tipos de operadores, es necesario seguir unas


reglas de prioridad o jerarquía entre ellos (tabla 1.13). En caso de igual grado de prioridad
la evaluación de las expresiones se hace de izquierda a derecha. Los paréntesis modifican la
jerarquía de operadores por tener éstos la máxima prioridad.

Tabla 1.13.- Tabla de jerarquía de los operadores.


Operador Significado Prioridad
() Paréntesis 1
nf(argumento) Funciones 2
NOT Negación
* Multiplicación 3
/ División
DIV División entera
MOD Residuo
AND Y lógico
+ Suma 4
- Resta
OR O lógico
> Mayor que 5
< Menor que
>= Mayor o igual que
<= Menor o igual que
<> Distinto de
= Igual que


Programas con Estructura Secuencial.

1. Escribir un programa en Pascal que sume dos números:

Por ejemplo, sí a = 4 y b = 3 entonces el resultado de sumar 4 + 3 será 7, este valor es


almacenado en la variable c.

PROGRAM suma;
USES
Crt;
VAR
‘Variables de Entrada
a,b:integer;
‘Variables de Salida
c:integer;
BEGIN
Clrscr;
‘Entrada de Datos
Writeln ('Este programa suma dos numeros:');
Writeln (' ');
Write ('Introduzca un numero: ');
Readln (a);
Write ('Introduzca otro numero: ' );
Readln (b);
Writeln (' ');
‘Proceso
c:=a+b;
‘Salida de Datos
Write ('La suma es = ');
Write (c);
Readkey
END.

2. Dados tres números determinar el promedio.

El promedio de tres número, es el resultado de sumar los tres valores y posteriormente


dividir dicha suma por tres, por ejemplo: Sí n1=10, n2=11 y n3=3, entonces la suma de los
tres valores da como resultado 24, dividiendo por tres se calcula el promedio que es igual a
8.
PROGRAM promedio;
USES
Crt;
VAR
‘Variables de Entrada
n1,n2,n3: integer;
‘Variables de Salida
prom: real;
BEGIN
Clrscr;
‘Entrada de Datos
Write ('Introduzca el primer valor: ');
Readln (n1);
Write ('Introduzca el segundo valor: ');
Readln (n2);
Write ('Introduzca el tercer valor: ');
Readln (n3);
‘Proceso
Prom:=(n1+n2+n3)/3;
‘Salida de Datos
Write ('El promedio= ', prom:0:2);
Write ('pulse una tecla para salir');
Readkey;
END.

3. Determinar la suma de los n primeros números enteros.

En primer lugar suponga que n es 100, observe que la suma de dos términos equidistantes
es constante:

1 , 2 , 3 , 4 . . . . . . . . . 97 , 98 , 99 , 100

1+100 = 2+99 = 3+98 = 4+97 = ..... = 101

Con los 100 números se pueden formar 50 pares, de forma que la solución final viene dada
por el producto 101 * 50 = 5050, de esta forma si n es igual a 100, entonces 101 es (n+1) y
50 es n/2; por lo tanto la suma de los n primeros números enteros es s = n * (n+1) / 2.

PROGRAM suma_n;
USES
Crt;
VAR
‘Variables de
d Entrada
n:real;
‘Variables de
d Salida
s:real;
BEGIN
N
clrscr;
‘Entrada de Datos
Write('n:');;
Read(n);
‘Proceso
s:=(n+1)* *n/2;
‘Salida de Datos
D
Write('La suma=
s ',s);
Readkey
END.

4. Da
adas la basee y la altura de un triáng
gulo rectánggulo, determ
mine el área y el perímettro
del triángulo.

perficie de un
La sup u triángulo se obtiene multiplicando
m o la base poor la altura (ddonde la altuura
es un segmento perpendicula
p ar que partee de la basse hasta lleggar al vértice opuesto)) y
dividieendo en dos..

Area= basee * altura / 2

Y el cálculo
c del perímetro
p es el resultado de sumar toodos los ladoos
del tríaangulo, así:

Perímetro=
= base + altu
ura + hipoten
nusa

PROGR
GRAM Area;
USES
Crt;
VAR
‘Variables de
d Entrada
altura,base
e:Real;
‘Variables de
d Salida
area, ,perím
ímetro:Real;
‘Variables de
d Proceso
hipotenusaa:Real;
BEGIN
N
Clrscr;
‘Entrada de Datos
Write('Ingrrese la base:
e:');
Readln(basse);
Writeln('Ing
ngrese la altuura:');
Readln(altu
tura);
‘Proceso
area:=(basse*altura)/2;2;
hipotenusaa:= sqrt(sqr((base)+sqr(a(altura));
perimetro::=base+altur ura+ hipotenu
nusa;
‘Salida de Datos
D
Writeln('Arrea del triáng
gulo= ',area
a:2:2);
erimetro del triángulo= ',perimetro:2
Writeln('Pe , 2:2);
Readkey
END.

5. Esscribir un pro
ograma que calcule el volumen
v de uuna esfera:

El volu
umen de unaa esfera vien
ne dado por la
l ecuación:

3
Volumen = 4/3 * PI * radio
r

PROGGRAM volum men;


USES
Crt;
VAR
‘Variables de
d Entrada
radio:real;
‘Variables de
d Salida
‘volumen:rreal;
N
BEGIN
Clrscr;
‘Entrada de Datos
Writeln ('Es
Escriba el rad
dio: ');
Readln (rad
adio);
‘Proceso
volumen:= =(4/3)*pi*(raradio*radio*rradio); {La cctte pi es 3.11415926536}
6}
‘Salida de Datos
D
Write ('Vollumen de la esfera=');
Write(volum
umen:0:2);
Readkey
END.

6. Escribir un programe en Pascal que resuelva una matriz 2 x 2.

Resoviendo por determinantes, se tiene:

a b
Se sabe que un determinante se representa como:
c d

Este se calcula de la siguiente manera: a*d – b*c

ax  by  c
Sea el sistema: 
dx  ey  f

El valor de x está dado por:

c b a c
f e d f
x e y
a b a b
d e d e
Finalmente:

x=((c*e)-(b*f))/ ((a*e)-(b*d));
y=((a*f)-(c*d))/ ((a*e)-(b*d));

A continuación se presenta la programación en Pascal y en Lenguaje C.

PROGRAM determinante;
USES
Crt;
VAR
‘Variables de Entrada
a,b,c,d,e,f:real;
‘Variables de Salida
x,y:real;
BEGIN
Clrscr;
‘Entrada de Datos
Writeln ('Introduzca los valores de la matriz 3x3');
Writeln (' ');
Write ('a: '); Readln (a);
Write ('b: '); Readln (b);
Write ('c: '); Readln (c);
Write ('d: '); Readln (d);
Write ('e: '); Readln (e);
Write ('f: '); Readln (f);
‘Proceso
x=((c*e)-(b*f))/ ((a*e)-(b*d));
y=((a*f)-(c*d))/ ((a*e)-(b*d));
‘Salida de Datos
Writeln ('x= ', x:0:2, ' y= ', y:0:2);
Readkey
END.

7. Dados L, M, N, O cuatro números enteros positivos de un sólo digito, calcule la suma


de esta manera:
L M
+ N O
I J K

Esta es la forma tradicional en que se realiza la suma, por ejemplo: realizar la suma de 57 +
69.
Esto significa que L=5, M=7, N=6 y O=9, el valor de K resulta de la suma de M+O que es
igual a 16, pero como K es de un solo dígito entonces se tiene que separar en dos partes (la
unidad y la decena); la unidad obtenida es el valor de K y la decena es el valor que se
acarrea para la próxima suma. El valor de J es el resultado de sumar L + N y el valor
acarreado, el resultado es 12; de igual manera se hace el procedimiento anteriormente
descrito y se obtiene para J el valor de 2 y para I el valor de 1.

PROGRAM suma;
USES
Crt;
VAR
‘Variables de Entrada
l,m,n,o:integer;
‘Variables de Salida
i,j,k:integer;
BEGIN
clrscr;
‘Entrada de Datos
Write('l:'); Readln(l);
Write('m:'); Readln(m);
Write('n:'); Readln(n);
Write('o:'); Readln(o);
‘Proceso
k:=((m+o) mod 10);
j:=((l+n) + ((m+o) div 10)) mod 10;
i:=((l+n) + ((m+o) div 10)) div 10;
‘Salida de Datos
Writeln ('i=', i);
Writeln ('j=', j);
Writeln ('k=', k);
Readkey
END.

8. Escribir un programa en Pascal que calcule el sueldo semanal de un trabajador a


partir del número de horas trabajadas por día y las siguientes tarifas:

6000 Bs/hora Turno de mañana


8000 Bs/hora Turno de noche
10000 Bs/hora Turno de días festivos

PROGRAM salario;
USES
Crt;
VAR
‘Variables de Entrada
t_manana, t_noche, t_festivos:integer;
‘Variables de Salida
total:real;
BEGIN
Clrscr;
‘Entrada de Datos
Write ('Introduzca las horas trabajadas por dia, en cada turno, ');
writeln (' para calcular el sueldo semanal.'); Writeln ('');
Write ('Horas del turno de mañana: '); Readln (t_manana);
Write ('Horas del turno de noche: '); Readln (t_noche);
Write ('Horras del turno
o de dias fesstivos: '); R Readln (t_feestivos);
Writeln ('');
);
‘Proceso
total:=(600
000 * t_mana ana) + (800000 * t_noche) e) + (10000 * t_festivos)
s);
‘Salida de Datos
D
Write ('El sueldo
s sema anal es de: ',ttotal:0:2);
Readkey
END.

9. Da
ado un par de
d puntos x1
1,y1 y x2,y2
2 que conforrman un seggmento de línnea recta y un
valor xi, deterrminar el va
alor correspo
ondiente a
yi (interpolaciión lineal) y la distanciia entre el
pu
unto x1,y1 y el
e punto xi,yyi.

La intterpolación consiste en hallar un dato dentro


de un intervalo en
n el que cono
ocemos los valores
v en
los exttremos.

La fórrmula más simple de interpolación


n es la de
conecttar dos pun
ntos con una
u línea reecta. Este
métod
do, llamado Interpolació
I ón Lineal, se
s muestra
en la figura
f

Usand
do triánguloss semejantes, se tiene:

Y  Y1
Y  Y2  Y

Y1
X  X1
X  X2  XX1

Que see puede reorrdenar como:

Y  Y1 
Y2
Y  Y1
* X  X1
X  X1
X2

Para el
e cálculo de la distancia entre el pun
nto x1,y1 y eel punto xi,yii, se utiliza lla fórmula:
d Y  Y12  X  X12

PROGRAM interpolar;
USES
Crt;
VAR
‘Variables de Entrada
x1,y1,x2,y2,x: real;
‘Variables de Salida
y,d: real;
BEGIN
Clrscr;
‘Entrada de Datos
Write('x1:');
Readln(x1);
Write('x2:');
Readln(x2);
Write('y1:');
Readln(y1);
Write('y2:');
Readln(y2);
Write('x:');
Readln(x);
‘Proceso
y:= (y2-y1)/(x2-x1)*(x-x1)+y1;
d:=sqrt((y-y1)*(y-y1)+(x-x1)*(x-x1));
‘Salida de Datos
Writeln('el valor de y=', y:0:2);
Writeln(' la distancia=', d:0:2);
Readkey
END.

10. Dada una cantidad de bolívares indique cuántas monedas de 500, 100, 50, 20 y 10
bolívares representan esa cantidad.

Las monedas se deben ir cambiando en orden decreciente, por ejemplo si son 13885 Bs, se
obtienen 27 monedas de 500 y queda como resto 385 Bs., que convertidos en monedas de
100 son 3 y quedan 85 Bs, al final queda 1 moneda de 50, 1 de 20, 1 de 10 y 5 bolívares
restantes obtenidos del residuo de la última división.
PROGRAM monedas;
USES
Crt;
VAR
‘Variables de Entrada
bs: integer;
‘Variables de Salida
m500, m100, m50, m20, m10: integer;
‘Variables de Proceso
r:integer;
BEGIN
Clrscr;
‘Entrada de Datos
Write ('cantidad de bolivares:');
Readln (bs);
‘Proceso
m500:=bs div 500;
r:= bs mod 500;
m100:=r div 100;
r:=r mod 100;
m50:=r div 50;
r:= r mod 50;
m20:=r div 20;
r:= r mod 20;
m10:=r div 10;
r:= r mod 10;
‘Salida de Datos
Writeln ('monedas de 500= ', m500);
Writeln ('monedas de 100= ', m100);
Writeln ('monedas de 50= ', m50);
Writeln ('monedas de 20= ', m20);
Writeln ('monedas de 10= ', m10);
Writeln ('monedas restantes= ', r);
Writeln ('pulse una tecla para salir');
Readkey
END.

11. Convertir un número real, que representa horas, a su equivalente en horas, minutos,
segundos y décimas de segundos.

PROGRAM Convertir;
USES
CRT;
VAR
num: real;

h:real
‘Variables de Salida
min,seg,dec: real;
BEGIN
Writeln('Ingresar el Número que represente las Horas');
Readln(num);
‘Proceso
h:=num;
min:=num*60;
seg:=num*3600;
dec:=num*36000;
‘Salida de Datos
Writeln('La Equivalencia en horas es : ',num:10:2);
Writeln('La Equivalencia en minutos es : ',min:10:2);
Writeln('La Equivalencia en segundos es: ',seg :10:2);
Writeln('La Equivalencia en décimas es : ',dec :10:2);
Readkey;
END.


EJERCICIOS PROPUESTOS.

Escribir las siguientes expresiones matemáticas en forma de expresiones de computación,


donde A, B, C, D, E, F, R, P, Z variables.

X Z
a) R  Z ( X  M ) Sen( X )
2X  Z

 B  ( A  B) 2  4 AC
b) P 
2B

1
c) D ABSen(C )
2

B
d) Z  A 
CD

A B
e) F 
CD

B
A
f) E  C
E
D
F

Suponga que a = 49, b = 5, c = 3 evalúe:

a) a mod b * c + 1 _____

b) a mod (b * c) +1 _____

c) 24 / c * 4 _____

d) a div b mod 2 _____


e) 7 + 2 div c -1 _____

f) 48 / (c * 2) *4 _____

g) 7 – a mod (3 + b) _____

h) a mod – b *c _____

i) b div c mod a _____

Suponga que Indi, Com y Prueba son variables lógicas, ¿Qué valor se le asigna a cada
variable cuando se evalúa la expresión:

Indi  5 > 10 _____

Com  ‘A’ < ‘B’ _____

Prueba  Indi AND Com _____

Si Num  3 AND Indic  true, evalúe:

a) (1 > 0) AND (2 = 2) _____

b) Not Indic _____

c) (0 < 1) OR (0 > 1) _____

d) (5 <= 6) AND (2 > 3) _____

e) Not (2 <> 2) _____


f) (Num = 1) OR (5 >= 4) _____

g) Not (Num <= 3) _____

Sean las siguientes expresiones lógicas:

a) (Edad >= 18) AND (Calif >15)

(Edad >= 18) OR (Calif >15)

Evalúe para cada par de datos las expresiones anteriores:

Edad Calif a) b)
12 18
19 12
19 16
12 12

Sea la siguiente expresión lógica:

(Edad >= 18) Y ((Calif1 > 15) O (Calif2 > 15))

Evalúe para cada par de datos la expresión anterior:

Edad Calif1 Calif2 Resultado


12 18 15
19 12 17
19 16 10
12 12 12


Ejercicios propuestos de estructura secuencial.

1.- Indique el tipo de dato que se puede asignar a los siguientes datos: nombre, apellido,
edad, estatura, estado civil, sexo, sueldo, promedio, porcentaje, código, impuesto.
2.- Dados dos números, realizar la operación aritmética según los símbolos +, -, *, /.
3.- Realice el cálculo del área y del perímetro del círculo.
4.- Dadas las longitudes de los lados de un triángulo, determine el área del triángulo
basándose en el semiperímeto: Área  p * (p - a) * (p - b) * (p - c) donde p=(a + b + c)/2
5.- Para determinar el área de un polígono de vértices conocidos se tiene; por ejemplo, si es
de 3 lados:
- A = (½) * (x1*y2 + x2*y3 + x3*y1 - x1*y3 - x3*y2 - x2*y1)
x1 y1 -
 1  x2 y2 - Calcular el área de un polígono.
A 
 2  x3 y3 
x1 y1 

6.- En una caja de dimensiones L x L x L se introduce una pelota de radio L/2. Determinar
el volumen vacío entre la caja y la esfera.
4
Vol cubo  L3 Vol esfera   * r 3
3
7.- En una caja de dimensiones L x L x h se introduce un cilindro de radio L/2 y altura h.
Determinar el volumen vacío entre la caja y el cilindro.
Vol cubo  L * L * h Vol cilindro   * r 2 h
8.- Realice el cálculo del determinante y de los valores de x, y, z; para un sistema de tres
ecuaciones y tres incógnitas.
9.- Dado un valor x de tres digitos, deteminar el promedio de sus dígitos y es la unidad
igual a la decena.
10.- Dados L, M, N tres números enteros positivos de un sólo digito, calcule el producto de
un número de dos cifras por un número de una cifra de esta manera:

L M
* N
I J K

11.- Convertir de días a años, meses, días.


12.- Una temperatura Celsius (centígrados) C puede ser convertida a una temperatura
9
equivalente F (Fahrenheit) de acuerdo a la siguiente fórmula: f   c  32
5
13.- Realice la conversión de horas a minutos y segundos.
14.- Convertir de segundos a horas en formato de 24 horas, minutos, segundos. Por ejemplo
si el tiempo = 47000 s se debe convertir a 13 horas, 3 minutos, 20 segundos.
15.- Convertir una medida dada en pie a sus equivalentes en: a) yardas; b) pulgadas; c)
centímetros, y d) metros (1 pie = 12 pulgadas, 1 yarda = 3 pie, 1 pulgada = 2.54 cm, 1 m
= 100 cm). Leer el número de pie y mostrar el número de yardas, pies, pulgadas,
centímetros y metros.
16.- Dados 4 valores u, d, c, m valores enteros de un sólo digito almacenarlo en una
variable nro de tipo entero.
u es la unidad, d es la decena, c es la centena, m es la unidad de mil.
nro es el número entero completo.
17.- Hallar las raíces de una ecuación de segundo grado (ax2 + bx + c) = 0, suponiendo que
las raíces son reales o iguales a cero.
18.- Determinar el tiempo total, promedio y costo total de dos llamadas.
19.- Calcular el costo del cristal y el costo de las láminas de aluminio de una ventana. Para
ello se tiene como dato de entrada la siguiente información: ancho y largo de la ventana.
Suponga que el metro cuadrado del cristal le cuesta 5000 Bs. y el metro lineal del
aluminio cuesta 3000 Bs.
20.- Calcular el total de la compra de tres camisas, las cuales tienen un 16.5% de descuento
pero tienen un recargo de 14% de impuesto.
21.- Dado el nombre, sueldo por hora, horas trabajadas y porcentaje de deducción de un
empleado. Determine y muestre el sueldo básico, el monto de la deducción y el sueldo neto
del empleado.

También podría gustarte