Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
a la
Programación
Nivel 1
Universidad Central de Venezuela, Facultad de Ciencias, Edif. III, Av. Los Ilustres, Los Chaguaramos, Caracas, Venezuela
Tlf. (58 212) 605-13-14 693-47-38 (telfax) correo ceneac@ciens.ucv.ve www.ceneac.com.ve
CENEAC – Introducción a la Programación con Nivel 1.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor.
CENEAC – Introducción a la Programación con Nivel 1.
INDICE
1. Introducción .......................................................................................................................................... 1
1.1. Conceptos Básicos ..................................................................................................................... 1
1.2. Definición de los elementos presentes en un Algoritmo.............................................................. 3
Tipos de datos............................................................................................................................. 3
Constantes, Variables y Expresiones .......................................................................................... 4
Acciones Básicas ........................................................................................................................ 7
Formas de Composición de Acciones ......................................................................................... 8
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor.
CENEAC – Introducción a la Programación con Nivel 1.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor.
CENEAC – Introducción a la Programación con Nivel 1.
1. INTRODUCCIÓN
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 1
CENEAC – Introducción a la Programación con Nivel 1.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 2
CENEAC – Introducción a la Programación con Nivel 1.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 3
CENEAC – Introducción a la Programación con Nivel 1.
Constantes
Son valores que no cambian durante la ejecución del algoritmo (programa).
Ejemplos de constantes según su tipo de dato:
Tipo Ejemplos
Entero 0 345 -124 200 32456 -9799
Real 0.1 12.25 -3.25 350.0 -123.3 1234.5643
Lógico verdadero falso
Carácter "A" "X" "1" "$" "7"
String "Casa" "18 de julio" "US$ 300.7"
Variables
Una variable es un objeto cuyo valor puede cambiar durante el desarrollo del algoritmo o la ejecución del programa. Cada
variable tendrá entonces asociado un tipo de dato, pudiendo sólo tomar valores de ese tipo.
Los nombres de las variables, a veces conocidos como identificadores, pueden constar de varios caracteres alfanuméricos
(letras y números) de los cuales el primero debe ser una letra. Ejemplos de nombres válidos de variables: A3, NOMBRE,
CONTADOR, SW.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 4
CENEAC – Introducción a la Programación con Nivel 1.
Los nombres elegidos para las variables del algoritmo (programa) deben ser significativos y tener relación con el objeto que
representan, para así facilitar la lectura del mismo.
Expresiones
Las expresiones son combinaciones de constantes, variables, operadores y paréntesis. Cada expresión al ser evaluada
toma un valor que se determina aplicando los operadores a los valores de las constantes y variables implicadas en la
expresión. Dependiendo del valor resultante de evaluar la expresión se tiene el tipo de la expresión. Así, encontramos
expresiones aritméticas (resultado entero o real), expresiones lógicas (resultado lógico) y expresiones de tipo carácter
(resultado carácter o string).
Expresiones Aritméticas
A continuación se presentan los diferentes operadores aritméticos que se pueden utilizar para la construcción de
expresiones aritméticas, indicando el tipo de operando que admiten y el tipo del resultado de la expresión.
Operador Significado Tipo de Operandos Tipo de Resultado
** Exponenciación Entero o real Entero o real
div División entera Entero Entero
mod Resto de la división entera Entero Entero
/ División real Entero o Real Real
* Multiplicación Entero o real Entero o real
- Resta Entero o real Entero o real
+ Suma Entero o real Entero o real
Los siguientes ejemplos muestran resultados de expresiones aritméticas, compruébelos:
Reglas de Prioridad
Cuando las expresiones tienen dos o más operandos, se requieren reglas que permitan evitar ambigüedades al momento
de realizar la evaluación de la expresión. Estas se denominan Reglas de prioridad o de precedencia y son:
a) Las operaciones que están encerradas entre paréntesis se evalúan primero. Si existen diferentes paréntesis
anidados (unos dentro de otros), las expresiones más internas se evalúan primero.
b) Las operaciones aritméticas se realizan de acuerdo al siguiente orden de prioridad.
Exponencial ( ** )
División real ( / ), división entera ( div ), resto de la división entera ( mod ) y multiplicación ( * )
Suma ( + ) y resta ( - )
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 5
CENEAC – Introducción a la Programación con Nivel 1.
En caso de coincidir varios operadores de igual prioridad en una expresión o subexpresión encerrada entre paréntesis, el
orden de prioridad será de izquierda a derecha.
Expresiones Lógicas
Una expresión lógica es aquella que al ser evaluada puede tomar sólo uno de estos dos valores: verdadero o falso. Las
expresiones lógicas se forman combinando constantes lógicas, variables lógicas y otras expresiones lógicas, utilizando los
operadores lógicos no, y, o, y los operadores relacionales (de relación o comparación) =, <, >, <=, >=, <>.
Operadores Lógicos
Operador Significado Ejemplo de Expresión
no Negación no P
y Conjunción PyQ
o Disyunción PoQ
Operadores Relacionales
Operador Significado Ejemplo de Expresión
< Menor que A<3
> Mayor que P>Q
= Igual P=1
<= Menor o igual A <= P
>= Mayor o igual P >= Q
<> Diferente P <> Q
Al igual que en las expresiones aritméticas, los paréntesis se pueden utilizar y tendrán prioridad sobre cualquier operación.
Además, en caso de coincidir varios operadores de igual prioridad en una expresión o subexpresión encerrada entre
paréntesis, el orden de prioridad será de izquierda a derecha.
Expresiones String
Una expresión de tipo string es aquella que al ser evaluada produce un valor de tipo string. Las expresiones string se
forman combinando constantes, variables y otras expresiones de tipo string lógicas, utilizando los operadores del tipo string:
concatenar y subcadena. En el caso de concatenar se utilizan diversos operadores, los comunes: || + &
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 6
CENEAC – Introducción a la Programación con Nivel 1.
Operadores string
Operador Significado Ejemplo de Expresión
|| + & Concatenación "Pedro y " || "Pablo"
substr(string,inicio,tamaño) Subcadena substr("Pedro",1,2)
Asignación ( = )
Esta acción es la base para la construcción de las soluciones de los problemas; ya que permite modificar el estado de los
objetos que conforman el algoritmo y de esta forma obtener los resultados requeridos.
Ejemplos. Sean A y P variables de tipo entero, PI variable de tipo real, C variable de tipo lógico y S variable de tipo string.
A = -3 (a la variable A se le asigna u otorga el valor -3)
PI = 3,1415
P = -9 * A
C = (PI = 8,1)
P = P+1
S = "Perro Nro. " + P
El operador = se conoce como operador de asignación (también se utiliza “”) y tiene como efecto el cambio de estado
(cambio de valor), de la variable que aparece a la izquierda de él. Cabe estacar que el operador = también puede ser
utilizado para realizar comparaciones entre expresiones y verificar sin sus valores son iguales.
Para los ejemplos anteriores, el efecto de cada acción de asignación es:
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 7
CENEAC – Introducción a la Programación con Nivel 1.
Intradocumentación o comentarios ( // )
Esta acción permite agregar al algoritmo comentarios sobre la utilidad de sus instrucciones. La intradocumentación del
código es una buena práctica algorítmica y de programación ya que ayuda al mejor entendimiento de la lógica utilizada en la
solución que el algoritmo plantea a un problema dado. Uno de los operadores utilizados para agregar comentarios en
pseudocógigo es //, mientras que en algunos lenguajes se usan combinaciones como: (* *) /* */ ‘ # / <!-- -->
Secuenciamiento
La forma de composición de acciones más natural es el secuenciamiento, el cual simplemente consiste en la presentación
de un conjunto de acciones en un cierto orden. Permite indicar el orden en que se desea se ejecuten una serie de acciones.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 8
CENEAC – Introducción a la Programación con Nivel 1.
Notación
Sean A, B, C acciones cualesquiera. El secuenciamiento de ellas en el orden A, B, C se expresa de la siguiente forma:
A
B (orden textual)
C
o bien A ; C ; B; (orden dado mediante el operador de secuenciamiento “ ; “)
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 9
CENEAC – Introducción a la Programación con Nivel 1.
MIN = S div 60 ; SEG = S mod 60; // div y mod son operadores y palabras reservadas
HOR = MIN div 60 ; MIN = MIN mod 60;
DIA = HOR div 24 ; HOR = HOR mod 24;
EF = { S = x, x > 0, SEG = se, MIN = m, HOR = h, DIA = d, x, se, m, h, d ENTEROS, h < 24, m < 60,
se < 60, s = (( d * 24 + h) * 60 + m) * 60 + se }
Escribir(“El equivalente de segundos en días, horas, minutos y segundos es: ”);
Escribir(DIA); Escribir(HOR); Escribir(MIN); Escribir(SEG);
En este caso sería más conveniente utilizar un Escribir con múltiples valores: Escribir (DIA, HOR, MIN, SEG)
Léxico
Entero S: Variable que nomina al valor en segundos dado.
Entero SEG, MIN, HOR, DIA: Variables para almacenar la cantidad de segundos, minutos, horas y días
respectivamente, calculadas a partir del valor dado.
Condicional simple
El condicional simple es una forma de composición de acciones que se utiliza en problemas donde las acciones a realizar
dependen del resultado de evaluar ciertas condiciones.
Notación
Sea un predicado (expresión lógica) que condiciona la ejecución de una acción A cualquiera, el condicionamiento de la
acción A al predicado se expresa:
Si entonces
A;
Fsi;
En este análisis, la acción A sólo se ejecutará si el predicado al ser evaluado es verdadero.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 10
CENEAC – Introducción a la Programación con Nivel 1.
Léxico
entero a, b: variables para los valores a ordenar como máximo y mínimo.
entero c: variable auxiliar para no perder uno de los dos valores de entrada.
Condicional doble
El condicional doble es una forma de composición de acciones que se utiliza en problemas donde las acciones a realizar
dependen de si el resultado de evaluar ciertas condiciones es verdadero o falso; esto es, las acciones se ejecutan de
manera excluyente.
Notación
Sean A y B acciones cualesquiera y sea un predicado (expresión lógica) que condiciona la ejecución de las acciones A y
B en forma excluyente; esto es si es verdadero se ejecutará la acción A y si es falso se ejecutará la acción B. Este tipo
de condicionamiento se expresa de la siguiente forma:
Si entonces
A;
sino
B;
Fsi;
En este análisis, sólo se ejecutará una de las dos acciones, dependiendo del valor resultante de evaluar el predicado
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 11
CENEAC – Introducción a la Programación con Nivel 1.
2. PROCEDIMIENTOS Y
FUNCIONES
Notación de Procedimientos.
Definición de Procedimientos
La definición de un procedimiento consta de dos partes:
1. El encabezado del procedimiento (primera línea)
2. El cuerpo del procedimiento (líneas restantes)
Uso de procedimientos
Para ejecutar el Procedimiento antes definido, basta colocar su nombre seguido de una lista de parámetros actuales
sobre los que se aplicará el conjunto de acciones agrupadas en el procedimiento.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 12
CENEAC – Introducción a la Programación con Nivel 1.
Notación de Funciones
Definición de Funciones
La definición de una función también consta de dos partes:
1. El encabezado de la función (1era. línea)
2. El cuerpo de l función (líneas restantes)
Uso de funciones
Para ejecutar una función, basta colocar su nombre seguido de una lista de parámetros actuales sobre los que se
aplicará la función a la derecha de un operador de asignación. Las funciones retornan un solo valor.
Tanto para el caso de los procedimientos como en el de las funciones, se tiene que:
a) Lista de parámetros formales es una serie de 0 ó más variables que se utilizaran dentro del cuerpo de la Acción
Nominada (procedimiento o función).
b) Lista de parámetros actuales es una serie de 0 ó más constantes, variables y/o expresiones sobre las cuales se
desea aplicar la Acción Nominada (procedimiento o función). Estos deben especificarse en cada llamada a la Acción
Nominada y contienen los valores que sustituirán a los parámetros formales, es decir, los valores sobre los cuales se
desea aplicar la Acción Nominada; pudiendo cambiar de una llamada a otra.
c) Debe existir una correspondencia uno a uno tanto en el tipo como en el número de parámetros actuales y formales,
la cual en general se establece de acuerdo al orden de colocación de los mismos.
d) Dependiendo del tipo de sustitución deseada, se definen diversas maneras de realizar el Paso de Parámetros,
siendo las dos más utilizadas las denominadas: Paso de parámetros por valor y Paso de parámetros por referencia.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 13
CENEAC – Introducción a la Programación con Nivel 1.
Para ilustrar los conceptos relacionados con los tipos de Paso de Parámetros, se presenta el siguiente ejemplo.
Ejemplo 5: Diferencia entre el Paso de Parámetros por Valor y por Referencia
Sea el siguiente procedimiento:
procedimiento EJEMPLO (var Entero X , Entero Y)
// Ejemplo para mostrar el efecto de los dos tipos de paso de parámetros
X = X + 5;
Y = Y + 5;
fprocedimiento EJEMPLO;
Una vez realizada la llamada al procedimiento EJEMPLO, los valores que se imprimen son 15 y 10 respectivamente, los
cuales corresponden a los valores que almacenan los parámetros actuales A y B. Note que el valor del parámetro A cambió
(por haber sido pasado por referencia) mientras que el valor del parámetro B no cambió (por haber sido pasado por valor).
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 14
CENEAC – Introducción a la Programación con Nivel 1.
Solución:
Algoritmo Principal
// algoritmo que llama a los procedimientos SolucionesReales y SolucionesImaginarias para calcular las raíces de
// una ecuación de segundo grado
Real a, b, c, d, r1, r2, i1, i2; // declaración de las variables del algoritmo
Escribir(“Suministre los valores de los coeficientes a, b y c de la ecuación.”); Leer(a, b, c);
EI = { a = x, b = y, c = z , x, y, z REALES }
Si a = 0 entonces
Escribir(“Datos de Entrada Inválidos”);
sino
d = B ** 2 – 4 * A * C;
si d >= 0 entonces
SolucionesReales( a , b , d , r1 , r2 );
Escribir(“Las raíces reales de la ecuación son r1= ” + r1 + ” y r2= ” + r2);
sino
SolucionesReales( a , b , d , r1 , i1 , r2 , i2 );
Escribir(“Las raíces reales de la ecuación son r1= ” + r1 + ” , r2= ” + r2 +
“ y raíces imaginarias son i1= ” + i1 + ” , i2= ” + i2);
Fsi;
Fsi;
EF = { Se han impreso los resultados según el caso: datos inválidos, raíces reales o raíces imaginarias}
Observe que en el algoritmo anterior se utilizan dos procedimientos sin haberlos desarrollado, sólo los invocamos o
llamamos en el cuerpo de instrucciones del algoritmo, esto permite solucionar el problema en un primer nivel de abstracción.
La solución definitiva y completa se obtendrá cuando se desarrollen los siguientes procedimientos.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 15
CENEAC – Introducción a la Programación con Nivel 1.
Análisis
La solución se basa en la definición de una función que implemente la función matemática dada y que se aplique a cada
uno de los valores de entrada así como también a la suma de ambos. La función se debe realizar de tal forma que permita
calcular el valor resultante de la evaluación de la función matemática dada. Este valor será retornado al algoritmo en el
nombre de la función.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 16
CENEAC – Introducción a la Programación con Nivel 1.
Solución:
Algoritmo Principal
// invoca o llama a una función matemática
Real A, B, FA, FB, FAB; // declaración de las variables del algoritmo
Escribir(“Suministre los valores de entrada A y B a evaluar.”); Leer(A, B);
EI = { A = a, B = b, a, b REALES }
FA = FUNCMAT(A);
FB = FUNCMAT(B);
FAB = FUNCMAT(A+B);
EF = {FA = fa, FB = fb, FAB = fab, fa=funmat(a), fb=funmat(b), fab=funmat(a+b), a, b, fa, fb, fab REALES}
Escribir(“El valor de la función para A es: ” + FA);
Escribir(“El valor de la función para B es: ” + FB);
Escribir(“El valor de la función para A + B es: ” + FAB);
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 17
CENEAC – Introducción a la Programación con Nivel 1.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 18
CENEAC – Introducción a la Programación con Nivel 1.
3. FORMAS ITERATIVAS
DE COMPOSICIÓN DE ACCIONES (CICLOS)
Para aquellos problemas en los cuales es necesario repetir un conjunto de acciones un número (conocido o no) de veces,
se definen las formas iterativas de composición de acciones, también llamadas estructuras de control iterativas.
Existen varias estructuras de control iterativas, siendo las tres más comunes: el para (for), el repetir (repeat) y el mientras
(while).
Ejemplo 8: Cálculo de la nota promedio, nota máxima y nota mínima de una serie de N notas
Enunciado
Dada una serie de N notas se desea calcular el promedio de las mismas, así como también la máxima y la mínima nota.
Análisis
La solución se basa en el tratamiento secuencial de cada una de las N notas; esto es, en la definición de las acciones a
realizar sobre una nota (acumularla, compararla para determinar máximo y mínimo) y la aplicación de estas mismas
acciones sobre el resto las notas.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 19
CENEAC – Introducción a la Programación con Nivel 1.
Solución:
Algoritmo Principal
// Calcula el promedio, máximo y mínimo de un conjunto de N notas suministradas. Se asume que N > 0
Real Nota, Max, Min, Suma, Prom; // declaración de las variables del algoritmo
Entero i, N; // i es la variable índice del ciclo Para y N la cantidad de notas a procesar
Escribir(“Suministre la cantidad de notas a procesar.”); Leer(N);
EI = { N = n, n > 0, n REALES }
Max = 0 ; Min = 20; // inicializamos las variables con sus mayores valores opuestos
Suma = 0; // se inicializa la variable acumuladora en 0
Para i = 1 hasta N en 1 hacer
Escribir(“Suministre la nota ” + i ); Leer(Nota);
Suma = Suma + Nota;
si Nota < Min entonces
Min = Nota;
Fsi;
si Nota > Max entonces
Max = Nota;
Fsi;
Fpara;
PROM = SUMA / N;
EF = { PROM = p, 20 p 0, p es el promedio de las n notas,
MAX = ma, 20 ma 0, ma es la nota máxima de las n notas,
MIN = mi, 20 mi 0, ma es la nota mínima de las n notas, p, ma, mi REALES }
Escribir(“La nota promedio es: ” + Prom);
Escribir(“La nota máxima es: ” + Max);
Escribir(“La nota mínima es: ” + Min);
Observación
En el estado inicial se asume que el valor de N es mayor que cero y en términos de esa suposición se trabaja. ¿Qué
resultados daría el algoritmo si, por error, al introducir el valor de N se introduce un valor negativo o cero?
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 20
CENEAC – Introducción a la Programación con Nivel 1.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 21
CENEAC – Introducción a la Programación con Nivel 1.
Observación
En el estado inicial se asume que el valor del Capital Inicial (CI) y el valor de la tasa de interés (I) son mayores que cero y
en términos de esa suposición se trabaja. ¿Cómo generalizaría Ud. el algoritmo para que funcione independientemente de
los valores de entrada dados?
Ejemplo 10: Cálculo del salario de una serie de trabajadores por hora.
Enunciado
Se desea calcular lo que devengarán una serie de trabajadores por el trabajo realizado en una obra, para esto se definió la
siguiente tarifa horaria: las horas trabajadas en horario normal se pagan a razón de Bs. 20 y las horas extras a razón de Bs.
25, mientras no excedan de 10 horas. Si las horas extras exceden de 10 horas, el exceso se paga a razón de Bs. 23,5 la
hora. Además, se conoce que los datos de cada trabajador, que se introducirán, son: nombre del trabajador, horas normales
trabajadas y horas extras trabajadas. La introducción de los datos terminará cuando se introduzca "*" como nombre del
trabajador.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 22
CENEAC – Introducción a la Programación con Nivel 1.
Análisis
La solución se basa en el procesamiento y cálculo del salario devengado por cada trabajador de acuerdo a las tarifas
definidas, la solución se obtiene al aplicar los cálculos de un trabajador a todos los trabajadores a través de la estructura
iterativa mientras.
Solución:
Algoritmo Principal
// Calcula el salario de un trabajador en función de las horas normales y horas extras trabajadas
String Nombre; // declaración de variables
Real HN, HE, S, PagoHN, PagoHE, pagoHE2;
PagoHN = 20; PagoHE = 25; pagoHE2 = 23,5; //inicializamos estas variables con el monto pagado al trabajador
// usar estas variables facilita actualizar los honorarios del trabajador por hora
Observación
El fin del proceso iterativo, en este caso viene dado por una marca especial “*” en la secuencia de datos de entrada. Esta
marca o valor de parada la define el trabajador según las características del problema.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 23
CENEAC – Introducción a la Programación con Nivel 1.
TALLERES
DE EJERCICIOS
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 24
CENEAC – Introducción a la Programación con Nivel 1.
Taller 1:
EXPRESIONES
2 8+7 *3 +4*6
3 -4 * 7 + 2 ** 3 / 4 - 5
U+ W
A
3 X + Y (Z + W)
*
W
Y
4
-B + B2 - 4AC
2A
3. Calcule el resultado de evaluar las siguientes expresiones, considerando que la variables involucradas tienen los
siguientes valores:
A = 5, B = 3, C = -1, D = Verdadero, E = Falso, F = "C", G = "hola"
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 25
CENEAC – Introducción a la Programación con Nivel 1.
Taller 2:
SECUENCIAMIENTO Y
CONDICIONALES
1. Dado un punto en el plano, calcule la distancia existente entre ese punto y el origen.
Ayuda: Recuerde que en un triángulo rectángulo, la suma de los cuadrados de los catetos es igual a la hipotenusa al
cuadrado (Teorema de Pitágoras).
2. Generalice la solución del problema anterior a fin de que hallar la distancia entre dos puntos cualesquiera.
3. Dados dos valores G1 y G2, que representan cantidades en grados, verifique si los valores dados corresponden al
mismo ángulo.
8. Dada una fecha del año actual, calcule el Juliano de esa fecha.
Ayuda: El Juliano de una fecha es la cantidad de días que han transcurrido desde el 01 de Enero hasta la fecha dada.
9. Dada una fecha del año actual, calcule que día de la semana es.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 26
CENEAC – Introducción a la Programación con Nivel 1.
Taller 3:
ESTRUCTURAS
ITERATIVAS O CICLOS
Elabore un algoritmo para resolver cada uno de los siguientes problemas, utilice procedimientos o funciones de ser el caso.
1. Dado un valor entero N, (1 N 9), se quiere que usted imprima la tabla de multiplicar asociada a N.
2. Dados dos valores enteros X1 y X2, se quiere calcular el producto de X1 por X2 mediante sumas sucesivas.
4. Dado un número entero N (N > 1), se quiere calcular e imprimir los divisores del número N.
5. Calcule e imprima los número primos que hay entre 1 y un valor dado N (N > 1).
6. Dado un valor entero N (N > 1), se quiere contar la cantidad de primos morochos que hay entre 1 y N.
Ayuda: Dos números primos son morochos si son impares y sucesivos.
7. Dada un cédula de identidad, genere una clave de cuatro dígitos, formada de acuerdo a las siguientes reglas:
a. El dígito de las unidades en la clave será el dígito menos significativo del resultado de sumar los dígitos
más y menos significativos de la cédula de identidad.
b. El dígito de las decenas en la clave será el resto de dividir entre 9 a la suma de todos los dígitos de la
cédula.
c. El dígito de las centenas de la clave será el resto de dividir entre 7 a la suma de los dígitos pares
existentes en la cédula.
d. El dígito de las unidades de mil en la clave será el digito más significativo del resultado obtenido al
multiplicar todos los dígitos, diferentes de cero, de la cédula de identidad.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. 27
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
ANEXO 1
LENGUAJE DE PROGRAMACIÓN
TURBO PASCAL
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A1
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
GUÍA DE SINTAXIS DE
TURBO PASCAL 7.0
El lenguaje de programación Pascal es un lenguaje de alto nivel y propósito general desarrollado por el profesor suizo
Niklaus Wirth como un lenguaje para enseñar la programación de forma disciplinada y sistemática.
Una versión preliminar surgió en 1968 y el primer compilador totalmente completo apareció a finales de 1970. Las diferentes
versiones de compiladores ofrecían interpretaciones ligeramente diferentes que impedían la compatibilidad entre ellas. Por
estas razones, diferentes proyectos se iniciaron para producir una definición estándar del lenguaje y culminaron en dos: uno
de la International Standard Organization (I.S.O.) en 1982, y otro por un comité conjunto del American National Standard
Institute (A.N.S.I.) y del Institute of Electrical and Electronics Engineers (I.E.E.E.). Estas dos versiones se conocen como
ISO Pascal y ANSI/IEEE Pascal, y difieren en algunos aspectos no especialmente significativos.
Sin embargo, dos versiones no estándar se han popularizado considerablemente: UCSD Pascal (construida por Regents of
the University of California) y Turbo Pascal (marca registrada de Borland International, Inc.). De ellas, Turbo Pascal es sin
duda la más popular y la que más ha contribuido a la difusión del lenguaje, sobre todo en el mundo universitario, científico y
técnico.
En 1983, la firma Borland International lanzó al mercado de un modo experimental un compilador de Pascal denominado
Turbo Pascal v1.0 a un reducido precio. Fue un éxito, no sólo por la rapidez de compilación (del orden de 50 líneas por
segundo) sino porque incorporaba un entorno de desarrollo de programas con editor incorporado, gráficos, gestión de
archivos. Tras las versiones 2.0 y 3.0, a finales de 1987, Borland lanzó la versión 4.0 que no supuso una evolución, sino una
ruptura con las versiones anteriores, ya que incorporaba compilación independiente (unidades), gestión de proyectos,
enteros de gran precisión y un buen número de utilidades como nunca se habían reunido en un compilador de Pascal. En
1988 Borland lanzó la versión 5.0 y durante 1989 la 5.5, que sigue las nuevas filosofías del campo de la programación: la
programación orientada a objetos. A finales de 1991 lanza la versión 6.0, que perfeccionaba el entorno de programación e
incorpora la biblioteca de objetos Turbo Vision, que contiene una completa estructura de aplicaciones. A finales de 1992
presentó la versión 7.0, que ha añadido nuevas propiedades al lenguaje Pascal y una nueva biblioteca de objetos Turbo
Visión 2.0. En la actualidad existen versiones de Pascal para Windows, Linux y otros sistemas operativos.
Los elementos del lenguaje Pascal nos permiten construir desde las sentencias más simples hasta las más complejas, así
como los distintos tipos de datos, tanto predefinidos como aquellos que son definidos por el usuario. Estos elementos
incluyen un conjunto de caracteres o alfabeto de caracteres, palabras reservadas, identificadores estándar, tipos de datos
numéricos, carácter, etc.
Las características fundamentales que reúne Pascal estándar son:
Constituye una herramienta excelente para el aprendizaje de la programación.
Ser un lenguaje de propósito general.
Lenguaje procedural (imperativo, orientado a órdenes).
Lenguaje estructurado (soporta las estructuras básicas WHILE, FOR y REPEAT. No necesita el empleo de la sentencia
GOTO).
Lenguaje recursivo.
Gran riqueza de tipos de datos, con una gran cantidad de tipos tanto predefinidos como definidos por el usuario.
Producción por los compiladores de códigos ejecutables rápidos y eficientes.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A2
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
Palabras Reservadas
Turbo Pascal, como lenguaje de programación posee su propio código con palabras de uso exclusivo, a las cual se
denomina palabras reservadas (palabras clave, palabras reservadas o keywords). Estas palabras no pueden ser usadas
como identificadores de variables, constantes o procedimientos ya que son códigos con un significado específico en el
lenguaje y por lo tanto tienen una función definida en Turbo Pascal.
Las palabras reservadas en Pascal estándar y en Turbo Pascal (versiones 6.0 o mayores) son:
Identificadores
Los identificadores son palabras que representan constantes, variables, tipos de datos, procedimientos o funciones. Existen
dos tipos de identificadores: los predefinidos de Turbo Pascal y los definidos por el programador. Un identificador es una
secuencia de 1 a 127 caracteres, que inicia con una letra, no tienen espacios ni símbolos: &, !, *, etc. y no es una palabra
reservada. Todo identificador en Pascal debe ser definido previamente a su utilización.
Algunos de los identificadores predefinidos son: integer, real, byte, sin. Los identificadores definidos por el programador son
elementos como variables, procedimientos, funciones, etc.
En Turbo Pascal no existe diferencia entre mayúsculas y minúsculas, así que a un identificador denominado "valor" se le
puede referir como "VALOR" o "VaLoR".
Ejemplos:
Writeln Exit CadenaReal System Rosas
Un_mes Nombre_Apellidos Dia_del_Mes Pedro_1
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A3
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
Cadena de caracteres
′Turbo′ {Turbo} ′ ′ ′ {′} ′ ′ {cadena nula } ′ ′ {espacio}
Línea de programa
Las líneas de programa en Turbo Pascal tienen una longitud máxima de 126 caracteres.
Estructura de un programa
El lenguaje utilizado en Turbo Pascal es estructurado, lo que significa que cada programa requiere una forma específica de
escritura para que sea entendido por el compilador. Todo programa cuenta con algunas partes o secciones que podríamos
denominar Cabecera, Declaraciones y Programa.
La cabecera del programa únicamente lleva el nombre del programa. En la sección de declaraciones se le indica al
compilador todos los objetos que se utilizarán durante la ejecución del programa. En la sección del programa se escribe el
código de instrucciones que se llevarán a cabo.
Después de haber realizado todas las declaraciones, se pueden declarar las funciones y los procedimientos a ser utilizados
en el programa, para luego escribir el programa principal. 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 ";"
Solo se omitirá el punto y coma cuando se utiliza la palabra reservada ELSE. Aunque puede también omitirse si la siguiente
expresión es END o UNTIL.
No es importante el orden en el que se declaran las variables y constantes (aplicable solo al Turbo Pascal), es decir, pueden
declararse primero las variables y luego las constantes y viceversa.
Declaraciones de type
tipos
Formato = string[12];
Declaraciones de
variables
var
Respuesta : formato;
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A4
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
Procedimientos y Funciones
En Pascal, una rutina puede asumir dos formas: un procedimiento o una función. En teoría, un procedimiento es una
operación que se pide a la computadora que realice, y una función es un cálculo que devuelve un valor. Esta diferencia se
enfatiza por el hecho de que una función tiene un resultado, un valor de salida, mientras que un procedimiento no. Ambos
tipos de rutinas pueden tener múltiples parámetros, de tipos de datos dados.
En la práctica, sin embargo, la diferencia entre funciones y procedimientos es muy limitada: puede hacer una llamada a una
función para realizar cierta tarea y luego saltarse el resultado (que podría ser un código de error opcional o algo similar) o
puede hacer una llamada a un procedimiento que transmite un resultado dentro de sus parámetros (más sobre parámetros
de referencia se comentará más tarde en este capítulo).
Cabecera
procedimiento
procedure identificador (lista de parámetros);
{ declaraciones de datos }
begin
{ cuerpo del procedimiento }
end;
Tipos Simples
Lógicos: Boolean true false
Este tipo de datos tienen la peculiaridad de que solo pueden tomar dos tipos de datos: verdadero o falso. El verdadero es
representado por su nombre en inglés: True y el falso por False; también se representan por 1 y por 0 respectivamente.
El tipo está definido como Boolean. Los datos lógicos tienen una enorme aplicación en la evaluación de ciertos procesos,
así como en el control de flujo de los programas.
Números enteros:
En esta categoría Turbo Pascal cuenta con 5 tipos diferentes, cada uno abarca un rango específico de valores y utilizan una
diferente cantidad de memoria dependiendo de ese rango. 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. Los tipos de enteros en
Turbo Pascal y el rango de valores que aceptan son:
Byte 0 . . 255
Integer -32768 . . 32767
LongInt -2147483648 . . 2147483647
ShortInt -128 . . 127
Word 0 . . 65535
Números reales:
Los números reales son aquellos que cuentan con una parte decimal. 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
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A5
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
.5 como 0.5 , etc. Turbo Pascal cuenta con varios tipos de datos reales, pero no se puede utilizar, más que el tipo real en
máquinas que no cuenten con un coprocesador matemático. Los tipos de datos reales en Turbo Pascal y el rango de
valores que aceptan son:
Real 2.9 x 10-39 . . 1.7 x 1038
Single 1.5 x 10-45 . . 3.4 x 1038
Double 5.0 x 10-324 . . 1.7 x 10308
Extended 3.4 x 10-4932 . . 1.1 x 104932
Comp -263 + 1 . . 263 - 1
Cadenas: String (Secuencia de hasta 255 caracteres ASCII. Si no se especifica un tamaño, se utilizará por defecto 255)
Las cadenas son secuencias de caracteres o arreglos que tienen una longitud máxima de 255 caracteres. Se definen entre
apostrofes. El tipo de Pascal para las cadenas es String.
El tamaño por defecto para un tipo string es de 255 caracteres, pero es posible definir uno mas pequeño utilizando la
sintaxis Variable : String[Tamaño];
Donde Variable es la variable a definir y Tamaño es el número máximo de caracteres que podrá contener esa variable
(mayor a 0 y menor a 256).
Tipo Subrango
type
Dígitos = 0 .. 9
Días = Lunes .. Domingo
Mayúsculas = ′A′ .. ′Z′
Un tipo de subrango define un rango de valores dentro del rango de otro tipo (de ahí el nombre subrango). Se puede definir
un subrango del tipo Integer, de 1 a 10 o de 100 a 1000, o se puede definir un subrango del tipo Character, como en :
En la definición de un subrango, no se necesita especificar el nombre del tipo base. Sólo se necesita proporcionar dos
constantes de ese tipo. El tipo original debe ser ordinal, y el tipo resultante será otro tipo ordinal.
Tipo Enumerado
type
Naipes = {Oros, Espadas, Bastos, Copas}
Colores = {Rojo, Amarillo, Verde, Azul, Violeta}
Los tipos enumerados constituyen otro tipo ordinal definido por el usuario. En vez de indicar un rango para un tipo existente,
en una enumeración usted hace una lista de todos los valores posibles del tipo. En otras palabras, una enumeración es una
lista de valores.
Cada valor en la lista tiene una ordinalidad [número de orden] asociada, comenzando desde cero. Cuando aplica usted la
función Ord a un valor de tipo enumerado, obtiene este valor. Por ejemplo, Ord (Amarillo) devuelve 1.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A6
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
Tipo Estructurado
Arreglo ( array )
El tipo arreglo define una lista de un número fijo de elementos de un tipo específico. Normalmente se utiliza un índice entre
corchetes para acceder a uno de los elementos del arreglo. Los corchetes también se utilizan para especificar los valores
posibles del índice cuando el arreglo ha sido definido.
Ejemplos:
array[1..100] of Real;
array[Boolean] of array [1..10] of array [Longitud] of Real;
packed array[1..10, 1..15] of Boolean;
Registro ( record )
Los tipos record definen colecciones fijas de elementos de distintos tipos. Cada elemento, o campo, tiene su propio tipo. La
definición de un tipo registro incluye todos estos campos, dándole un nombre a cada uno, que se utiliza para acceder a él
posteriormente.
Conjunto ( set )
Tipos de conjunto indican un grupo de valores, donde la lista de valores disponibles se indica mediante el tipo ordinal en que
se basa el conjunto. Los tipos suelen ser limitados, y a menudo se representan con una enumeración o un subrango. Si
tomamos el subrango 1..3, los valores posible del conjunto basado en él incluyen sólo 1, sólo 2, sólo 3, tanto 1 como 2,
tanto 1 como 3, 2 y 3, todos los tres valores, o ninguno de ellos.
Una variable normalmente contiene exactamente uno de los valores posibles para el rango de su tipo. Una variable de tipo
conjunto, sin embargo, puede contener uno, dos o más valores del rango. Incluso puede incluirlos todos.
Ejemplo:
Letras := [′A′, ′B′, ′C′, ′D′, ′E′]
NoLetras := [ ]
Declaración de variables
var var
x, y, z : Real; Digito : 0..9;
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A7
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A8
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
1.4. Operadores
Aritméticos
Operador Sintaxis Significado
+ +expresión Positivo (unitario)
+ expresión1 + expresión2 Suma (binaria)
- -expresión Negativo (unitario)
- expresión1 - expresión2 Resta (binario)
* expresión1 * expresión2 Multiplicación
/ expresión1 / expresión2 División real
DIV expresión1 DIV expresión2 División entera
MOD expresión1 MOD expresión2 Resto (módulo)
Cuando en una expresión se utiliza más de un operador, éstos se evalúan conforme a una prioridad establecida por Turbo
Pascal. En caso de existir paréntesis en la expresión se evaluará primero el contenido de los paréntesis antes que otros
operadores. Si existen dos operadores de igual prioridad se evaluará de izquierda a derecha.
Es necesario conocer el orden de evaluación para evitar errores en nuestros programas. El orden en que se ejecutan las
operaciones es el siguiente:
* / DIV MOD primeros en evaluarse; todos tienen igual prioridad.
+ - últimos en evaluarse; ambos tienen igual prioridad.
Lógicos
Operador Sintaxis Significado
NOT NOT expresión Complemento
AND expresión1 AND expresión2 AND (y lógico)
OR expresión1 OR expresión2 OR (o lógico)
XOR expresión1 XOR expresión2 XOR( o lógico exclusivo)
Relacionales
Operador Sintaxis Devuelve verdadero si
= expresión1 = expresión2 Expresiones son iguales
<> expresión1 <> expresión2 Expresiones no son iguales
< expresión1 < expresión2 expresión1 es menor que expresión2
<= expresión1 <= expresión2 expresión1 es menor o igual a expresión2
> expresión1 > expresión2 expresión1 es mayor que expresión2
>= expresión1 >= expresión2 expresión1 es mayor o igual a expresión2
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A9
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
De Conjuntos
Operador Sintaxis Devuelve verdadero si
= conjunto1 = conjunto2 conjunto1 y conjunto2 son idénticos.
Cada elemento de conjunto1 está contenido en conjunto2 y
cada elemento de conjunto2 está contenido en conjunto1.
<> conjunto1 <> conjunto2 Uno de los conjuntos contiene al menos un elemento que no está
en el otro conjunto.
<= conjunto1 <= conjunto2 Cada elemento de conjunto1 está también en conjunto2.
< conjunto1 < conjunto2 Cada elemento de conjunto1 está también en conjunto2.
Además, conjunto2 contiene al menos otro elemento que no se
encuentra en conjunto1.
>= conjunto1 >= conjunto2 Cada elemento de conjunto2 está también en conjunto1.
< conjunto1 > conjunto2 Cada elemento de conjunto2 está también en conjunto1.
Además, conjunto1 contiene al menos otro elemento que no se
encuentra en conjunto2.
IN elemento IN conjunto1 El elemento se encuentra en conjunto1.
1.5. Sentencias
Asignación o Igualación
La operación de asignación es permite darle un valor determinado a las variables que declaramos en el programa o lo que
es lo mismo, igualarla a algún valor determinado.
El símbolo utilizado para la operación es los dos puntos seguidos por un signo de igual := , a la izquierda de dicho símbolo
se coloca el identificador al que se le asignará un nuevo valor y a la derecha se colocará una expresión o algún valor
directo que se almacenará en el primer identificador.
Compuesta
begin <sentencias> end; Ejemplo:
begin
z := 5;
GetReal (′ Valor ′, ValorReal);
Writeln (ValorReal);
end;
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A10
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
Condicional ( if ):
if <condición> then Ejemplo:
<sentencias> if Cad1 <> Cad2 then
Opcional
[else begin
<sentencias> ]; Cad1 := Cad1+Cad2;
Writeln (′ nueva cadena ′, Cad1);
end;
Condicional anidado ( if ):
if <condición> then Ejemplo:
<sentencias> if x > y then
else if <condición> then if x > z then
<sentencias> Write (x)
else if <condición> then else
<sentencias> Write (z)
else else
<sentencias>; if y > z then
Write (y)
else
Write (z);
Writeln (′ es el Mayor ′);
Ejemplos:
for j := 1 to 10 do
for i := 1 to 10 do begin
Writeln (′ Cuerpo de bucle ′); j := j + z;
Writeln (′ Pasos: ′, paso : 2);
paso := paso + 1
end;
Writeln (′ Fuera del bucle ′);
Ejemplos:
for i := 10 downto 1 do
begin
Resultado := i * Resultado;
Writeln (′ Bucle: ′, i, Resultado);
end;
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A11
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
La otra diferencia clave entre estos dos bucles es que el bucle repeat-until incluye una condición inversa. El bucle se
ejecuta mientras la condición no se cumpla. Cuando sí lo hace, el bucle finaliza. Esto es lo contrario de lo que pasa con
un bucle while-do, que se ejecuta mientras la condición sea cierta. Por esta razón tuve que invertir la condición en el
código que aparece arriba, para obtener una instrucción equivalente.
Funciones Aritméticas
Nombre Sintaxis Descripción
Abs Abs (x); Devuelve el valor (positivo) absoluto de su argumento x.
ArcTan ArcTan (x:Real): Real; Arco tangente del argumento expresado en radianes.
Cos Cos (x:Real): Real; Coseno del argumento expresado en radianes.
Exp Exp (x:Real): Real; Potencia exponencial del argumento (ex).
Frac Frac (x:Real): Real; Parte decimal de un número real.
Int Int (x:Real): Real; Parte entera de un número real.
Ln Ln (x:Real): Real; Logaritmo neperiano (base e) del argumento.
Sin Sin (x:Real): Real; Seno del argumento.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A12
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
Ejemplos:
y := Abs(x) * 2; z := Int(345.678);
z := ArcTan(1.75); t := Ln(1.25);
Tan := Sin(x) / Cos(x); z := Sin(Pi);
Pot := Exp(3); f := Sqr(3.45);
R := Frac(-245.123); f := Sqrt(1.2345);
Funciones de transferencia
Nombre Sintaxis Descripción
Chr Chr (x : Byte) : Char; Devuelve el carácter correspondiente al código ASCII.
Ord Ord (x) : LongInt; Número ordinal de un tipo ordinal.
Round Round (x : Real) : LongInt; Redondea un número real a un entero largo.
Trunc Trunc (x : Real) : LongInt; Trunca un valor de tipo real a entero.
Opcional
Procedimientos o Funciones ordinales
Nombre Sintaxis Descripción
Dec Dec (var x [;n: LongInt]); Decrementa una variable.
Inc Inc (var x [;n: LongInt]); Incrementa una variable.
High High(x); Devuelve el valor más alto en el rango del argumento que debe ser
un tipo arreglo o un tipo cadena.
Low Low (x); Devuelve el valor más bajo en el rango del argumento que debe
ser un tipo arreglo o un tipo cadena.
Odd Odd (x : LongInt) : Boolean; Devuelve true si el argumento es impar.
Pred Pred(x); Devuelve el predecesor del argumento (x de tipo ordinal).
Succ Succ(x); Devuelve el sucesor del argumento (x de tipo ordinal).
Ejemplos:
Dec(z); for Dia := Low(ADia) to High(ADia) do
Inc(z); begin
…
for i := 0 to High(x) do end;
s := s + x[i];
Pred( ′z′ ) devuelve ′y′
Succ(1946) devuelve 1947
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A13
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
Tratamiento de cadenas
Procedimientos:
Nombre Sintaxis Descripción
Delete Delete (var s: String; Pos, Len: Integer); Borra una subcadena a partir de una posición en una
cadena.
Insert Insert (var s: String; var D: String; Pos: Integer); Inserta una subcadena a partir de una posición en una
cadena.
Str Str (i: Integer; var s: String); Convierte un valor numérico a cadena.
Val Val (s: String; var i, p: Integer); Convierte una cadena a su valor numérico.
Funciones:
Nombre Sintaxis Descripción
Concat Concat (s1, s2, …, sn: String) : String; Concatena (une) cadenas.
Copy Copy (s: String; pos, long: Integer) : String; Copia una cadena dada.
Length Length (s: String) : Integer; Longitud de una cadena.
Pos Pos (patron, fuente: String) : Integer; Posición de la primera ocurrencia de una subcadena.
Ejemplos:
Cad_1 := ′computadora′; Str (Maxint, Cad_1);
Delete (Cad_1, 4, 3); Writeln (Cad_1);
Insert ( ′put′, Cad_1, 4); Val ( ′32425′, r, e);
s := Concat( ′xyz′, ′ Luis ′); s := Copy (s, 2, 3);
t := Length (Cad_1);
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A14
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A1
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
ANEXO 2
REGLAS DE TRADUCCIÓN AL
LENGUAJE PASCAL
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A2
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
1. REGLAS DE TRADUCCIÓN
PARA LOS TIPOS DE DATOS
Arreglo M de Real de [1:5, 1:3]; Var M: array [1..5, 1..3] of real; Arreglo bidimensional o
matriz
Tipo Archivo Libros de String; Type Libros = file of string; Declaración de un tipo de
dato Archivo (Libros) y
Libros CasasMuertas, U21; CasasMuertas, U21: Libros; declaración de dos
variables archivo de tipo
Libros
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A3
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
A = B; A := B;
Si (A > B) y (A > C) entonces if (A > B) and (A > C) then Caso una sola acción dentro de
A = A + 1; A := A + 1; condicional simple.
Fsi;
Si (A > B) y (A > C) entonces if (A > B) and (A > C) then Caso dos o más acciones dentro
A = A + 1; begin de condicional simple.
B = A / 2; A := A + 1;
Fsi; B := A / 2;
end;
Si (A > B) y (A > C) entonces if (A > B) and (A > C) then Caso una sola acción dentro de
A = A + 1; A := A + 1 (* sin ; *) cada parte de un condicional
sino else doble
B = A / 2; B := A / 2;
Fsi;
Si (A > B) y (A > C) entonces if (A > B) and (A > C) then Caso dos acciones en el
A = A + 1; begin entonces y una acción en el sino
C = B + 1; A := A + 1; de un condicional doble
sino C := B + 1;
B = A / 2; end (* sin ; antes del else *)
Fsi; else
B := A / 2 ;
Si (A > B) y (A > C) entonces if (A > B) and (A > C) then Caso dos acciones en el
A = A + 1; begin entonces y dos acciones en el
C = B + 1; A := A + 1; sino de un condicional doble
sino C := B + 1;
B = A / 2; end
A = B * C; else
Fsi; begin
B := A / 2;
A := B * C;
end;
Continúa …
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A4
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
Para K = 1 hasta N hacer for K := 1 to N do Caso dos o más acciones dentro del
A = A + 1; begin Para.
B = A / 2; A := A + 1;
Fpara; B := B / 2;
end;
Mientras A >=1 hacer while A >=1 do Caso una sola acción dentro del
A = A / 2; A := A / 2; Mientras.
Fmientras;
Mientras A >=1 hacer while A >=1 do Caso dos o más acciones dentro del
A = A / 2; BEGIN Mientras.
B = B + 1; A := A / 2;
Fmientras; B := B + 1;
END;
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A5
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
ANEXO 3
EJEMPLOS DE PROGRAMAS EN
TURBO PASCAL
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A6
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
program CalcularIva;
(* Este programa calcula el IVA a pagar por un producto *)
{ Los comentarios también pueden colocarse entre llaves }
BEGIN
END.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A7
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
program ValorAbsoluto;
(* calcula el valor absoluto de un número suministrado por el usuario *)
USES crt; (* librería que permite utilizar procedimientos que modifican el formato de la salida por
pantalla cuando se corre el programa *)
(* declaración de variables *)
VAR
num, orig: real;
mensaje: string;
BEGIN
clrscr; (* limpia la pantalla de la salida de corridas previas *)
writeln('el número de entrada es: ' , orig , ' y el |num| es ' , num:1:2 );
(* con la instrucción num:<cant enteros>:<cant decimales> damos formato al número de salida,
en este caso para que se muestre como un real con 2 decimales *)
END.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A8
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
program DivisoresDeN;
(* muestra todos los divisores de un número entero N suministrado *)
USES Crt;
VAR
N: LongInt; i, cont: Integer; mens: string;
BEGIN
clrscr; (* limpiamos pantalla de resultados previos *)
textcolor(10);
cont := 0; (* cantidad de divisores encontrados *)
mens := 'suministre el valor de entrada, debe ser un entero > 0';
if cont = 2 then
begin
writeln('entremos al Si que prueba si el número N es primo.'); writeln;
writeln(N ,' es además un número primo.');
end; (* fin del Si que verifica si el número es primo *)
readkey; (* deja visible la salida del programa hasta pulsar una tecla cualquiera *)
END.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A9
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
EJEMPLO 4: Verificaciones matemáticas. Utiliza llamada a acciones y funciones con pase de parámetros.
Enunciado: Informar al usuario 4 opciones y utilizar llamadas a acciones o funciones para calcular sobre valores enteros:
Opción 1: verificar si un número n es capicúa Opción 2: verificar si un número n es primo
Opción 3: intercambiar 2 valores n1 y n2
Opción 4: calcular la suma de los números pares entre 2 números n1 y n2, además de informar cuantos pares hay
program CalculosMatematicos;
(* utiliza acciones o funciones para realizar calcular sobre números enteros *)
USES crt;
VAR { declaración de variables utilizadas en el cuerpo del program }
opcion, num1, num2, sumaPares, cantPares: Integer;
res: Boolean; { variable lógica para indicar si es primo o no }
begin
copia := N; alreves := 0; { en esta variable se reconstruirá el número invertido }
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A10
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
Var
i, cont: integer; { variables locales de esPrimo }
esPri: boolean;
begin
cont := 0; { inicializamos el contador }
For i:=1 to num do
begin
if (num mod i = 0) then
cont := cont + 1; { contamos los divisores }
{ fin del if }
end;
BEGIN
Repeat
Writeln('Indique el cálculo a realizar:');
writeln('1. Para verificar si num1 es Capicúa.');
writeln('2. Para verificar si num 1 es Primo.' );
writeln('3. Para intercambiar los valores de las variables num1 y num2.');
writeln('4. Para calcular la suma de los números pares que hay entre num1 y num2,
además de indicar cuántos valores pares hay entre ellos.' );
Readln(opcion);
Until (opcion >= 1) and (opcion <= 3);
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A11
CENEAC – Introducción a la Programación con Nivel 1 - Anexo Lenguaje de Programación Turbo Pascal.
case opcion of
1: { opción para verificar capicúa }
begin
writeln('suministre el número');
readln(num1);
num2 := 0;
Capicua(num1,num2);
writeln('el valor de num2 ahora es: ' , num2);
end;
4: { opción para calcular la suma de los números pares entre num1 y num2 }
begin
{ instrucciones para esta opción, incluyendo la llamada al procedimiento correspondiente }
end;
END.
Material elaborado por CENEAC Producciones, C.A. Prohibida su reproducción total o parcial sin autorización del Autor. A12