Vous êtes sur la page 1sur 41

1

LÓGICA COMPUTACIONAL Hünicken, Helvia E.

1. RESOLUCIÓN DE UN PROBLEMA

¿Qué es la programación lógica?


Lógica: Es el arte de razonar.
Programación lógica: Es el tipo de programación en la cual las sentencias son sentencias lógicas,
tales como implicaciones lógicas, proposiciones lógicas, etc.
Ninguna computadora por sí sola puede realizar las tareas que se le encomiendan; para que la
máquina pueda trabajar es necesario que alguien le indique qué debe hacer y cómo tiene que
hacerlo. El conjunto de instrucciones que componen un programa debe codificarse en un lenguaje
entendible por la máquina (lenguaje o código de máquina); como han ido evolucionando los
lenguajes, hoy es posible hacerlo con un lenguaje de alto nivel, lo más próximo al lenguaje humano.
Si queremos que una computadora lleve a cabo un proceso, antes que nada habrá que programarla
para ello. Tendremos que construir un programa que le indique qué pasos ha de seguir para efectuar
dicho proceso de un modo totalmente correcto.
Se desprende que, una computadora no tiene inteligencia por sí sola, no olvidemos que la
computadora es una máquina creada por el hombre y, por tanto, no podrá realizar una tarea que no
haya sido previamente determinada por él.
El objetivo es, que frente a un problema dado, diseñemos una solución que pueda ser realizada por
un computador. Para ello necesitamos:
1º. Un lenguaje o notación para expresar la solución obtenida.
2º. Escribirla en un lenguaje comprensible por la máquina, por ejemplo: BASIC, COBOL, Pascal, C,
etc.

1.1 Sistemas de procesamiento de información

Haremos una distinción entre lo que es dato e información.


Los datos son hechos, conceptos o entidad real; la materia prima de la información. Los datos
pueden tomar diferentes formas; por ejemplo, palabras escritas, números y dibujos, pero sólo pueden
considerarse como información en un sentido muy limitado. En la forma en que el término se utiliza en
el procesamiento de datos, la información consta de datos organizados en una forma que es útil para
las personas que la reciben. En otras palabras, la información consiste en conocimientos
procesados y organizados, producidos como resultado de las operaciones de procesamiento de
datos.
El proceso convierte los datos en información. Toda la información consta de datos, pero no todos los
datos producen información específica o inteligible. La interpretación de estos datos requiere un
criterio humano.
Un sistema en general es definido como conjunto de componentes conectados e interactivos, que
tienen un propósito y una unidad total. Sistema de procesamiento de información es un sistema
que transforma datos brutos en información organizada, significativa y útil.

Sistema de
procesamiento de
Entrada = datos procesador Salida = información
información

La figura muestra los componentes de un sistema de proceso de la información: entrada, salida y


procesador. El procesador, que puede ser bastante complicado, se representa por una simple caja y
puede aceptar datos llamados entrada y esta entrada se transforma entonces para producir una
información denominada salida o resultados.
2
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

Basados en este esquema, muchos dispositivos u organismos pueden ser considerados sistemas de
procesamiento de la información. Un termostato que controla la temperatura de un edificio es un
ejemplo, la entrada es la temperatura media y la salida es una señal que controla la caldera del aire
acondicionado. El corazón, es un sistema complejo de información.
El conjunto de instrucciones que especifican la secuencia de operaciones a realizar, en orden, para
resolver un sistema específico o clase de problemas, se denomina algoritmo. Cuando el procesador
es una computadora, el algoritmo se expresará en forma de programa escrito en un lenguaje de
programación.

1.2 Noción de programa

[Ensaye una definición de programa]


.......................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
La idea es, dado un problema determinado, diseñar una solución que pueda ser realizada por una
computadora:
Partes de un programa

 Entrada de datos. La constituyen todas aquellas instrucciones que toman datos de un dispositivo
externo, almacenándolos en la memoria central para que puedan ser procesados.

 Proceso. Está formado por las instrucciones que modifican los objetos a partir de su estado
inicial hasta el estado final, dejando éstos disponibles en la memoria central.

 Salida de resultados. Conjunto de instrucciones que toman los datos finales de la memoria
central y los envían a los dispositivos externos.

MEMORIA
CENTRAL

ENTRADA PROCESO SALIDA


Datos Datos
Requeridos

Desarrollo de un programa
El objeto de un programa es resolver un problema, si es muy complejo y extenso, no se podría
programar en una sola etapa, entonces, el estudio se hace por etapas y para su programación se
divide en varias unidades y/o programas. A un problema de esta magnitud se lo denomina aplicación
y consta de un número más o menos grande de programas.
Desarrollo de una aplicación
Todo comienza cuando surge la necesidad de la automatización de un conjunto de tareas, y finaliza
cuando esa necesidad es satisfecha con una solución informatizada. Mientras que, en el traspaso
problema solución se fue desarrollando lo que se da en llamar: ciclo de vida de un sistema o
desarrollo de aplicaciones.

1.3 Desarrollo de un programa


3
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

El desarrollo de un programa comprende el conjunto de etapas que van desde el planteamiento del
problema inicial en la fase de análisis hasta su solución informatizada a un costo razonable. Etapas:

A. Planteamiento de un Problema

A1. Análisis del Problema


construcción

del programa
A2. Diseño del Algoritmo

A3. Codificación del Programa

B. Edición y Puesta a Punto

C. Documentación

D. Explotación
Fase de construcción de un programa
Esta fase va desde el planteamiento de un problema hasta la obtención de un algoritmo que lo
resuelve codificado en un lenguaje de programación. Se compone a su vez en:
 Definición del problema
 Análisis del problema
 Programación de la solución del problema
 Diseño del algoritmo
 Codificación del programa
Estas etapas generan una documentación que se engloba en lo que se llama: cuaderno de carga.

A. Definición o planteamiento del problema


El estudio y definición del problema dan lugar al planteamiento del problema que se escribirá en la
documentación del programa.
Si no se sabe lo que se busca, no se lo reconoce si se lo encuentra. Es decir que, si no sabemos con
claridad qué es lo que tenemos que resolver, no podremos encontrar una solución.
Aquí se declara cuál es la situación de partida y el entorno de datos de entrada, los resultados
deseados, dónde deben registrarse y cuál será la situación final a la que debe conducir el problema
después de ser implementado (procesado por el computador).
A1. Análisis del problema
Teniendo en claro el problema a resolver, se hace un análisis detallado de los datos, condiciones del
problema y demás. El objetivo es, entonces, ayudar a comprender la naturaleza del problema, el cual
debe estar bien definido si se desea llegar a una solución satisfactoria. Para poder definir un
problema con precisión se requiere que las especificaciones de entrada y salida sean descritas en
detalle.
Podemos enunciar pasos generales para realizar el análisis del problema:
a) Lectura previa: para obtener una idea general de lo que se solicita.
b) Lectura detallada: para responder a las preguntas:
 ¿Qué información debe proporcionar la solución del problema? (Salida)
4
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

 ¿Qué datos se necesitan para resolver el problema? (Entradas)


En esta etapa, básicamente, se identifica el problema y se decide qué tipo de solución se requiere y si
ello implica software, se definirán los requerimientos a cubrir.
Si esa solución requiere software, el analista definirá las condiciones que debe cumplir:
Definición de salida
Contenido: es el tipo de información que se proporcionará y a qué nivel de detalle.
Formato: cómo mostrar la información, por impresora, pantalla o gráfico.
Tiempo: periodicidad del informe; es decir, cuándo necesita la información el usuario, por ejemplo
diaria, semanalmente o mensualmente.
Flexibilidad: los programas no deben ser rígidos, al punto de que no puedan ser modificados para
adaptarse a condiciones cambiantes.
Definición de entrada
Datos necesarios.
Disponibilidad de los datos.
Procedimientos para obtener información.
Introducción de los datos: cómo se ingresarán al sistema.
Definición de tareas de procesamiento
Restricciones de personas: el software debe estar diseñado de modo que el sistema dé avisos claros
a los usuarios acerca de lo que deben hacer, cuándo hacerlo y cómo; para que los usuarios no deban
estar especializados al hacer uso del sistema.
Restricciones del equipo: el software debe estar diseñado para trabajar en computadora, equipo
periférico y software de sistema que se encuentren a disposición o sean factibles de adquirir.

A2. El diseño del algoritmo


En esta etapa del ciclo de vida de desarrollo de programas, los analistas trabajan con los
requerimientos del software desarrollados en la etapa de análisis, hasta la explicación de la
naturaleza de la solución de programación. Se determinan todas las tareas que cada programa
realiza, como así también, la forma en que se organizarán estas tareas cuando se codifique el
programa.
Los problemas cuando son complejos, se pueden resolver más eficientemente con la computadora
cuando se descomponen en subproblemas que sean más fáciles de solucionar que el original. Este
método se denomina divide y vencerás (divide and conquer), y consiste en dividir un problema
complejo en otros más simples que resulten de fácil visualización y comprensión, independizándose
del resto del problema y sin ignorar la forma en que dichas partes interactúan entre sí.
La descomposición del problema original en subproblemas más simples y a continuación dividir estos
subproblemas en otros más simples que pueden ser implementados para su solución en la
computadora se denomina diseño descendente (top-down design).
Las ventajas más importantes del diseño descendente son:
 El problema se comprende más fácilmente al dividirse en partes más simples denominadas
módulos.
 Las modificaciones en los módulos son más fáciles.
 La comprobación del problema se puede verificar fácilmente.
En esta etapa además, se utilizan auxiliares de diseño, que son diagramas y tablas que facilitan la
delineación de las tareas o pasos que seguirá el programa, por ejemplo: diagramas de flujo,
seudocódigo, diagramas de Nassi-Schneiderman, etc.
5
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

