Title: Lgica Computacional
1Lógica Computacional
- M.C. Juan Carlos Olivares Rojas
2Introducción a la programación
- La principal razón para que las personas aprendan
lenguajes de programación es utilizar la
computadora como una herramienta para la
resolución de problemas.
3Construyendo Sistemas de Información
- Las fases del desarrollo de un S.I.
- - Análisis del Sistema
- - Diseño del Sistema
- - Programación
- - Pruebas
- - Conversión
- - Producción y Mantenimiento
4Qué es un algoritmo?
- La creación de algoritmos se realiza durante
la fase de análisis del sistema. Un algoritmo es
la secuencia ordenada de pasos que conducen a la
solución de un problema dado, y puede ser
expresado en lenguaje natural, por ejemplo el
castellano
5Algoritmo
- Conjunto finito de reglas que dan una secuencia
de operaciones para resolver todos los problemas
de un tipo dado. De forma más sencilla, podemos
decir que un algoritmo es un conjunto de pasos
que nos permite obtener un dato. - Algoritmo es el procedimiento o protocolo- paso
por paso- que ideamos o escribimos para que se
realice una tarea o para lograr objetivos o
propósitos es como un plan (ordenado,
estructurado, especÃfico, claro).
6Algoritmo
- Algoritmo se define como una sucesión o serie de
instrucciones, por pasos, que deben realizarse
y que explica cómo deben procesarse los datos
para producir sus resultados los algoritmos
deben escribirse en español o inglés,
independientes de los lenguajes para programación
(no mezclarlos).
7CaracterÃsticas de un Algoritmo
- Bien definido
- No ambiguo
- Finito (siempre termina)
- Efectivo
- Claridad programación estructurada
- Correctitud satisfacer especificación
- Cero o más entradas y una o más salidas
8CaracterÃsticas de un algoritmo
- Preciso. Indicar el orden de realización de cada
paso. - Definido. Si se sigue un algoritmo dos veces, se
debe obtener el mismo resultado cada vez. - Finito. Debe terminar el algún momento
9Ejemplo de algoritmo
10Algoritmo para hacer una taza de té
- Inicio
- Tomar la tetera
- Llenarla de agua
- Encender el fuego
- Mientras no hierva el agua
- Esperar
- Introducir una bolsa de té en la tetera
- Vaciar el té en la taza
- Fin
11Ejemplo
- Construya un algoritmo para preparar Pechugas de
pollo en salsa de elote y chile poblano - Ingredientes (para 6 personas)
- 3 Pechugas deshuesadas, sin piel y partidas a la
mitad. - 1 diente de ajo
- 4 gramos de pimienta negra. Sal.
- 6 cucharadas de aceite
- 5 chiles poblanos asados y limpios.
- ½ Taza de leche.
- ¼ Taza de crema ligera.
- 1 lata de crema de elote.
12Ejemplo
- Algoritmo (Preparación)
- Muela el ajo, la pimienta y un poco de sal y
únteselo a las pechugas. - Caliente el aceite y dore las pechugas.
- Licue los chiles con la leche y la crema, y
mézclelos con la crema de elote. - En una fuente coloque las pechugas y báñelas con
la mezcla anterior. - Cubra el platón con papel aluminio y hornee a 200
C, durante 15 minutos.
13Otros ejemplos de algoritmos
- Las instrucciones o serie de pasos que sigues
para grabar un número telefónico en tu celular. - Las instrucciones que te dan para resolver un
examen. - Los pasos que sigues para prender el carbón para
una carne asada - El procedimiento que sigues para inscribirte
- EL procedimiento para obtener tu pasaporte
- La receta que sigues para preparar un pastel
- Los pasos para invitar a alguien al cine
14Herramientas para hacer un algoritmo
Las distintas representaciones de un algoritmo
son el Pseudocódigo, el Diagrama N-S, el Diagrama
de Flujo
15Pseudocódigo
- Es un lenguaje de especificación de algoritmos y
no puede ser ejecutado por una computadora, la
ventaja del pseudocódigo es que el programador se
puede concentrar en la lógica y en las
estructuras de control y no preocuparse de las
reglas de un lenguaje especÃfico. - Es fácil de modificar y puede ser rápidamente
traducido a un lenguaje de programación. - Representa acciones sucesivas en un lenguaje
similar al humano.
16Ejemplo Algoritmo para dividir 2 números
- algoritmo División
- variables
- real dividendo, divisor,
resultado_división - inicio
- Leer (dividendo, divisor)
- si divisor ltgt 0 entonces
- resultado_división dividendo /
divisor - escribir (resultado_división)
- si_no
- escribir (El resultado es
infinito) - fin_si
- fin
17Diagramas de Flujo
- Es una representación gráfica de las
actividades, operaciones y decisiones lógicas que
deben ser realizadas, su orden o secuencia en que
se realizan. Utiliza sÃmbolos unidos por
flechas. Dentro de cada sÃmbolo o caja se indican
las operaciones que deben ser realizadas.
18Diagrama de flujo para calcular una división
19Diagramas Nassi-Scneiderman
- Conocidos como Diagramas N-S o Diagramas de
Chapin. Las acciones se escriben dentro de cajas
sucesivas.
20Ejercicio
- Realizar el siguiente algoritmo
- REGISTRO DE VENDEDORES.
- Una tienda emplea un cierto número de vendedores.
La mayorÃa de estos empleados obtienen sus
ingresos de comisiones sobre los artÃculos que
venden, pero existen algunos empleados que
obtienen su salario fijo, sin importar el tipo o
cantidad de artÃculos que venden, más una
comisión por sobre ciertos artÃculos. - La tienda ofrece distintos tipos de mercancÃas,
algunas de las cuales se clasifican como
artÃculos estándar por que son de uso común y no
requieren de técnicas creativas de venta además,
hay artÃculos que son altamente remunerados pero
difÃciles de vender.
21Ejercicio
- Los compradores también se clasifican. Algunos se
conocen como compradores regulares, pues hacen
transacciones tan a menudo que no se requiere de
hacerles venta creativa. Sin embargo, la mayorÃa
de los clientes hacen pocas transacciones dentro
de la tienda, y es probable que entren, compren
algo y no vuelvan a ser vistos.
22Ejercicio
- Si un empleado vende cualquier tipo de artÃculo a
un cliente regular, no se da comisión alguna. - Si un empleado asalariado vende un artÃculo
extra, recibe una comisión del 10 a menos que el
artÃculo tenga un precio mayor de 10,000, en
cuyo caso recibe una comisión del 15.
23Ejercicio
- Si un empleado no asalariado vende un artÃculo
extra a alguien que no sea un comprador regular,
recibe un 15 de comisión a menos que el artÃculo
tenga un precio mayor a 10,000 en cuyo caso
recibe una comisión del 20. Si un empleado
asalariado vende un artÃculo estándar recibe un
3 de comisión, en caso de ser un empleado no
asalariado recibe un 7.
24Pseudocódigo
25- Diagrama de Flujo
- Cálculo de comisión
26Ejercicio resuelto
27Ejercicio resuelto
28Diagrama de flujo
- Al diagrama de flujo también se le conoce como
ordinograma o flujograma - Diagrama de Sistema Diagrama que representa
gráficamente los dispositivos de entrada-salida
que usa un programa de un sistema.
29Ejemplo
Diagrama de Sistema
Flujo General
Disco
Lectura de
Magnético
Tarjeta
Levantarse
Arreglarse
S/370
Computador
Irse
Impresora
Perforadora
30SÃmbolos del diagrama de Flujo
31SÃmbolos del diagrama de Flujo
32SÃmbolos del diagrama de Flujo
33SÃmbolos del diagrama de Flujo
34SÃmbolos del diagrama de Flujo
35SÃmbolos del diagrama de Flujo
36SENTENCIAS DE CONTROL
37Lenguaje Estructurado
- Español Estructurado
- Para describir los procesos se utiliza el
lenguaje natural. Este incluye estructuras de
control como - Si
- Mientras
- Repetir-Hasta_que
- Según_sea- hacer
38Español EstructuradoEstructura selectiva
Una estructura selectiva es aquella en que se
ejecutan unas acciones u otras según se cumpla o
no una determinada condición. La selección puede
ser simple, doble o múltiple
39Estructura Selectiva Simple
- Se evalúa la condición y si ésta da como
resultado verdad se ejecuta una determinada
acción o grupo de acciones en caso contrario se
saltan dicho grupo de acciones
40Español EstructuradoEstructura selectiva
Diagrama de Flujo
Diagrama N-S
Pseudocódigo
si ltcondicióngt entonces acción 1 fin_si
41Español EstructuradoEstructura selectiva
- Estructura Selectiva Doble
- Cuando el resultado de evaluar la condición es
verdad se ejecutará una determinada acción o
grupo de acciones y si el resultado es falso otra
acción o grupo de acciones diferentes.
42Español EstructuradoEstructura selectiva
Diagrama de Flujo
Diagrama N-S
Pseudocódigo
si ltcondicióngt entonces acción 1 si_no
acción 2 fin_si
43Español EstructuradoEstructura selectiva
- Estructura Selectiva Múltiple
- Se ejecutarán unas acciones u otras según el
resultado que se obtenga al evaluar una expresión.
44Español EstructuradoEstructura selectiva
Diagrama de Flujo
Diagrama N-S
45Español EstructuradoEstructura selectiva
Estructura Selectiva Múltiple
Pseudocódigo
según_sea ltexpresióngt hacer ltlista 1gt
acción 1 ltlista 2gt acción 2 . . .
si_no acción n fin_según
46Español EstructuradoEstructura repetitiva
- mientras
- Lo que caracteriza este tipo de estructura es que
las acciones del cuerpo del bucle se realizan
cuando la condición es cierta. Además, se
pregunta por la condición al principio, de donde
se deduce que dichas acciones se podrán ejecutar
de 0 a n veces.
47Español EstructuradoEstructura repetitiva
Diagrama de Flujo
Diagrama N-S
Pseudocódigo
mientras ltexpresión lógicagt hacer acción
fin_mientras
48Español EstructuradoEstructura repetitiva
- repetir-hasta_que
- El bucle repetir-Hasta_que es análogo al bucle
mientras desde el punto de vista de que el cuerpo
del bucle (acción) se ejecuta una y otra vez
mientras la condición (expresión lógica) es
verdadera. La diferencia entre ellos consiste en
que en el bucle repetir-hasta_que, las sentencias
del cuerpo se ejecutan, al menos una vez, antes
de que se evalúe la expresión lógica. En otras
palabras, el cuerpo del bucle siempre se ejecuta,
al menos una vez, incluso aunque la expresión
lógica sea falsa.
49Español EstructuradoEstructura repetitiva
Diagrama de Flujo
Diagrama N-S
Pseudocódigo
repetir acción hasta_que ltexpresión
lógicagt
50Español EstructuradoEstructura anidada
Pseudocódigo
si ltcondición1gt entonces ltacciónes1gt si_no
si ltcondición2gt entonces
ltacciones2gt si_no si
ltcondición3gt entonces ltacciones3gt
si_no ltaccionesXgt
fin_si fin_si fin_si
- Tanto las estructuras selectivas como las
repetitivas pueden ser anidadas, e introducidas
unas en el interior de las otras.
51PROGRAMA
- Es más que una secuencia ordenada de
instrucciones que hacen algo con sentido. Las
instrucciones tienen que ser las precisas y estar
ordenadas de tal forma que, cuando el ordenador
las ejecute, se consigan los efectos deseados. - Las instrucciones que tendremos disponibles para
escribir un programa y su sintaxis van a depender
del lenguaje que vayamos a usar en nuestro caso,
el C.
52Variables
- Una variable, en realidad, no es más que un
nombre para identificar una (o varias) posiciones
de memoria donde el programa guarda los distintos
valores de una misma entidad. -
- Un programa debe DEFINIR a todas las variables
que utilizará, antes de comenzar a usarlas, a fin
de indicarle al compilador de que tipo serán, y
por lo tanto cuanta memoria debe destinar para
albergar a cada una de ellas.
53Variables
- Lenguaje Estructurado.
- Inicialización de Variables
- Es conveniente inicializar las variables al
inicio del algoritmo. Ejemplo -
algoritmo calcula_total var entero contador0,
total0 inicio leer numero mientras contador lt
numero hacer contadorcontador1 totalt
otalcontador fin_mientras fin
54Ejemplo de programa en Lenguaje C
- include ltstdio.hgt
- main()
-
- / defino multiplicador como un entero /
- int multiplicador
- / defino multiplicando como un entero /
- int multiplicando
- / defino resultado como un entero /
- int resultado
- / les asigno valores /
- multiplicador 1000
- multiplicando 2
- resultado multiplicando multiplicador
- / muestro el resultado /
- printf("Resultado d\n", resultado)
- return 0
55Los elementos de un programa en C son los
siguientes
- Comentarios
- Inclusión de archivos
- main()
-
- variables locales
- flujo de sentencias
-
- Definición de funciones creadas por el
programador utilizadas en main()
56Ejemplo1
- /Programa que despliega un mensaje de bienvenida
en la pantalla/ - includeltstdio.hgt
- includeltconio.hgt
- void main()
-
- clrscr()
- gotoxy(20,10)
- printf("BIENVENIDO AL CURSO DE C ESTANDAR \n")
- delay(2500)
- return 0
-
57Diagrama
Estructura de un programa
Lenguaje estructurado
1. SIMPLE PROCESS (Secuencial)
Sentencia(s) Sentencia(s)
2. IF-THEN-ELSE (Condición)
- C
- if (first lt second)
- return first
- else
- return second
SI (condición) ENTONCES
sentencia(s) SINO sentencia(s) FIN SI
58Estructura de un programa
Lenguaje estructurado
Diagrama
- C
- switch (conversion)
- case A case a
- result FahrToCelsius(temp)
- break
- case B case b
- result CelsiusToFahr(temp)
- break
- .
3. Estructura CASE (Selección)
SELECCION (variable) constante_1
sentencia(s) constante_2 sentencia(s)
constante_n sentencia(s)
- C (for, while, do)
- WHILE (expresión)
- proposición 1
- proposición 2
- ...............
- proposición n
-
- DO Â
- proposición 1 Â
- proposición 2 Â
- ...............
- WHILE (expresión)
MIENTRAS (condicion) HACER
sentencia(s) FIN MIENTRAS
4. WHILE-DO (iteración)
HACER sentencia(s) MIENTRAS
(condición)
59Preguntas, dudas y comentarios?