UNIDAD I LÓGICA COMPUTACIONAL ¿QUÉ ES LA LÓGICA COMPUTACIONAL?

Post on 24-Jan-2015

52 views 2 download

Transcript of UNIDAD I LÓGICA COMPUTACIONAL ¿QUÉ ES LA LÓGICA COMPUTACIONAL?

SECRETARÍA DE EDUCACIÓN PÚBLICASUBSECRETARÍA DE EDUCACIÓN MEDIA

SUPERIORDIRECCIÓN GENERAL DEL

BACHILLERATO 

ESCUELA PREPARATORIA FEDERAL POR COOPERACIÓN

“DAVID ALFARO SIQUEIROS”CLAVE EMS – 2/70

LÓGICA COMPUTACIONAL Y PROGRAMACIÓN

UNIDAD ILÓGICA COMPUTACIONAL

LÓGICA COMPUTACIONAL

¿QUÉ ES LA LÓGICA COMPUTACIONAL?

DEFIN

ICIÓ

N La lógica computacional es una disciplina que estudia la aplicación de la lógica clásica formal para la representación computacional de argumentos, las técnicas de deducción automática y asistida por computadora; sus fundamentos relacionados con validez y completes de sistemas de proposiciones; y las aplicaciones de esas técnicas a las diferentes áreas de las ciencias computacionales en todas las etapas de desarrollo de software, es decir, en la especificación, diseño, construcción y verificación formal de programas. En este objetivo concurre junto con la teoría de la computación y el análisis de algoritmos.

EN POCAS PALABRAS LO QUE TRATAREMOS EN ESTA MATERIA ES

PROGRAMACIÓN; PERO… ¿QUÉ ES LA PROGRAMACIÓN?

DEFINICIÓN

Es el proceso de planificar una secuencia de

instrucciones que ha de seguir una

computadora.

PARA QUE EXISTA LA

PROGRAMACIÓN SE REQUIERE DE UN PROGRAMA

QUE SE DEDIQUE A CREAR LOS PROGRAMAS

Y… ¿QUÉ ES UN PROGRAMA Y QUÉ

HACE EL PROGRAMADOR?

DEFINICIONES

PROGRAMAConjunto de

instrucciones de acuerdo con un formato llamado lenguaje que permite da

instrucciones a la computadora para que

las realice en forma automática, convirtiendo

datos o valores en información importante para tomar decisiones.

Conjunto de instrucciones que tienen como propósito generar los resultados o salidas deseadas por el usuario

de la computadora a partir de la realización de una serie de operaciones

sobre un conjunto de datos proporcionado o

entradas.

Conjunto de instrucciones que al ser ejecutadas realizan una

tarea específica.

Es la secuencia de instrucciones que indica las acciones que ha de

ejecutar la computadora.

Para que exista un programa se requiere del Programador.

•Persona que se encarga de crear el código fuente o código del programa mediante un procesador de texto o una ventana de edición.

PROGRAMADOR

EL PROGRAMA DEBE CUMPLIR UN CICLO DE DESARROLLO

CICLO DE DESARROLLO

Planeación: Consiste en entender el problema y establecer soluciones.

Diseño: Se crea la interfaz mediante la

cual el usuario interactúa con la

aplicación.

Programación: Se personaliza la función

de los controles, asociando

instrucciones.

PARA PODER REALIZAR TODO LO ANTERIOR SE

UTILIZAN ALGUNOS

LENGUAJES DE PROGRAMACIÓN

LENGUAJES DE PROGRAMACIÓN

BAJO NIVEL O CÓDIGO MÁQUINA

Conjunto de Ceros y Unos, es

decir señales binarias que, por

ejemplo, un procesador podrá “entender” a una

alta velocidad.

Ejemplo: Pascal,

Cobol, C, C++ y Java.

ALTO NIVEL

Son un conjunto de palabras u órdenes que poseen una determinada

sintaxis, es decir, una norma

predefinida para escribir un programa.

Ejemplo: Visual Basic

LENGUAJES DE PROGRAMACIÓN

Pascal: Fue desarrollado por Niklaus Wirth y el grupo de Zurich a principios de los años 70. Este lenguaje es muy apropiado para la enseñanza de la programación, puesto que su sintaxis es muy simple y es un lenguaje muy estructurado, lo que facilita la lectura e interpretación de los programas.