Sólo cuando se complete el diseño se podrá dar inicio a la siguiente etapa: la codificación real de los
programas. Y es en esta fase en donde se hace la elección del lenguaje de programación que mejor
se adapte.

A3. Codificación del programa


En esta fase, se convierte el algoritmo en programa, escrito en un lenguaje de programación de alto
nivel como C, Pascal, Basic, etc. La codificación del programa suele ser una tarea pesada que
requiere un conocimiento completo de las características del lenguaje elegido para conseguir un
programa eficaz.
Sin embargo, si el diseño del algoritmo se ha realizado en detalle con acciones simples y con buena
legibilidad, el proceso de codificación puede reducirse a una simple tarea mecánica.
Las reglas de sintaxis que regulan la codificación variarán de un lenguaje a otro y el programador
deberá conocer en profundidad dichas reglas para poder diseñar buenos programas.
El programa se codifica en hojas preparadas a tal fin. Una vez codificado, se teclea en la
computadora.
Para aumentar la productividad, es necesario adoptar una serie de normas, como ser:
 Estructuras aceptables (programación estructurada)
 Convenciones de nominación: maneras uniformes de designación de archivos y variables.
 Convenciones de comentarios.

B. Fase de edición y puesta a punto


Edición: consiste en grabar el programa ya
codificado en un archivo, mediante un editor de
Edición texto (utilidad suministrada generalmente con el
editor
sistema), almacenándolo en el disco y otro
dispositivo externo. El resultado es el programa
programa
fuente.
fuente
compilador Compilación Una vez obtenido el programa fuente, es necesaria
e intérprete su traducción al código máquina, ya que los
programa programas escritos en un lenguaje de alto nivel no
objeto son directamente ejecutables por el computador .
montador
Montaje Según el tipo de traductor que se utilice, los
(linker)
lenguajes de alto nivel se clasifican en lenguajes
interpretados y lenguajes compilados.
programa
ejecutable Son lenguajes interpretados aquellos en los que
el sistema traduce una instrucción y la ejecuta, y así
Ejecución sucesivamente con las restantes.
Son lenguajes compilados aquellos en los que,
primero se traduce el programa fuente completo,
obteniéndose un código intermedio o módulo objeto (programa objeto); después, se fusiona éste con
rutinas o librerías necesarias para su ejecución en un proceso llamado linkado y que obtiene como
resultado un módulo ejecutable (programa ejecutable).
La ventaja de los lenguajes compilados, frente a los interpretados, son su rápida ejecución y, en caso
de necesitar posteriores ejecuciones del mismo programas ejecutable almacenado.
La puesta a punto del programa hace referencia a la localización, verificación y corrección de errores
de programación para obtener un programa que funcione correctamente.
La puesta a punto consta de las siguientes etapas:
 Detección de errores;
6
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

 Depuración de errores;
 Localización;
 Eliminación;
 Prueba del programa.
Todo esto se hace para prevenir tantos errores como sea posible detectar a la hora de ejecutar el
programa, también sirve para facilitar la detección y corrección de errores.
Los errores típicos que se presentan son:
 Errores de sintaxis
 Errores de lógica
Errores de sintaxis. Se originan en el momento de compilación/interpretación del programa y se
deben a causas propias de la sintaxis del lenguaje como escrituras incorrectas de instrucciones,
omisión de signo, etc. Estos errores se descubren con facilidad, pero puede suceder que, un error de
este tipo, no sea tal, sino que pone de manifiesto otro tipo de error diferente. Ejemplo:
SUMA = SUMA + B En la mayoría de los lenguajes compilados puede dar error durante la ejecución
si la variable SUMA no ha sido declarada.
Errores de lógica. Los errores en la lógica del programa pueden ser producidos en la fase de
compilación o ejecución. Los que suceden durante la ejecución de un programa, normalmente, son
más difíciles de detectar. Se pueden observar dos categorías: los que detienen la ejecución del
programa y los que no la detienen, pero que producen resultados erróneos. Ejemplo:

R = S/C Si C es cero, muchos de los errores lógicos sólo se manifiestan en el momento


de la ejecución; por ello se denomina también errores de ejecución.
L=2*P*R Si se omite el segundo símbolo del producto (*) y la instrucción se convierte en L
= 2 * PR, la omisión de este símbolo no se reconoce como error de sintaxis en la
fase de compilación o interpretación, pero daría resultados erróneos al ejecutarse.

C. Fase de documentación del programa


Añadiendo al contenido incluido hasta ahora en la documentación del programa, los formularios de
datos específicos del programa, y las instrucciones de operación y grabación de datos relativos a
éste, se habrá completado la documentación y con ello el ciclo de construcción del programa.
En el futuro, estos programas deberán sufrir mantenimientos, actualizaciones y, para la explotación
del mismo es imprescindible la documentación del mismo:
A nivel usuario, se provee un manual con instrucciones de cómo ejecutar el programa, descripción
de los comandos a utilizar, ejemplos de situaciones y una guía de cómo eliminar problemas que
puedan surgir.
A nivel programador, consta de ayudas que puedan simplificar el mantenimiento , incluyen
descripción del programa, herramientas de diseño utilizada, descripciones de entrada-salida, etc.
También se incluyen los procedimientos para probar el programa. Ayuda mucho que en el mismo
programa fuente se agreguen comentarios sobre lo que se intenta hacer en cada bloque.
A nivel operador, se dan instrucciones sobre qué unidades deben activarse, tamaños de papel,
cintas, etc.
Resulta beneficioso hacer y preparar la documentación a lo largo de cada etapa de desarrollo.

D. Fase de explotación del programa


Consiste en el normal funcionamiento del programa para cumplir el objetivo para el que fue destinado.
Esta fase es llevada a cabo por el usuario a lo largo del ciclo de vida del programa y corre a cargo de
los usuarios de la entidad para la que ha sido desarrollada la aplicación a la que pertenece el
programa.
7
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

En síntesis, un programa de computadora es un conjunto de instrucciones –órdenes dada a la


máquina- que producirán la ejecución de una determinada tarea. En esencia, un programa es un
medio para conseguir un fin, ese fin es definido como la información necesaria para solucionar un
problema.
Una solución a un problema puede no ser la única, pueden haber varias. Estas soluciones, luego de
ser formuladas y analizadas, permiten inferir en cuál es la mejor solución de todas las planteadas, con
esto queremos afirmar que, en circunstancias bien determinadas se considerará una única como la
más eficaz y eficiente.
8
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

Actividades 1

Conteste los siguientes puntos.

1. Busca el significado de las siguientes palabras:


a) Algoritmo
b) Aplicación
c) Archivo
d) Código
e) Documentación
f) Lenguaje de alto nivel
g) Lenguaje de programación. Ejemplos.
h) Módulo
i) Proceso
j) Programa fuente
k) Programa objeto
l) Programación
m) Programador
n) Usuario

2. ¿En qué etapa se debe documentar el programa?


3. ¿En qué momento –etapa-, estoy en condiciones de elegir el lenguaje de programación que mejor
se adapte a la solución del problema?
4. ¿En qué etapa se termina de definir el problema a solucionar?
5. ¿Los datos de qué etapa necesito para realizar, por ejemplo, un diagrama de flujo?
6. ¿En qué etapa se clarifica qué entradas, qué procesos y qué salidas va a tener el programa?
7. ¿En qué etapa me doy cuenta si mi programa no funciona correctamente debido a que tiene
errores (bugs)?
8. ¿Por qué le parece a usted que puede resultar el paso del algoritmo al código –instrucciones
dadas a la computadora- una tarea compleja?
9. ¿Qué diferencias ve entre el gráfico de un sistema de procesamiento de información y el gráfico
de las partes del programa?
10. ¿Para qué se programa?
9
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

2. OBJETOS DE UN PROGRAMA

2.1 Objetos

Son objetos de un programa todos aquellos manipulados por las instrucciones. Mediante ellos, en un
programa podremos realizar el almacenamiento de los datos y de los resultados de las distintas
operaciones que intervienen en la solución del problema.

[Ensaye un concepto de constantes y variables a nivel de programa]

CONSTANTES:

OBJETOS
VARIABLES:

Todo objeto tiene sus atributos:


 Nombre: Es con el cual se identifica al mismo.
Para identificarlo se utiliza una secuencia de uno o más caracteres en donde el primer caracter es
una letra, los siguientes pueden ser letras , dígitos o algunos caracteres especiales (depende del
lenguaje). No puede usarse un espacio como caracter de la secuencia. El espacio determina el fin
de la secuencia.
Es preferible que dicho nombre indique algo sobre el propósito para el cual se emplea. Nombres bien
elegidos, no solo hacen los algoritmos más fáciles de leer y entender, sino también de modificar
los ya escritos antes.
 Tipo: Es el conjunto de valores válidos que puede tomar.
Conjunto de características comunes que identifican todos los posibles estados que el objeto de ese
tipo puede tomar.
 Valor: Es el elemento del tipo que se le asigna.
El cual puede variar al pasar de un estado a otro, otros sin embargo no cambian nunca su valor. Por
tanto los objetos de un programa son como cajas con tapas en donde aparece adherida una
etiqueta (nombre), ésta caja tiene una forma determinada (tipo) y dentro de ellas hay almacenada
información (valor).

2.1.1. Constante

Es un objeto de valor invariable a lo largo de la ejecución de un programa, es decir que tiene un valor
concreto.
Ejemplos:

El signo “=“ es transferir (mover o asignar) lo


PI = 3.141592 que se halla a la derecha del símbolo hacia la
e = 2.718281 variable de la izquierda.
10
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

2.1.2. Variable

Es un objeto cuyo valor puede ser modificado a lo largo de la ejecución de un programa.


Ejemplos:

X=0
X=X+1 donde X es una variable tipo numérico

