1
Lógica Computacional
M.C. Juan Carlos Olivares Rojas
2
Introducció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.
3
Construyendo 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
4
¿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
5
Algoritmo
• Conjunto finito de reglas que dan unasecuencia de operaciones para resolver todoslos problemas de un tipo dado. De forma mássencilla, podemos decir que un algoritmo es unconjunto de pasos que nos permite obtener undato.
• Algoritmo es el procedimiento o protocolo-paso por paso- que ideamos o escribimos paraque se realice una tarea o para lograr objetivoso propósitos; es como un plan (ordenado,estructurado, específico, claro).
6
Algoritmo
• 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).
7
Caracterí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
8
Características de un algoritmo
• Preciso. Indicar el orden de realización decada paso.
• Definido. Si se sigue un algoritmo dosveces, se debe obtener el mismo resultadocada vez.
• Finito. Debe terminar el algún momento
9
Ejemplo de algoritmo
10
Algoritmo para hacer una taza de té
Inicio
Tomar el recipiente
Llenarla de agua
Encender el fuego
Mientras no hierva el agua
Esperar
Introducir una bolsa de té en el recipiente
Vaciar el té en la taza
Fin
11
Ejemplo• 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.
12
Ejemplo• 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, ymézclelos con la crema de elote.
– En una fuente coloque las pechugas y báñelascon la mezcla anterior.
– Cubra el platón con papel aluminio y hornee a200 °C, durante 15 minutos.
13
Otros 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
14
Herramientas para hacer un algoritmo
Las distintas representaciones de un
algoritmo son el Pseudocódigo, el Diagrama
N-S, el Diagrama de Flujo
15
Pseudocódigo
• Es un lenguaje de especificación de algoritmos yno puede ser ejecutado por una computadora, laventaja del pseudocódigo es que el programadorse puede concentrar en la lógica y en lasestructuras de control y no preocuparse de lasreglas de un lenguaje específico.
• Es fácil de modificar y puede ser rápidamentetraducido a un lenguaje de programación.
• Representa acciones sucesivas en un lenguajesimilar al humano.
16
Ejemplo: Algoritmo para dividir 2 números
algoritmo División
variables
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_si
fin
17
Diagramas 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.
18
Diagrama de flujo para calcular una división
19
Diagramas Nassi-Schneiderman
• Conocidos como Diagramas N-S o Diagramas de Chapin.
Las acciones se escriben dentro de cajas sucesivas.
20
Ejercicio
• Realizar el siguiente algoritmo
REGISTRO DE VENDEDORES.
• Una tienda emplea un cierto número de vendedores. La mayoría deestos empleados obtienen sus ingresos de comisiones sobre losartículos que venden, pero existen algunos empleados que obtienen susalario 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 seclasifican como artículos estándar por que son de uso común y norequieren de técnicas creativas de venta; además, hay artículos queson altamente remunerados pero difíciles de vender.
21
Ejercicio
• Los compradores también se clasifican.Algunos se conocen como compradoresregulares, pues hacen transacciones tan amenudo que no se requiere de hacerlesventa creativa. Sin embargo, la mayoría delos clientes hacen pocas transaccionesdentro de la tienda, y es probable queentren, compren algo y no vuelvan a servistos.
22
Ejercicio
• Si un empleado vende cualquier tipo deartículo a un cliente regular, no se dacomisión alguna.
• Si un empleado asalariado vende unartículo extra, recibe una comisión del 10%a menos que el artículo tenga un preciomayor de $10,000, en cuyo caso recibe unacomisión del 15%.
23
Ejercicio
• 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%.
24
Pse
udocó
dig
o
25
Diagrama de Flujo
“Cálculo de comisión”
26
Ejercicio resuelto
27
Ejercicio resuelto
28
• Al diagrama de flujo también se leconoce como ordinograma o flujograma
• Diagrama de Sistema: Diagrama querepresenta gráficamente los dispositivosde entrada-salida que usa un programa deun sistema.
Diagrama de flujo
29
Ejemplo
Flujo GeneralDiagrama de Sistema
Levantarse
Arreglarse
Irse
Disco
MagnéticoLectura de
Tarjeta
S/370
Computador
Impresora
Perforadora
30
Símbolos del diagrama de Flujo
31
Símbolos del diagrama de Flujo
32
Símbolos del diagrama de Flujo
33
Símbolos del diagrama de Flujo
34
Símbolos del diagrama de Flujo
35
Símbolos del diagrama de Flujo
36
SENTENCIAS DE CONTROL
37
Lenguaje Estructurado
• Español Estructurado
• Para describir los procesos se utiliza el lenguajenatural. Este incluye estructuras de control como:
• Si
• Mientras
• Repetir-Hasta_que
• Según_sea- hacer
38
Español EstructuradoEstructura selectiva
Una estructura selectiva es aquella en que seejecutan unas acciones u otras según se cumpla ono una determinada condición. La selecciónpuede ser simple, doble o múltiple
39
Estructura Selectiva Simple
• Se evalúa la condición y si ésta da comoresultado verdad se ejecuta unadeterminada acción o grupo de acciones;en caso contrario se saltan dicho grupo deacciones
40
Español EstructuradoEstructura selectiva
Diagrama
de Flujo
Diagrama
N-S
Pseudocódigo
si <condición> entonces
acción 1
fin_si
41
Español EstructuradoEstructura selectiva
Estructura Selectiva Doble
• Cuando el resultado de evaluar la condiciónes verdad se ejecutará una determinadaacción o grupo de acciones y si el resultadoes falso otra acción o grupo de accionesdiferentes.
42
Español EstructuradoEstructura selectiva
Diagrama
de Flujo
Diagrama
N-S
Pseudocódigo
si <condición> entonces
acción 1
si_no
acción 2
fin_si
43
Español EstructuradoEstructura selectiva
Estructura Selectiva Múltiple
• Se ejecutarán unas acciones u otras segúnel resultado que se obtenga al evaluar unaexpresión.
44
Español EstructuradoEstructura selectiva
Diagrama
de Flujo
Diagrama
N-S
45
Español EstructuradoEstructura 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
46
Español EstructuradoEstructura repetitiva
mientras
• Lo que caracteriza este tipo de estructuraes que las acciones del cuerpo del bucle serealizan cuando la condición es cierta.Además, se pregunta por la condición alprincipio, de donde se deduce que dichasacciones se podrán ejecutar de 0 a n veces.
47
Español EstructuradoEstructura repetitiva
Diagrama de Flujo Diagrama N-S
Pseudocódigomientras <expresión lógica> hacer
acción
fin_mientras
48
Español EstructuradoEstructura repetitiva
repetir-hasta_que
• El bucle repetir-Hasta_que es análogo al buclemientras desde el punto de vista de que el cuerpodel bucle (acción) se ejecuta una y otra vez mientrasla condición (expresión lógica) es verdadera. Ladiferencia entre ellos consiste en que en el buclerepetir-hasta_que, las sentencias del cuerpo seejecutan, al menos una vez, antes de que se evalúela expresión lógica. En otras palabras, el cuerpo delbucle siempre se ejecuta, al menos una vez, inclusoaunque la expresión lógica sea falsa.
49
Español EstructuradoEstructura repetitiva
Diagrama de Flujo Diagrama N-S
Pseudocódigorepetir
acción
hasta_que <expresión lógica>
50
Español EstructuradoEstructura anidada
• Tanto las estructurasselectivas como lasrepetitivas puedenser anidadas, eintroducidas unas enel interior de lasotras.
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_si
fin_si
51
PROGRAMA
• Es más que una secuencia ordenada deinstrucciones que hacen algo con sentido. Lasinstrucciones tienen que ser las precisas y estarordenadas de tal forma que, cuando el ordenadorlas ejecute, se consigan los efectos deseados.
• Las instrucciones que tendremos disponibles paraescribir un programa y su sintaxis van a dependerdel lenguaje que vayamos a usar; en nuestrocaso, el C.
52
Variables
• Una variable, en realidad, no es más que unnombre para identificar una (o varias) posicionesde memoria donde el programa guarda losdistintos valores de una misma entidad.
• Un programa debe DEFINIR a todas las variablesque utilizará, antes de comenzar a usarlas, a finde indicarle al compilador de que tipo serán, ypor lo tanto cuanta memoria debe destinar paraalbergar a cada una de ellas.
53
Variables
Lenguaje Estructurado.
• Inicialización de Variables
Es conveniente inicializar las variables al inicio delalgoritmo. Ejemplo: algoritmo calcula_total
var
entero: contador=0, total=0
inicio
leer numero
mientras contador <
numero hacer
contador=contador+1
total=total+contador
fin_mientras
fin
54
Ejemplo 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;
}
55
Los 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 elprogramador utilizadas en main()
56
Ejemplo1
/*Programa que despliega un mensaje de bienvenida en lapantalla*/
#include<stdio.h>
#include<conio.h>
void main()
{
clrscr();
gotoxy(20,10);
printf("BIENVENIDO AL CURSO DE C ESTANDAR \n");
delay(2500);
return 0;
}
57
Condició
n
1. SIMPLE PROCESS (Secuencial)
C++:
•n = n + 1;instructions();
C++:
•if (first < second)return first;
elsereturn 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)
58
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
HACERsentencia(s)::
MIENTRAS (condición)
59
¿Preguntas, dudas y comentarios?
Top Related