Analista de Sistemas
de Computación
Materia
Programación Lógica
Analista de Sistemas de Computación
Programación Lógica
Tema 2
2
CONCEPTO DE ALGORITMO
La resolución de un problema necesita del diseño de un algoritmo que resuelva el pro-
blema propuesto.
Definimos un algoritmo como una secuencia ordenada de pasos, de manera tal que al
seguirlos se obtenga el resultado deseado. Un algoritmo posee tres características:
secuencia ordenada de pasos: debe ser preciso e indicar el orden de realización
de cada paso
general pero no ambiguo: si el algoritmo se sigue dos veces, el resultado debe
ser el mismo cada vez
finito en tiempo: debe tener un número finito de pasos, en algún momento debe
finalizar
Los algoritmos son independientes del lenguaje de programación. Para llevar esto a lo
diario, por ejemplo, una receta de una torta puede estar escrita en inglés, castellano o
portugués, pero cualquiera sea el idioma, los pasos para realizarla siempre serán los
mismos.
Los algoritmos suelen ser más importantes que los lenguajes de programación o las
computadoras. Los lenguajes de programación son solo un medio para expresar el algo-
ritmo y las computadoras un procesador para ejecutarlo. Ambos son un medio para con-
seguir un fin.
En todo algoritmo se pueden considerar tres divisiones: entrada, proceso y salida. En el
ejemplo de la receta de una torta será:
Entrada: ingredientes y elementos empleados
Proceso: elaboración de la receta de la torta en la cocina
Salida: terminación de la receta de la torta
3
EJEMPLOS DE ALGORITMOS
1) Algoritmo que permita poner en movimiento un auto. Los pasos podrían ser:
a) Inicio del algoritmo
b) Pisar el embrague con el pie izquierdo
c) Poner en punto muerto
d) Poner la llave en contacto
e) Pisar el embrague
f) Poner primera
g) Sacar el freno de mano
h) Levantar el pie izquierdo del embrague mientras se pisa el acelerador con el pie de-
recho
i) Fin del algoritmo
2) Un cliente realiza un pedido. El vendedor verifica la base de datos para evaluar si el
cliente tiene crédito. En caso afirmativo se acepta el pedido, en caso contrario se re-
chazará. Para esto, los pasos posibles son:
a) Inicio del algoritmo
b) Leer el pedido
c) Verificar la base de datos
d) Si el cliente tiene crédito, aceptar el pedido; sino rechazarlo
e) Fin del algoritmo
3) Se desea ingresar nuevos libros a una biblioteca. ¿Cuáles serían los pasos a realizar
para ello?:
a) Inicio del algoritmo
b) Abrir la biblioteca
c) Confeccionar la ficha del nuevo libro
d) Sellar el nuevo libro
e) Colocarlo en el estante correspondiente
f) Verificar si hay más libros para ingresar
4
g) Si hay más libros, se repetirá desde el paso 3) hasta el 7) inclusive; si no hay más
libros que ingresar, cerrar la biblioteca
h) Fin del algoritmo
En todos los casos, primero se debe desarmar el problema en pasos sencillos, concre-
tos y que los entienda cualquier persona, luego se debe indicar lo más claro posible el
orden en que deben ejecutarse dichos pasos.
De estos ejemplos podemos ver concretamente las características y partes fundamenta-
les que debe tener todo algoritmo:
Un comienzo o inicio
Bien definido, es decir que si se sigue varias veces el algoritmo con igual conjunto de
datos se debe obtener el mismo resultado.
Tener en cuenta todas las situaciones que pueden plantearse
De fácil lectura e interpretación
Ser finito
Diseñado de manera independiente del lenguaje de programación
DEFINICION DE DATO. TIPOS
Un dato es un caracter o conjunto de caracteres que contiene información con la que
opera la computadora. Existen distintos tipos de datos a saber:
Datos numéricos: su contenido está compuesto exclusivamente por números, el pun-
to decimal y el signo menos (-).
Datos alfabéticos: su contenido está compuesto exclusivamente por letras y el carac-
ter en blanco.
Datos alfanuméricos: su contenido está compuesto por una mezcla de los dos ante-
riores.
5
VARIABLES Y CONSTANTES
Una variable es un dato cuyo valor puede ser modificado durante la ejecución de un pro-
ceso. Cuando nos referimos a una variable, lo que hacemos es hacer referencia a una
posición de la memoria principal donde se va a alojar un valor. Si este valor se modifica
en algún momento, el nuevo valor sustituirá al que existía anteriormente.
Una constante es un dato cuyo valor no se modifica durante la ejecución de un proceso.
Tanto las variables como las constantes se componen de:
Un nombre, elegido por el programador y que por lo general indica el contenido de la
variable.
Un tipo, que define qué clase de dato va a contener la variable.
Un contenido, que es el valor que se va a almacenar.
Ejemplos de variables y constantes
SNOTA para representar la suma de notas
PROM para representar promedios Ejemplos de Variables
NOMBRE para representar nombres de personas
PI = 3,141592
E= 2.718228 Ejemplos de constantes
NOMBRE=”Juan Pérez”
Este último ejemplo es una constante tipo cadena. Se denomina cadena a la secuencia
de caracteres y nótese que esta entre “”.
6
EXPRESIONES
Las expresiones son combinaciones de constantes, variables, símbolos de operación,
paréntesis y nombres de funciones especiales.
Una expresión consta de operandos que pueden ser constantes o variables, y operado-
res que son aquellos símbolos que permiten concatenar cada uno de los argumentos que
intervienen en una operación. Pueden ser:
Operadores Aritméticos: junto con las variables numéricas formas las expresiones
aritméticas. Ellos son:
SIMBOLO SIGNIFICADO EJEMPLO
+ Suma 4+1=5
- Resta 5–2=3
* Multiplicación 5 * 2= 10
/ División 2 / 3 = 0.666
^ Potenciación 2^3=8
- Negativos -(1.5) = - 1.5
\ División entera 22 \ 5 = 4
MOD Resto de la división MOD(22,5) = 2
Hay que tener en cuenta que no todos los operadores aritméticos existen en todos
los lenguajes de programación, tal es el caso por ejemplo del MOD.
Ejemplos de representación
5x7 se representa 5 * 7
se representa 6 / 3
3 se representa 3 ^ 7
7
Respecto de las prioridades debemos decir:
PRIORIDAD OPERADOR OPERACION OBSERVACIONES
Si existen diferentes paréntesis anidados
0 (más alta) () Paréntesis las expresiones más internas se evalúan
primero
1 ^ Potenciación
2 - Negativo
3 *;/ Multip./Divis.
4 \ Divis. entera
5 MOD Módulo
6 (más baja) +;- Suma/Resta
Ejemplos
a) 71210 − 15 MOD 3 * 4 + 9
*3 b) ((( ({ 4 / 2 * ( 3 / 6 ) + 6{
123
/ 2 ) / 1 / 5) ∧ 2 ) / 4 ) * 2
70 2 0 .5 3
70 − 15 MOD 3{ *4 +9 (((( ( 2 * 0 .5 ) + 3) / 1 / 5 ) ∧ 2 ) / 4 ) * 2
1424 3
12 1
70 − 15
142MOD 12 + 9
43 (( ({4 / 1 / 5) ∧ 2 ) / 4 ) * 2
3 4 4
142 3
70 −
123 3 + 9 0 .8
67 ( ( 0 .8 ∧ 2 ) / 4 ) * 2
1 424 3
12+39
67
0 . 64
76 ( 0 . 64 / 4 ) * 2
0 . 16 * 2
0 . 32
Operadores Relacionales: permiten obtener, en una comparación, un resultado ver-
dadero o falso. Ellos son:
8
SIMBOLO SIGNIFICADO EJEMPLO RESULTADO
> Mayor 22 > 5 Verdadero
< Menor 22 < 5 Falso
>= Mayor o igual que 22 >= 22 Verdadero
<= Menor o igual que 5 <= 4 Falso
= Igual 13 = 13 Verdadero
<> Distinto 13 <> 13 Falso
Operadores Lógicos: su funcionamiento se ve reflejado en las tablas de verdad.
SIMBOLO SIGNIFICADO EJEMPLO
La expresión es cierta cuando am-
^ AND (conjunción) bos argumentos son ciertos al Es de día y hay sol
mismo tiempo
La expresión es cierta cuando al
Estudiamos o vamos al
v OR (disyunción) menos uno de sus argumentos es
cine
cierto
Afecta a la expresión cambiando su
! NOT (negación) No es de día
estado lógico
Prioridad de los operadores
PRIORIDAD OPERADOR
0 (más alta) o (or)
1 y (and)
2 no (not)
3 <, >, =, <>, <=, >=
4 +, -
5 MOD
6 \
7 +, /
8 (más baja) ^
9
INSTRUCCIONES
Las instrucciones son cada una de las acciones que intervienen en la resolución de un
problema. Se pueden dividir en:
Instrucciones de Asignación: se utilizan para darle un valor inicial a las variables
que intervienen en un proceso. El valor a asignar puede ser una constante, el conteni-
do de otra variable o el resultado de un cálculo, como así también expresiones lógicas
y de caracter. La representación de la asignación se realiza a través del signo igual
(=). La acción de asignar “destruye” cualquier valor que tuviera una variable antes de
la asignación y lo reemplaza por el nuevo valor. Por ejemplo:
VALOR INICIAL SIGNIFICADO
A=0 Asigna a la variable A el valor 0
PI = 3.1415 Asigna a la variable PI el valor 3.1415
B=B+2 Asigna a la variable B el resultado de la suma
NOM = “Juan Pérez” Asigna a la variable NOM el valor “Juan Pérez”
CONT = “ ” Asigna a la variable CONT un espacio en blanco
Instrucciones de Entrada: son aquellas que permiten leer distintos valores y asignar-
los a determinadas variables. Esta operación implica introducir datos en la memoria
principal de la computadora a través de cualquier periférico de entrada (teclado, tarje-
tas perforadas, unidades de disco, etc.)
Instrucciones de Salida: son aquellas que permiten extraer datos desde la memoria
principal de la computadora a través de cualquier periférico de salida (impresora, pan-
talla, unidades de disco, etc.)
No se puede asignar valores de tipo caracter a una variable de tipo numérica o un valor
numérico a una variable de tipo carácter. Se presentará un error si se trata de hacerlo.
Instrucciones Condicionales: permiten realizar acciones alternativas, es decir la eje-
10
cución de una línea o grupo de líneas del programa que cumplen o no con una o va-
rias condiciones.
Instrucciones Repetitivas: permiten realizar acciones un número determinado de ve-
ces, dependiendo del cumplimiento de una condición.
ESTRUCTURAS
Se pueden considerar tres divisiones a saber:
1) Inicial, donde:
a) Se inicializan variables que se utilizarán
b) Se abren archivos
c) Se ingresan valores que deben ir fuera del ciclo
2) Ciclo o Repetitiva: es aquella parte del programa que se repetirá un número determi-
nado de veces o hasta que se cumpla una condición.
3) Final, donde:
a) Se muestran resultados finales obtenidos
b) Se cierran archivos.
11
ACTIVIDADES
1. Realice un algoritmo para:
a) Sumar los números 123 y 567
b) Calcular la superficie de un rectángulo
2. Escribir utilizando los operadores aritméticos, las siguientes expresiones:
a)
b) +
c)
3. Indicar el valor de x después de realizar las operaciones aritméticas:
a) x = (2 + 3)* 6
b) x = (12 + 6) / 2* 3
4. Si a=6, b=2 y c=3, indicar el resultado final de las siguientes expresiones:
a) a – b + c
b) c ^ b + c * b
c) a * b / c
d) (a * b) / 3 ^ 2
5. Obtener el resultado de las siguientes expresiones:
a) ((4-2)*(5+1)/2)^2-(4+3)
b) 8+7*3+4*6
c) 3+2*(18-4^2)
12