[Resuelve la siguiente tabla]:

N Z

1 N=2
2 Z=0

3 Z=Z+N

4 Z=Z+N

5 Z=Z+N

6 Z= Z + N

[Tache lo que no corresponda y fundamente su elección]

 La constante aquí es:


N Z
Porque ..............................................................................................................................
.........................................................................................................................................

 La variable aquí es:


N Z
Porque ..............................................................................................................................
.........................................................................................................................................
11
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

Lo mismo dicho en otros términos es:


Campo: Un campo es un área de almacenamiento principal que contiene datos y resultados
intermedios de los cálculos o resultados finales.
entero
numéricos
real
alfabéticos
Los campos pueden contener caracteres
alfanuméricos

Ejemplo de nombres de campo:


NOMBRE MATRICULA DNI CAL1 CAL2

Al mencionar un campo por su nombre, lo que en realidad se hace es extraer el contenido de dicho
campo, sirviendo el nombre sólo para indicar una posición determinada en la memoria de la máquina.
Como se dijo, los campos pueden contener caracteres sólo numéricos, sólo alfabéticos o una
combinación de ambos.
Ejemplo:
PEREZ 160114 8 9

NOMBRE MATRICULA CAL1 CAL2

En este ejemplo NOMBRE es un campo alfabético, su contenido es PEREZ; MATRICULA es un


campo numérico que contiene 160114 y CAL1, CAL2 son campos numéricos que contienen 8 y 9
respectivamente.

[Realizar las siguientes operaciones entre campos e indicar el contenido final de los mismos, si el
contenido inicial es]:
1. 4 2 3
A B C
A B C

a A=B

b C=A

c B = (A + B + C )/ 2

d A=A+C

e C=B-A

f C=C-A

g A=A*B
12
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

2. 10 20 60
X Y Z

X Y Z

a X=X+Y

b Y=X+Y

c Y = X + 20

d Z=Y-X

e X = Z / 20

f Y=Y/5

g Z = X + Y - 10

2.2. Expresiones

Las expresiones son combinaciones de constantes, variables, símbolos de operación y nombres de


funciones especiales.
Una expresión consta de:
 Operandos
 Operadores
Ejemplo: 5 + 3
Donde 5 y 3 son operandos y el signo “+” es el operador

Según el resultado de evaluar la expresión sea un número, una serie alfanumérica o uno de los
valores lógicos (Verdadero o Falso), es decir, según el tipo de objetos que manejan, las expresiones
se clasifican en:
 Expresiones aritméticas: análogas a fórmulas matemáticas, en donde se utilizan: a) operadores
tipo aritméticos y b) variables y constantes numéricas (reales o enteras).
Ejemplo: -8*2+4/2–3 PI * SQR(X)
 Expresiones alfanuméricas: se utilizan operadores alfanuméricos y producen resultados de tipo
alfanuméricos.
Ejemplo: “Lic. “ + NOM
 Expresiones relacionales: Se utilizan operadores relacionales. Se compara entre dos valores
del mismo tipo, es decir que los operandos son ambos numéricos, ambos carácter o ambos del
tipo lógico. El resultado de la evaluación de una expresión relacional es de tipo lógico: Falso o
Verdader. Ejemplo: A+B <= A*B
 Expresiones lógicas: Se utilizan operadores lógicos. El resultado de este tipo de expresión es
un valor lógico: Falso o Verdadero, el cual se deduce de analizar la tabla de verdad
correspondiente a los conectores lógicos. Ejemplo: A > 10 AND A < 20
13
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

2.2.1. Operadores
Clasificación de los operadores que conectan los objetos en las expresiones, según su tipo:
TIPO SÍMBOLO NOMBRE FUNCIÓN
Paréntesis () Anida expresiones
Aritméticos ** ó ^ Potencia Conectan objetos o campos numéricos
*, / Producto, división
+, - Suma, diferencia
Alfanuméricos + Concatenación Conectan campos alfanuméricos
Relacionales = Igual a Conectan objetos, campos o expresiones
de cualquier tipo. Su evaluación da como
< Menor que
resultado “Verdadero” o “Falso”.
<= Menor o igual que
> Mayor que
>= Mayor o igual que
<> Distinto a
Lógicos NOT Negación Conectan expresiones de tipo lógico. Su
evaluación da como resultado
AND Conjunción
“Verdadero” o “Falso”.
OR Disyunción

Los operadores lógicos NOT, AND y OR se evalúan según las tablas de verdad, siendo X e Y
expresiones booleanas cuyo resultado de las operaciones lógicas viene determinado por dichas
tablas:
Operador NOT Operador AND Operador OR
X NOT X X Y X AND Y X Y X OR Y
F V F F F F F F
V F F V F F V V
V F F V F V
V V V V V V
Todos los operadores de una expresión siguen el siguiente orden al evalluarlos:
1º Paréntesis (Comenzando por los más internos)
2º Potencias
3º Productos y divisiones
4º Sumas y Restas
5º Concatenación
6º Relacionales
7º Negación
8º Conjunción
9º Disyunción
Cuando en una expresión aparece más de un operador de cualquier tipo, el orden de evaluación
comienza por el operador de mayor prioridad; si dos o más operadores son de la misma prioridad se
evalúan de izquierda a derecha. Ejemplo:
14
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

a. (5+3)*(2+7)*3 b. ( ( 10 / 5 )^4 > 15 AND (8 + 4 ) = 12


8 *(2+7)*3
VERDADERO AND VERDADERO
8 * 9 *3
72 *3 VERDADERO
216
c. “LOGICA” + “COMPUTACIONAL” = “LOGICA COMPUTACIONAL”
“LOGICACOMPUTACIONAL” = “LOGICA COMPUTACIONAL”
FALSO

2.3. Tipos elementales de datos

 Numérico. Es el conjunto de los valores numéricos que el procesador sabe tratar. Pueden ser
con o sin signo; enteros o reales. Ejemplo: 100 -100 2.718 3.14
 Caracter. Es cuando se almacena uno y sólo uno del conjunto de caracteres (letras, cifras y
signos especiales). Las comillas no forman parte del caracter. Ejemplo: “#” “ ” “H” “7”
 Cadena. Es el conjunto de las cadenas de caracteres que se pueden formar a partir de los
elementos del conjunto de caracteres (letras, cifras y signos especiales) que el procesador
reconoce. Lo representaremos entre dos apóstrofes, delimitando así la cadena.
Ejemplo: a. “JUAN PEREZ” b. “Mátate estudiando y solo serás un cadáver culto”
Dentro de la cadena si hay espacios se los cuenta como caracter.
 Lógico. Es el conjunto de dos valores lógicos, CIERTO y FALSO. Una variable (constante y
varriable) de tipo lógico siempre posee uno de estos dos valores.

2.4. Componentes de un programa

Constantes Numéricas
Alfanuméricas
Objetos
Numéricas
Variables Alfabéticas
Alfanuméricas

Aritméticas
Componentes Expresiones Alfanuméricas
De un Lógicas
Programa
De declaración
De asignación
Acciones Primitivas (*) De entrada
O Instrucciones De salida
Compuestas (**)
Alternativa
De control Iteración o repetición

(*) También llamadas acciones elementales, son aquellas que pueden ser interpretadas por el
procesador sin información adicional.
(**) Son aquellas que pueden subdividirse en acciones menos complejas.
15
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

Actividades 2

1. [Responder]:
a. “El tiempo crea héroes y destruye celebridades”
b. “La elegancia de la honestidad no necesita adornos”
¿Cuántos caracteres tiene la cadena a? .....................
¿Cuántos caracteres tiene la cadena b? .....................
2. ¿Un campo puede ser de tipo alfanumérico y numérico a la vez?
3. [Tache lo que no corresponda, indicando si el nombre de campo correspondiente es correcto]:

Nombre de un Campo Resultado


IVA Falso Verdadero
160114 Falso Verdadero
1APELLIDO Falso Verdadero
NOMBRE2 Falso Verdadero
HORARIO CLASE Falso Verdadero

4. [Tache lo que no corresponda]:

A B Expresión Relacional Resultado


7 7 A<>B Falso Verdadero
-3 3 A = B Falso Verdadero
8 10 A>=B Falso Verdadero
9 9 A<=B Falso Verdadero
5 1 A < B Falso Verdadero

5. [Evaluar las siguientes expresiones paso a paso, teniendo en cuenta los valores iniciales de las
siguientes variables y constantes]:

3.141592 2.718281 1 5 2
PI E U V W

a. E^ ( V - 5 ) / ( V * W ) / ( U / 10 )
b. ( U^ ( V + W ) + 3 * ( V / U )) / W
c. NOT “PROGRAMACION“ + “ LOGICA” = “LOGICA” + “ PROGRAMACION”
d. PI + 1.858408 < V OR 2 * PI * U >= E
e. „E‟ = „e‟ OR NOT “METODO” + “LOGIA” = “METODOLOGIA”
16
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

3. ALGORITMO

Algoritmo: Es una descripción paso a paso de algún proceso.


La palabra algoritmo deriva del matemático árabe AL-KUHARITMI, quien describió métodos para
solucionar problemas aritméticos.
Los algoritmos son independientes tanto del lenguaje de programación en que se expresan como de
la computadora que los ejecuta. Es decir que, un lenguaje de programación es tan sólo un medio para
expresar un algoritmo y que una computadora es sólo un procesador para ejecutarlo.
Cabe destacar la importancia de la fase de diseño del algoritmo, la cual requiere creatividad y
conocimientos profundos de la metodología de la programación (metodología necesaria para resolver
problemas mediante programas).

3.1. Características de los algoritmos

Las características fundamentales que debe cumplir todo algoritmo son:


a) Ser preciso e indicar el orden de realización de cada paso.
b) Estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
c) Ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea debe tener un
número finito de pasos.
Para aclarar este concepto de algoritmo, veremos como ejemplo el caso que ocurre a menudo, el
cambio de un neumático pinchado.
Algoritmo de cambio de neumático.
[Usted deberá colocar los siguientes pasos en orden lógico]
1. SACAR LA RUEDA.
2. BAJAR EL GATO.
3. QUITAR TUERCAS.
4. LEVANTAR EL COCHE CON EL GATO.
5. COLOCAR LAS TUERCAS.
6. COLOCAR LA RUEDA DE REPUESTO.
Solución:
1 .................................................................................
2 .................................................................................
3 .................................................................................
4 .................................................................................
5 .................................................................................
6 .................................................................................
Nota: A este algoritmo se le podrían agregar muchos detalles más.
17
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

