56
INTRODUCCION A LOS ALGORITMOS Institución educativa Cristóbal Colón Grado 9 Montería, Córdoba Colombia

Introduccion a los algoritmos

Embed Size (px)

Citation preview

Page 1: Introduccion a los algoritmos

INTRODUCCION A LOS ALGORITMOS

Institución educativa Cristóbal ColónGrado 9

Montería, CórdobaColombia

Page 2: Introduccion a los algoritmos

SISTEMAS DE PROCESAMIENTO DE INFORMACION

Computadora: Maquina o aparato electrónico capaz de ejecutar operaciones repetitivas a muy alta velocidad.

Entrada = Datos Salida = InformaciónPROCESADOR

Representación de algún hecho, concepto o entidad real (los datos pueden tomar diferentes formas; por ejemplo palabras escritas o habladas, números y dibujos).

Datos procesados y organizados.

COMPONENTES DE UN SISTEMA DE PROCESAMIENTO DE INFORMACION

Page 3: Introduccion a los algoritmos

PREGUNTA

¿Cuáles son los roles de cada de uno de estos actores

respecto a los sistemas de procesamiento y

automatización de la información?

Desarrolladores

Usuarios

Técnicos

Page 4: Introduccion a los algoritmos

¿QUÉ ES PROGRAMACIÓN?

Definiciones de Programación en la web:

• Programación es el acto de crear un programa de computadora, un conjunto concreto de instrucciones que una computadora puede ejecutar. El programa se escribe en un lenguaje de programación, aunque también se pueda escribir directamente en lenguaje de máquina, con cierta dificultad. Un programa se puede dividir en diversas partes, que pueden estar escritas en lenguajes distintos. es.wikipedia.org/wiki/Programaci%C3%B3n

• La acción de escribir un programa de computación.www.laopinion.com/glossary/p.html

Page 5: Introduccion a los algoritmos

SOFTWARE DE DESARROLLO: LENGUAJES DE PROGRAMACIÓN

• El software o programas de desarrollo se utilizan para crear aplicaciones, para resolver problemas científicos, comerciales, administrativos o de cualquier tipo.

• Estos programas se denominan lenguajes de programación y están integrados por programas y utilerías que facilitan la construcción para los usuarios del sistema informático.

• El ordenador solo es capaz de procesar en lenguaje maquina o lenguaje nativo, binario.

• Debido a la dificultad para usar este lenguaje, se inventaron otros lenguajes que permitieron crear programas en cualquier computadora y traducirlos al lenguaje de una máquina en particular.

Page 6: Introduccion a los algoritmos

SOFTWARE DE DESARROLLO

• Un lenguaje de programación es un conjunto de símbolos, instrucciones y enunciados que están sujetos a una serie de reglas.

Utilizan un léxico, una sintaxis y una semántica.• Léxico: conjunto de símbolos conocido como

vocabulario

• Sintaxis: reglas para construir el lenguaje

• Semántica: conjunto de significados de un lenguaje

Page 7: Introduccion a los algoritmos

1. Lenguaje máquina (lenguaje de bajo nivel)

Categorías de los Lenguajes de Programación

Page 8: Introduccion a los algoritmos

2. Lenguaje Ensamblador (lenguaje de nivel medio)

• Emplea representación simbólica y utiliza procedimientos mnemotécnicos de funciones matemáticas. Los datos se identifican con nombres y permiten la introducción de comentarios para entender el programa con mayor facilidad y optimiza los recursos del hardware.

Categorías de los Lenguajes de Programación

Page 9: Introduccion a los algoritmos

3. Lenguaje de alto nivel

• Lenguajes más acorde con el lenguaje humano.• Utilizan palabras y frases (por lo general en inglés). • Permiten modificar los códigos de los programas con

facilidad.• Son independientes de la estructura física de la

computadora, contando con instrucciones de uso frecuente como las funciones matemáticas.

• Son lenguajes de programación alejados del lenguaje máquina lo cual necesitan ser traducidos antes de ejecutarse y esta tarea se realiza por medio de los intérpretes o los compiladores.

Categorías de los Lenguajes de Programación

