Está en la página 1de 12

PROGRAMACIÓN LÓGICA

MODULO 1
UNIDAD 1: SISTEMAS DE PROCESAMIENTO DE INFORMACIÓN Y ALGORITMOS

1. SISTEMAS DE PROCESAMIENTO DE INFORMACIÓN


Para solucionar un problema mediante un sistema informático, se debe tener en cuenta lo siguiente:
 Una Secuencia de Instrucciones es comunicada a la computadora.
 Estas instrucciones son escritas en un Lenguaje de Programación.
 Un conjunto de instrucciones escritas en un lenguaje de programación forman un Programa.
 El hardware de la PC puede entender instrucciones solamente a través de un lenguaje binario de
ceros y unos, a esto se llama Lenguaje de Bajo Nivel.
 Se han desarrollado Lenguajes de Alto Nivel, que permiten el uso de expresiones literarias y
algebraicas interpretadas por el ser humano, y así facilitan la comprensión y el entendimiento de la
lógica involucrada en un programa.
 Utilizando lenguaje de alto nivel, se construye una serie de instrucciones, un modelo, que permita
obtener la solución deseada. Estos modelos se llaman Algoritmos, y con el conjunto de pasos
necesarios para resolver un problema.
 Para escenarios complejos, los algoritmos de resolución tienen una mayor dificultad para su
desarrollo, dando lugar a distintas formas de encarar los modelos de resolución. Estas distintas
formas se denominan Paradigmas de Programación.
 Programa: Es un conjunto de instrucciones escritas en un lenguaje de programación. Representa la
solución a un problema. Para ello, se debe identificar el modelo de resolución, y luego convertirlo
en instrucciones escritas en un lenguaje de programación, para que el programa acepte la entrada
de datos y realice los pasos lógicos necesarios para devolver la salida deseada.

Clasificación de los Lenguajes de Programación


1. Según el Nivel de Abstracción:
a. Lenguaje Máquina: Es el que comprende el procesador, consiste en una serie de cadenas
binarias (ceros y unos), y por esto son únicamente legibles por una computadora.
b. Lenguaje de Bajo Nivel: Su comprensión requiere una complejidad menor que el anterior, pero
sigue teniendo una fuerte dependencia con el entendimiento de las estructuras y el
funcionamiento técnico de la computadora. Ej: Assembler. Debe ser traducido a Lenguaje
Máquina para que pueda ser ejecutado.
c. Lenguaje de Alto Nivel: Utiliza sintaxis y estructuras que resultan más fáciles de entender para
los programadores. Se usan palabras de lenguaje natural. Los programas escritos en este
lenguaje necesitan de un Intérprete o Compilador para traducir las instrucciones.
2. Según el Paradigma de Programación: Un Paradigma de Programación define un patrón con reglas y
pautas que todo desarrollador debe seguir para resolver una situación problemática. Tipos:
a. Lenguaje Imperativo: Consiste en un conjunto de instrucciones que la computadora debe
ejecutar. Hace énfasis en cómo debe hacerse dicha tarea y no en el porqué de su realización.
b. Lenguaje Funcional: Se basa en la aplicación de funciones matemáticas y la composición entre
ellas, a diferencia de los cambios de estado que definen al Lenguaje Imperativo.
c. Lenguaje Lógico: Aplica reglas lógicas para que, a partir de ellas, se pueda llegar a conclusiones a
través del razonamiento formal. Intenta resolver un problema mediante la comprobación de la
veracidad o falsedad de un conjunto de expresiones.

1
d. Lenguaje Orientado a Objetos: Organiza los datos en objetos que pueden almacenar y
manipular información, en forma similar a como el ser humano percibe la realidad que lo rodea.
Trabaja con unidades lógicas, denominadas Objetos, que contienen información, se
interrelacionan, y ejecutan las funciones necesarias para resolver un problema.

Traductores de Lenguaje: Intérpretes y Compiladores


Para que un programa pueda ser ejecutado, su Código Fuente en Lenguaje de Alto Nivel debe ser traducido
a Lenguaje Máquina. Esto se hace utilizando Intérpretes y Compiladores:
 Intérprete: Lee e interpreta las instrucciones de un programa fuente a medida que son