Un algoritmo debe reunir las siguientes características generales:

 Legibilidad. Ha de estar escrito de tal forma que facilite su lectura y comprensión.

 Portabilidad. Su diseño debe permitir la codificación en diferentes lenguajes de programación,


así como su instalación en diferentes sistemas –que se pueda ejecutar en diferentes plataformas
hardware-.

 Modificabilidad. La de facilitar su mantenimiento, esto es, las modificaciones y actualizaciones


necesarias para adaptarlo a una nueva situación.

 Eficiencia. Se deben aprovechar al máximo los recursos del computador, minimizando la


memoria utilizada y el tiempo de proceso o ejecución.

 Modularidad. Ha de estar subdividido en bloques o módulos, cada uno de los cuales realizará
una parte del conjunto del trabajo.

 Estructuración. Debe cumplir las reglas de la “programación estructurada” para facilitar la


verificación, depuración y mantenimiento del programa.
Para representar un algoritmo se debe utilizar algún método que permita independizar dicho algoritmo
de un lenguaje de programación en particular, lo que significa que permitiría que ese algoritmo pueda
ser codificado indistintamente en cualquier lenguaje. Para lograrlo, es necesario que ese algoritmo se
pueda representar gráficamente o numéricamente.
Algunos de los métodos para representar un algoritmo son:
 Diagrama de flujo
 Diagrama N-S (Nassi-Schneiderman)
 Seudocódigo
 Lenguaje español
 Fórmulas

Nota: Más adelante desarrollaremos los métodos de Seudocódigo y Diagrama de Flujo. Para mayor
información sobre el resto de los métodos consulte bibliografía referente a los mismos.

3.2. Metodología de la programación

Es el conjunto de métodos y técnicas disciplinadas que ayudan al desarrollo de unos


programas que cumplan con los requisitos anteriormente expuestos.
Programación modular Programación Estructurada

El programa consta de módulos; cada uno de El programa es estructurado, es decir que


los cuales realiza una tarea concreta. utiliza lo que se llama: estructuras de control
18
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

3.2.1. Programación Modular


Consiste en dividir el programa en módulos. El problema se dividirá en forma lógica, en partes
perfectamente diferenciadas que pueden ser analizadas, diseñadas, programadas y puestas a punto
independientemente.
La programación modular se basa en el diseño descendente (top-down) que permite comprobar el
funcionamiento de cada módulo mediante módulos ya comprobados
Módulo raíz

Módulo 1 Módulo 2 Módulo 3 Módulo 4 Módulo 5

Módulo 6 Módulo 7 Módulo 8 Módulo 9 Módulo 10

El montaje de la red se hace en modo ascendente (botton-up), por lo que un programador puede
estar escribiendo el módulo 8 mientras otro el módulo 9. Una vez terminados ambos se puede
comprobar su funcionamiento con un ficticio 4 que llama a ambos.
El módulo está constituído por una o varias instrucciones físicamente contiguas y lógicamente
encadenadas, las cuales se pueden referenciar mediante un nombre y pueden ser llamadas desde
diferentes puntos de un programa. Un módulo puede ser: a) Un programa, b) Una función, c) Una
subrutina (o procedimiento).
Cada módulo sólo puede tener una entrada y una salida que lo enlazan con el módulo principal,
incluso habiendo estructuras repetitivas y alternativas dentro de un módulo.
Características de un módulo: pueden tener la máxima cohesión y el mínimo de acoplamiento
(máxima independencia entre ellos). La salida del módulo debe ser función de la entrada, pero no de
ningún estado interno. En esencia, el módulo ha de ser una caja negra que facilite unos valores de
entradas y suministre unos valores de salida que sean función de las entradas.
Requisitos de la programación modular: a) Establecimiento de un organigrama modular, b)
Descripción del módulo principal, c) Descripción de los módulos básicos o secundarios y, d) Normas
de la programación.
El organigrama modular se realiza mediante bloques, en el que cada uno corresponde a un móduo y
muestra gráficamente la comunicación entre el módulo principal y los secundarios.
El módulo principal debe ser claro y conciso, reflejando los puntos fundamentales del programa.
Los módulos básicos deben resolver partes bien definidas del problema. Sólo pueden tener un punto
de entrada y un punto de salida. Si un módulo es complejo de resolver, conviene se subdivida en
submódulos. Ningún módulo puede ser llamado desde distintos puntos del módulo principal.
Las normas de programación dependerán del análisis de cada problema y de las normas generales o
particulares que haya recibido el programador.
Criterios de modularización. La división de un programa en módulos debe cumplir los siguientes
criterios:
 Cada módulo debe corresponder a una función lógica perfectamente diferenciada.
 El tamaño de cada módulo es variable. Deben ser pequeños para que sean claros y de poca
complejidad.
 Evitar variables externas.
 Procurar no utilizar demasiados niveles de modularización para evitar la complejidad de la red.
 Estructura de caja negra para cada módulo (la salida debe ser función exclusiva de la entrada).
Las técnicas de programación modular aportan un método o filosofía para la descomposición eficaz
de un problema en problemas o módulos más sencillos. Se pueden utilizar criterios de programación
19
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

modular y posteriormente utilizar métodos de programación estructurada dentro de cada módulo


independientemente. Una vez terminado el diseño de los programas de cada módulo, realizar el
montaje del programa completo mediante un diseño ascendente.

3.2.2. Programación Estructurada

La programación estructurada fue desarrollada en sus principios por Dijkstra, al que siguieron una
gran lista de nombres que realizaron lenguajes de programación adaptados a la aplicación directa de
estas técnicas.
La programación estructurada es una forma de programar con la cual la estructura de un programa
(relaciones entre sus partes) resulta muy clara.
Existen diversas definiciones de la programación estructurada que giran sobre el denominado
Teorema de la estructura.

Teorema de la estructura. Se basa en el concepto de diagrama o programa


propio que consiste en que toda estructura tenga un solo punto de entrada y un
solo punto de salida.
Todo diagrama o programa propio, cualquiera que sea el trabajo que tenga
que realizar, se puede hacer utilizando tres únicas estructuras de control que son
la secuencia, alternativa y repetitiva.

Un programa estructurado es entonces:


 Fácil de leer y comprender.
 Fácil de codificar en una amplia gama de lenguajes y en diferentes sistemas.
 Fácil de mantener.
 Eficiente, aprovechando al máximo los recursos del computador.
 Modularizable.
En síntesis, se debe realizar un programa siguiendo técnicas o métodos estandarizados, los más
empleados son: la programación modular y la programación estructurada.
Estas técnicas suelen ser complementarias, ya que el análisis de un problema puede utilizar criterios
de programación modular para dividirlo en partes independientes y utilizar métodos de estructuración
en la programación de cada módulo.
Todo ello, para evitar: a)Programas muy rígidos con problemas de adaptación a nuevas
configuraciones, b) Pérdida de tiempo en la corrección de errores, c) Difícil comunicación entre los
programadores, d) Evitar que el programa tenga una relación estrecha con el programador que lo
realizó, e)Modificaciones difíciles de hacer, implicando mucho tiempo y elevado coste de
mantenimiento, lo que conduce a colocar “parches” que complican el diseño inicial o que el programa
caiga en desuso, frente al elevado coste de actualización que al final se optará por crear una nueva
aplicación que sustituya a la existente y, f) Deficiencias en la documentación.
20
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

Actividades 3

1. [Coloque los siguientes pasos en orden lógico]


Algoritmo para preparar el mate.
1. LLENAR EL MATE.
2. PONERLA A CALENTAR.
3. CEBAR EL MATE.
4. BUSCAR EL MATE.
5. RETIRARLA DEL FUEGO.
6. LLENAR LA PAVA DE AGUA.
7. VIGILAR EL AGUA.
8. BUSCAR LA BOMBILLA, LA YERBA Y EL AZUCAR.
9. PRENDER EL FUEGO.
Solución:
1 .................................................................................................
2 .................................................................................................
3 .................................................................................................
4 .................................................................................................
5 .................................................................................................
6 .................................................................................................
7 .................................................................................................
8 .................................................................................................
9 .................................................................................................

2. [Enuncie algún otro ejemplo de algoritmo]


............................................................................................................................. ............
.........................................................................................................................................
[Enuncie los pasos generales necesarios que llevaría a cabo con el ejemplo de algoritmo que acaba
de mencionar]
1. ................................................................................................................
2. ................................................................................................................
3. ................................................................................................................
4. ................................................................................................................
5. ................................................................................................................
6. ................................................................................................................
[Tómese unos segundos y vuelva a leer el concepto de algoritmo...]
21
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

4. DIAGRAMA DE FLUJO

[Ver anexo de símbolos]

Diagramas de flujo (FLOWCHART)