Page 10: Introduccion a los algoritmos

• INTÉRPRETES: traducen el programa instrucción por instrucción y este proceso se realiza cada vez que se ejecuta el programa. Permiten al programador realizar correcciones durante el proceso de compilación.

• COMPILADORES: funciona en dos etapas: en la primera traducen el programa y en la segunda crean un programa objeto en lenguaje máquina. Indican antes de su ejecución si existen errores para que el programador realice sus correcciones.

Page 11: Introduccion a los algoritmos

SOFTWARE DE APLICACIÓN

• Conjunto de aplicaciones que realizan las funciones más comunes dentro de la casa, escuela u oficina. Son aplicaciones básicas que todo usuario debe conocer.

• Procesador de textos: Word, WordPad, Block de Notas, Edit Pad, Ultra Edit 32, …

• Hoja de Cálculo: Excel, Quattro Pro, GS-Calc, yCode, …• Programa de Presentaciones: PowerPoint, Freelance Graphics,

Corel Presentations, …• Editor de gráfico: Corel Draw, Publisher, PageMaker,

QuarkXpress, …• Administrador de base de datos: dBase, Access, MySQL,

FoxPro, …• Navegador de Internet: Explorer, Netscape Navigator, Mozilla,…• Correo electrónico: Outlook, CC-Mail, Eudora,…• Agenda Electrónica: Outlook, PDA´S,…

Page 12: Introduccion a los algoritmos

EVOLUCIÓN DE LOS LENGUAJES DE PROGRAMACIÓN

• Primera Generación: se relacionan con las máquinas integradas por bulbos. Se programaban con base en instrucciones en lenguaje máquina.

• Segunda Generación: se desarrollan los lenguajes ensambladores.

• Tercera Generación: aparecen los primero lenguajes de alto nivel, algunos de los cuales están vigentes hasta la fecha como BASIC, PASCAL, FORTRAN, C++ y COBOL entre otros.

• Cuarta Generación: son los lenguajes orientados a objetos y gestión de base de datos, tales son los casos de Visual Basic o SQL

• Quinta Generación: son los lenguajes orientados hacia las aplicaciones de inteligencia artificial. Algunos ejemplos son: LISP y PROLOG.

Page 13: Introduccion a los algoritmos

CARACTERÍSTICAS DE LOS LENGUAJES DE ALTO NIVEL

• Los programas creados con ellos se pueden ejecutar en computadoras de distinta arquitectura.

• El programa escrito debe ser traducido a lenguaje máquina.

• Al traducir una instrucción del programa fuente, genera varias instrucciones en lenguaje máquina.

• Las instrucciones se parecen al lenguaje natural de las personas. (inglés)

• Incluyen funciones matemáticas, de texto y lógicas.• No aprovechan completamente los recursos

internos de la máquina.

Page 14: Introduccion a los algoritmos

LENGUAJES DE PROGRAMACION

;Lenguaje ensamblador, sintaxis Intel para procesadores x86mov eax,1 ;mueve a al registro eax el valor 1 xor ebx, ebx ;pone en 0 el registro ebx int 80h ;llama a la interrupción 80h (80h = 128 sistema decimal)

{Lenguaje Pascal} program suma;

var x,s,r:integer; {declaración de las variables} begin {comienzo del programa principal} writeln('Ingrese 2 números enteros');{imprime el texto} readln(x,s); {lee 2 números y los coloca en las variables x y s} r:= x + s; {suma los 2 números y coloca el resultado en r} writeln('La suma es ',r); {imprime el resultado} readln; end.{termina el programa principal}

Page 15: Introduccion a los algoritmos

HABLEMOS DE ALGORITMOS…

La palabra Programación resulta muy cercana y familiar; se puede relacionar con un programa de televisión, con un programa político, con la programación de horas de estudio, etc.

Al fijarnos en los ejemplos anteriores, vemos que todos ellos tienen algo en común: intentan realizar una actividad de un modo ordenado.

Cuando se especifican y determinan los pasos que se deben dar, así como el orden en que han de realizarse para poder llevar a cabo cualquier actividad, estamos especificando lo que se define como algoritmo.

