lógica computacional
Post on 06-Jan-2016
65 Views
Preview:
DESCRIPTION
TRANSCRIPT
11
Lógica ComputacionalLógica Computacional
M.C. Juan Carlos Olivares Rojas
22
Introducción a la programaciónIntroducció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.
33
Construyendo Sistemas de InformaciónConstruyendo 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
44
¿Qué es un algoritmo?¿Qué 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
55
AlgoritmoAlgoritmo• 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).
66
AlgoritmoAlgoritmo
• 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).
77
Características de un AlgoritmoCaracterí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
88
Características de un algoritmoCaracterí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
99
Ejemplo de Ejemplo de algoritmoalgoritmo
1010
Algoritmo para hacer una taza de Algoritmo para hacer una taza de tété
InicioTomar la teteraLlenarla de aguaEncender el fuegoMientras no hierva el agua
Esperar
Introducir una bolsa de té en la teteraVaciar el té en la taza
Fin
1111
EjemploEjemplo• 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.
1212
EjemploEjemplo• 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.
1313
Otros ejemplos de algoritmosOtros 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
1414
Herramientas para hacer un algoritmoHerramientas para hacer un algoritmo
Las distintas representaciones de un algoritmo son el Pseudocódigo, el Diagrama N-S, el Diagrama de Flujo
1515
PseudocódigoPseudocó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.
1616
Ejemplo: Algoritmo para dividir 2 números
algoritmo Divisiónvariables real: dividendo, divisor, resultado_división inicio Leer (dividendo, divisor) si divisor <> 0 entonces resultado_división= dividendo / divisor escribir (resultado_división) si_no escribir (‘El resultado es infinito’) fin_sifin
1717
Diagramas de FlujoDiagramas 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.
1818
Diagrama de flujo para calcular una Diagrama de flujo para calcular una divisióndivisión
1919
Diagramas Nassi-ScneidermanDiagramas Nassi-Scneiderman
• Conocidos como Diagramas N-S o Diagramas de Chapin. Las acciones se escriben dentro de cajas sucesivas.
2020
EjercicioEjercicio• 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.
2121
EjercicioEjercicio
• 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.
2222
EjercicioEjercicio
• 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%.
2323
EjercicioEjercicio
• 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%.
2424
Pse
udocó
dig
oPse
udocó
dig
o
2525
Diagrama de Flujo“Cálculo de comisión”
2626
Ejercicio resueltoEjercicio resuelto
2727
Ejercicio resueltoEjercicio resuelto
2828
• 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.
Diagrama de flujoDiagrama de flujo
2929
EjemploEjemplo
Flujo General Diagrama de Sistema
Levantarse
Arreglarse
Irse
Disco Magnético Lectura de
Tarjeta
S/370
Computador
Impresora
Perforadora
3030
Símbolos del diagrama de FlujoSímbolos del diagrama de Flujo
3131
Símbolos del diagrama de FlujoSímbolos del diagrama de Flujo
3232
Símbolos del diagrama de FlujoSímbolos del diagrama de Flujo
3333
Símbolos del diagrama de FlujoSímbolos del diagrama de Flujo
3434
Símbolos del diagrama de FlujoSímbolos del diagrama de Flujo
3535
Símbolos del diagrama de FlujoSímbolos del diagrama de Flujo
3636
SENTENCIAS DE CONTROL SENTENCIAS DE CONTROL
3737
Lenguaje EstructuradoLenguaje 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
3838
Español EstructuradoEspañol EstructuradoEstructura selectivaEstructura 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
3939
Estructura Selectiva SimpleEstructura 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
4040
Español EstructuradoEspañol EstructuradoEstructura selectivaEstructura selectiva
Diagrama de Flujo
Diagrama N-S
Pseudocódigo
si <condición> entonces acción 1fin_si
4141
Español EstructuradoEspañol EstructuradoEstructura selectivaEstructura 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.
4242
Español EstructuradoEspañol EstructuradoEstructura selectivaEstructura selectiva
Diagrama de Flujo
Diagrama N-S
Pseudocódigo
si <condición> entonces acción 1si_no acción 2fin_si
4343
Español EstructuradoEspañol EstructuradoEstructura selectivaEstructura selectiva
Estructura Selectiva Múltiple
• Se ejecutarán unas acciones u otras según el resultado que se obtenga al evaluar una expresión.
4444
Español EstructuradoEspañol EstructuradoEstructura selectivaEstructura selectiva
Diagrama de Flujo
Diagrama N-S
4545
Español EstructuradoEspañol EstructuradoEstructura selectivaEstructura selectiva
Estructura Selectiva Múltiple
Pseudocódigo
según_sea <expresión> hacer <lista 1> : acción 1 <lista 2> : acción 2 . . . [si_no acción n]fin_según
4646
Español EstructuradoEspañol EstructuradoEstructura repetitivaEstructura 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.
4747
Español EstructuradoEspañol EstructuradoEstructura repetitivaEstructura repetitiva
Diagrama de Flujo Diagrama N-S
Pseudocódigo mientras <expresión lógica> hacer acción fin_mientras
4848
Español EstructuradoEspañol EstructuradoEstructura repetitivaEstructura 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.
4949
Español EstructuradoEspañol EstructuradoEstructura repetitivaEstructura repetitiva
Diagrama de Flujo Diagrama N-S
Pseudocódigo repetir acción hasta_que <expresión lógica>
5050
Español EstructuradoEspañol EstructuradoEstructura anidadaEstructura anidada
• Tanto las estructuras selectivas como las repetitivas pueden ser anidadas, e introducidas unas en el interior de las otras.
Pseudocódigo
si <condición1> entonces <acciónes1>si_no si <condición2> entonces <acciones2> si_no si <condición3> entonces <acciones3> si_no <accionesX> fin_si fin_sifin_si
5151
PROGRAMAPROGRAMA
• 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.
5252
VariablesVariables
• 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.
5353
VariablesVariables
Lenguaje Estructurado. • Inicialización de Variables
Es conveniente inicializar las variables al inicio del algoritmo. Ejemplo:
algoritmo calcula_totalvar
entero: contador=0, total=0inicio
leer numeromientras contador < numero
hacer contador=contador+1
total=total+contadorfin_mientras
fin
5454
Ejemplo de programa en Lenguaje CEjemplo de programa en Lenguaje C
#include <stdio.h> 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; }
5555
Los elementos de un programa en C son Los elementos de un programa en C son los siguientes:los siguientes:
Comentarios Inclusión de archivos main() {
variables locales flujo de sentencias
} Definición de funciones creadas por
el programador utilizadas en main()
5656
Ejemplo1Ejemplo1
/*Programa que despliega un mensaje de bienvenida en la pantalla*/
#include<stdio.h> #include<conio.h> void main() {
clrscr(); gotoxy(20,10); printf("BIENVENIDO AL CURSO DE C ESTANDAR \n"); delay(2500); return 0;
}
5757
Condición
1. SIMPLE PROCESS (Secuencial)
C++:
•n = n + 1;instructions();
C++:
•if (first < second) return first;else return second;
2. IF-THEN-ELSE (Condición)
DiagramaEstructura de un programa
Lenguaje estructurado
SI (condición) ENTONCES …sentencia(s)SINO …sentencia(s)FIN SI
…Sentencia(s)…Sentencia(s)
5858
C++:
•switch (conversion) { case ‘A’ : case ‘a”: result = FahrToCelsius(temp); break; case ‘B’ : case ‘b’: result = CelsiusToFahr(temp) break; ….}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) ;
Diagrama Estructura de un programa
Lenguaje estructurado
3. Estructura CASE (Selección)
4. WHILE-DO (iteración)
Variable
TEST
A
SELECCION (variable) constante_1 : sentencia(s) constante_2 : sentencia(s) : : constante_n : sentencia(s)
MIENTRAS (condicion) HACER sentencia(s) : :FIN MIENTRAS
HACER sentencia(s) : :MIENTRAS (condición)
5959
¿Preguntas, dudas y ¿Preguntas, dudas y comentarios?comentarios?
top related