4.1. Diagramas de flujo del 4.2. Diagramas de flujo del
sistema programa
También se denominan organigrams También se denominan ordinogramas
Representan gráficamente el flujo de datos e Representa gráficamente la secuencia lógica de
información que maneja un programa. las operaciones en la resolución de un problema,
por medio de un programa de computador. Dicho
de otra manera, es un esquema para representar
gráficamente el algoritmo.
Aplicable en la fase de análisis. Aplicable en la fase de diseño del algoritmo.
Elementos: Elementos:
 En la parte superior: soportes que suministran  En la parte superior: símbolo de comienzo del
los datos de entrada. (Símbolos de soporte de programa. (1).
Entrada).
 Símbolo de operaciones. (2).
 En el centro: el programa y su identificación.
 De arriba abajo, de izquierda a derecha: la
(rectángulo central: símbolo de proceso).
secuencia en que se realizan. (3).
 En la parte inferior: soporte para los
 Al final: símbolo de fin del programa. (4).
resultados. (Símbolos de soporte que reciben
los datos de Salida).
 A la derecha e izquierda: los soportes de
datos de Entrada/Salida.
 El flujo de los datos. (líneas de flujo).
Ejemplo: Ejemplo:
Entrada de (1) Inicio
datos

(3)
Actualización Archivo

(2)

Listado de
incidentes Visualización (3)
de datos

(3)
(4) Fin
22
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

[Complete los espacios del diagrama de flujo que correspondería al algoritmo de cambio de un
neumático]

En la representación de ordinogramas, es conveniente seguir las siguientes reglas:

 El comienzo del programa figurará en la parte superior del ordinograma.


 Los símbolos de comienzo y fin deberán aparecer una única vez, utilizando el símbolo de parada
(STOP) para representar cualquier otro tipo de interrupción o finalización.
 El flujo de las operaciones será, siempre que sea posible, de arriba a abajo y de izquierda a
derecha, en cuyo caso pueden omitirse las puntas de flecha.
 Se debe guardar una cierta simetría en la representación de bifurcaciones y bucles, así como en
el conjunto total del ordinograma.
 Se evitarán siempre los cruces de líneas de flujo utilizando conectores.
 El uso de comentarios estará restringido al mínimo imprescindible; al contrario que en la
codificación, en la que son mucho más recomendables.
 Si en un ordinograma se ha separado una parte de otra por medio de un conector, las posibles
conexiones que puedan aparecer desde esta última a la anterior, se harán igualmente con
conectores, evitando el uso de líneas de flujo directas.

Los símbolos que se utilizan para la representación gráfica en los diagramas de flujo son establecidos
por las Normas IRAM 36002 y 36003 correspondientes al INSTITUTO ARGENTINO de
RACIONALIZACION de MATERIALES.
23
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

Ejemplo:
Programa que lee un número del dispositivo estándar de entrada y comprueba e imprime en el
dispositivo estándar de salida si dicho número es nulo, positivo o negativo.

Tabla de verificación o prueba de escritorio


C paso realizado N paso realizado SALIDA
0 [C = 0]
1 [C = C + 1] 39 [Leer N] POSITIVO
2 [C = C + 1] -175 [Leer N] NEGATIVO

3 [C = C + 1] 74 [Leer N] POSITIVO
4 [C = C + 1] 0 [Leer N] NULO
5 [C = C + 1] 82 [Leer N] POSITIVO

[Grafique por lo menos un símbolo (de sistema) que representaría cada parte de un programa]
ENTRADA PROCESO SALIDA
24
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

4.3. Elementos auxiliares de una programa


Son variables que realizan funciones específicas dentro de un programa. Las más importantes son
los contadores, acumuladores e interruptores.

4.3.1. Contadores.
Un contador es un campo de memoria cuyo valor se incrementa en una cantidad fija, positiva o
negativa, generalmente asociado a un bucle. Es un caso particular del acumulador.
Se utiliza en los siguientes casos:
 Para contabilizar el número de veces que es necesario repetir una acción (variable de control del
bucle).
 Para contar un suceso particular solicitado por el enunciado de problema (asociado a un bucle o
independientemente).
CONT CONT + 1

4.3.2. Acumuladores.
Un acumulador es un campo de memoria cuyo valor se incrementa sucesivas veces en cantidades
variables.
Se utiliza en aquellos casos en que se desea obtener el total acumulado de un conjunto de
cantidades, siendo preciso inicializarlo con el valor 0.
También en las situaciones en que hay que obtener un total como producto de distintas cantidades se
utiliza un acumulador, debiéndose inicializar con el valor 1.
ACUM ACUM + NOTA

4.3.3. Interruptores.
También se denominan SWITCHES, BANDERAS, CONMUTADORES.
Un interruptor es un campo de memoria que puede tomar dos valores exclusivos (0 y 1, -1 y 1,
FALSO y VERDADERO, etc.).
Se utiliza para:

 Recordar en un determinado punto de un programa la ocurrencia o no de un suceso anterior, para


salir de un bucle o para decidir en una instrucción alternativa qué acciones realizar.
 Para hacer que dos acciones diferentes se ejecuten alternativamente dentro de un bucle.
25
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

Actividades 4

1. [Tache lo que no corresponda y fundamente su elección]


Supone usted que un diagrama de flujo deba reflejar:
 El comienzo del programa.
SI NO
Porque ..............................................................................................................................
...........................................................................................................................................
 Las operaciones.
SI NO
Porque .............................................................................................................................
..........................................................................................................................................
 La secuencia en que se realizan.
SI NO
Porque ............................................................................................................................
.........................................................................................................................................
 El final del programa.
SI NO
Porque .............................................................................................................................
..........................................................................................................................................
2. Cada operación lógica se identifica con un símbolo distinto.
[Usted deberá rellenar la línea punteada con el gráfico del símbolo correspondiente a cada punto]
 Utilizamos la caja .......................... para indicar donde comienza el diagrama (INICIO) y donde
finaliza (FIN).

 Utilizamos la caja .......................... llamada caja de asignación, para encerrar instrucciones de


ejecución de ciertas acciones como por ejemplo sumar números, calcular la raíz cuadrada de un
número, etc.

 Utilizamos .......................... para encerrar una pregunta. Esta caja se denomina caja de decisión,
pues la respuesta a la pregunta nos señala qué debe hacerse a continuación.

 Se utilizan .......................... para indicar el flujo del procedimiento desde un paso al siguiente.

 Utilizamos ........................... para conectar caminos, tras roturas previas del flujo del algoritmo.

 Utilizamos ........................... para representar cualquier tipo de entrada o salida desde el


programa o sistema; por ejemplo, entrada de teclado, salida en impresora o pantalla, etc.
26
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

5. SEUDOCÓDIGO

Es una herramienta para diseñar algoritmos –diseño de la solución de un problema por computadora-
No depende de un lenguaje de programación particular. Utiliza palabras y frases del lenguaje natural
(en este caso: el español), y sujetas a determinadas reglas.
El seudocódigo es utilizado en la fase de diseño del programa, por ser, la utilización de un lenguaje,
debido a su rigidez, no aconsejable.

6. ESTRUCTURAS BÁSICAS

Como versa el Teorema de la estructura, decimos que toda acción se puede realizar utilizando tres
estructuras básicas de control, la estructura secuencial, alternativa y repetitiva.

Secuencial

Alternativa Simple (IF)


ESTRUCTURAS Alternativa (IF) Alternativa Doble (IF)
BASICAS Alternativa Múltiple (CASE)

Para (FOR)
Repetitiva Mientras (WHILE)
Hasta (UNTIL)

6.1. Estructura secuencial.

Es una estructura con una entrada y una salida en la cual figuran una serie de acciones cuya
ejecución es lineal y en el orden que aparecen. A su vez todas las acciones tienen una única entrada
y una única salida.
ORDINOGRAMA PSEUDOCODIGO

I1; I2; ... In


27
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

6.2. Estructura alternativa.

Es una estructura con una sola entrada y una sola salida en la cual se realiza una acción de entre
varias según una condición o se realiza una acción según el cumplimiento o no de una determinada
condición.

Estas pueden ser:

6.2.1. Alternativa simple.

Es la ejecución condicional de una acción. Esta composición permite expresar que un acontecimiento
sucederá bajo cierta condición.

Si CONDICION
entonces I1; ....; In
finsi

6.2.2. Alternativa doble.

Es la ejecución alternativa de una entre dos acciones. Permite expresar que debe provocarse un
acontecimiento bajo cierta condición contraria.

Si CONDICION
entonces I1; ....; In
sino J1; ...; Jk
finsi

6.2.3. Alternativa multiple.

Se adoptan cuando la condición puede tomar n valores enteros distintos: 1; 2; 3; ...; n. Según se elija
uno de estos valores en la condición, se realizará una de las n acciones (cada vez sólo se ejecuta
una acción).
Esta estructura fue propuesta por HOARE. En castellano se llama según, Según_sea, Caso de,
Opción.
28
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

expresión

Opción EXPRESION de:


V1 hacer I1; I2; ...; Ip
V2 hacer J1; J2; ...; Jq
V1 V2 Vn Otros Vn hacer K1; K2; ...; Kr
Otro hacer L1; L2; ...; Ls
Proceso 1 Proceso 2 Proceso N Proceso
Finopción

6.3. Estructuras repetitivas.

Es una estructura con una entrada y una salida en la cual se repite una acción un número
determinado o indeterminado de veces, dependiendo en este caso del cumplimiento de una
condición.
Las estructuras repetitivas pueden ser:
+ Estructura para (FOR)
+ Estructura mientras (WHILE)
+ Estructura hasta (UNTIL)

6.3.1. Estructura para (for).

En esta estructura se repite una acción o un grupo de ellas, un número fijo de veces respetado
normalmente por N, este valor es un número que está determinado a priori por lo que el esquema de
resolución será:

Para Vc de Vi a Vf con incremento In hacer


I1; I2; ... In
finpara

