• No se han encontrado resultados

Lógica Computacional. M.C. Juan Carlos Olivares Rojas

N/A
N/A
Protected

Academic year: 2021

Share "Lógica Computacional. M.C. Juan Carlos Olivares Rojas"

Copied!
59
0
0

Texto completo

(1)

Lógica Computacional

(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

(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

(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 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 protocolo-paso- que ideamos o escribimos para que se realice una tarea o para lograr objetivos o propósitos; es como un plan (ordenado,

(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

(8)

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.

(9)
(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

(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.

(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, y mézclelos con la crema de elote.

– En una fuente coloque las pechugas y báñelas con la mezcla anterior.

(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 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.

(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‟)

(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 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.

(21)

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.

(22)

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%.

(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)
(25)

Diagrama de Flujo

(26)
(27)
(28)

• 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.

(29)

Ejemplo

Flujo General Diagrama de Sistema

Levantarse Arreglarse Irse Disco Magnético Lectura de Tarjeta S/370 Computador Impresora

(30)
(31)
(32)
(33)
(34)
(35)
(36)
(37)

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

(38)

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

(39)

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

(40)

Español Estructurado

Estructura selectiva

Diagrama de Flujo Diagrama N-S Pseudocódigo si <condición> entonces acción 1 fin_si

(41)

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.

(42)

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

(43)

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.

(44)

Español Estructurado

Estructura selectiva

Diagrama de Flujo Diagrama N-S

(45)

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

(46)

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.

(47)

Español Estructurado

Estructura repetitiva

Diagrama de Flujo Diagrama N-S

Pseudocódigo

mientras <expresión lógica> hacer

acción

(48)

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

(49)

Español Estructurado

Estructura repetitiva

Diagrama de Flujo Diagrama N-S

Pseudocódigo

repetir

acción

(50)

Español Estructurado

Estructura 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_si fin_si

(51)

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.

(52)

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.

(53)

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

(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 */

(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 el

programador utilizadas en main()

(56)

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);

(57)

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) Diagrama Estructura de un programa Lenguaje estructurado SI (condición) ENTONCES …sentencia(s) SINO …sentencia(s) …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 ; Diagrama Estructura de un programa Lenguaje estructurado

3. Estructura CASE (Selección)

4. WHILE-DO (iteración) Variabl e TES T 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) : :

(59)

Referencias

Documento similar

Las compañías de financiamiento comercial y las cooperativas financieras cuyo monto de capital pagado y reserva legal sea inferior al mínimo que debe acreditarse para la

VARIACIONES: Se refiere a los distintos grupos que se pueden formar con m elementos tomados de n en n (siendo n &lt; m), con la condición de que dos grupos serán distinto si

[r]

Muy concretamente se señala la urgencia de extender, para la investigación teórica y filosófica de la educación, esa nueva sensibi- lidad que en las últimas décadas se deja sentir

SERVICIO ESPAÑOL PARA LA INTERNACIONALIZACIÓN DE LA EDUCACIÓN Novedades geográficas KA171-HED. Reorganización de fondos de

La realización de perfiles de conductividad eléctrica en sondeos profundos del área de estudio ha permitido constatar la existencia de una estratificación importante del agua

Para desarrollar buenos programas, se debería usar las tres técnicas de diagramación (diagramas de flujo, pseudocódigo y diagramas N-S), de manera secuencial o

Pensamiento computacional y programación Análisis de la estructura y propiedades de la materia Modelación computacional aplicando leyes