Cobol: Es un lenguaje de programación muy portable entre diferentes sistemas operativos, orientado a la gestión de datos. Sus usos más comunes son el desarrollo de software en las áreas administrativas y contables.

C: Es un lenguaje de programación estructurado y muy portable, se ha empleado en el desarrollo de sistemas operativos, estructuras de datos, programas científicos, aplicaciones gráficas, análisis numérico, etc.

LENGUAJES DE PROGRAMACIÓN

C++: Este lenguaje es una extensión del C, es decir, incluye algunas mejoras y características que el C clásico no posee. Se emplea en el desarrollo de aplicaciones complejas y a gran escala, tanto en el ámbito académico como en el industrial.

JAVA: Los inicios se remontan a los años 70 pero fue a mediados de los años 90 que Sun Microsystems le dio el aspecto que tiene hoy. Desde un comienzo Java fue diseñado como un Lenguaje Orientado a Objetos. Se puede ejecutar en entornos heterogéneos, en diferentes tipos de computadoras, con cualquier tipo de sistema operativo o puede interactuar con otras aplicaciones independientes. La interactividad, la integración de sonidos e imágenes en una página Web son características de este lenguaje.

TAMBIÉN UTILIZAREMOS DIFERENTES TIPOS DE

DATOS, VARIABLES, OPERADORES ARITMÉTICOS,

OPERADORES LÓGICOS, OPERADORES

RELACIONALES Y COMANDOS

TIPOS DE DATOS

TIPO DE DATO TAMAÑO RANGO

Integer (Entero) 2 bytes -32,768 a 32,767

Long Integer (Entero largo) 4 bytes -2,147,483.648 a 2,147,483.647

Float (Flotante-Decimales) 8 bytes -1,80e308 a 1,80e308

Char (cadena) 1 carácter/byte

2 billones de caracteres

Boolean (Boleano) 2 bytes True o False

Date 8 bytes 1 de enero de 100 a 31 de diciembre, 9999

VARIABLES

Son las literales que se ocupan durante la

ejecución del programa y pueden tener

diferentes valores.

Es una ubicación de almacenamiento temporal de

información a la que se le asigna un nombre nemotécnico y que

guarda un tipo de dato específico. Como su nombre lo indica, toman

diferentes valores durante la ejecución del programa.

OPERADORES

Operador: Es un símbolo aritmético, lógico,

aritmético/lógico o relacional que identifica el tipo de

operación a realizar.

Un operador por sí solo es inservible pero en

combinación con variables, constantes o números

genera un resultado; a esta combinación se le denomina

instrucción o fórmula.

OPERADORES ARITMÉTICOS

Operador Operación matemática

+ Suma

- Resta

* Multiplicación

/ División

\ División entera

Mod Residuo de la división (Módulo)

^ Potenciación

& Concatenación

OPERADORES LÓGICOS

Operador Descripción

And Conjunción (y)

Or Disyunción (o)

Not Negación (No)

OPERADORES RELACIONALES

Operador Descripción

= Igualdad

<> Diferencia

< Menor que

> Mayor que

<= Menor o igual que

>= Mayor o igual que

ACTIVIDAD

Realizar un Organizador Gráfico del tema expuesto en su cuaderno.

Realizar el Organizador Gráfico a computadora en el programa que más guste y anéxelo al Portafolio de Evidencias.

DIAGRAMA IPO

¿QUÉ ES UN DIAGRAMA

IPO?

DEFINICIÓN

• IPO debe su nombre a las siglas en inglés, INPUT-PROCESS-OUTPUT; en castellano ENTRADA-PROCESO-SALIDA. Es, por mucho, la más simple y práctica forma para planear la programación desarrollada, ya que el término de complejidad no significa necesariamente superioridad. La manera en que funciona es realmente clara, todo lo que hay que hacer es comenzar con un plan básico. Todos los programas tienen algún grado de entrada, algún grado de procesamiento de entrada y algún tipo de salida, que puede ser una pantalla, una impresora, otro programa, etc.

entrada proceso salida

EN

TR

AD

A

Incluye 3 tipos:1. Leer datos desde un archivo de configuración.

2. Pedirle al usuario el ingreso de algún dato.

3. Leer datos que ingresan desde un escáner, una cámara o cualquier otro dispositivo de entrada conectado al sistema.

PR

OC