encontradas, y las ejecuta. Ejemplos: Bash, Basic.
 Compilador: Traduce el Código Fuente de un programa (Alto Nivel) en Lenguaje Máquina para que
el procesador pueda ejecutar sus instrucciones.
→ El código escrito en Lenguaje de Alto Nivel se denomina Código Fuente; y el que ya fue
traducido se llama Código Objeto.
→ Pasos del proceso de compilación:
1. Escritura del Código Fuente en Lenguaje de Alto Nivel.
2. Ejecutar la Compilación, lo que devuelve un programa en Lenguaje Ensamblador.
3. Verificación y corrección de errores de compilación.
4. Obtención del Código Objeto.
5. Utilizar un Enlazador o Ensamblador, módulo que junta los paquetes de código
generados en el paso anterior, con otros recursos (como bibliotecas) y obtiene
finalmente el Programa Objeto en Lenguaje Máquina.
6. Ejecución del programa.

2. SISTEMAS DE INFORMACIÓN
 Sistema: Conjunto de elementos que interactúan entre sí para lograr un objetivo.
 Sistema de Información: Tratamiento de la información de una unidad de negocio para su uso
posterior, con el objetivo de cubrir una necesidad. Usado para dar apoyo a las actividades del negocio.
 Actividades de un Sistema de Información:
1. Entrada de Datos: Se capturan los datos que servirán para el posterior procesamiento, sean
externos a la organización, o internos.
2. Almacenamiento: Se guardan los datos recopilados y la información generada.
3. Procesamiento de Información: Se toman los datos capturados y se los procesa, para generar
información que tenga mayor significado.
4. Salida de Información: Se transfiere la información generada a las personas interesadas en ella.

Tipos y Usos de los Sistemas de Información


1. Sistema de Procesamiento de Transacciones: Su función es procesar la información relacionada con
las transacciones de una organización. Automatiza procesos repetitivos relacionados con las tareas
operativas de una organización.
2. Sistema de Soporte de Decisiones: Analizan la información obtenida por los Sistemas Transaccionales,
brindando nueva información que ayuda a la toma de decisiones, que se caracterizan por ser
repetitivas y no estructuradas.
3. Sistema Estratégico (ERP): Da soporte a la toma de decisiones estratégicas de una organización, para
obtener ventajas respecto de los competidores. Se utiliza a nivel gerencial.

2
3. ELEMENTOS DEL LENGUAJE
 Entidad: Son los elementos sobre los cuales trabaja un programa. Ejemplos: subprogramas, variables,
sentencias, etc.
 Atributos: Son características de las entidades, que las diferencian entre sí. Por ejemplo: nombre,
valor, tipo, ubicación en memoria, tiempo de vida, etc.
 Los atributos son asociados a una entidad por medio de un Mecanismo de Ligadura. La ligadura se
crea o implementa en distintos momentos, esto se llama Tiempo de Ligadura; y según en qué
momento se dé, se las puede clasificar en:
→ Ligadura Estática: Se produce antes de la ejecución del programa, en tiempo de
compilación o de diseño. Tiene las siguientes características:
1. Menor flexibilidad.
2. Mayor seguridad (detección temprana de errores).
3. Mayor eficiencia.
4. Aplicable a lenguajes compilados.
→ Ligadura Dinámica: La asociación se da durante la ejecución del programa. Características:
1. Mayor flexibilidad.
2. Menor seguridad.
3. Mayor costo de ejecución.

SINTAXIS Y SEMÁNTICA
Sintaxis del Lenguaje
Los lenguajes de programación deben seguir ciertas reglas que determinan la validez de las sentencias
empleadas. Este conjunto de reglas define la Sintaxis del lenguaje, que está determinada por:
→ Reglas Léxicas: Conjunto de caracteres del lenguaje y la forma en que se combinan para formar
sentencias válidas.
→ Reglas Sintácticas: Definen reglas para construcciones más complejas, que se dan mediante la
combinación de elementos léxicos.
Elementos de la Sintaxis de un lenguaje: Alfabeto, identificadores, palabras reservadas, espacios en blanco,
símbolos de operadores, expresiones, delimitadores de código, comentarios.

Semántica del Lenguaje