Se repiten las instrucciones I1, I2, ...In, un número fijo de veces, tantas como sucesivos valores toma
la variable de control del bucle Vc desde, inicialmente Vi, incrementándose a cada repetición en In,
hasta que el valor de Vc supera Vf. Si el incremento es +1 no hace falta expresarlo.

6.3.2. Estructura mientras (while).


29
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

En esta estructura se repite una acción mientras se cumpla la condición que controla el bucle.
El número de iteraciones oscila entre 0 e infinito dependiendo de la evaluación de la condición, esta
condición a evaluar es una expresión lógica ya que devuelve verdadero o falso. Mientras la condición
sea verdadera el ciclo continuará ejecutándose y la primera vez que sea falso el ciclo finaliza. A
diferencia del for no dispone del paso de incrementación por lo tanto este debe estar incluido dentro
del cuerpo de sentencias.

mientras CONDICION
hacer
I1; I2; ...In
finmientras

6.3.3. Estructura hasta (until).

En esta estructura se repite una acción hasta que se cumpla la condición que controla el bucle, la
cual se evalúa después de cada ejecución del mismo.
El número de repeticiones oscila entre 1 e infinito dependiendo de la evaluación de la condición,
cuyos argumentos en los casos de repetición al menos dos veces deberán modificarse dentro del
bucle, pues de no ser así, el número de repeticiones será infinito y nos encontramos en un bucle sin
salida.

repetir
I1; ... In
hasta CONDICION
30
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

7. LENGUAJE DE PROGRAMACIÓN BASIC

El nombre de BASIC responde a las siglas de Beginners All-purpose Symbolic Instruction Code
(código de instrucción simbólica para todo propósito, dirigido a principiantes), fue desarrollado por
John G. Kemeny y Thomas E. Kurtz en el Darmouth College en 1969.
Su propósito original fue el de enseñar a programar usando un lenguaje sencillo y fácil de
comprender, pero probó ser tan útil que fue adoptado por los constructores de computadoras y
gradualmente se fue convirtiendo en un lenguaje de programación más que en un método de
enseñanza. Hoy el BASIC ha madurado y se convirtió en uno de los lenguajes de programación
estándar. La encarnación más moderna de BASIC de Microsoft, denominada Visual Basic, soporta
las características y métodos orientados a objetos.
Principales características que lo hacen diferente de los demás lenguajes:
Se puede dar un nombre muy corto a las variables del BASIC. Las variables pueden ser numéricas
(A = 1) y alfanuméricas (A$ = “PEPE”). Los nombres de tales variables pueden empezar por cualquier
letra del alfabeto.
El BASIC permite programar de una forma convencional. Gracias a que es un lenguaje intérprete, es
decir que no necesita compilación (ya que cada instrucción se traduce inmediatamente antes de
ejecutarse), se puede cargar un programa escrito en BASIC en memoria, ejecutarlo, corregirlo
directamente si tiene algún error y volverlo a salvar en el dispositivo donde se tuviera almacenado.
Los mensajes de error generados por el BASIC son explícitos y numerosos. En un lenguaje de
programación, la cantidad de mensajes de error que éste puede generar y la calidad de estos
mensajes constituyen una característica importante de cara a poder medir la potencia de tal lenguaje.
Los mensajes son muy útiles para el programador, ya que le indican, en el momento de producirse, el
tipo de error de que se trata y a veces el por qué se ha producido. En el caso del BASIC, la
información que el lenguaje da cuando se produce un error es muy completa; incluso, en caso de
producirse uno, BASIC además del mensaje de error, indica la línea de programa donde se ha
producido tal error.
Este lenguaje, a pesar de tener 300 palabras, es muy poderoso si se lo usa correctamente. Con
BASIC, es posible programar virtualmente todo lo que la mente puede concebir. La gracia y las
posibilidades de la programación consisten en tener una idea, expresarla lógica y precisamente en un
programa y luego mejorarla y pulirla, hasta que el programa haga exactamente lo que tú le propones.
Cabe recordar que este punto marca el comienzo de la fase de programación y finaliza con la edición
y puesta a punto, en donde, estas fases se caracterizan por la utilización de un lenguaje de
programación (para el caso ponemos de ejemplo al lenguaje BASIC).

Instrucciones básicas del BASIC


Identificaremos las instrucciones del lenguaje según su función:

Instrucción de definición de matrices

La instrucción DIM
DIM Nombre(Valor del índice)
DIM: nombre de la instrucción.
Nombre: nombre que se le va a dar a la matriz.
Valor del índice: máximo valor que tomará cada uno de los índices.
Con esta instrucción se define el nombre de una matriz o vector, el número de dimensiones de que
constará y el valor máximo del índice de cada dimensión. Las matrices pueden ser numéricas o
alfanuméricas.
Ejemplo: DIM V(5) DIM M$(3, 3)
DIM MA(5, 2) DIM V$(5)

Instrucciones de asignación
31
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

La instrucción LET
LET Variable = Expresión
LET: nombre de la instrucción, que puede omitirse.
Variable: nombre de la variable numérica o alfanumérica a la que se quiere asignar un valor
Expresión: puede ser una expresión numérica o alfanumérica. Nunca se puede realizar una
asignación del valor de una expresión alfanumérica a una variable numérica, ni viceversa.
Esta instrucción permite asignar un valor a una variable, ya sea numérica o alfanumérica.
Ejemplo: LET A = 2 ó A = 2 D = (B + C) / 2
LET A$ = “PENTIUM” D$ = B$ + C$
La instrucción SWAP
SWAP Variable1, Variable2
SWAP: nombre de la instrucción.
Variable1: nombre de la primera variable.
Variable2: nombre de la segunda variable.
Esta instrucción permite intercambiar los valores de dos variables, es decir, asignar a la primera el
valor de la segunda y a ésta el valor de la primera.
Ejemplo: SWAP A, B SWAP A$, B$

Instrucciones READ/DATA

READ Variable DATA Constante


READ: nombre de la instrucción.
DATA: nombre de la instrucción.
Variable: nombre de cada una de las variables donde se irán asignando las constantes almacenadas
en el fichero interno.
Constante: cada uno de los valores que se almacenará en el fichero interno que se creará.
Estas dos instrucciones se complementan. El hecho de especificar instrucciones DATA en un
programa BASIC hace que se cree un fichero interno con los datos de tales instrucciones, datos que
posteriormente pueden leerse y asignarse a variables mediante instrucciones READ.
Ejemplo:
10 READ A, B, C, D En la variable A se almacenará el valor 5, en la B el 10,
20 DATA 5, 10, 15, 20 en la C el 15 y en la D el 20; por lo tanto al ejecutar la
30 PRINT A, B, C, D instrucción de la línea 30, se imprimirán los valores 5,
10, 15, 20.
Instrucción de entrada de datos

La instrucción INPUT
INPUT “Mensaje”; Variable
INPUT: nombre de la instrucción.
Mensaje: literal que aparece en pantalla para avisar al operador que debe digitar algún dato, que
puede omitirse.
Variable: cada uno de los nombres de variable en las que se irán almacenando los datos entrados
desde teclado.
La función de esta instrucción consiste en leer datos que se entran desde teclado y asignarlo a una o
más variables especificadas en la instrucción.
Ejemplo: INPUT A
INPUT “Lado “; B
INPUT “Lado “, C
INPUT “Datos: “; A, B, C
32
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

Instrucciones de salida de datos

La instrucción PRINT
PRINT Expresión
PRINT: nombre de la instrucción.
Expresión: Cualquier expresión, ya sea numérica o alfanumérica.
Es la instrucción utilizada para visualizar información en la pantalla de la computadora.
Ejemplo: PRINT “PEPE”
PRINT “AREA = “; A
PRINT TAB(10); “AREA = “; A
En este caso, tal mensaje, en lugar de visualizarse a partir de la primera posición de la línea, se
visualizaría a partir de la 10.
La instrucción LPRINT
LPRINT Expresión
Esta instrucción realiza lo mismo que la instrucción PRINT, pero, en lugar de visualizar información en
pantalla, la imprime en la impresora.

Instrucciones de control

La instrucción GOTO
GOTO Nº de línea
GOTO: nombre de la instrucción.
Nº de línea: número de la línea de programa a la que se le va a ceder el control de ejecución.
Ejemplo:
10 REM
Aquí se irán ejecutando las instrucciones secuenciales a partir
20 A = 5
de la línea de programa 10, hasta llegar a la línea 70, en la
30 B = 10
cual encontramos una instrucción GOTO que cede el control
40 PRINT A, B
de la ejecución a la línea 40.
50 A = A + 5
Para el caso citado se observa que el programa no terminará
60 B = B + 10
nunca.
70 GOTO 40

La instrucción IF...THEN...ELSE
IF Condición THEN
Instrucción
ELSE
Instrucción
END IF

IF: palabra que forma parte del nombre de la instrucción.


Condición: puede ser una expresión numérica, de comparación o lógica.
THEN: palabra que forma parte del nombre de la instrucción.
Instrucción: puede ser una instrucción cualquiera.
ELSE: palabra que forma parte del nombre de la instrucción.
END IF: cierra la instrucción IF, por lo tanto es su última palabra.
Es útil para realizar un tratamiento diferente de un proceso, según se cumpla o no una determinada
condición.
Ejemplo: IF A > B THEN
PRINT B, A
ELSE
PRINT A, B
END IF
33
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

La instrucción WHILE
WHILE Condición
Instrucción
WEND
WHILE: palabra que forma parte del nombre de la instrucción.
Condición: puede ser una expresión numérica, de comparación o lógica.
Instrucción: puede ser una instrucción cualquiera.
WEND: es la última palabra que forma parte de la instrucción y es la encargada de cerrar el bucle
WHILE.
Ejemplo: WHILE N > 0
A=A+N
AM = AM * N
WEND