ES

O

Involucra todo aquello que se hace para manipular o alterar los datos de entrada recibidos (por ejemplo, ordenarlos, operarlos matemáticamente, etc.). Esto es, por lo general, la mayor parte del programa.

SA

LID

A Es la parte inversa de la entrada. Podemos grabar la configuración actual, mostrar al usuario algún mensaje, imprimir algo, enviar los datos al disco o a la entrada de otro programa.

ACTIVIDAD

Realizar un Organizador Gráfico en su cuaderno del tema tratado anteriormente.

Realizar el Organizador Gráfico en la computadora en el programa que más guste y anéxelo a su Portafolio de Evidencias.

Resuelva los ejercicios en su cuaderno y posteriormente páselos a computadora para anexarlos en su portafolio de evidencias.

ALGORITMOS

AHORA VEREMOS LO QUE SON LOS ALGORITMOS, SU HISTORIA, SUS

CARACTERÍSTICAS, CLASIFICACIÓN Y

EXPRESIÓN

ANTECEDENTES

La palabra Algoritmo se deriva del nombre latinizado del gran matemático árabe Mohamed Ibn Al Kow Rizmi (780-850), el cual escribió entre los años 800 y 825 su obra Quitad Al Mugabala, un tratado sobre manipulación de números y ecuaciones donde se recogía el sistema de numeración hindú y el concepto del cero. También alcanzó gran reputación por el enunciado de las reglas para sumar, restar, multiplicar y dividir números decimales.

Junto con Euclídes el gran matemático griego (siglo IV a. C.) que inventó un método para encontrar el máximo común divisor de los números, se les considera los padres de la algoritmia (ciencia que trata de los algoritmos). Fue Fibonacci quien tradujo la obra al latín e inició con la palabra: Algoritmi Dicit.

DEFINICIÓNEs una serie de

operaciones detalladas y no

ambiguas, a ejecutar paso a paso, y que

conducen a la resolución de un

problema.

Es un conjunto de reglas para resolver una cierta clase de

problema o una forma de describir la

solución de un problema.

Conjunto de pasos que nos permite

obtener la solución a un problema.

EXPRESIÓN

GRÁFICACon símbolos,

utilizando diagramas de

flujo.

NO GRÁFICA

Describiendo las operaciones que llevará a cabo, utilizando un

pseudocódigo.

CLASIFICACIÓN

DETERMINISTAS

En cada paso del algoritmo se

determina, de forma única, el siguiente

paso.

NO DETERMINISTAS

Debe decidir en cada paso de la ejecución entre varias

alternativas y agotarlas, todas antes de encontrar la

solución.

CARACTERÍSTICAS

FINITOEl algoritmo debe

acabar tras un número finito de

pasos.

DEFINIDO

El algoritmo debe definirse de forma precisa para cada

paso, es decir, hay que vitar toda ambigüedad al definir cada paso, de modo que si se sigue dos veces, se debe obtener el mismo

resultado cada vez.

PRECISO

Todas las operaciones que el algoritmo

realizará deben ser lo suficientemente

básicas, de modo que puedan, en un

principio, ser llevadas a cabo en forma exacta, y en un tiempo finito,

por una persona usando papel y lápiz.

ACTIVIDAD

Investigar las biografías de Euclídes y Fibonacci en su cuaderno.

Realizar un Organizador Gráfico en su cuaderno del tema tratado.

Realizar el mismo Organizador Gráfico en la computadora con el programa que más guste y anéxelo al Portafolio de Evidencias.

Resuelva los ejercicios en su cuaderno y posteriormente páselos a computadora para anexarlos en su portafolio de evidencias.

ACTIVIDAD

Realizar una pequeña investigación del tema Metodologías para la construcción de programas en su cuaderno.

Realizar un Organizador Gráfico en la computadora de la información investigada y anexarlo al Portafolio de Evidencias.

PROGRAMACIÓN LINEAL

COMENCEMOS CON LA

PROGRAMACIÓN Y LA PRIMERA QUE ESTUDIAREMOS

SERÁ LA PROGRAMACIÓN

LINEAL

PROGRAMACIÓN LINEAL

DEFINICIÓN•Técnica matemática y de

investigación de operaciones que se utiliza en la planificación administrativa y económica para maximizar las funciones lineales de un gran número de variables sujetas a determinadas restricciones.