El significado que toma cada uno de los elementos de un lenguaje de programación de acuerdo al contexto,
define la Semántica del Lenguaje. La Sintaxis no tiene en cuenta el concepto, la Semántica sí lo hace. Los
elementos principales de la Semántica son las variables, los valores y las expresiones. Por ejemplo: Si se
utiliza un operador aritmético en una expresión, el tipo de dato esperado es numérico, y los operandos
deben ser valores numéricos también.

4. ALGORITMOS
Un Algoritmo es un conjunto de pasos para resolver un problema. Se parte desde un estado inicial y una
entrada para llegar a un estado final o solución. En computación, los problemas son resueltos utilizando
algoritmos que son representados mediante programas o software.

Características de los Algoritmos


Todo algoritmo debe cumplir las siguientes características:
1. Preciso: Debe indicar el orden de realización de cada paso.

3
2. Definido: Se debe obtener el mismo resultado en cada ejecución.
3. Finito: Debe tener un número finito de pasos que permitan resolver el problema.

Fases en la resolución de Problemas


1. Análisis del Problema: Debe definirse que resultado o solución se quiere obtener, los datos de
entrada, y lo que debe hacer el programa para llegar a dicho objetivo.
2. Diseño del Algoritmo: Se diseña y representa el algoritmo que resolverá el problema.
3. Codificación: Se escribe el programa a partir del algoritmo diseñado, en lenguaje de programación.
4. Compilación y Ejecución: El código fuente se traduce a lenguaje máquina, para que luego el
procesador de la computadora pueda ejecutar las instrucciones.
5. Verificación y Depuración: Se comprueba que el programa obtenga los resultados esperados, con
una amplia variedad de datos de entrada. Depurar es identificar y corregir los posibles errores que
puedan encontrarse.
6. Documentación: Deben describirse los pasos del proceso, incluir diagramas de flujo, manuales de
usuario, definición de requerimientos, etc.
7. Mantenimiento: El programa debe actualizarse y modificarse siempre que sea necesario. Para
facilitar esto, es muy importante contar con documentación clara y precisa.

Diseño de Algoritmos
Para resolver un problema mediante un algoritmo, se puede recurrir a distintas técnicas. Una de las más
conocidas se denomina Divide y Vencerás, y consiste en dividir el problema en partes más pequeñas, ya
que cada una de estas es más fácil de resolver. Esta subdivisión se puede realizar tantas veces como sea
necesario. Una vez que se obtienen las soluciones a cada subproblema, se combinan para dar una solución
al problema original de mayor complejidad. Se denomina también Diseño Descendente, y consiste en
refinar el algoritmo por cada división de las partes, para agregar mayores detalles en los distintos pasos. Las
principales ventajas de la aplicación de esta técnica son:
1. Comprensión más fácil del problema.
2. Mayor facilidad para resolver problemas complejos.
3. Mayor facilidad para analizar y mejorar la eficiencia del algoritmo.
4. Realizar modificaciones es más fácil.
5. Mayor facilidad para verificar problemas.

Representación de Algoritmos
La descripción de un algoritmo puede tener distintos niveles de detalle. Se puede comenzar utilizando
lenguaje natural, pero esta puede tener ambigüedades o ser extensa. Para ello se emplean técnicas
formales de descripción de algoritmos, que son más estructuradas. Por último, se debe traducir la
representación formal del algoritmo a una implementación en algún lenguaje de programación. Entre estas
técnicas formales de representación de algoritmos encontramos las siguientes:
1. Diagrama de Flujo: Es una forma gráfica que utiliza una serie de símbolos con significados
especiales, y son la representación gráfica de los pasos de un proceso. Están unidos mediante
flechas que indican la secuencia de los pasos del algoritmo.

4
2. Pseudocódigo: Define una estructura intermedia entre la descripción de algoritmos en lenguaje
natural y la descripción en lenguajes de programación. Utiliza palabras que facilitan la lectura
humana, y aplica un orden y reglas parecidas a las de un lenguaje de programación.

Existen muchas formas y reglas distintas para representar un algoritmo en pseudocódigo. En nuestros
ejemplos, constara de las siguientes secciones:
 Cabecera del Algoritmo: Sentencia simple que comienza con la palabra reservada “Algoritmo”,