La instrucción DO-WHILE
DO WHILE Condición A este formato se lo utiliza indistintamente con el
Instrucción anteriormente expuesto, ya que realiza lo mismo.
LOOP
Ejemplo: DO WHILE N > 0
A=A+N
AM = AM * N
LOOP

La instrucción DO-UNTIL
DO
Instrucción
LOOP UNTIL Condición
Ejemplo: DO
S=S+N
M=M*N
LOOP UNTIL N > 0
La instrucción FOR
FOR Variable de control = Valor inicial TO Valor final STEP Incremento
Instrucción
NEXT Variable de control
FOR: palabra que forma parte del nombre de la instrucción.
Variable de control: nombre de una variable entera o de simple precisión.
Valor inicial: valor inicial que tomará la variable de control.
TO: palabra que forma parte del nombre de la instrucción.
Valor final: es el valor que tomará la variable de control por encima del cual el bucle llegará a su final.
STEP: palabra que puede formar parte del nombre de la instrucción o no, es decir, es opcional.
Incremento: también es opcional, pero, si se especifica, indica el valor que se le irá sumando al valor
de la variable de control hasta llegar a su valor final.
NEXT: nombre de la instrucción última de FOR, es la que cierra el bucle.
Variable de control: nombre de la variable de control especificada en la primera instrucción del bucle.
Cada vez que se pasa por la instrucción NEXT, se aumenta el valor de esta variable en un valor igual
al especificado en el parámetro «incremento» de la instrucción FOR. Este parámetro es variable, ya
que con la palabra NEXT es suficiente.
El BASIC asocia el primer NEXT que encuentra con el último FOR que ha encontrado.
Ejemplo: FOR J = 1 TO 5
INPUT N
A=A+N
AM = AM * N
NEXT I
34
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

Instrucción CASE
SELECT CASE expresión a probar
CASE expresión-1
Instrucción-1
CASE expresión-2
Instrucción-2
CASE expresión-n
Instrucción-n
END SELECT
SELECT CASE: nombre de la instrucción.
expresión: cualquier expresión numérica o de cadena a probar.
CASE: palabra que forma parte del nombre de la instrucción que, si coincide con el estado de la
expresión se procederá a una acción acorde al evento.
expresión-1/-2/-n: es la expresión para comparar con la expresión a probar.
Instrucción-1/-2/-n: puede ser una instrucción cualquiera.
END SELECT: palabra que forma parte de la instrucción. Es la que cierra la misma, por tanto es la
última.

Algunas funciones BASIC


Funciones propias del BASIC
Las funciones propias del lenguaje BASIC representan una parte muy importante, tanto en cantidad
como en calidad, de tal lenguaje. Mediante estas funciones pueden efectuarse operaciones de tipo
numérico o alfanumérico.

Funciones numéricas
ABS: calcula el valor absoluto de una expresión numérica.
Ejemplo: A = ABS(7 * (-2))
COS: calcula el coseno del argumento.
Ejemplo: A = COS(0.5)
FIX: calcula la parte entera de una expresión numérica.
Ejemplo: PRINT FIX(60.78); visualizará 60.
INT: calcula el entero más grande, inferior o igual a la expresión numérica especificada.
Ejemplo: PRINT INT(65.75); visualizará 65.
LOG: calcula el logaritmo natural de una expresión numérica positiva.
Ejemplo: A = LOG(40 / 6)
SGN: retorna un 1 si la expresión numérica es positiva y un 0 si es negativa.
Ejemplo: A = SGN(-5); en A se almacenará un 0, porque el signo de la expresión es negativo.
SIN: calcula el seno de una expresión numérica.
Ejemplo: A = SIN(0.5)
SQR: calcula la raíz cuadrada de una expresión numérica.
Ejemplo: A = SQR(25)
TAN: calcula la tangente de una expresión numérica.
Ejemplo: A = TAN(2 / 5)

Funciones alfanuméricas
CHR$: transforma un código decimal ASCII en su correspondiente caracter alfanumérico.
Ejemplo: PRINT CHR$(84); dará como resultado T.
LEFT$: toma caracteres del margen izquierdo de una serie alfanumérica original en una cantidad
entera.
Ejemplo: N1$ = “TERRY”
S1$ = LEFT$(N1$, 2) de la serie N1$ toma los dos primeros caracteres, es
decir TE y lo deja en S1$.
35
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

LEN: calcula la longitud en número de caracteres de una serie alfanumérica dada.


Ejemplo: A$ = “PENTIUM”
A = LEN(A$) en este caso A tomará el valor 7.
MID$: realiza la extracción de una subserie dentro de una serie de caracteres alfanuméricos,
empezando desde una posición determinada.
Extraemos de A$ la subserie que comienza en la
Ejemplo: A$ = “PEPITA JIMENEZ”
posición 8 hasta el final porque no
B$ = MID$(A$, 8)
hemos especificado el parámetro longitud. Entonces en B$ tendremos “JIMENEZ”.
Si B$ = MID$(A$, 1, 6) tendremos en B$ la subserie “PEPITA” porque hemos especificado, desde la
posición 1, 6 caracteres.
RIGHT$: es similar a la función LEFT$ con la excepción de que toma los caracteres desde el final
(derecha).
Ejemplo: PRINT RIGHT$(N3$, 2) los dos caracteres de extrema derecha de la serie
alfanumérica N#$ serán representados.
STR$: convierte el valor de una expresión numérica en una serie alfanumérica.
Ejemplo: A$ = STR$(1560)
PRINT A$
en este caso A$ será igual a “1560”.
VAL: convierte una serie alfanumérica en numérica.
Ejemplo: A$ = “1560”
A = VAL(A$)
en este caso, A será igual a 1560.

Otras funciones
SLEEP: segundos
SLEEP: nombre de la instrucción.
segundos: el número de segundos durante los que se suspenderá temporalmente la ejecución del
programa.
Ejemplo: SLEEP 10
UCASE$(expresión-cadena$)
LCASE$(expresión-cadena$)
expresión-cadena$: es cualquier expresión de cadena.
Estas funciones convierten cadenas en letras minúsculas o letras mayúsculas.
Ejemplo: TEST$ = “La cadena”
PRINT TEST$
PRINT LCASE$(TEST$); “en minúsculas”
PRINT UCASE$(TEST$); “EN MAYUSCULAS”

BIBLIOGRAFÍA
 COMO PROGRAMAR SU COMPUTADOR PERSONAL
BASIC elemental para PC. Autor: Carl Shipman. Edit.: EL ATENEO
 FUNDAMENTOS DE PROGRAMACION. Autor: Luis Joyanes Aguilar. Editorial Mc Graw-Hill
 INFORMATICA PRESENTE Y FUTURO. Autor: Donald H. Sanders. Editorial Mc Graw-Hill
 METODOLOGIA DE LA PROGRAMACION. Autor: Alcalde García. Editorial Mc Graw-Hill
 PROGRAMACION COBOL. Autores: Fernando García; Almudena Cerro y J. Manuel Diez Perla.
Editorial Mc Graw-Hill
36
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

Actividades 4, 5, 6, 7

1. Investigue en qué ocasiones es conveniente aplicar estructuras alternativas para la resolución


de un algoritmo estructurado.
2. De acuerdo a lo que usted entiende, ¿cuándo es conveniente utilizar estructuras repetitivas en el
diseño de un algoritmo?
3. Realizar un programa que calcule la suma, resta, multiplicación y división de dos números
ingresados.
4. Indique los pasos algorítmicos que se siguen para de formatear un diskette de de 1.44MB.
5. Similar al punto anterior, identifique los pasos que lleva a cabo para colocar la mesa para comer.
6. Realice un programa en el que se intercambien los valores de dos variables numéricas. Realizar
también el seudocódigo del mismo.
Análisis: Se utiliza una variable auxiliar (por ejemplo AUX), que va a contener temporalmente a
uno de los valores dados. Las variables que se utilizarán son: A B AUX, donde A es el primer
valor; B es el segundo valor y AUX es la variable auxiliar.
Se asigna uno de los valores de las variables a la variable auxiliar: AUX = A
Se asigna el valor de la otra variable B a la primera. A=B
Luego, se asigna el valor de la variable auxiliar a la segunda variable. B = AUX
7. Programa que obtenga la potencia, raíz cuadrada y raíz cúbica de un número.
8. Programa que obtenga el promedio de las notas obtenidas en tres parciales.
9. Programa que resuelva la siguiente expresión: (A+B*C)/2
10. Programa que resuelva la siguiente expresión: B2 – 4AC
11. Programa que evalúe la siguiente expresión, para N1 = 8 y N2 = 2:
5 * N2 – 3 * N1 ^ 2 * N2
12. Programa que resuelva la siguiente expresión: 2 r
x2 y2
13. Programa que resuelva la siguiente expresión:
z2
2 2
14. Programa que resuelva la siguiente expresión: (x2 –x1) + (y2 – y1)

15. Programa que resuelva la siguiente expresión: A2 B


16. Pase el siguiente seudocódigo a diagrama de flujo (de programa), y luego, al lenguaje BASIC:
inicio
escribir “¿Cuál es tu nombre?”
leer NOMBRE
escribir “HOLA!”, NOMBRE
escribir “Seamos amigos”
fin
17. Programa que, al ingresar un 1 imprima VERDADERO. Al ingresar un 0 imprime FALSO.
18. Programa que indique si el número ingresado es negativo.
19. Programa que imprima un mensaje diciendo si el número que se ingresó es positivo, negativo o
nulo.
20. Programa que indique si el número entero ingresado es par o impar.
21. Programa que obtenga el menor de dos nombres ingresados.
37
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

22. Programa que obtenga el mayor de dos valores ingresados.


