lógica computacional · 2011. 10. 20. · 5 algoritmo •conjunto finito de reglas que dan una...

Post on 21-Jan-2021

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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