y a continuación se indica el nombre asignado al mismo.
 Declaración de Estructuras de Datos (Arreglos y Registros): En el caso de utilizarse estas,
deben declararse en un bloque de código con la palabra reservada “Tipo”.
 Declaración de Variables y Constantes: Se enumeran utilizando las palabras reservadas “Var” y
“Const” respectivamente.
 Sentencias Ejecutables: Son las instrucciones que constituyen los pasos del algoritmo. Para
delimitarlas, se utilizan las palabras reservadas “Inicio” y “Fin”.
a. Iniciar con el nombre del algoritmo o programa: algoritmo Numeros_Pares
b. Declarar las variables: var
entero: cantidad, num
c. Iniciar la secuencia de instrucciones: inicio
d. Detallar las instrucciones: cantidad  1
Usando la flecha se asigna valor a variables. repetir
“Leer” lee valores ingresados por teclado. leer (num)
si num > 0 entonces
“Escribir” muestra valores por pantalla. escribir (num)
fin-si
hasta-que cantidad > 10
e. Termina la secuencia de instrucciones. fin

5
UNIDAD 2: TIPOS DE DATOS
Un Tipo de Dato define el conjunto de valores que una variable puede tener. También especifica las
operaciones que se pueden realizar con dicha variable, y define el espacio que se utiliza en memoria para
almacenar los valores (variables y constantes). Se pueden clasificar en:
 Básicos o Integrados: Definidos por los lenguajes de programación.
 Definidos por el Programador: Definidos a partir de tipos de datos básicos.

1. Datos Numéricos
Representan el conjunto de los valores numéricos. Pueden ser:
a. Tipo Numérico Entero: Números enteros sin parte fraccionaria, pueden ser positivos o negativos.
b. Tipo Numérico Real: Comprende los enteros positivos, negativos, el cero y los números decimales.
Ocupan mayor espacio en memoria que los enteros.

2. Datos Lógicos
Los tipos de datos lógicos o booleanos representan los valores lógicos Verdadero (True) o Falso (False).
Comúnmente se usan para dirigir las secuencias de código por ejecutar, ya que mediante el uso de este tipo
de dato, pueden evaluarse condiciones que permiten tomar una decisión.

3. Datos de Tipo Carácter y Cadena


a. Carácter: Conjunto finito y ordenado de caracteres que la computadora reconoce. Este tipo de dato
puede tener un solo carácter. Algunos lenguajes toman las minúsculas y minúsculas como valores
distintos (Case Sensitive).
b. Cadena: Es un tipo de dato estructurado compuesto a partir de un conjunto de caracteres. Es una
sucesión de caracteres delimitados por comillas simples o dobles.

VARIABLES Y CONSTANTES
 Variable: Es un espacio reservado en memoria, cuyo contenido (valor) puede cambiar durante la
ejecución del programa. Tiene asociado un Identificador o Nombre, un Tipo de Dato y un Valor, y
solo puede tomar valores permitidos según su tipo de dato. El Identificador o Nombre es un
conjunto de caracteres con el que se puede referenciar a la variable.
 Constante: Representa objetos cutos valores no pueden cambiar durante la ejecución del
programa. Si se intenta esto, se producirá un error. También tienen Identificador, Tipo de Dato y
Valor, pero este último no puede modificarse.

Palabras Reservadas
Son palabras que poseen un significado especial para el lenguaje, y por tanto, no pueden ser utilizadas
como identificadores de variables o constantes. Algunas de ellas son: inicio, fin, entero, para, según, repetir,
función, si, sino, mientras, entonces, cadena, etc…

UNIDAD 3: EXPRESIONES
Una Expresión es la combinación de variables, constantes, operadores, funciones y reglas. Dependiendo de
cómo se combinen estos elementos, se obtendrán distintos resultados. Se clasifican en:
a. Aritméticas: Devuelven resultados de tipo numérico.
b. Lógicas: Devuelven resultados de tipo lógico.
c. Relacionales: Devuelven resultados de tipo lógico.
6
d. De Carácter: Devuelven resultados de tipo carácter.

1. Expresiones Aritméticas
Son análogas a las que se utilizan en álgebra, a saber: Suma (+), Resta (-), Multiplicación (*), División Real
(/), Potencia (^ o **), División Entera (div) y Módulo o Resto de División Entera (mod). Son expresiones
binarias, ya que requieren de dos operandos (números) y un operador.