23. Pasar a ordinograma el siguiente algoritmo:
a) OBTENER EL PRIMER NÚMERO (ENTRADA), DENOMINADO NUM1.
b) OBTENER EL SEGUNDO NÚMERO (ENTRADA), DENOMINADO NUM2.
c) COMPARA NUM1 CON NUM2 Y SELECCIONAR EL MAYOR; SI LOS DOS ENTEROS SON
IGUALES, SELECCIONAR NUM1. LLAMAR ESTE NÚMERO MAYOR.
d) OBTENER EL TERCER NÚMERO (ENTRADA), DEMOMINARLO NUM3.
e) COMPARAR MAYOR CON NUM3 Y SELECCIONAR EL MAYOR; SI LOS DOS ENTEROS
SON IGUALES, SELECCIONAR EL MAYOR, DENOMINAR A ESTE NÚMERO MAYOR.
f) PRESENTAR EL VALOR DE MAYOR (SALIDA)
g) FIN
24. Diseñe un algoritmo (diagrama de flujo) que resuelva el procedimiento para enviar una carta
utilizando los símbolos correspondientes que contengan:
- PONER LA DIRECCIÓN EN EL SOBRE
- INICIO
- PEGAR FRANQUEO COMÚN EN EL SOBRE
- FIN
- PEGAR FRANQUEO DE VÍA AÉREA EN EL SOBRE
- ¿ES VÍA AÉREA?
- PEGAR EL SOBRE
- COLOCAR LA CARTA EN EL SOBRE
- TIRAR LA CARTA DENTRO DEL BUZÓN
25. Diseñe un algoritmo (ordinograma) que resuelva el problema de hornear una torta.
- ¿ESTÁ LISTO EL HORNO?
- FIN
- ENCENDER EL HORNO
- APAGAR EL HORNO
- INICIO
- ESPERAR 10 MINUTOS
- DEJAR DESCANSAR 45 MINUTOS
- PREPARAR EL BATIDO DE LA TORTA
- RETIRAR LA TORTA DEL HORNO
- ¿ESTÁ LA TORTA SUFICIENTEMENTE COCIDA?
- COLOCAR LA TORTA EN EL HORNO
- ESPERAR UN MINUTO O DOS
- ESPERAR UN MINUTO O DOS
26. Programa que calcule el área de un triángulo dada la base y altura del mismo.
La fórmula es: S = (1 / 2) B * H
Realice la tabla de verificación para los valores de base = 4.5 y altura = 7.2
27. Diseñe el algoritmo que calcule el área de un triángulo en función de las longitudes de sus lados.
38
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

Fórmula: Area p p a p b p c
donde p = (a + b + c) / 2 (semiperímetro).

28. Programa que calcule el radio de un círculo conociendo su área A r 2 se puede resolver
para: r A/
29. Programa que resuelve una ecuación de segundo grado Ax2 + Bx + C = 0
Análisis: Las soluciones o raíces son:

B B ^ 2 4 AC B B^ 2 4 AC
X1 X2
2A 2A
Es preciso que el discriminante sea mayor que cero.
Discriminante: D = B^2 – 4AC
B B
Entonces, si: D=0 X1 X2
2A 2A
D<0 X1 y X2 no tienen solución real.
30. Programa que, de 10 números ingresados indique cuántos de ellos fueron positivos, cuántos
negativos y cuántos nulos.
31. Programa que calcule la media de las notas del parcial de una clase de 10 alumnos.
32. De 10 número ingresados, la salida indicará cuál fue el máximo.
33. Programa que obtenga el valor mínimo de las temperaturas registradas en la semana.
34. Programa que obtenga simultáneamente el máximo y el mínimo de 7 números ingresados.
35. Programa que acumule los valores ingresados hasta que se introduzca uno negativo.
36. Programa que acumule números mientras no se ingrese un cero.
37. Programa que multiplique los números leídos hasta que el contador supere el número 5.
38. Programa que escriba los nombres de los días de la semana en función del valor de una variable
numérica DIA.
Los días de la semana son 7, es decir que el rango de valores DIA será 1..7 y si DIA toma un
valor fuera de ese rango, deberá indicarlo con un mensaje de error.
39. Programa que sume los números pares comprendidos entre 10 y 20 inclusive.
40. Programa que ingrese 5 veces un número distinto cada vez e imprima la suma de todos ellos.
41. Programa que repita 3 veces a) el ingreso de dos números, b) compara cuál es el menor y
c) imprime el menor obtenido.
42. Programa que obtenga el promedio de las notas de un curso de 10 alumnos.
43. Program que sume los números impares entre 4 y 10 inclusive. Realizar la tabla de verificación.
44. Programa que de 10 números ingresados obtenga cuántos de ellos fueron negativos.
45. Programa que determine en un conjunto de 15 números naturales: a)¿Cuántos son menores que
8?; b)¿Cuántos mayores que 20?; y ¿Cuántos están comprendidos entre 10 y 15?
46. Programa que lea 4 veces 2 números y los imprima ordenados en forma descendente.
47. Algoritmo que sume independientemente los pares y los impares de los números comprendidos
entre 1 y 16.
Utilizar un interruptor, también llamado switch en dicha solución.
48. Algoritmo principal que llame a una subrutina según corresponda. Con dos números ingresados
realizar una de las acciones posibles:
39
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

 Sumar los dos números ingresados


 Restar
 Multiplicar
 Dividir
 Raíz cuadrada
 Raíz cúbica
49. Algoritmo que obtenga el producto de dos números enteros positivos mediante sumas sucesivas.
50. Algoritmo que resuelva la siguiente ecuación algebraica:

2 1/ 7
6.8 a b /c 7.2a / b c
f m 1/ 3
c a bn
40
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

ANEXO SIMBOLOS E = Soporte de entrada

S = Soporte de salida
E/S = Soporte de entrada y salida

PARA DIAGRAMAS DE FLUJO DE SISTEMA (ORGANIGRAMA) .

SIMBOLOS DESCRIPCION SIMBOLOS DE DESCRIPCION


DE SOPORTE SOPORTE
TARJETA (E/S). DISCO MAGNETICO (E/S).

CINTA DE PAPEL (E/S). TAMBOR MAGNETICO


(E/S).

IMPRESORA (S). CINTA MAGNETICA (E/S).

TECLADO (E). La función de E es DISKETTE (E/S).


introducida manualmente por medio del
teclado, de posicionamientos de palancas,
de pulsadores, etc.
PANTALLA (S). La función de salida es CINTA ENCAPSULADA
visual, mediante indicadores, pantallas de (E/S).
televisión, máquinas de escribir, etc.
interiores al sistema.
SOPORTE MAGNETICO (E/S). Conectado OPERACIÓN MANUAL (E).
al sistema. Ej.: cinta magnética, tambor Tratamiento exterior al
magnético, disco magnético. sistema sin ayuda mecánica

SIMBOLOS DE PROCESO DESCRIPCION


PROCESO.

Operación AUXILIAR. Efectuada con un equipo que no se encuentre


bajo el control directo de la unidad central de tratamiento.

CLASIFICACION DE ARCHIVOS. Ordenación de un grupo de


artículos con arreglo a una secuencia particular.

FUSION DE ARCHIVOS. Combinación de dos o más series en una


única serie.

PARTICION DE ARCHIVOS. Extracción de una o varias series


particulares a partir de una sola.

SIMBOLOS DE OPERACIÓN DESCRIPCION


DIRECCION DEL FLUJO. Indica el sentido de ejecución de las
operaciones.
LINEAS DE TELEPROCESO. Transmisión de información mediante
una telecomunicación.
41
LÓGICA COMPUTACIONAL Hünicken, Helvia E.

PARA DIAGRAMAS DE FLUJO DEL PROGRAMA (ORDINOGRAMA)

SIMBOLOS DE OPERACIÓN DESCRIPCION


TERMINAL (INICIO, FIN, PARADA). Representa el comienzo “inicio” y el
final, “fin”, de un programa.
OPERACIÓN EN GENERAL. Cualquier tipo de operación que pueda
originar cambio de valor, formato o posición de la información en
memoria, operaciones aritméticas, de transferencia, etc.
OPERACIÓN DE E/S EN GENERAL. Cualquier tipo de introducción de
datos en la memoria desde los periféricos, “entrada”, o registro de la
información procesada en un periférico, “salida”).
SUBPROGRAMA. Llamada a subrutina o a un proceso predeterminado.
Una subrutina es un módulo independiente del programa principal, que
recibe una entrada procedente de dicho programa, realiza una tarea
determinada y regresa, al terminar, al programa principal.

MODIFICACION DE PROGRAMA O INICIALIZACION DE


DECLARACIONES.
OPERACIÓN MANUAL

SIMBOLO DE COMENTARIOS DESCRIPCION


COMENTARIO. Se utiliza para añadir comentarios clasificadores a otros
símbolos del diagrama de flujo. Se pueden dibujar a cualquier lado del
símbolo.

SIMBOLO DE DECISION DESCRIPCION


DECISION (2/3 SALIDAS). Indica operaciones lógicas o de comparación
entre datos –normalmente dos- y en función del resultado de la misma
determina cuál de los distintos caminos alternativos del programa se
debe seguir; normalmente tiene dos salidas (respuestas SI o NO), pero
puede tener tres o más según los casos.

LINEAS DE FLUJO DESCRIPCION


DIRECCION DEL FLUJO. Indica el sentido de ejecución de las
operaciones.

SIMBOLO DE CONEXION DESCRIPCION


REAGRUPAMIENTO

CONECTOR EN LA MISMA PAGINA. Sirve para enlazar dos partes


nº cualesquiera de un ordinograma a través de un conector en la salida y
otro conector en la entrada. Se refiere a la conexión en la misma página
del diagrama.
CONECTOR EN DISTINTA PAGINA. Conexión entre dos puntos del
nº organigrama situado en páginas diferentes.

Vous aimerez peut-être aussi