Professional Documents
Culture Documents
Análisis: Estudio detallado del problema con el fin de obtener una serie de documentos o
especificaciones o requerimientos.
Preguntas comunes: ¿Qué entradas se requieren? ¿Cuál es la salida deseada? ¿Qué método
produce la salida deseada?
Mantenimiento: Actualización
¿Qué es un algoritmo?
Un algoritmo es un método para resolver un problema mediante una serie de pasos precisos,
definidos y finitos.
Los algoritmos son independientes tanto del lenguaje de programación en que se expresan como
de la computadora que los ejecuta.
Preciso: debe especificar sin ambigüedad el orden en que se deben ejecutar las
instrucciones.
Definido: Cada vez que se ejecute bajo las mismas condiciones, deberá proporcionar el
mismo resultado.
Finito: Debe finalizar en algún momento, o sea, debe realizar un número finito de pasos
hasta lograr su objetivo.
Composición de un programa
.
Tipos de datos: Todos los datos tienen un tipo asociado con ellos.
Variables: Son valores que se pueden modificar durante la ejecución de un programa. Al
contrario de las constantes estas reciben un valor, pero este valor puede ser modificado
durante la ejecución o la compilación del programa.
Constantes: Son valores que no pueden cambiar en la ejecución del programa. Recibe un valor
en el momento de la compilación del programa y este no puede ser modificado.
Palabras reservadas: Son palabras que tienen un significado especial para el lenguaje.
Comentarios: Los comentarios pueden aparecer en cualquier parte del programa.
Estructuras de control
Las estructuras de control de un lenguaje de programación se refieren a él orden en que las
instrucciones de un algoritmo se ejecutarán. Determinan el flujo de control.
Las sentencias selectivas o alternativas se denominan así porque permiten seleccionar uno de
entre varios caminos por donde seguirá la ejecución del programa. En algunos casos esta selección
viene determinada por la evaluación de una expresión lógica. Este tipo de sentencias se clasifican
en tres:
simples: SI (IF)
dobles: SI-SINO (IF-ELSE)
múltiples: SEGÚN-SEA (SWITCH, CASE)
Las sentencias repetitivas o iterativas permiten realizar algo varias veces (repetir, iterar). Dentro
de ellas se distinguen:
DESDE (FOR)
MIENTRAS – HACER (WHILE DO)
REPETIR-HASTA-QUE (REPEAT UNTIL)
Instrucción IF-THEN-ELSE
If x > y Then
Max: = x
Else
Max: = y
Aunque, en principio, la instrucción If solo permite seleccionar entre dos alternativas, es posible
usarla para realizar una selección entre más de dos opciones: la idea consiste en el anidamiento,
esto es, el uso de una instrucción If dentro de una de las ramas Then o Else de otra instrucción If.
Como ejemplo supóngase que se quiere desarrollar un programa que asigne a cada persona una
etiqueta en función de su altura (en cm), el siguiente fragmento de código realiza la selección
entre tres posibilidades: que la persona sea de estatura baja, media o alta.
Instrucción CASE
La instrucción case permite la selección entre una cantidad variable de posibilidades, es decir, es
una sentencia de selección múltiple. Un ejemplo de esta selección en lenguaje natural podría ser
el siguiente \menú semanal": según sea el día de la semana, hacer lo siguiente: lunes, miércoles y
viernes comer pescado, martes, jueves y sábado comer carne, el domingo comer fuera de casa.
Esta instrucción consta de una expresión (llamada selector) y una lista de sentencias etiquetadas
por una o varias constantes del mismo tipo que el selector; al ejecutarse esta instrucción se evalúa
el valor actual del selector y se ejecuta la instrucción que tenga esa etiqueta, si no existe ninguna
instrucción con esa etiqueta se produce un error.
Una situación en la que es frecuente el uso de la instrucción CASE es cuando algunos programas se
controlan mediante menús, es decir, aparecen en pantalla las diferentes acciones que se pueden
ejecutar dentro del programa y el usuario elige, mediante un numero o una letra, aquella que
quiere utilizar.
Por ejemplo, supongamos un programa de gestión de una biblioteca. Tal programa proporcionara
en pantalla un menú con las siguientes acciones:
B. Búsqueda.
P. Petición préstamo.
D. Devolución préstamo.
S. Salir.
Leer opción
Case opción of
'B': Busqueda.
'P': Petición Préstamo.
'D': Devolución Préstamo.
'S': Salir.
End
Instrucciones Iterativas
La instrucción While
En algunas ocasiones es necesario especificar una acción que se repite siempre que se cumpla una
determinada condición; una frase en lenguaje natural tal como mientras haga calor usar manga
corta es un ejemplo de este tipo de construcciones.
En Pascal esta construcción se hace mediante la instrucción While. Su diagrama sintáctico es
While Expresión booleana Do Instrucción cuya interpretación es: Mientras que la expresión
booleana sea cierta se ejecutará la instrucción, que se suele llamar cuerpo del bucle, indicada tras
el Do.
A continuación tenemos un fragmento de programa que calcula la suma de los n primeros
números naturales:
ReadLn(n);
Suma:= 0;
Contador:= 1;
WriteLn (suma)
Una situación en que se puede producir este error surge cuando el cuerpo del bucle es una
secuencia de instrucciones y se olvida utilizar los delimitadores Begin y End. Por ejemplo, el
siguiente segmento de código no calcula la suma de los enteros desde el 1 hasta el n:
ReadLn(n);
Suma:= 0;
Contador:= 0;
While contador <= n Do
Suma:= suma + contador; (OJO: Fin de While)
Contador:= contador + 1;
WriteLn (suma)
Al olvidar delimitar el cuerpo del bucle, la instrucción por iterar termina antes de actualizar el valor
del contador, con lo cual el bucle se repite sin cesar y el programa se \cuelga". La corrección de tal
error se reduce a incluir un par Begin-End para delimitar la sentencia interior del bucle.
La instrucción Repeat
Comenzamos este apartado retomando el ejemplo en lenguaje natural con el que se presento la
instrucción While: mientras haga calor usar manga corta. La característica del While hace que este
consejo solo sea válido para gente previsora que comprueba el tiempo que hace antes de salir de
casa.
¿Cómo se podría modificar el ejemplo anterior para que fuera valido también para quien no sabe
qué tiempo hace fuera hasta que ya es demasiado tarde?
Una forma será llevar un jersey puesto hasta que haga calor; de este modo se evitaran bastantes
enfriamientos indeseados.
La instrucción Repeat permite la construcción de bucles similares al de este último ejemplo, con
características ligeramente distintas a la del bucle While. La forma general de la instrucción
Repeat obedece al esquema:
Por lo tanto, la interpretación de una instrucción Repeat es: repetir las instrucciones indicadas en
el cuerpo del bucle hasta que se verifique la condición que aparece tras Until.
Repeat
WriteLn ('Introduzca un número positivo');
ReadLn (numero)
Until numero > 0
La instrucción For
La instrucción de repetición For se utiliza para crear bucles con un número predeterminado de
repeticiones. Se utiliza para resolver problemas en los cuales se conoce de antemano la cantidad
de veces que es necesario repetir las instrucciones que componen el bucle. El funcionamiento del
bucle For es el siguiente: primero se comprueba si el Índice rebasa el limite final, con lo que es
posible que el cuerpo del bucle no llegue a ejecutarse ninguna vez, en caso positivo se le asigna el
valor inicial a la variable de control, se ejecuta la instrucción interior una vez y se incrementa una
unidad el valor, si este nuevo valor está comprendido entre el valor inicial y el valor final, entonces
se vuelve a ejecutar la instrucción interior, y así sucesivamente hasta que variable alcanza el valor
Final.
Si en una instrucción For-to-do el valor inicial de la variable es posterior al valor final entonces no
se ejecutan las instrucciones interiores y se sale del bucle.
Var
N, i, suma: integer;
...
ReadLn (n);
Suma: = 0;
For i: = 1 to N do
Suma: =Suma + i;
WriteLn (Suma)
Definición de funciones
En programación, una función es una sección de un programa que
calcula un valor de manera independiente al resto del programa.
los parámetros, que son los valores que recibe la función como
entrada;
el código de la función, que son las operaciones que realiza la
función; y
el resultado o valor de retorno, que es el valor final que
entrega la función.
Una vez que se ha definido la función, puede ser utilizada todas las
veces que se desee en un programa. Se le denomina llamar la
funcióna ocupar la función para obtener un valor. Por ejemplo, las
siguientes son todas llamadas válidas de la función F, junto con sus
resultados:
F(0); {→ 1.0}
F(-1.1 * 0.5); {→ 0.9496715625}
F(F(1.0)); {→ 33.0}
a := -1.0;
F(a * F(a)) {→ 1.0}
program FuncionF;
1
var
2
a, b: Real;
3
4
function F(x: Real): Real;
5
begin
6
F := x * x * x * x * x + 1;
7
end;
8
9
begin
10
Write('Ingrese a y b: ');
11
Read(a, b);
12
WriteLn(F(F(F(a)) + F(F(b))):3:3);
13
end.
14
Variables locales
Supongamos que ahora queremos reemplazar la misma expresión
original, pero reemplazando f por el polinomio g(x)=x99+1.
Para calcular x5, lo hacíamos con cinco multiplicaciones, pero
para x99conviene más usar un ciclo for. Para ello, necesitamos una
variable de control, que denominaremos i, y una variable para ir
guardando los resultados parciales de las multiplicaciones, que
denominaremos producto:
producto := 1;
for i := 1 to 99 do
producto := producto * x;
G := producto + 1;
program FuncionH;
1
var
2
a, b: Real;
3
4
function Potencia(x: Real; n: Integer): Real;
5
var
6
i: Integer;
7
resultado: Real;
8
begin
9
resultado := 1;
10
for i := 1 to n do
11
resultado := resultado * x;
12
Potencia := resultado;
13
end;
14
15
function H(x: Real): Real;
16
begin
17
H := Potencia(x, 99) - 5 * Potencia(x, 79) +
18
10 * Potencia(x, 59) - 5 * Potencia(x, 29) + 1;
19
end;
20
21
begin
22
Write('Ingrese a y b: ');
23
Read(a, b);
24
WriteLn(H(H(H(a)) + H(H(b))):3:3);
25
end.
26
LeerValores(N);
CalcularResultados(N - 1);
ImprimirResultados(N - 1)