Comunidad Emagister Logica Computacional
Comunidad Emagister Logica Computacional
Comunidad Emagister Logica Computacional
1. RESOLUCIÓN DE UN PROBLEMA
Sistema de
procesamiento de
Entrada = datos procesador Salida = información
información
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.
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
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.
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
del programa
A2. Diseño del Algoritmo
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.
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.
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:
Actividades 1
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.
CONSTANTES:
OBJETOS
VARIABLES:
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:
2.1.2. Variable
X=0
X=X+1 donde X es una variable tipo numérico
N Z
1 N=2
2 Z=0
3 Z=Z+N
4 Z=Z+N
5 Z=Z+N
6 Z= Z + N
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
[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
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.
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.
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]:
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
Modularidad. Ha de estar subdividido en bloques o módulos, cada uno de los cuales realizará
una parte del conjunto del trabajo.
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.
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.
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.
Actividades 3
4. DIAGRAMA DE FLUJO
(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]
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.
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.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:
Actividades 4
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.
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
Para (FOR)
Repetitiva Mientras (WHILE)
Hasta (UNTIL)
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
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.
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
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
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
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)
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á:
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.
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
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.
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).
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
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.
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
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.
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.
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
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.
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.
S = Soporte de salida
E/S = Soporte de entrada y salida