CARACTERÍSTICAS

CORRECTO/FIEL Producir resultados requeridos.

LEGIBLE

Debe ser entendido por cualquier

programador, que permita fáciles modificaciones.

MODIFICABLE

El diseño nunca es definitivo y por ello su

estructura debe permitir

modificaciones.

DEPURABLEDebe ser fácil la

localización y corrección de errores.

EN LA PROGRAMACIÓN

LINEAL SE UTILIZAN LOS

LLAMADOS DIAGRAMAS DE FLUJO… MMM… PERO… ¿CÓMO

LOS DEFINIMOS Y CUÁL ES LA

SIMBOLOGÍA QUE SE UTILIZA?

DIAGRAMA DE FLUJO

DEFINICIÓN• Es una de las técnicas de

representación de algoritmos más antigua y, a la vez, más utilizada, aunque su empleo ha disminuido considerablemente, sobre todo desde la aparición de lenguajes de programación estructurados. Utiliza los símbolos (cajas) estándar que tienen los pasos escritos en cajas unidas por flechas, denominadas líneas de flujo, que indican la secuencia en que se debe ejecutar.

SIMBOLOGÍA

Desde que surgieron los diagramas de flujo se inventaron diversas simbologías. Gane y Sarsons (1983) sintetizan una metodología para el estudio se los sistemas, utilizando cuatro símbolos básicos:

ENTE EXTERNO

PROCESO

ARCHIVO

FLUJO DE INFORMACIÓN

SIMBOLOGÍA

Actualmente, la simbología se ha ido estandarizando y dentro de los símbolos más comunes podemos mencionar los siguientes:

Proceso Terminal

Decisión

Conector

Proceso predeterminado

Proceso manual

Entrada / Salida

Flujo de información Pantalla

Impresora

Anotación

RECOMENDACIONES PARA EL DISEÑO DE DIAGRAMAS DE FLUJO

1. Se debe usar solamente líneas de flujo horizontales o verticales.

2. Se debe evitar el cruce de líneas utilizando conectores.

3. Se debe usar conectores sólo cuando sea necesario.4. No deben quedar líneas de flujo sin conectar.5. Se debe trazar los símbolos de manera que se

puedan leer de arriba hacia abajo y de izquierda a derecha.

6. Todo texto incluido dentro de un símbolo, deberá ser escrito de manera clara y concisa.

ACTIVIDAD

Realizar un Organizador Gráfico del tema tratado en su cuaderno.

Realizar el mismo Organizador Gráfico a computadora en el programa que gusten y anéxelo a su Portafolio de evidencias.

Resuelva los ejercicios en su cuaderno y posteriormente páselos a computadora para anexarlos en su portafolio de evidencias.

PROGRAMACIÓN ESTRUCTURADA

POR ÚLTIMO VEREMOS LA PROGRAMACIÓN

ESTRUCTURADA

DEFINICIÓN

Técnica de construcción top-down (Arriba-Abajo) de programas que utilizan al máximo los recursos del

lenguaje, limita el conjunto de estructuras aplicables a leer y presenta una serie de reglas

que coordinan adecuadamente el desarrollo de las diferentes

frases de la programación.

Edgar W. Dijkstra es considerado el padre de la

Programación Estructurada.

TÉCNICA DESCENDENTE (top-down)

DEFINICIÓN

Consiste en establecer una serie de niveles de menor a

mayor complejidad que den solución al problema.

MÓDULO

DEFINICIÓN

Constituido por una o varias instrucciones físicamente contiguas y lógicamente encadenadas, las cuales se pueden

referenciar mediante un nombre y pueden ser llamadas desde diferentes puntos del programa. Puede ser: Un programa, una función o una subrutina (procedimiento).

CARACTERÍSTICAS

Máxima cohesión.Mínimo acoplamiento.

Descripción: Funciones y objetivos.Rendimiento: Realizar el proceso aprovechando al máximo todos los recursos con los que se dispone.

Diseño: Comprueba la estructura del módulo, de los datos y la comunicación.

TIPOS

Módulos tipo raíz, director o principal.Módulos tipo subraíz.Módulos de entrad (captura de datos).Módulos de variación de entradas.Módulos de proceso.Módulos de creación y formatos de salida.

DIAGRAMA DE ÁRBOL

DIAGRAMA DE ÁRBOL