Reglas de Prioridad
Cuando en una expresión figuran varios operadores, se aplican reglas de precedencia o prioridad, que
indican al programa el orden en el que se efectuarán las operaciones. Estas son las siguientes:
a. Primero se evalúan las expresiones encerradas entre paréntesis.
b. De no haber paréntesis, las operaciones aritméticas se resuelven en el siguiente orden:
1. Potencia o Exponenciación.
2. Producto y División.
3. División Entera y Módulo.
4. Suma y Resta.
c. Si coinciden los operadores en su orden de prioridad, se ejecutan de izquierda a derecha.

2. Expresiones Lógicas
Son aquellas cuyo resultado es de tipo lógico, es decir, verdadero o falso. Son utilizados generalmente
cuando es necesario evaluar una expresión para tomar una decisión. Los Operadores Lógicos son:
a. Conjunción: And - Y - &
b. Disyunción: Or - O - |
c. Negación: Not - No - !
Los operadores Conjunción y Disyunción son binarios, ya que necesitan dos operandos para cumplir su
función; mientras que el operador Negación es unario, se aplica a un solo objeto.

3. Expresiones Relacionales
Comparan dos datos, devolviendo si la condiciones verdadera o falsa. Utilizan operadores Relacionales o de
Comparación, que son los siguientes:
 Igual que (=)
 Menor que (<)
 Mayor que (>)
 Menor o igual que (<=)
 Mayor o igual que (>=)
 Distinto de (<>)
Por ser operadores de comparación, en todos los casos son binarios (necesitan dos operandos).

OPERACIONES
1. Operación de Asignación
Es utilizada para almacenar / asignar un valor a una variable. Se representa con los símbolos = o .
Variable  Expresión.
Los operadores de asignación pueden ser:
a. Asignación Aritmética: A  6 + 7
b. Asignación Lógica: A  5 < 7
7
c. Asignación de Caracteres / Cadenas: A  “hola”.

2. Operadores de Entrada / Salida


 Las Operaciones de Entrada permiten ingresar valores mediante dispositivos de entrada de datos. El
más común, es mediante la utilización del teclado. Se denominan también Operaciones de Lectura.
 Las Operaciones de Salida consisten en enviar valores a dispositivos. Por ejemplo, mostrarlos en
pantalla o imprimirlos por impresora. Se llaman también Operaciones de Escritura.
En los algoritmos, las acciones de Lectura y Escritura se representan así:
leer (lista de variables de entrada separadas por coma)
escribir (lista de variables de salida separadas por coma)

8
MODULO 2
ESTRUCTURAS ALGORITMICAS
La Programación Estructurada es un paradigma que tiene por propósito escribir programas en forma clara y
precisa, utilizando únicamente tres estructuras de programación: Secuenciales, Condicionales y
Repetitivas. El Teorema del Programa Estructurado indica que todo diseño de algoritmo puede ser
implementado utilizando estas estructuras de programación.

UNIDAD 1: ESTRUCTURAS SECUENCIALES


Las Estructuras Secuenciales son aquellas que se ejecutan una a continuación de la otra, en secuencia. Las
acciones se ejecutan cuando la anterior ha finalizado. Entre ellas, encontramos las ya vistas:
 Asignación.
 Entrada.
 Salida.

UNIDAD 2: ESTRUCTURAS CONDICIONALES


Las Estructuras Condicionales son utilizadas para ejecutar un conjunto de sentencias si se cumple una
condición. Esto permite modificar el orden de ejecución de las sentencias. El tipo de dato del resultado de
la condición debe ser del tipo lógico. Comparan una variable contra otro(s)valor (es), para que en base al
resultado de esta comparación, se siga un curso de acción dentro del programa. Existen tres tipos básicos:

1. Condicional Simple (if)


Evalúa una condición. Si esta es verdadera, ejecuta las sentencias especificadas a continuación de la
palabra reservada entonces. Si es falsa, no realiza ninguna acción y continúa con el flujo del algoritmo. La
condición debe devolver un resultado de tipo lógico (verdadero o falso).
Pseudocódigo Diagrama
si <condición> entonces
sentencia 1
sentencia 2
.
.
Sentencia n
fin-si

