Transcript si - Inicio

Lógica Computacional
M.C. Juan Carlos Olivares Rojas
1
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.
2
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
3
¿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
4
Algoritmo
• 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 protocolopaso 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).
5
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).
6
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
7
Caracterí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
8
Ejemplo de algoritmo
9
Algoritmo 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
10
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.
11
• Algoritmo (Preparación):
Ejemplo
– 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.
12
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
13
Herramientas para hacer un algoritmo
Las distintas representaciones de un
algoritmo son el Pseudocódigo, el Diagrama
N-S, el Diagrama de Flujo
14
Pseudocó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.
15
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
16
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.
17
Diagrama de flujo para calcular una
división
18
Diagramas Nassi-Scneiderman
• Conocidos como Diagramas N-S o Diagramas de Chapin.
Las acciones se escriben dentro de cajas sucesivas.
19
Ejercicio
• 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.
20
Ejercicio
• 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.
21
Ejercicio
• 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%.
22
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%.
23
Pseudocódigo
24
Diagrama de Flujo
“Cálculo de comisión”
25
Ejercicio resuelto
26
Ejercicio resuelto
27
Diagrama 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.
28
Ejemplo
Diagrama de Sistema
Flujo General
Levantarse
Disco
Magnético
Lectura de
Tarjeta
Arreglarse
S/370
Computador
Irse
Impresora
Perforadora
29
Símbolos del diagrama de Flujo
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
SENTENCIAS DE CONTROL
36
Lenguaje 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
37
Español Estructurado
Estructura 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
38
Estructura 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
39
Español Estructurado
Estructura selectiva
Diagrama
de Flujo
Diagrama
N-S
Pseudocódigo
si <condición> entonces
acción 1
fin_si
40
Español Estructurado
Estructura 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.
41
Español Estructurado
Estructura selectiva
Diagrama
de Flujo
Diagrama
N-S
Pseudocódigo
si <condición> entonces
acción 1
si_no
acción 2
fin_si
42
Español Estructurado
Estructura selectiva
Estructura Selectiva Múltiple
• Se ejecutarán unas acciones u otras según
el resultado que se obtenga al evaluar una
expresión.
43
Español Estructurado
Estructura selectiva
Diagrama
de Flujo
Diagrama
N-S
44
Español Estructurado
Estructura 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
45
Español Estructurado
Estructura 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.
46
Español Estructurado
Estructura repetitiva
Diagrama de Flujo
Diagrama N-S
Pseudocódigo
mientras <expresión lógica> hacer
acción
fin_mientras
47
Español Estructurado
Estructura 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
48
aunque la expresión lógica sea falsa.
Español Estructurado
Estructura repetitiva
Diagrama de Flujo
Diagrama N-S
Pseudocódigo
repetir
acción
hasta_que <expresión lógica>
49
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
Español Estructurado
Estructura anidada
• Tanto las estructuras
selectivas como las
repetitivas pueden
ser
anidadas,
e
introducidas unas en
el interior de las
otras.
50
PROGRAMA
• 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.
51
Variables
• 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.
52
Variables
Lenguaje Estructurado.
• Inicialización de Variables
Es conveniente inicializar las variables al inicio del
algoritmo. 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
53
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;
}
54
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 el
programador utilizadas en main()
55
Ejemplo1
/*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;
}
56
Diagrama
1. SIMPLE PROCESS (Secuencial)
Lenguaje
estructurado
Estructura de
un programa
C++:
…Sentencia(s)
…Sentencia(s)
•n = n + 1;
instructions();
2. IF-THEN-ELSE (Condición)
Condició
n
C++:
SI (condición) ENTONCES
…sentencia(s)
SINO
…sentencia(s)
FIN SI
•if (first < second)
return first;
else
return second;
57
Lenguaje
estructurado
Diagrama
3.
C++:
Estructura CASE (Selección)
Variabl
e
Estructura de
un programa
SELECCION (variable)
constante_1 : sentencia(s)
constante_2 : sentencia(s)
:
:
constante_n : sentencia(s)
•switch (conversion) {
case ‘A’ : case ‘a”:
result = FahrToCelsius(temp);
break;
case ‘B’ : case ‘b’:
result = CelsiusToFahr(temp)
break;
….
}
C++ (for, while, do):
4.
MIENTRAS (condicion) HACER
sentencia(s)
:
:
FIN MIENTRAS
WHILE-DO (iteración)
TES
T
A
HACER
sentencia(s)
:
:
MIENTRAS (condición)
•WHILE (expresión) {
proposición 1 ;
proposición 2 ;
...............
proposición n ;
}
•DO {
proposición 1 ;
proposición 2 ;
...............}
WHILE (expresión) ;
58
¿Preguntas, dudas y comentarios?
59