Program Integer_Variable_Demo - Instituto Tecnológico de Durango

Anuncio
INSTITUTO TECNOLÓGICO DE DURANGO
PROGRAMACIÓN PARA INGENIERÍA
UNIDAD III.- FUNDAMENTOS DEL LENGUAJE.
OBJETIVO DE LA UNIDAD.- Que el alumno conozca e identifique: la estructura general de un programa,
las palabras reservadas, los identificadores, los diferentes tipos de datos, constantes y variables (sintaxis),
operadores y operandos, así como, la evaluación de las expresiones aritmético-lógicas. También diseñará,
editará, compilará y ejecutará programas básicos.
3.1 Entorno del lenguaje.Programación Lineal.- Los lenguajes de programación lineal (BASIC, COBOL Y FORTRAN) no tenían
facilidad para reutilizar el código existente de programas. De hecho se duplicaban segmentos de
software cada vez más en muchos programas. Los programas se ejecutaban en secuencias lógicas,
heciendo la lógica difícil de comprender. El control de programas era difícil y se producían continuos
saltos a lo largo del referido programa. Aún más, los lenguajes lineales no tenían capacidad de controlar
la visibilidad de los elementos llamados datos.
Programación Modular.- El soporte más elemental de la programación Modular llegó con la aparición de
la subrutina. Una subrutina ha creado una secuencia de instrucciones a las que se les da un nombre
independiente; una vez que se ha definido, la subrutina se puede ejecutar simplemente incluyendo el
nombre del programa siempre que se requiera. Las subrutinas proporcionan una división natural de las
tareas; diferentes programas las utilizan. Aunque las subrutinas proporcionan el mecanismo básico de la
programación Modular, se necesita mucha disciplina para crear software bien estructurado. Sin esta
disciplina, es fácil escribir programas compilados y tortuosos difíciles de modificar y comprender, así
como imposible de mantener. Esta ha sido la panorámica durante muchos años en el desarrollo del
software.
Programación Estructurada.- Un concepto importante en campo de la programación Estructurada:
Abstracción ya que la abstracción se puede definir como la capacidad de examinar algo sin preocuparse
de los detalles internos. En un programa estructurado, es suficiente conocer que un procedimiento sea
fiable, para que se pueda utilizar sin tener que conocer cómo funciona su interior. Esto se conoce como
una abstracción funcional y es el núcleo de la programación estructurada. Hoy casi todos los lenguajes
de programación tienen construcciones que facilitan la programación estructurada.
3.2 Estructura general de un programa (encabezado, declaraciones, cuerpo principal).
El programa será la manera como planearemos a la computadora nuestro algoritmo para resolver un
problema.
Un programa es un conjunto de instrucciones que se ejecutan por la computadora y este programa consta de 3
partes principales.
 Encabezado.
 Declaración de variables, constantes y tipos (funciones y procedimientos si los hay).
 Cuerpo del programa principal.
