1
LOGICA COMPUTACIONAL.
ALGORITMOS:
Es una manera para solucionar problemas computacionales, por medio de una
metodología.
Característica:
1. Un algoritmo debe ser preciso e indicar el orden de realización de cada
paso.
2. El algoritmo debe estar definido.
3. El algoritmo debe ser finito.
FASES:
Análisis.
Diseño.
Comprobación o verificación.
TIPOS DE DATOS
enteros .
Numéricos
reales.
Verdadero (true).
Logicos boléanos
Falso.(false).
Cadena (string) ”jose” .
Carácter
Carácter “ C “.
Vectores
Compuesto
Matrices.
Caracteres especiales ------------ $, &, ^,.
1
2
VARIABLES:
Una variable es un conjunto de datos cuyo valor puede cambiar durante el
desarrollo del algoritmo o ejecución del programa.
1. Su valor inicial puede cambiar al final del programa.
2. El nombre de una variable nunca debe empezar con un número, siempre
empieza con letras.
Ejemplo:
Correcto:
num.
a.
dato.
n1.
nota2.
Incorrecto:
2notas.
3. A la hora que una variable el nombre que tenga sea 2 palabra estas se
deben concatenar con un _ para unir las dos palabras o sino escribir
pegado el nombre.
Ejemplo:
Correcto:
suma_num.
sumanum.
Incorrecto:
suma-num.
suma num..
CONSTANTE:
Es un dato que permanece sin cambios en todo el desarrollo del algoritmo o
durante la ejecución del programa.
4. El valor que tiene al inicio se mantiene igual al final del programa.
5. El nombre de una constante nunca debe empezar con un número,
siempre empieza con letras.
6. El punto 2 y 3 de variables es aplicable en constante.
OPERADORES RELACIONARES
>: estrictamente mayor
<: estrictamente menor
<>: diferente
<=:menor igual que
>=menor igual que
2
3
OPERADORES ARITMETRICOS
*: multiplicación.
+: suma.
-: resta.
/: división.
MOD: modulo. -------residuo.
15 mod 4=3.
DIV: división. -------cociente.
14 div 4=3.
OPERADORES LOGICOS
AND OR NOT
1 1=1 1 1=1 0=1
1 0=0 1 0=1 1=0
0 1=0 0 1=1
0 0=0 0 0=0
IDENTIFICADORES
Son los nombre de las variables o de las constante.
REGLAS
Todos los identificadores deben iniciar con una letra del alfabeto.
Los nombres asignados deben corresponder a los valores almacenados en las
variables o en las constantes.
Cuando un identificador conste de 2 palabras se debe concatenar con un
undercore.
ENTRADAS Y SALIDAS DE INFORMACION
Los cálculos que realiza las computadoras requieren para ser útiles, la entrada
de los datos necesarios para ejecutar las operaciones que posteriormente se
convertirán en resultados, es decir, salida.
Las operaciones de entradas permite leer determinado valores y asignarlos a
determinados variables, esta entrada se conoce como operación de lectura
(leer). Los datos de Entrada se introducen al procesador mediante dispositivos
de Entradas (teclado, unidades de disco, etc.) las salidas pueden aparecer en
un dispositivo de salida. La operación de salida se denomina escritura
(imprimir).
3
4
LENGUAJES ALGORITMICOS
DIAGRAMAS DE FLUJO
Diagrama de N/S.
Seudo código.
SEUDOCODIGO
Promedio de tres edades
Inicio
Leer edad1, edad2, edad3;
suma_edades=edad1+edad2+edad3;
promedio =suma_edades/3;
Imprimir promedio;
Fin
Calcular el área y el perímetro de un rectángulo.
Inicio
Leer largo, ancho;
área=largo*ancho;
perímetro=(2*largo) + (2*ancho);
Imprimir área, perímetro;
Fin
IDENTACION: orden y estructura del pseudo código.
PALABRAS RESERVADAS: es cuando una palabra o etiqueta, que
tiene un sentido reservado dentro del lenguaje dentro de
programación(inicio, leer, imprimir, fin).
Calcular la edad de una persona.
Inicio
Leer año_nac, año _ actual;
Edad= año _ actual-año_nac;
Imprimir edad;
Fin
PRACTICA
1. Diseñe un pseudocodigo para convertir una longitud
dada en cm. a pie.Considere que un pie=30.48cm.
2. Diseñe un pseudocodigo para convertir una longitud
dada en pie a cm. Considere que un pie=30.48cm.
4
5
3. Una instuticion benéfica de Nicoya a recibido 3
donaciones en marcos, soles, dólares, la donación será
repartida en 3 rubros: 60% implementación de un
centro de salud, 20% comedor de niños y el resto en
gasto administrativos. Diseñe un algoritmo que
determine el monto en euros que le corresponde a cada
uno. Considere que:
1 dólar=3,52 soles.
1 dólar=2,08 marcos.
1 dólar=1,07 euros.
4. El sueldo neto de un vendedor se calcula como la suma
de un sueldo base de $250 más el 12% del monto total
vendido. Diseñe un algoritmo que determine el sueldo
neto de un vendedor sabiendo que hizo 3 ventas en el
mes.
5. Diseñe un algoritmo que determine el porcentaje de
varones y mujeres que hay en un salón de clases.
6. en países de habla inglesa es común dar la estatura de
una persona como la suma de una cantidad entera de
pie, mas la cantidad entera de pulgadas. Así la estatura
de una persona podría ser: 3 ·pies y 2 pulgadas.
Diseñe un algoritmo que determine la estatura de una
persona en metros, conociendo su estatura en formato
ingles. Considere que:
1 pie=12 pulgadas.
1pulg=2,54cm.
1m=100cm.
ESTRUCTURA CONDICIONAL
Si (condición) entonces
___________________
___________________
Sino
____________________
___________________
Finsi
Diseñe un algoritmo que diga si un año es bisiesto o no.
Inicio
Leer años;
si ((añoMOD4)=0) entonces
Imprimir “año bisiesto”;
Sino
Imprimir “año no bisiesto”;
finsi
Fin
5
6
Diseñe un algoritmo que la persona digite la edad y
imprima si es mayor o menor de edad.
Inicio
Leer edad;
si (edad >= 18) entonces
Imprimir “mayor de edad”;
Sino
Imprimir “menor de edad”;
finsi
Fin
Diseñe un algoritmo que se digite una notafinal y
imprima si aprobó o reprobo.
Inicio
Leer notafinal;
si (notafinal >= 70 ) entonces
Imprimir “Aprobó”;
Sino
Imprimir “Reprobo”;
finsi
Fin
Un estudiante desea saber si aprobó ó no el curso de
lógica el cual era aprobado de la siguiente manera: con
una nota final >= a 70 o un trabajo final > a 65.
Inicio
Leer notafinal, trabaf;
si (notafinal >= 70 ) or (trabaf > 65) entonces
Imprimir “Aprobó”;
Sino
Imprimir “Reprobo”;
finsi
Fin
EXTRUCTURA CONDICIONA ANIDADAS
si (condición) entonces
___________________
___________________
sino
si (condición)
___________________
___________________
sino
6
7
_________________
_________________
finsi
finsi
Diseñe un algoritmo donde se digite una nota e imprima el
estado si aprobó, aplazo o reprobo.
Inicio
Leer nota;
si ( nota>=67,5 ) entonces
imprimir “Aprobado”;
sino
si( nota >=57,5 ) entonces
imprimir “Aplazado”;
sino
imprimir “Reprobado”;
finsi
finsi
Fin
1. Determine el mayor de 3 números enteros positivos y
diferentes, sin anidaciones.
2. Determine el menor de 3 números enteros positivos y
diferentes, con anidaciones.
3. Leer 2 números si son iguales que los multiplique, si el
primero es mayor que el segundo lo reste y sino lo sume.
CICLOS
Existen 2 tipos:
Infinitos.
Finitos.
Finitos:
Son los que tienen un principio y un fin.
Infinito:
Son los que tienen un principio pero no tiene un fin, se
consideran un error computacional.
Hay otra calificación:
Los controlados por un contador y los controlados por un centinela
(valor bandera).
7
8
Contador:
Va a ser un tipo de variable principalmente numérica y entera,
puede haber positiva y negativa. Existen 2 tipos:
Incremento
x=x+1;
x++;
Decremento.
x=x-1;
x - -;
Acumulador:
Va a ser un tipo de variable principalmente numérica y entera,
puede haber positiva y negativa, su función es ir acumulando el valor
de una variable a conforme avanza el ciclo.
x=x+n;
SINTAXIS
Hacer para x=0 a 4
_________________
_________________
_________________
finpara
Inicio
Ilustración 0.0
Hacer para x= 0 a 10 x pantalla
Imprimir (x+2); 0 2
Finpara 1 3
Fin 3 4
. .
. .
ARREGLOS
1 dimensión = vector.
2 dimensiones = matriz.
Vectores
Ilustración 1.0
8
9
3 4 7 2 8 6
0 1 2 3 4 5
Este es un vector de 6 posiciones que va de 0 a 5.
Características
Estático.
Acceden por medio de índices.
Almacenan valores de un mismo tipo.
Arreglos
Es un conjunto de valores de un mismo tipo almacenado en una
estructura estática.
Tomado del vector de la ilustración 1.0
Posición:
x=0;
y=4;
z=v[x]*v[y]:
imprimir z;
1. vec [5]={ 3,1,7,6,5};
2. vec[5]{0};
0 1 2 3 4
0 0 0 0 0
Diseñar un vector de 5 posiciones donde muestre el
resultado de su valor almacenado en cada posición
duplicado.
Inicio
vec [5];
Hacer para x=0 a 4
leer vec[x];
finpara
Hacer para X=0 a 4
vec [x]= vec[x] * 2;
finpara
9
10
imprimir vec[x];
Fin
Diseñar un vector de 5 posiciones donde muestre el
resultado de la suma de todas sus posiciones.
Inicio
vec [5];
sum=0;
Hacer para x=0 a 4
leer vec[x];
finpara
Hacer para x=0 a 4
sum= sum+ vec[x] ;
finpara
imprimir sum;
Fin
Diseñar un arreglo de 50 posiciones que imprima cuales son
numero primo y sumarlos, después la suma elevarlo al
cuadrado.
Inicio
divi=0;
sum=0;
Hacer para x=0 a 49
Hacer para y=0 a x
Si(( x MOD Y)=0) entonces
divi=divi+1;
finsi
finpara
si(divi =2) entonces
sum=sum+x;
finsi
finpara
cuad= sum ^ 2;
Fin
Diseñar un vector de N posiciones y encontrar el mayor.
Inicio
10
11
mayor=0;
leer n;
Hacer para x=0 a n
leer num;
si ( num > mayor ) entonces
mayor= num;
finsi
finpara
Fin
Hacer un programa que registre N posiciones pero que sea
menor 11 y sacar el factorial del numero ingresado (N).
Inicio
fact.=1;
leer n;
si ( n > 0 ) and ( n < 11 )entonces
Hacer para x=0 a n
fact = fact * x;
finpara
finsi
Fin
Ordenamiento burbuja.
Inicio
vec[10];
Hacer para x=0 a 9
leer vec[x];
finpara
Hacer para x=1 a 9
Hacer para y=0 a 8
si ( vec [y] > vec [ y+1] ) entonces
temp= vec [y];
vec [y] =vec [y+1];
vec [y+1] = temp;
finsi
finpara
finpara
Fin
Ejemplo de como se declara una matriz (un array bidimensional).
mat [3] [3]= { 0 } ;
mat [3] [3];
Inicio
mat[3][3];
11
12
Hacer para x=0 a 2
Hacer para y=0 a 2
leer mat[x][y];
finpara
finpara
Fin
Inicio
mat[3][3];
sum=0;
Hacer para x=0 a 2
Hacer para y=0 a 2
leer mat[x][y];
sum= sum + mat [x] [y];
finpara
finpara
imprimir sum;
Fin
2 5 9
8 4 12
17 1 3
EJERCICIOS
1. En un matriz de 4 x 4 determine cual es el mayor de todos los elementos
almacenados.
2. En una matriz cuadrada de dimensiones de 4 x 4 cargue la diagonal
principal de ceros.
3. En una matriz cuadrada de dimensiones XY cargue la matriz triangular
superior con 7 y la matriz triangular inferior con 4.
4. Hacer un algoritmo que sume la diagonal principal de una matriz.
12