Page 16: Introduccion a los algoritmos

EJEMPLO

• Supongamos que queremos escuchar un disco de música. Para hacer esto necesitamos definir

una serie de pasos que constituirán el algoritmo:

• 1. Dirigirnos a la estantería.• 2. Seleccionar el CD a escuchar.• 3. Sacar el CD seleccionado de la estantería.• 4. Abrir la funda y extraer el CD.• 5. Abrir la bandeja del reproductor de CD.• 6. Introducir en la bandeja el CD seleccionado.• 7. Cerrar la bandeja del reproductor.• 8. Pulsar play.

Page 17: Introduccion a los algoritmos

SISTEMAS DE PROCESAMIENTO DE INFORMACION

Algoritmo: Conjunto de instrucciones que especifica la secuencia de operaciones a realizar, en orden, para resolver un problema especifico, en otras palabras un algoritmo es una formula para la resolución de un problema.

Un programa es similar a un algoritmo: la gran diferencia es que los pasos que permiten resolver el problema deben escribirse en un determinado lenguaje de programación para que el ordenador pueda ejecutarlos y encontrar así la solución.

Un programa de computadora se escribe en un lenguaje de programación, un algoritmo representa una solución a un problema. Cuando escribimos un programa codificamos un algoritmo.

Page 18: Introduccion a los algoritmos

GENERALIDADES SOBRE LOS ALGORITMOS

Metodología de programación: Consiste en la metodología aplicada para la resolución de problemas mediante programas.

Descripción ordenada de la secuencia de pasos (sin ambigüedades) que conducen a la solución de problema dado (Análisis del problema y desarrollo del algoritmo).

Expresar el algoritmo como un programa en el lenguaje de programación adecuado.

Ejecución y validación del programa de computadora.

Tarea que se desea resolver.

La definición de un algoritmo debe describir tres partes: Entrada, proceso y salida. Ejemplo: La receta de un sancocho.

Page 19: Introduccion a los algoritmos

SOLUCIÓN DE PROBLEMAS APLICANDO MODELOS MATEMÁTICOS

FÓRMULASDATOS RESULTADOS

Entrada SalidaProceso

Básicamente en esto consiste la solución de un problema según el Modelo matemático. Véase la similitud con el esquema de un sistema de representación de información. La identificación de las entradas (datos que tenemos para solucionar el problema), procesos ( formulas, mensajes, procedimientos) y salidas (la solución) es indispensable cuando queremos formular algoritmos.

ANALISIS ALGORITMO

¿Qué datos necesito?

(ENTRADA)

Capturar el numero 1

Capturar el numero 2

¿Qué formulas voy a utilizar?

(PROCESO)

Algoritmo de la suma:

Suma = numero 1 + numero 2

¿Qué resultados voy a obtener?

(SALIDA)

Imprimir el resultado de la suma.

Page 20: Introduccion a los algoritmos

CARACTERÍSTICAS Y FORMAS DE LOS ALGORITMOS

Tres características básicas:1. Preciso: debe ser concreto, no tener pasos de

mas y la solución tiene que ser clara y concreta.2. Congruente: al probarse varias veces los

resultados deben ser los mismos.3. Finito: al seguir los pasos deben llegar a la

solución, es decir, debe tener termino.

Los algoritmos pueden ser creados (representados) de dos formas distintas:

1. Pseudo-código: es un conjunto pequeño y claro de instrucciones; en secuencia, que permite llevar a cabo una tarea.

2. Diagrama de flujo: es la representación de la secuencia, a través de símbolos, de la tarea que se va a realizar.

Page 21: Introduccion a los algoritmos

CARACTERÍSTICAS Y FORMAS DE LOS ALGORITMOS

En pseudo-código: Lenguaje natural-alg.

Inicio

Escribe: (“calcula el area de cualquier rectángulo”)

Escribe: (“de largo mide”)

Captura: (largo)

Escribe: (“de ancho mide”)

Captura: (“ancho”)

Formula: área = largo x ancho

Escribe: (“ el area mide:” , area)

fin