1
EJEMPLO:
Program
Integer_Variable_Demo;
VAR
Count : integer;
X, Y : integer;
BEGÍN
X:= 12;
Y:= 13;
Count := X + Y;
Writeln (´El valor de X es ´, X:4);
Writeln (´El valor de Y es ´, Y:5);
Writeln (´Y la suma es ´, Count:6);
END.
Resultados de la ejecución:
El valor de X es 12
El valor de Y es 13
Y la suma es 25
En este caso, el encabezado del programa es:
Program
Integer_Variable_Demo;
Este nos permite identificar internamente el programa, y puede ser omitido sin efectos secundarios en la
ejecución del programa.
La declaración de variables:
VAR
Count : integer;
X, Y : integer;
En esta parte, por medio del declarativo var estamos declarando 3 variables, Count, X e Y, las tres son del
tipo entero (integer) esto es, sólo podrán tomar valores enteros que vayan de –32768 hasta 32767. La regla
para declarar variables es: Después del declarativo var, se forma una lista de variables separadas por comas,
y al terminar la lista se incluyen dos puntos (:) para luego indicar el tipo al que pertenecerán. Es posible
tener más de un renglón de declaraciones de variables y cada uno de estos, como en casi todos los casos en
pascal deben terminar con punto y coma (;). La declaración de otro tipo de variables se hace como lo hemos
2
indicado, o sea, una lista de variables separadas por comas (,) seguidas por dos puntos (:) y el tipo de variable
que serán para terminar con punto y coma (;).
El programa principal en este caso es:
BEGÍN
X:= 12;
Y:= 13;
Count := X + Y;
Writeln (´El valor de X es ´, X:4);
Writeln (´El valor de Y es ´, Y:5);
Writeln (´Y la suma es ´, Count:6);
END.
El programa principal es donde indicaremos que operaciones ejecutar, y se delimita por los declarativos
Begín y End, este terminado con un punto (.).
En la primera instrucción (X:=12) indicamos que a la variable X se le asigne el valor 12, por medio del
operador de asignación (:=) dos puntos igual, en la tercera instrucción se efectúa una suma y el resultado se
almacena en la variable Count (Count:=X+Y).
Aparece en este primer programa la instrucción Writeln, por medio de esta es posible desplegar en el
monitor de la computadora valores de variables o letreros, lo que se desee desplegar se pondrá en una lista
separada por comas, y si es un letrero se deberá poner entre apostrofes.
3.3 Palabras reservadas e identificadores, variables y constantes.- Las palabras reservadas o palabras clave
son aquellas que tienen un significado fijo y predeterminado para el compilador (de Pascal) y que no puede
ser cambiado por el programador. Las palabras reservadas de Pascal estándar son las siguientes:
And, end, nil, set, array, file, not, then, begín, for, of, to, case, function, or, type, const, goto, packed, until,
div, if, procedure, var, do, in program, while, downto, label, record, with, else, mod, repeat.
Las palabras reservadas de Turbo Pascal (5.5, 6.0 y 7.0) son las siguientes:
And, file, not, then, array, for, object, to, asm, function, of, type, begin, goto, or, unit, case, if, packed, until,
const, implementation, procedure, uses, constructor, in, program, var, div, inherited (7.0), record, while, do,
inline, repeat, with, downto, interface, set, xor, else, label shl, end, mod, shr, nil, string.
Los identificadores estándar representan constantes, variables, tipos de datos, procedimientos, funciones, etc.
Se diferencian de las palabras reservadas en que pueden ser redefinidos por el usuario aunque esta práctica no
es recomendable, para esto se tienen los identificadores definidos (diseñados) por el usuario.
3.4 Representación de datos básicos y 3.5 Declaración de variables y constantes.- Tipos de datos.- Al
analizar un problema, determinamos que existen varios datos, y no damos el mismo trato a todos ellos, por
ejemplo no podemos restar dos nombres de personas, sin embargo si podemos hacerlo con la edad de estas.
3
El tipo al que corresponde un dato, determina el rango de valores que se le pueden asignar y las operaciones
que se pueden hacer con ellos.
Existen en los lenguajes de programación diferentes tipos de datos predeterminados y particularmente
en Pascal los datos se dividen en:
Numéricos
Alfanuméricos
Boléanos
Datos numéricos.- Los datos numéricos pueden tomar valores numéricos y es posible hacer operaciones
matemáticas con ellos, sin embargo para el lenguaje de programación Pascal, es necesario especificar algunas
características adicionales en los tipos de datos numéricos, y específicamente para Turbo Pascal, los tipos de
datos numéricos se dividen en: Integer, Byte, Real, Shorting, Word, Longint, Single, Double, Extended.
Ejemplo de enteros: 34
567
987
Ejemplo de reales:
56.89
987.6
1234.0
Enteros: rango de –32768 a 32767
ocupa 2 bytes en memoria.
Reales: rango de 10 a la –38 hasta 10 a la 38 ocupa 6 bytes en memoria.
Datos alfanuméricos.- Permiten representar nombres, direcciones, características, etc. No es posible hacer
operaciones matemáticas con ellos. Deben representarse siempre entre comillas. Por ejemplo:
´Instituto Tecnológico de Durango´
´x25-Z2´
´91040824´
Datos Boléanos.- Permiten representar respuestas simples, producto de la comparación entre dos datos de
tipo numérico o alfanumérico. Sólo permite dos tipos de respuesta (cierto o falso). Por ejemplo:
13 = (14-1)
15 < 17
´tu´ = ´Tu´
´Hola´=´Lola´
Cada uno de los datos identificados en el análisis del problema es de cierto tipo, pero es necesario que el
valor de ese dato pueda ser almacenado, para consultarlo y utilizar su valor actual o para cambiar su valor en
algún momento. En el problema de venta de camisas, el precio se establece de acuerdo al número de camisas
compradas, entonces para saber a que precio venderemos debemos consultar el valor que tiene el dato de
camisas compradas, y entonces se determina el precio de venta.
Esto nos lleva a considerar como es necesario tener un lugar donde poner el valor actual de un dato, y en una
computadora, ese lugar sólo puede estar en la memoria principal. La memoria tiene espacios consecutivos y
a cada uno de ellos corresponde una dirección, digamos de 0 hasta la cantidad de memoria disponible, pero
para un programador el tratar con las direcciones se convierte en una tarea difícil de llevar, por lo que se
auxilia del uso de identificadores (que para este fin se conocen y llamaremos variables(operandos)).
Operadores y operandos.- (operandos= variables y constantes)
Los operadores son elementos que relacionan de diversas formas los valores contenidos en una o más
variables. Los resultados de esta relación puede ser numéricos o lógicos. Existen los siguientes tipos
de operadores:
Matemáticos.- Permiten hacer operaciones matemáticas y el resultado de esta operación es siempre
numérico y puede asignarse a una variable. Son los siguientes:
+ (suma), - (resta), * (multiplicación), / (división tradicional, regresa el cociente entero con decimales),
MOD (división, regresa el residuo), DIV (división, regresa el cociente sin decimales), ( ) paréntesis, altera el
orden de precedencia en la ejecución de operaciones.
Relacionales.- Permiten comparar los valores entre si y obtener una respuesta de esta comparación (de tipo
lógico), este resultado no puede asignarse a una variable. Son los siguientes:
4
< (menor), > (mayor), > (mayor o igual), > (menor o igual), = (igual), <> (diferente)
Lógicos.- Permiten comparar dos valores lógicos, pueden provenir de una comparación relacional.
Son los siguientes: AND, OR, NOT
Tabla de verdad del AND
Tabla de verdad del OR
Tabla de verdad del NOT
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
En el caso del operador lógico AND es necesario que se cumplan las dos condiciones para que la respuesta
(salida sea verdadera), en el caso del operador lógico OR con cualquiera de las dos condiciones que se
cumpla se obtendrá la salida verdadera y en el caso del operador lógico NOT significa que la salida es lo
contrario de lo que entró.
Ejemplos:
(a>b) and (c>a)
(a>b) or (c = d)
not (b = c)
Operandos.- Son los elementos que se relacionan (variables o constantes).
Constante.- Dato numérico o alfanumérico que permanece invariable durante la ejecución de un programa.
También ocupa un espacio en la memoria y se almacena temporalmente. Una constante, por tanto, es un
identificador con un valor fijo a lo largo del programa. Las constantes pueden ser de cinco tipos diferentes
dependiendo del tipo de dato que representen (entero, reales, boléanos, de caracteres y cadenas de
caracteres). Las constantes sirven para hacer programas más generales y para ganar rapidez, claridad y
legibilidad. Siempre es mejor utilizar la constante PI que el número 3.1416, ya que así el programa es más
fácil de leer. Las constantes no se pueden modificar a lo largo del programa, ya que si un de ellas cambiase,
ya no sería constante, es por esto que estos datos pueden pasarse a variables para poder hacer un mejor uso de
ellos en el programa, dependiendo del enunciado.
SINTAXIS
CONST
(identificador) = constante (valor);
(identificador) = constante (valor);
DIAGRAMA
CONST
identificador
=
;
constante
;
EJEMPLO:
CONST
Alfa = 5;
PI = 3.1416;
BETA = - Alfa;
5
B = TRUE;
MENSAJE = „EL VALOR DE PIES:‟;
Variable.- Las variables son los datos que cambian o evolucionan a lo largo de un programa. Las variables
son los recipientes de los cuales dispone el programador para almacenar la información en la memoria de la
computadora. Las variables pueden estar vacías, y en ese caso están indefinidas. Cuando se coloca un valor
en una variable, permanece en ella hasta que es sustituido por otro, o bien hasta que la variable sea borrada
por el programador. Una variable recién creada tiene un valor indefinido y es misión del programador
colocar o modificar sus valores. Las variables se crean mediante una declaración y mediante una sentencia
de asignación se varía su contenido, es por esto que las variables se pueden clasificar de acuerdo a su uso o
tipo de asignación en:
DE TRABAJO.- Variable que recibe el resultado de una operación matemática completa y que se usa
normalmente dentro de un programa.
Ejemplo:
leer a,b,c;
Sumar = a+b+c/3;
Imprimir sumar;
CONTADOR.- Forma que toma una variable y que sirve para llevar la cuenta de las operaciones o procesos
realizados con incrementos constantes. Generalmente es de uno en uno.
Ejemplo:
A = 0;
Leer r,t;
C = r + t;
A = A +1;
Si a < 10 entonces ir al paso 2
Imprimir c, a;
ACUMULADOR.- Sirve para llevar la suma acumulativa de una serie de valores que se van leyendo o
calculando progresivamente.
Ejemplo:
c = 0, a = 0;
Leer b;
A = a + b;
C = c +1;
Si c < 10 entonces ir al paso 2
Imprimir a;
INDICADOR.- (bandera).- Recibe un determinado valor cuando se cumple cierta condición o sucede cierto
evento dentro de un programa. Se le conoce también como bandera o centinela.
Ejemplo:
leer a
Si a < 15 entonces b = 1 sino b = 2;
Imprimir b;
ASIGNACIÓN SIMPLE.- La variable recibe un valor determinado en forma directa, no depende de
ninguna operación matemática.
Cada variable debe tener un nombre y la formulación de este nombre debe seguir estas reglas que son las
siguientes: (reglas para los identificadores estandar)
 Deberá empezar con una letra
 No se puede utilizar una palabra reservada (se consultarán en un texto de Pascal)
