Post on 30-Mar-2016
description
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 1
PORTADA---------------------------------------------------------3
PROPÓSITOS DE LA LÓGICA COMPUTACIONA-------4
¿QUÉ ES UN PROBLEMA?------------------------------------------------------------5
ETAPAS PARA RESOLVERLO--------------------------------------------------------5
¿QUÉ ES LÓGICA COMPUTACIONAL? -------------------6
HERRAMIENTAS-------------------------------------------------------------------------6
ALGORITMOS----------------------------------------------------7
¿QUÉ SON LOS ALGORITMOS?-----------------------------------------------------7
ESTRUCTURA DE LOS ALGORITMOS-------------------------------------------7
TIPOS DE ALGORITMOS--------------------------------------------------------------8
1. ALGORITMOS SECUENCIALES-------------------------------------9
2. ALGORITMOS DE DECISIÓN----------------------------------------9
a) DECISIÓN SIMPLE-------------------------------------------------------------------------9
b) DECISIÓN DOBLE-------------------------------------------------------------------------11
c) DECISIÓN MÚLTIPLE---------------------------------------------------------------------13
3. ALGORITMOS REPETITIVOS----------------------------------------13
a) PARA----------------------------------------------------------------------------------------13
b) MIENTRAS---------------------------------------------------------------------------------15
c) REPETIR-------------------------------------------------------------------------------------16
4. EJEMPLOS DE ALGORITMOS---------------------------------------16
DIAGRAMAS DE FLUJO------------------------------------19
¿QUÉ ES EL DIAGRAMA DE FLUJOS?--------------------------------------19
REPRESENTACIÓN GRAFICA--------------------------------------------------19
SÍMBOLOS-----------------------------------------------------------------------------------19
REGLAS PARA LA CREACIÓN DE DIAGRAMAS DE FLUJO--------------20
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 2
EJEMPLOS DE DIAGRAMAS DE FLUJO--------------------------------21
PSEUDOCÓDIGOS---------------------------------------------25
¿QUÉ SON LOS PSEUDOCÓDIGOS?--------------------------------------------25
ESTRUCTURA DE LOS PSEUDOCÓDIGOS---------------------------------25
EJEMPLOS DE PSEUDOCÓDIGOS--------------------------------------------26
VARIABLES----------------------------------------------------27
CONSTANTES--------------------------------------------------27
TIPOS DE DATOS---------------------------------------------28
NUMERICO---------------------------------------------------------------------------------29
CARACTERES------------------------------------------------------------------------------29
BOOLEANOS--------------------------------------------------------------------------------29
CONTADOR-------------------------------------------------------30
ACUMULADOR--------------------------------------------------30
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 4
PROPOSITOS DEL SUBMODULO 1
Que el alumno aprenda a solucionar problemas utilizando
la lógica computacional, llevando una metodología que
luego se adaptará en el computador para utilizar los
modernos enfoques orientados a objetos, haciendo
énfasis en la solución algorítmica, teniendo en mente las
soluciones sean implementadas en un lenguaje de
programación orientada a objetos.
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 5
RESUELVE LOS SIGUIENTES EJERCICIOS:
Román y Ramiro son dos gemelos que van al colegio en autobús, ya que
este e diez veces mas rápido que ellos. En la calle que viven hay dos
paradas de la misma línea de autobuses, y aunque viven juntos, Román
siempre sale hacia la parada de autobuses del norte, que es la más
cercana y Ramiro sale a la vez hacia la parada del sur, en la misma
dirección que el autobús: curiosamente siempre llegan al colegio en el
mismo autobús. Si a Román le cuesta 9 minutos llegar a su parada.
¿Cuánto tiempo tarda ramiro en llegar a la suya?
Ecuación lineal: 10(2)=9 20=9 20-9=0 11=0 RESPUESTA: TARDA 11 MINUTOS
Coloca un número en cada cuadro, teniendo en cuenta que:
a) 3, 6,8, están en la horizontal superior.
b) 5, 7,9, están en la horizontal inferior.
c) 1, 2, 3, 6, 7, 9, no están en la vertical izquierda.
d) 1,3,4,5,8,9, no están en la vertical derecha.
8 3 6
4 1 2
5 9 7
María tiene 4 años, su hermana Martha tiene 3 veces su edad. ¿Qué edad
tendrá Martha cuando su edad sea el doble que el de María?
Ecuaciones de primer grado
M=María, Mt=Martha M=4 Mt=3m
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 6
Mt=2(3m) Mt=6(4) Mt=24 RESPUESTA: MARTHA TENDRÁ 24 AÑOS
Resuelve el siguiente triangulo con los numero del 1 al 9.
Estas como otros problemas tienen solución ya sea filosóficamente o incluso te puedes apoyar de una computadora utilizando la lógica computacional y de sus herramientas como son por medio de los algoritmos, diagramas de flujo o pseudocódigo. Ya que existen diferentes tipos de problemas y para los problemas tenemos diferentes formas de resolverlo. Pero tenemos que darle una solución el cual resuelva nuestras dudas e incógnitas.
9
2
4
5 8 6
7
3
1
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 7
Cuestión o
planteamiento
.
Que Requiere de
una solución.
Por medio
medio
De la
tecnología o
Métodos
filosóficos.
Entrada de
datos
1.-¿Qué datos tengo? 2.-¿Cuál es mi incógnita?
Proceso
1.-¿Qué operaciones debo realizar para resolverlo?
Salida de
datos
1.-¿Los resultados cumplen con mi objetivo?
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 8
Nos ayuda a
Resolver ciertas
acciones
Aplicandolas a
la
Computadora.
Herramientas
Algoritmos
.
Diagramas
de flujo.
Psedocódigos
.
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 9
ordenado
Que nos conduce a la
finito de
instrucciones.
Solución de un
Problema
.
Conjunto
.
Entrada
de datos.
Proceso.
Salida de
datos.
Se identifica con la
palabra leer por
ejemplo: Leer dato.
Todas las
operaciones que voy
a realizar.
Se identifica con la
palabra imprimir o
mostrar.
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 10
Secuenciales. Repetitiv
os.
De decisión.
Simple.
Doble.
Múltiple.
For
(para)
While
(mientras)
Repeat
(repetir)
Repetitivos
.
For (para)
While (mientras)
Repeat (repetir)
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 11
Es aquella en la que la acción (instrucción) sigue a otra en secuencia. Se representa de la
siguiente forma.
Se caracteriza porque una acción se ejecuta sobre otra. El diagrama de flujo coincide con el
orden físico en el que se han ido poniendo las instrucciones. Dentro de este tipo podemos
encontrar operaciones de inicio/fin.
INICIO D.E
PROCESO Acción 1 Accion2
.
. Acción n
Fin.
si_entonces (if_then)
Ejemplo de selección simple:
Diseñe un algoritmo y diagrama de flujo para saber si un numero
introducido por el usuario es negativo.
INICIO DATOS DE ENTRADA. Leer número
PROCESO Si numero <0 entonces
Imprimir “número negativo” FIN
Algoritmo
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 12
Realice un algoritmo y diagrama de flujo que valida la división de dos
números sabiendo que solo podrá realizar la división si el divisor es
diferente a cero.
INICIO.
DATOS DE ENTRADA: LEER NUM
PROCESO
Si num =0 entonces
R=x/y
Imprimir=r
Fin_si
FIN
INICIO
Número
Num<0
“num
neg.”
FIN
INICIO
X,Y
Y!=0
FIN
R=X/Y
R
Diagrama de flujo
Algoritmo Diagrama de flujo
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 13
si_entonces_ de lo contrario (if_then_else)
Esta estructura nos permite elegir entre dos opciones posibles si la condición es verdadera ,
ejecuta la opción 1 y si es falsa ejecuta la opción 2.
EJEMPLOS DE SELECCIÓN DOBLE:
Diseñe un algoritmo que determine si una persona es mayor o menor de
edad. Al introducir su edad en el teclado.
INICIO. DATOS DE ENTRADA: Leer edad.
PROCESO Si edad >= 18 entonces
Imprimir:”mayor de dad” De lo contrario
Imprimir: “menor de edad” FIN SI FIN.
Diagrama de flujo
Algoritmo
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 14
Diseñe un algoritmo que determine si un numero introducido por el usuario es o no par positivo.
INICIO DATOS DE ENTRADA: LEER NUMERO
PROCESO si numero mod 2=0 and
numero >0 entonces imprimir “par positivo”
de lo contrario imprimir “no me interesa”
FIN SI FIN
Algoritmo
Diagrama de flujo
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 15
en caso de opción hacer
Op1, Op2, Op3 Case
EJEMPLOS DE SELECCIÓN CON MULTIPLE:
Diseñe un algoritmo que asignado o introducido el numero del día de la semana mande un mensaje a la pantalla del día que corresponde. INICIO DATOS DE ENTRADA: leer día PROCESO Case opción día Case 1 “lunes” Case 2 “martes” Case 3 “miercoles” Case 4 “jueves” Case 5 “viernes” Case 6 “sabado” Case 7 “domingo” Else case Fin case
Son aquellas en que las acciones se ejecutan un número determinado de veces y dependen de
un valor predefinido o el cumplimiento de termina una acción.
Permiten representar aquellas acciones que pueden descomponerse en otras subacciones
primitivas.
Se ejecuta mientras la condición evaluada resulte verdadera.se usa frecuentemente cuando se
conoce el número de veces que se ejecutaran las acciones de un bucle.
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 16
EJEMPLO:
Diseñe un algoritmo que sume los números impares del 1-100 y que
realice el cuadrado de los numero pares.
INICIO
PROCESO
si=0 sp=0 i=1 para i=1,100,1 r=i/2 si r=0 entonces sp=sp+(i*i) entonces imprimirsp de lo contrario si=si+i entonces imprimir si fin para FIN
ALGORITMO DIAGRAMA DE FLUJO
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 17
Realiza un algoritmo que calcule la suma de los cuadrados del 1-10
INICIO
DATOS DE ENTRADA
PROCESO
si s =0 para i = 1,10,1 s= s+(i*i) fin para imprimir s FIN
Ejecuta un bloque de instrucciones mientras que la condición se evalué como
verdadero y siempre se evalúa antes de ejecutar el bloque de instrucciones en caso de
que la condición evalué la primera vez como falsa el bloque de instrucciones no será
ejecutado por lo que quiere decir que el numero de interacciones es igual a cero, en
caso contrario la condición evaluara como verdadero y se repetirá el bloque de
instrucciones.
POR EJEMPLO:
Dado un numero natural positivo calcular la suma de los números
naturales del hasta el numero introducido.
INICIO
FIN
S 0
Para i 1, 10, 1
S s+(i *i)
Fin para
Algoritmo
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 18
INICIO DATOS DE ENTRADA: leer número s
PROCESO: i=1 s =0
mientras i<= número S=s+i I=i+1
Fin mientras. IMPRIMIR S
FIN
Se ejecuta hasta que se cumpla una condición determinada que se comprueba hasta el
final del bucle.
Se llama Repetir a la estructura algorítmica que se ejecuta un número definido de
veces hasta que la condición se torna o se vuelve verdadera.
Diseñe un algoritmo para convertir una longitud dada en metros a sus
equivalentes en centímetros, pies, pulgadas y yardas. Considere que:
1m=100cm. 1pulgada=2.54cm. 1 pie=12 pulgadas. 1 yarda= 3 pies.
INICIO DATOS DE ENTRADA
PROCESO xcm=(sm*100m)/1
p=(xcm*1pulgada)/2.54cm FIN
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 19
Diseñe un algoritmo para calcular el área y perímetro de un cuadrado.
INICIO Datos de entrada. Leer L
PROCESO. A=L²
P=L*L DATOS DE SALIDA. Imprimir. A, P
FIN.
Diseñe un algoritmo para calcular el área y perímetro de un rectángulo.
INICIO DATOS DE ENTRADA. LEER b, h
PROCESO. a=b*h
p=2b+2h DATOS DE SALIDA. Imprimir a, p
FIN.
Diseñe un algoritmo que represente el porcentaje de varones y mujeres
que hay en un salón de clases.
INICIO DATOS DE ENTRADA leer v, m
PROCESO T=v+m
T - 100% %v=v*100%t
%m=m*100%t T=10
Diseñe un algoritmo que lea una medida en gibas y los convierta en Mb,
Kb y bites.
INICIO DATOS DE ENTRADA. Leer GB, Mb, Kb,b.
PROCESO. MB= (1024*GB)/1 KB= (1024*MB)/1 B= (1024*KB)/1
DATOS DE SALIDA. MOSTRAR FIN.
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 20
Diseñe un algoritmo que lea 3 longitudes y determine si forma un triangulo a no, si forma el triangulo que determine que tipo de triangulo forma: equilátero, isósceles, o escaleno.
INICIO DATOS DE ENTRADA: leer l1, l2, l3
PROCESO Determinar el layo mayor
Mayor= l1 Si l2>mayor entonces
Mayor =l2 Si l3>mayor entonces
Mayor=l3 Determinar la suma de los lados a excepción del lado mayor
S=l1+l2+l3 mayor Determinar qué tipo de triangulo se trata
Si mayor<s Si l1=l2 and l1=l3 entonces
Imprimir “equilátero” De lo contrario
Si l1=l2 or l1=l3 or l2=l3 Imprimir “isósceles”
De lo contrario Imprimir “escaleno”
Diseñe un algoritmo que lea el sueldo de tres
empleados y aplicarles un aumento del 10%. 12%,
15% respectivamente y de su salario final. INICIO
DATOS DE ENTRADA: leer S1, S2, S3 PROCESO
aum1 ¬ s1 * 0.10 aum2 ¬ s2 * 0.12 aum3 ¬ s3 * 0.15 sf1 ¬ s1 + aum1 sf2 ¬ s2 + aum2 sf3 ¬ s3 + aum3
imprimir (sf1, sf2, sf3) FIN
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 21
Fluido de datos
Conector a una misma hoja
Conector a otra hoja
Ó
Toma de desiciones
De la
de
Que llevan
un
representa
De manera
grafica
Logica
computacional
Herramienta.
conjunto
Instrucciones
ordenadas
Solucion de
un problema
inicio
FIN
leer
Asignación
impresora pantalla
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 22
a) Los diagramas de flujo deben escribirse de arriba hacia
abajo y de izquierda a derecha.
b) Los símbolos se unen con líneas las cuales tienen en la
punta una flecha que inca la dirección en la que fluye la
información.
c) No deben de quedar líneas de flujo sin conectar.
d) Todo texto escrito dentro de un símbolo debe ser legible
preciso, evitar el uso de muchas palabras.
e) Todos los símbolos pueden tener más de una línea de flujo
excepto el símbolo final.
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 23
Diseñe un algoritmo y diagrama de flujo que calcule
la resta de dos números dados.
INICIO
DATOS DE ENTRADA. Leer x,y
PROCESO
R=x-y
DATOS DE SALIDA. IMPRIMIR R
FIN.
Algoritmo Diagrama de flujo
INICIO
X, Y
R=X-Y
R
FIN
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 24
Diseñe un algoritmo y diagrama de flujo que dados tres numero diga cuál es el mayor.
INICIO
DATOS DE ENTRADA: LEER NUMERO
PROCESO
SI NUMERO >NUMERO
IMPRIMIR”MAYOR”
DE LO CONTRARIO
IMPRIMIR”MENOR”
FIN.
Diseñe un algoritmo y diagrama de flujo de flujo que introducido un número diga que es
positivo, negativo, nulo.
INICIO
DATOS DE ENTRADA: leer x
PROCESO
si x>0 entonces
imprimir “positivo”
de lo contrario.
si x<0 entonces
imprimir “negativo”
de lo contrario
imprimir “nulo”
FIN
INICIO
x>y and
x>z
“MAYOR” “MENOR”
FIN
x,y,z
INICIO
x
x>0
x>0 “positivo”
“nulo” “negativo”
SI NO
FIN
Algoritmo
Digrama de flujo
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 25
Diseñe un algoritmo y diagrama de flujo que permita ingresar una
cantidad de tres cifras y determine si es numero capicúa o no, si la cifra
es > a 999 y < a 100 que mande un mensaje “ingrese una cifra de tres
dígitos”
INICIO
DATOS DE ENTRADA: Leer num
si num >=100 and num<= 100 entonces c=trunc (num/100) r=num mod 100 u=r mod 100 si u=c entonces imprimir “capicua” de lo contrario “no capicúa” si no imprimir “ingrese numero de tres cifras” FIN.
INICIO
FIN
Num>=100
and num<=
999
u=c
num
c= frunc (num/100) r= num mod 100 u= r mod 10 “ingrese numero
de 3 cifras”
“capicua” “no capicua”
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 26
Diseñe un algoritmo y diagrama de flujo que califique el puntaje obtenido en el lanzamiento de tres dados en base a la cantidad de seis obtenidos: Tres 6 tiro excelente. Dos 6 tiro bueno. Un 6 tiro regular. Ninguno tiro malo. INICIO DATOS DE ENTRADA: Leer d1, d2, d3 PROCESO Si d1+d2+d3=18 entonces Imprimir”tiro excelente” De lo contrario Si d1+d2=12 or d1+d3=12 or d2+d3= 12 entonces imprimir”tiro bueno” de lo contrario si d1=6 or d2=6 or d3=6 entonces imprimir”tiro regular” de lo contrario imprimir
INICIO
d1, d2, d3
d1
+d1+d3=18
“tiro
excelente”
“tiro regular” “tiro malo”
FIN
d16 d2=6 d3=6
“tiro bueno”
d1+d2=12 or
d1+d3=12 or
d2+d3= 12
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 27
su
De una
la
Principal
objetivo.
Representar
Solucion de un
algoritmo
Forma mas
detallada
posible
Parecido al lenguaje a utilizar.
Nombre del
programa.
Tipos de daros
a utilizar.
Declaración
de variables y
constantes.
Cabecera.
INICIO.
Cuerpo de
programa.
Proceso o
instrucciones.
FIN
/*para comentar un psedocodigo*/
es
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 28
Diseñe un pseudocódigo que sirve para calcular el área de un cuadrado
/*Pseudocódigo que sirve para calcular área de cuadrado*/ Cabecera.
Cuerpo de
Programa
SUMA
Private sub command1 – click () i= Val (text1.text) a=Val (text2.text) Suma=i+a text3.text=suma End sub.
Programa que calcula si eres mayor o menor de edad.
A=Val (text. text) If a >18 then Text2.text= “mayor de edad” Else Text2.text=”menor de edad” End if End sub.
Programa_calcular_area_cuadrado L, A as single;
INICIO Visualizar “introduce lado de l cuadrado” Leer L Calcular área A=L*L Visualizar. “el área es” Text2.text=A FIN.
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 29
Es un dato cuyo valor puede variar a lo largo del desarrollo de un
algoritmo.
Características:
Se le asigna un nombre de acuerdo a lo que va a realizar.
Se le asigna el tipo de dato que va a utilizar.
Ejemplos de variables:
X, y, z, nombre, edad, sexo, área, perímetro, etc.
Es un dato que permanece con un valor, sin cambios, es decir, constante a
lo largo del desarrollo del algoritmo.
Ejemplos:
Fecha: 16/feb./2011
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 30
Numéricos
enteros
booleanos Caracteres
reales
carácter
cadena
V o f
(verdadero
o falso)
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 31
Este tipo de dato puede ser real o entero dependiendo del tipo de dato
que se vaya a utilizar.
ENTEROS: son los valores que no tiene punto decimal, pueden ser
positivos, o negativos y el cero.
REALES: Estos caracteres almacenan números muy grandes que
poseen parte entera y parte decimal.
CARÁCTER: Con el tipo carácter puedes tener objetos que
representen una letra, un número, etc. Es decir, puedes usar variables o constantes que representen un valor alfanumérico. Pero ojo, cada variable sólo podrá almacenar un carácter.
CADENA: Sin embargo, con las cadenas de caracteres (strings)
puedes contener en una sola variable más de un carácter. Por ejemplo,
puedes tener en una variable tu nombre
Se usa para valores lógicos, los podemos definir como datos comparativos dicha comparación devuelve resultados lógicos. Valores que representen verdadero o falso. Ejemplos:
Verdadero and falso falso
22 de
febrero
de 2011
LOGICA COMPUTACIONAL
Página 32
Falso or verdadero. Verdadero
Not verdadero. Falso
Un contador es una variable cuyo valor se incrementa o decrementa en
una cantidad constante cada vez que se produce un determinado suceso o
acción. Si en vez de incremento es decremento se coloca un menos en
lugar del mas.
Ejemplo:
i= i+1
Es una variable que suma sobre sí misma un conjunto de valores para de
esta manera tener la suma de todos ellos en una sola variable.
La diferencia entre un contador y un acumulador es que mientras el
primero va aumentando de un en uno, el acumulador va aumentando en
una cantidad variable.