Page 22: Introduccion a los algoritmos

CARACTERÍSTICAS Y FORMAS DE LOS ALGORITMOS

En diagrama de flujo

inicio ancho largo

Área = largo x anchoáreafin

Entrada (in) Entrada (in)

Salida (out)

PROCESO

Page 23: Introduccion a los algoritmos

GENERALIDADES SOBRE LOS ALGORITMOS

• Describir los pasos para cruzar la calle.

• Describa los pasos para llevar a una amiga a cine.

• Describa los pasos para cambiar la llanta pinchada de una cicla.

• Describa los pasos para cambiar un bombillo quemado.

Algoritmo Programa

Page 24: Introduccion a los algoritmos

ATENCIÓN!

• Hasta aquí vana escribir en sus cuadernos. Estudien para la próxima clase.

Page 25: Introduccion a los algoritmos

¿Cómo resuelvo un problema?

Para entender como resolver un problema debemos entender el siguiente esquema, según Polya.

Inicio

Page 26: Introduccion a los algoritmos

Entender el problemaBásicamente es poner a prueba nuestra comprensión de lectura (también puede ser oral) del problema.

Debemos seguir estos pasos:

1.Leer y re leer el problema

2.Entender la pregunta, es decir, tener claro cual es el resultado esperado.

3.Identificar los datos importantes

4.Organizar y clasificar los datos e información

5.Realizar un esquema o figura.

Page 27: Introduccion a los algoritmos

Trazar (configurar) un plan

Esto quiere decir que acciones debemos hacer con los datos y verificar nuestros datos, por lo que debemos tener presente estas preguntas:

•¿Qué operaciones (acciones) necesito?•¿Qué datos que poseo no son importantes?•¿Será mejor descomponer el problema en otros más

pequeños?•¿Tengo más alternativas?

Page 28: Introduccion a los algoritmos

Ejecutar Plan• Ahora que entendemos el problema y hemos elegido

nuestras operaciones debemos ejecutarlo, esto quiere decir seguir paso a paso nuestra traza (configuración) y verificar si vamos llegando al resultado esperado.

• Debemos ejecutar las operaciones y preguntarnos ¿vamos por camino correcto? si es así seguimos con las siguientes operaciones y comprobar si nos acercamos a la solución.

Recuerda en apoyarte con dibujos o diagramas.

Page 29: Introduccion a los algoritmos

Revisar• Luego de ejecutar nuestro plan y al comprobar

que hemos llegado al resultado esperado debemos entregar una respuesta completa.

• Podemos preguntarnos si existe otra forma de resolver el problema y comenzamos el ciclo de nuevo. Ver si podemos hacerlo más genérico para casos similares.

• Tener en la mente el problema porque puede servir de ayuda en un caso similar.

Page 30: Introduccion a los algoritmos

Manos a la obra!En un juego, el ganador obtiene una ficha roja; el segundo, una ficha azul; y el tercero, una amarilla. Al final de varias rondas, el puntaje se calcula de la siguiente manera: Al cubo de la cantidad de fichas rojas se adiciona el doble de fichas azules y se descuenta el cuadrado de las fichas amarillas. Si Andrés llegó 3 veces en primer lugar, 4 veces de último y 6 veces de intermedio, ¿Qué puntaje obtuvo?

(Adaptado de Melo (2001), página 30).

Page 31: Introduccion a los algoritmos

Primera reacciónEsto es lo que pensamos... o ¿no?

¿Qué dijo?!¿Cómo fue?AAAAAH!!!!

Page 32: Introduccion a los algoritmos

Respiramos y continuamosEntonces ahora comenzamos aplicar nuestro ciclo.

Primero ENTENDER el problema, leamos de nuevo pero más lento y por partes.

Page 33: Introduccion a los algoritmos

Parte 1 del enunciadoEn un juego, el ganador obtiene una ficha roja; el segundo, una ficha azul; y el tercero, una amarilla.

¿Tenemos datos importantes?

Así es, debemos entender que existen 3 tipos de fichas para cada lugar

Ayudas:Subrayar y

colorear

Page 34: Introduccion a los algoritmos