9
2. Condicional Doble (if – else)
Evalúa una expresión lógica (condición). Si esta es verdadera, ejecuta las sentencias que se encuentran a
continuación de la palabra reservada entonces (rama verdadera); pero si la condición resulta ser falsa,
entonces se ejecutan las sentencias especificadas a continuación de la palabra reservada si-no (rama falsa).
La condición debe devolver un resultado de tipo lógico (verdadero o falso).
Pseudocódigo Diagrama
si <condición> entonces
sentencia 1
sentencia 2
.
sentencia n
si-no
sentencia 1
sentencia 2
.
sentencia n
fin-si

3. Condicional Múltiple (case - switch)


Es utilizada cuando se debe elegir entre más de dos alternativas, de acuerdo con el valor de una variable.
Evalúa una expresión que puede resultar en n valores distintos. Según el resultado de la expresión, se
ejecutarán las sentencias definidas para el valor que se ha obtenido. Esta expresión requiere que la variable
que se evalúa sea de tipo entero o carácter. La aplicación de la sentencia si-no al final (else) es opcional, y
se debe utilizar cuando necesitamos que se devuelva un resultado en el caso de que la variable no sea igual
a ninguno de los valores especificados en la sentencia.

Pseudocódigo Diagrama
segun-sea <expresión> hacer
caso A: sentencia A1
sentencia A2
…..
caso B: sentencia B1
sentencia B2
…..
caso C: sentencia C1
sentencia C2
…..
si-no
Sentencia X1
fin-según

10
UNIDAD 3: ESTRUCTURAS REPETITIVAS
Las Estructuras Iterativas o de Repetición permiten ejecutar una sentencia de instrucciones más de una
vez. Un Bucle es una sección de código que se repite: cuando se termina de ejecutar la última instrucción
del conjunto, el flujo de control retorna a la primera sentencia y comienza una nueva repetición.

1. Mientras (while)
Se ejecuta un conjunto de sentencias, mientras el resultado de una condición sea verdadero. Primero se
evalúa la condición y, si es verdadera, se ejecutan luego las sentencias definidas en el bucle; y se sigue
repitiendo hasta que la condición de como resultado falso. El número mínimo de veces que se repite es 0: si
la primera vez, la condición resulta ser falsa, el bucle no se ejecutará jamás.
Pseudocódigo Diagrama
mientras <condición> hacer
sentencia 1
sentencia 2
….
Sentencia N
fin-mientras

2. Repetir-Hasta (do-while)
Se usa cuando se desea que se ejecute una iteración al menos una vez antes de comprobar la condición de
repetición. Primero se ejecuta el bucle y luego se comprueba la condición, para repetir o no el bucle. El
número mínimo de veces que se repite es 1. El bucle se sigue repitiendo mientras la condición que se
evalúa sea falso.
Pseudocódigo Diagrama
repetir
sentencia 1
sentencia 2
….
Sentencia N
hasta-que <condición>

3. Para / Desde (for)


Se usa cuando se conoce el número de veces que se desea que un bucle se repita. En un ciclo Para / Desde
se utiliza una variable como índice, que se incrementa o decrementa en forma automática al finalizar cada
ciclo. Se evalúa una condición que debe ser verdadera. La condición más comúnmente usada es que el

11
valor del índice sea menor o igual a un valor final: si esto se cumple, se ejecuta el bucle; si no se cumple, se
ignora el bucle y se continúa con el resto del algoritmo.
Pseudocódigo Diagrama
Desde v  vi hasta vf <inc / dec> hacer
sentencia 1
sentencia 2
….
sentencia N
fin-desde <condición>

v es una variable entera, que debe ser declarada.


vi es el valor inicial de la variable.
vf es el valor final, que terminará el ciclo.
Hay que elegir entre Incrementar o Decrementar la
variable de control, y en cuanto. Ej: dec 2
decrementa en 2. Si no se incluye esta sentencia,
por defecto, se incrementa en 1 (inc 1).

Equivalencia entre Estructuras Repetitivas


Las estructuras repetitivas vistas hasta aquí son equivalentes unas con otras. Siempre es posible
reemplazarlas entre ellas realizando algunas variaciones sencillas.

12

También podría gustarte