DEFINICIÓN

Figura para definir el espacio muestral

de experimentos aleatorios de pasos

múltiples.

ACTIVIDAD

Resuelva los ejercicios en su cuaderno y posteriormente páselos a computadora para anexarlos en su portafolio de evidencias.

ESTRUCTURAS DE CONTROL

POR ÚLTIMO VEREMOS LAS ESTRUCTURAS DE CONTROL QUE FORMAN PARTE DE TODO TIPO DE

PROGRAMACIÓN

TEOREMA DE LA ESTRUCTURA

Bohm y Jacopini demostraron que cualquier problema con un solo punto de entrada y un punto de salida puede resolverse con tres únicos tipos de estructuras de control.

ESTRUCTURAS BÁSICAS DE CONTROL

ESTRUCTURA SECUENCIAL:

Ejecuta las acciones

sucesivamente unas a continuación

de otras sin posibilidad de

omitir ninguna.

ESTRUCTURA ALTERNATIVA(Condicional): Únicamente se

realiza una alternativa

dependiendo del valor de una determinada condición o predicado.

ESTRUCTURAS REPETITIVAS: Son aquellas en las que

las acciones se ejecutan un número

determinado de veces y dependen

de un valor predefinido o el cumplimiento de una determinada

condición.

ESTRUCTURA SECUENCIAL

INICIO

ENTRADA DE DATOS

PROCESO

IMPRIMIR

FIN

ESTRUCTURA ALTERNATIVA

ALTERNATIVA SIMPLE

La existencia o cumplimiento de la condición implica la

ruptura de la secuencia y la ejecución de una determinada acción.

ALTERNATIVA DOBLE

Permite la elección entre dos acciones o

tratamientos en función de que se cumpla o no determinada condición.

ALTERNATIVA MÚLTIPLE

Se adoptan cuando la condición puede tomar n valores enteros: 1, 2,

3, … n.

ESTRUCTURA ALTERNATIVA SIMPLE

INICIO

ENTRADA DE DATOS

CONDICIÓN

PROCESO

IMPRIMIR

FIN

SI

NO

ESTRUCTURA ALTERNATIVA DOBLE

INICIO

ENTRADA DE DATOS

CONDICIÓN

PROCESO

IMPRIMIR

FIN

SI NO

PROCESO

IMPRIMIR

ESTRUCTURA ALTERNATIVA MÚLTIPLE

INICIO

ENTRADA DE DATOS

CONDICIÓN

PROCESO

IMPRIMIR

SI NO

CONDICIÓN

PROCESO

IMPRIMIR

SI NO

CONDICIÓN

PROCESO

IMPRIMIR

SI NO

IMPRIMIR

FIN

ESTRUCTURAS REPETITIVAS

HACER MIENTRAS DO_WHILE

Determina la repetición de un grupo de

instrucciones mientras la condición se cumpla

inicialmente.

REPETIR HASTA

DO_UNTIL

Estructura en la que el número de iteraciones o repeticiones del grupo de instrucciones se ejecuta

hasta que la condición deje de cumplirse. Esta condición

se cumple al final.

DESDE_HASTAFOR_TO

Es aquella que se repite un

número fijo de veces.

ESTRUCTURA WHILE_DO

INICIO

ENTRADA DE DATOS

CONDICIÓN

PROCESO

IMPRIMIR

SI

FIN

NO

ESTRUCTURA DO_UNTIL

INICIO

ENTRADA DE DATOS

PROCESO

CONDICIÓN

IMPRIMIR

FIN

SI

NO

DEFINICIÓN DE PSEUDOCÓDIGO

Pseudo o Seudo significa falso, imitación y código se refiere a las instrucciones escritas en un lenguaje de programación; pseudocódigo no es realmente un código sino una imitación y una versión abreviada de instrucciones reales para las computadoras.

ACTIVIDAD

Resuelva los ejercicios en su cuaderno y posteriormente páselos a la computadora y anéxelos a su portafolio de evidencias.

ACTIVIDAD

Investigue el tema Programación Orientada a Objetos (POO), realizando un Organizador Gráfico en la computadora y anéxelo a su Portafolio de Evidencias.

Temas a investigar:◦ Fundamentos.◦ Objetos y clases.◦ Métodos.◦ Propiedades:

Herencia Paso de mensajes Encapsulamiento Polimorfismo