Parte 2 del enunciadoAl final de varias rondas, el puntaje se calcula de la siguiente manera: Al cubo de la cantidad de fichas rojas se adiciona el doble de fichas azules y se descuenta el cuadrado de las fichas amarillas.

¿Tenemos datos importantes?

Sí! tenemos una fórmula para calcular el puntaje final.

Page 35: Introduccion a los algoritmos

Parte 3 del enunciadoSi Andrés llegó 3 veces en primer lugar, 4 veces de último y 6 veces de intermedio, ¿Qué puntaje obtuvo?

¿Tenemos datos importantes?

Sí, tenemos la cantidad de veces que Andrés ha ganado en los 3 distintos lugares.

Además tenemos la pregunta, es decir, sabemos que debemos tener un resultado concreto.

Page 36: Introduccion a los algoritmos

¿Y ahora?Hemos leído el enunciado y re leído, obtuvimos los datos de acuerdo a cada parte del enunciado, por lo que ahora pasamos a TRAZAR un plan según los datos que tenemos.

Es decir ordenarlos según por cada parte del enunciado y verificar que operaciones necesito para resolver el problema.

Page 37: Introduccion a los algoritmos

Trazando nuestro planParte 1:

Roja para el primer lugar

Azul para el segundo lugar

Amarilla para el tercer lugar

Parte 2:

Armamos la fórmula para calcular puntaje final:

PF = (R3)+ (2 x Az) - (Am2)

Parte 3:

Andrés tiene: 3 fichas rojas (R), 6 azules (Az) y 4 amarillas (Am).

Page 38: Introduccion a los algoritmos

Continuamos...Nuestro tercer paso es EJECUTAR nuestra traza según los datos obtenidos al entender el problema.

Quiere decir unir las operaciones elegidas y aplicar los datos en dichas operaciones.

Page 39: Introduccion a los algoritmos

Ejecutando el planPor lo que tenemos:

Andrés tiene: 3 fichas rojas (R), 6 azules (Az) y 4 amarillas (Am).

Y la fórmula obtenida:

PF = (R3)+ (2 x Az) - (Am2)

Reemplazando tenemos:

PF = (33) + (2x6) - (42)

Continuando cada operación:

PF = 27 + 12 - 16

Nuestro resultado final es: PF = 23

Page 40: Introduccion a los algoritmos

RevisandoAl ejecutar nuestro plan ahora debemos REVISAR, para ello debemos comprobar que nuestro resultado es correcto, quiere decir que debemos revisar los cálculos y verificar con la solución estimada.

Tenemos que dar una solución completa, en nuestro caso sería como respuesta según la pregunta del problema:

El puntaje final que obtuvo Andrés fue de 23

Page 41: Introduccion a los algoritmos

ResumiendoEntonces para resolver un problema debemos:

Entender Trazar EjecutarRevisar

Page 42: Introduccion a los algoritmos

¿Cómo resuelvo un algoritmo?Ahora que entendemos un poco más de cómo resolver un problema ahora llevemos el mismo teorema para resolver un algoritmo en computación.

Cuyas fases serían entonces:

Page 43: Introduccion a los algoritmos

Analizar el problemaEsta etapa sería Entender el problema por lo que aquí debemos:

•Formular el problema•Conocer el resultado esperado•Identificar datos e información•Definir las operaciones•Restricciones del problema

Page 44: Introduccion a los algoritmos

Diseñar un algoritmo (I)Es la representación gráfica mediante un diagrama la secuencia de las operaciones de forma lógica.

Esta etapa sería Trazar el problema.

Page 45: Introduccion a los algoritmos

Diseñar un algoritmo (II)El diagrama para diseñar un algoritmo es conocido como Diagrama de Flujo, representa la secuencia lógica de nuestro análisis.

Cuya simbología es:

Page 46: Introduccion a los algoritmos

Diseñar un algoritmo (III)

Page 47: Introduccion a los algoritmos

Traducir un algoritmoEs Ejecutar el problema, es decir que debemos pasar nuestro diagrama a un lenguaje (idioma), en donde cada lenguaje posee su propia gramática y sintaxis:

•Comenzar y terminar un programa: INICIO, FIN•Declarar los tipos de los datos: entero, decimal, letra, texto.•Entrada por teclado: leer•Desición: si - sino•Iteración: mientras•Mostrar por pantalla: imprimir

Page 48: Introduccion a los algoritmos

Depurar un programa• Esta etapa es Revisar.• Aquí revisamos y se corrigen los errores de nuestra

traducción mediante el resultado obtenido que debemos probar y validar.

• Para depurar nuestro programa debemos asignar valores a nuestras variables y seguir el flujo (secuencia) de nuestro diseño y nuestra traducción.

• Nos podemos ayudar haciendo una tabla para seguir el flujo de nuestro programa y anotar los valores de las variables a medida se vayan modificando.

Page 49: Introduccion a los algoritmos

Manos a la obra!• Tenemos el mismo enunciado del ejercicio ya

visto anteriormente.

• En un juego, el ganador obtiene una ficha roja; el segundo, una ficha azul; y el tercero, una amarilla. Al final de varias rondas, el puntaje se calcula de la siguiente manera: Al cubo de la cantidad de fichas rojas se adiciona el doble de fichas azules y se descuenta el cuadrado de las fichas amarillas. Si Andrés llegó 3 veces en primer lugar, 4 veces de último y 6 veces de intermedio, ¿Qué puntaje obtuvo?

Page 50: Introduccion a los algoritmos

Análisis del problemaPara nuestro ejercicio tenemos en esta etapa, según lo entendido al leer el problema:

•Existen 3 tipos de fichas para cada lugaro Rojas, Azules y Amarillas

•Fórmula para calcular el puntaje final.o PF = (R3)+ (2 x Az) - (Am2)

•cantidad de veces que Andrés ha ganado en los 3 distintos lugares

o 3 fichas rojas, 6 azules y 4 amarillas•Debemos tener un resultado concreto.

Page 51: Introduccion a los algoritmos

Diseñar un algoritmo• Quiere decir que debemos utilizar la simbología de

Diagrama de Flujo (ir a diapositiva) para diseñar nuestra solución.

• Básicamente es "dibujar" el análisis realizado anteriormente utilizando Diagrama de Flujo (ir a diapositiva).

• Debemos definir nuestros datos, las operaciones y el resultado a mostrar

Page 52: Introduccion a los algoritmos

Diseñar un algoritmo (II)

Page 53: Introduccion a los algoritmos

Traducir un algoritmo (I)• Ahora es el momento de escribir nuestro diagrama en

un lenguaje de programación el cual es conocido como Pseudo - código

• Para ello escribiremos con las palabras reservadas mencionadas anteriormente (ver diapositiva Traducir un algoritmo)

Page 54: Introduccion a los algoritmos

Traducir un algoritmo (II)//Indicamos el inicio del programa

INICIO

//Declaramos las variables y las iniciamos

ENTERO fichas_rojas = 3;

ENTERO fichas_azules = 6;

ENTERO fichas_amarillas = 4;

ENTERO puntaje_final = 0;

//Escribirmos la operación a utilizar

puntaje_final = fichas_rojas^3 + 2*fichas_azules - fichas_amarillas^2;

//Imprimimos por pantalla el texto que queremos mostrar

IMPRIMIR "El puntaje final de Andres es de "

//Imprimimos por pantalla la variable que queremos mostrar

IMPRIMIR puntaje_final;

//Indicamos el fin del programa

FINAyudas:

// indica comentario

Page 55: Introduccion a los algoritmos

Depurar el programaPara hacer la depuración debemos ir reemplazando los valores de las variables en nuestro programa.•Tenemos los valores ya dados por el enunciado: f_rojas = 3, f_azules = 6 y f_amarillas = 4, estos valores debemos reemplazarlos en nuestra fórmula inicial:

puntaje_final = 3^3 + 2*6 - 4^2;•Realizando el cálculo nos da como resultado:

puntaje_final = 39;•Impresión por pantalla:

El puntaje final de Andres es de 39

Page 56: Introduccion a los algoritmos

FIN