6
 No deberán tener caracteres especiales excepto subrayado (_)
 No debe tener espacios en blanco
 Puede tener una longitud de hasta 127 caracteres, siendo significativos sólo los 63 primeros.
 En Pascal no existe diferencia entre mayúsculas y minúsculas
 Puede utilizar letras A..Z, a..z, dígitos 0..9
Para crear los identificadores nemónicos se toman en cuenta las reglas anteriores y se agregan las
siguientes:
 Se formula una frase
 Se selecciona de la frase las dos palabras más significativas
 Se toman las cuatro primeras letras de cada palabra y si la quinta letra es vocal se considera también.
 Se puede separar por el guión de subrayado
Ejemplo: Sueldo por quincena
Se toma:
sueldo
quincena
Se formula: suel
quin
Quedaría:
suelquin
o
(frase)
suel_quin
NOTA: El programador es quien elige el nombre del identificador y si se escoge adecuadamente según las
reglas anteriores, puede ser de gran ayuda para la escritura y comprensión del programa. Las constantes
deben definirse al empezar un programa y las variables deben declararse del mismo modo al iniciar el
programa.
SINTAXIS DE VARIABLES:
VAR
(identificador), ....(identificador): tipo;
(identificador), ... (identificador): tipo;
DIAGRAMA
VAR
identificador
,
;
:
tipo
;
EJEMPLO:VAR
Maxi, mini : real;
Verdad, seguir : bolean;
Recorrer : integer;
NOTA: En el momento que se declara una variable, la computadora asigna a dicha variable un lugar en su
memoria, el orden es diferente, pero no se puede declarar una misma variable más de una vez en el mismo
programa principal, porque no puede tener asignadas dos posiciones de memoria diferentes. Para poder
7
utilizar las variables hay que asignarles un valor mediante una instrucción de asignación, que generalmente
se suele llamar sentencia de asignación.
3.6 Expresiones aritmético/lógicas y Proposición de asignación.- Proposición de asignación puede
llamarse también sentencia de asignación, su símbolo es := la cual permite almacenar en una variable el
contenido de otra variable o constante o el resultado de una expresión siempre que sean del mismo tipo.
El operador de asignación es := y el formato es:
Ejemplo:
edad := 45
N := n +1
variable1 := valor, variable2 ó expresión
asigna el valor de 45 a la variable edad
el valor de la variable N se incrementa en 1
Las sentencias de asignación tienen dos misiones; por un lado halla el resultado o valor de la expresión que
está a la derecha del signo :=, y por otro lado almacena este valor en la variable representada por el
identificador de la izquierda (variable).
Una expresión no es más que una “regla” para “calcular” un valor, consiste en uno o más operandos
combinados mediante algún operador. Todas las expresiones se evalúan siguiendo ciertas reglas de
precedencia (jerarquía) de los operadores.
REGLAS PARA DESARROLLAR (EJECUTAR/EVALUAR) UNA EXPRESIÓN
A).- Se ejecutan las expresiones de acuerdo a la precedencia de los operadores.
Precedencia
Operadores
4
( ), NOT
3
*, /, DIV, MOD, AND
2
+, -, OR
1
<, >, >, <, =, <>
B).- Se va a evaluar de izquierda a derecha tomando en cuenta la regla a).
C).- Siempre se desarrolla de acuerdo a los paréntesis, el más interno se desarrolla primero, y se siguen
tomando en cuenta las reglas anteriores.
FUNCIONES NUMÉRICAS, TRIGONOMÉTRICAS (BIBLIOTECA).- Turbo Pascal contiene funciones
estándar (incorporadas o predefinidas) en la unidad System. Estas funciones están declaradas en dicha
unidad, en consecuencia no necesitamos declararlas ni ninguna sentencia uses cuando se desee utilizar
alguna de ellas.
Funciones aritméticas:
Abs
ArcTan
Cos
Exp
Frac
Int
Pi
Sin
Sqr
Sqrt
Devuelve el valor (positivo) absoluto de su argumento
Arco tangente expresado en radianes
Coseno del argumento en radianes
Potencia exponencial del argumento (e )
Parte decimal de un número real
Parte entera del argumento
Valor de Pi (3.141592...........)
Seno del argumento
Cuadrado del argumento
Raíz cuadrada del argumento
8
Ejemplos:
Z:= abs(x) *2;
f:=sqr(3.45);
r:=sqrt(1.2345)
etc.
Funciones de transferencia:
Chr
Devuelve el carácter correspondiente al código ASCII
Ord
Número ordinal de un tipo ordinal
Round
Redondea un valor real a entero largo
Trunc
Trunca un valor de tipo real a entero
Ejemplos:
Round(5.449)
devuelve 5
Trunc(-3.14) devuelve -3 Trunc(6.5) devuelve 6
9
Descargar