Introduccin a la Programacin Introduccin a los algoritmos

  • Slides: 50
Download presentation
Introducción a la Programación Introducción a los algoritmos Profesores: Pedro Campos Manuel Crisosto Tatiana

Introducción a la Programación Introducción a los algoritmos Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez

Motivación OBJETIVO GENERAL DE LA ASIGNATURA Resolver problemas básicos a través de la construcción

Motivación OBJETIVO GENERAL DE LA ASIGNATURA Resolver problemas básicos a través de la construcción de programas basados en algoritmos y un lenguaje de programación, generando acciones hacia la búsqueda de propuestas pertinentes. “Al finalizar el curso se debe ser capaz deunplantear una solución un • Descompone problema en sub-problemas para darle unaa solución más sencilla. problema a ytravés delaun programa • Interpreta algoritmos programas para solución de problemas básicos de programación relativos a la matemática. ejecutado un computador” • Construye algoritmospor y programas para la solución de problemas APRENDIZAJES ESPERADOS (COMPETENCIAS) básicos de programación relativos a la matemática. • Trabaja colaborativamente, cumpliendo un rol y responsabilizándose de él. • Comprende el entorno de las situaciones problemáticas que tienen un componente informático. 2

Programa de Aplicación Programa que permite resolver la ecuación de primer grado Algoritmo EC

Programa de Aplicación Programa que permite resolver la ecuación de primer grado Algoritmo EC 1 er Grado Variables a, b, x de tipo entero Inicio Escribir(“Ingrese valores de EC”) Leer (a, b) Si a = 0 entonces escribir (“Error”) sino Inicio x=-b/a Escribir (“La solución es: ”, x) Fin Escribir(“Fin programa”) Fin ALGORITMO ax+b=0 a ? b 3 x = -b / a #include <stdio. h> int a, b, x; main() { printf(“Ingrese valores de EC”); scanf(“%d %d”, &a, &b); if a ==0 printf (“error”); else { x = -b / a; printf(“La solución es %d: ”, x); } printf(“Fin programa”); }

Pasos en la resolución de un problema • Entender el problema – Conceptualización –

Pasos en la resolución de un problema • Entender el problema – Conceptualización – Objetivo – Contexto • Buscar soluciones • Elegir solución • Diseñar solución – Descomposición – Especificar tareas – Modelar solución • Implementar solución • Validar solución 4

¿Qué es un problema? • Es una situación concreta sobre la cual se quiere

¿Qué es un problema? • Es una situación concreta sobre la cual se quiere implementar una solución (ejemplos) • Solución: procedimiento que nos lleva a satisfacer ciertos requerimientos • Esquema básico para la resolución de un problema a través de un programa con un enfoque sistémico Entrada • Datos Externos • Datos auto generados • Lectura de dispositivo de almacenamiento 5 Salida Proceso • Informes • Datos para otro programa • Datos grabados en dispositivos externos de almacenamiento

Datos y Variables • Datos: objetos simbólicos que representan objetos del mundo real. –

Datos y Variables • Datos: objetos simbólicos que representan objetos del mundo real. – Ejemplos: 10 de Marzo de 2003, 3. 14 • Variables: no hace referencia a un objeto explícito – Ejemplos: velocidad del móvil, factor de crecimiento 6

¿Qué es un Modelo? • Estructura para dar razón y abstraer una realidad •

¿Qué es un Modelo? • Estructura para dar razón y abstraer una realidad • Ejemplo: Estudiantes Inscrita Estudia Plan de Estudios Carrera 7 Asignaturas

¿Qué es un algoritmo? • Procedimiento detallado para resolver un problema en pasos y

¿Qué es un algoritmo? • Procedimiento detallado para resolver un problema en pasos y en un tiempo finito. • Se especifican en base a operaciones básicas que controlan las variables y el flujo del algoritmo • El algoritmo lleva desde un estado inicial a un estado final • El algoritmo recibe Entradas y entrega Salidas 8

¿Cómo desarrollar un algoritmo? Imaginación No reinventar la rueda Dividir para conquistar Para ser

¿Cómo desarrollar un algoritmo? Imaginación No reinventar la rueda Dividir para conquistar Para ser efectivo se requiere practicar constantemente • El diseño de algoritmos es una rama de la Ciencia de la Computación • • 9

¿Cómo se describe un algoritmo? • • Lenguaje natural Pseudo código Lenguaje de programación

¿Cómo se describe un algoritmo? • • Lenguaje natural Pseudo código Lenguaje de programación La precisión es importante – Un algoritmo no puede ser descrito de forma ambigua: • Todos tienen que entender lo mismo (incluido el computador!) 10

Llamada telefónica • Se desea conceptualizar el problema de efectuar una llamada telefónica en

Llamada telefónica • Se desea conceptualizar el problema de efectuar una llamada telefónica en un teléfono público que recibe monedas de $10, $50 y $100. El costo mínimo de la llamada es de $100 por 5 minutos. El proceso se inicia desde que se levanta el auricular y finaliza cuando se cuelga. 11

Árboles de decisión • Herramienta útil para describir algoritmos que involucran gran cantidad de

Árboles de decisión • Herramienta útil para describir algoritmos que involucran gran cantidad de decisiones 12

Conceptos Básicos de Algoritmos • La forma en que se ejecutan las operaciones básicas

Conceptos Básicos de Algoritmos • La forma en que se ejecutan las operaciones básicas en un computador, es similar a lo que ocurre en nuestro cerebro. • Por ejemplo, para sumar dos valores: – Primero debemos pedirle a alguien que nos diga el primer valor. – Luego de que conocemos este valor, debemos almacenarlo (para recordarlo después) en una neurona (Suponemos que un valor se puede almacenar en una neurona). • Ya conocemos el primer valor y está almacenado en nuestro cerebro.

Conceptos Básicos de Algoritmos • Ahora debemos pedir el segundo valor. • Una vez

Conceptos Básicos de Algoritmos • Ahora debemos pedir el segundo valor. • Una vez conocido, lo almacenamos en otra neurona distinta de la anterior. ¿ Por qué? • Ahora que conocemos los dos valores procedemos a sumarlos, y dicho resultado lo almacenamos en otra neurona distinta de las anteriores. • Por último, le decimos el resultado a la persona que nos entrego los números.

Conceptos Básicos de Algoritmos – De lo anterior, al menos necesitamos 3 neuronas para

Conceptos Básicos de Algoritmos – De lo anterior, al menos necesitamos 3 neuronas para sumar dos números. – Le pedimos explícitamente que nos dijeran dichos valores. – Le asignamos dichos valores a las neuronas – La suma la realizó nuestro cerebro de forma mecánica. Note que no existen detalles de la operaciones básicas (*, /, +, -). – Finalmente se da el resultado

Conceptos Básicos de Algoritmos • Algoritmo para sumar dos números: Definimos tres neuronas Pedimos

Conceptos Básicos de Algoritmos • Algoritmo para sumar dos números: Definimos tres neuronas Pedimos el primer valor Almacenamos ese valor en la neurona 1. Pedimos el segundo valor Almacenamos ese valor en la neurona 2. Almacenamos la suma de las neuronas 1 y 2 en la neurona 3 – Entregamos el resultado que se encuentra en la neurona 3. – – –

Conceptos Básicos de Algoritmos • Sin embargo, en los lenguajes no se pueden usar

Conceptos Básicos de Algoritmos • Sin embargo, en los lenguajes no se pueden usar neuronas, pero podemos definir variables (Recuerde que las variables pueden tomar cualquier valor) • En lugar de usar neurona 1 y neurona 2, se utilizan espacios de memoria que llamaremos “var 1” y “var 2”, y así sucesivamente. También las podemos llamar “x 1” y “x 2” ó “x” e “y” ….

Conceptos Básicos de Algoritmos Ejercicio: Cree un algoritmo que multiplique tres números. • Algoritmo

Conceptos Básicos de Algoritmos Ejercicio: Cree un algoritmo que multiplique tres números. • Algoritmo para multiplicar tres números: – – – – – Definimos cuatro variables Pedimos el primer valor Almacenamos ese valor en var 1. Pedimos el segundo valor Almacenamos ese valor en var 2. Pedimos el tercer valor Almacenamos ese valor en var 3. Almacenamos la multiplicación de las variables en var 4 Entregamos el resultado que se encuentra en var 4.

Conceptos Básicos de Algoritmos • La manera en que hemos detallado nuestros dos algoritmos

Conceptos Básicos de Algoritmos • La manera en que hemos detallado nuestros dos algoritmos se llama PSEUDO-CÓDIGO. Y este pseudo-código fue escrito en lenguaje natural. • Otra manera de poder detallar nuestros algoritmos es a través de los diagrama de flujo. Un diagrama de flujo es una representación simbólica de la lógica del algoritmo.

Diagrama de Fujo • Nomenclatura: – Inicio del algoritmo – Término del algoritmo –

Diagrama de Fujo • Nomenclatura: – Inicio del algoritmo – Término del algoritmo – Impresión de mensajes – Receptor de datos – Operación de datos – Bifurcación (Decisión) – Definición de variables – Conector Inicio Termino F ? V

Diagrama de Flujo y Pseudo-Código DIAGRAMA DE FLUJO NOMENCLATURA Inicio Entero var 1, x

Diagrama de Flujo y Pseudo-Código DIAGRAMA DE FLUJO NOMENCLATURA Inicio Entero var 1, x , y Real a, b Escribir “Mensaje 1” Definición de variables Variables Entero var 1, x, y Real a, b Transformación de datos Operaciones sobre los datos V Si a > b Inicio Lectura de mensajes a=3*x+ y b = a / var 1 F Inicio de Algoritmo Impresión de mensajes Leer var 1, x, y Bifurcación en la ejecución de instrucciones Conector Fin PSEUDO-CÓDIGO Fin de algoritmo Escribir (“Mensaje 1”) Leer (var 1, x, y) a=3*x+ y b = a / var 1 Si a > b Entonces Inicio Instrucciones Fin Sino Inicio Instrucciones Fin

Diagrama de Fujo para el algoritmo que suma dos valores Inicio var 1, var

Diagrama de Fujo para el algoritmo que suma dos valores Inicio var 1, var 3 Ingrese el primer valor var 1 Ingrese el segundo valor var 2 var 3=var 1+var 2 El resultado es : var 3 Termino Se definen las variables var 1, var 2, var 3 Se pide ingresar el primer valor Se asocia el número ingresado a var 1 Se pide ingresar el segundo valor Se asocia el número ingresado a var 1 Se asigna el resultado de la suma entre var 1 y var 2 a var 3 Se muestra el resultado

Diagrama de Flujo • Ejercicio: Cree el diagrama de flujo para el algoritmo que

Diagrama de Flujo • Ejercicio: Cree el diagrama de flujo para el algoritmo que multiplica tres números y muestre el resultado • Ejercicio: Cree el diagrama de flujo para que divida dos números y muestre el resultado

¿Preguntas?

¿Preguntas?

Algoritmos • Ejercicio. Usando diagrama de Flujo. Cree un algoritmos donde una persona ingrese

Algoritmos • Ejercicio. Usando diagrama de Flujo. Cree un algoritmos donde una persona ingrese su edad y muestre por pantalla si es mayor de edad.

Algoritmos

Algoritmos

Algoritmos – Del ejemplo anterior podemos observar que la bifurcación permite seguir el flujo

Algoritmos – Del ejemplo anterior podemos observar que la bifurcación permite seguir el flujo adecuado dada una condición. – Las condiciones que se evalúan en las bifurcaciones son siempre verdaderas o falsas. – Por ende, hay que colocar las instrucciones adecuadas a los valores que se evaluan en las bifurcaciones.

Algoritmos – También es posible que existan bifurcaciones contiguas. – En las bifurcaciones o

Algoritmos – También es posible que existan bifurcaciones contiguas. – En las bifurcaciones o estructura de control, se evalúan proposiciones utilizando: • Operadores lógicos • Operadores aritméticos • Operadores Relacionales

Algoritmos • Operadores Aritméticos: –* –/ –+ ––% multiplicación División Suma Resta Módulo Ejemplo

Algoritmos • Operadores Aritméticos: –* –/ –+ ––% multiplicación División Suma Resta Módulo Ejemplo de módulo (o residuo de la división): 5%2 es 1 4%2 es 0

Algoritmos • Operadores Lógicos: – Y, And, && Y V F V V F

Algoritmos • Operadores Lógicos: – Y, And, && Y V F V V F F

Algoritmos • Operadores Lógicos: – O, Or, || O V F V V V

Algoritmos • Operadores Lógicos: – O, Or, || O V F V V V F

Algoritmos • Operadores Lógicos: – No, Not, ! No V F F V

Algoritmos • Operadores Lógicos: – No, Not, ! No V F F V

Algoritmos • Analicemos los siguientes casos var 1=2, var 2=0, var 3=4 var 4=(var

Algoritmos • Analicemos los siguientes casos var 1=2, var 2=0, var 3=4 var 4=(var 1*var 1)/var 3 var 4=1 Si var 4>=1 && var 1!=0 No Si

Algoritmos • Analicemos los siguientes casos var 1=2, var 2=0, var 3=4 var 4=(var

Algoritmos • Analicemos los siguientes casos var 1=2, var 2=0, var 3=4 var 4=(var 3%var 1) var 4=0 Si (var 4!=0 || var 2>0) && (var 3==4) No No

Algoritmos • Analicemos los siguientes casos var 1=2, var 4=1, var 3=4 var 4=(var

Algoritmos • Analicemos los siguientes casos var 1=2, var 4=1, var 3=4 var 4=(var 4+var 1) var 4=3 Si No !(var 1 && (var 4>=var 1)) Cualquier proposición distinta de cero Es VERDADERO No

Algoritmos • Es importante notar que existen prioridades entre los operadores. Por lo tanto

Algoritmos • Es importante notar que existen prioridades entre los operadores. Por lo tanto deben utilizarse paréntesis en los casos que correspondan

Algoritmos • Ejercicio. Crear un algoritmo que muestre en forma ordenada tres número enteros

Algoritmos • Ejercicio. Crear un algoritmo que muestre en forma ordenada tres número enteros ingresados desde teclado.

Diagrama de Flujo n n n Ejercicio: Cree el diagrama de flujo para el

Diagrama de Flujo n n n Ejercicio: Cree el diagrama de flujo para el algoritmo que multiplica tres números y muestre el resultado Ejercicio: Cree el diagrama de flujo para que divida dos números y muestre el resultado Ejercicio: Cree el diagrama de flujo para que resuelva la ecuación de primer grado y muestre el resultado Ejercicio: Cree el diagrama de flujo para que resuelva la ecuación de segundo grado, para valores reales e imaginarios, y muestre el resultado Ejercicio: Cree el diagrama de flujo permita sumar tres números ingresados por teclado y muestre el resultado Ejercicio: Cree el diagrama de flujo que permita sumar “n” números y muestre el resultado. El valor de “n” debe ser ingresado por teclado al igual que los números que se sumarán.

Algoritmos • Repaso de Bifurcaciones • Aprendizajes Esperados – Conceptos de Ciclos – Cuándo

Algoritmos • Repaso de Bifurcaciones • Aprendizajes Esperados – Conceptos de Ciclos – Cuándo se aplican los ciclos

Algoritmos • Ejercicio. Crear un algoritmo que muestre en forma ordenada tres número enteros

Algoritmos • Ejercicio. Crear un algoritmo que muestre en forma ordenada tres número enteros ingresados desde teclado

Algoritmos • Concepto de Ciclo – Un ciclo es la repetición de un conjunto

Algoritmos • Concepto de Ciclo – Un ciclo es la repetición de un conjunto de instrucciones. Dicho ciclo culmina cuando se cumple una condición de termino. • Cuándo se aplican los Ciclos – Se aplican cuando queremos ejecutar un conjunto de instrucciones varias veces.

Algoritmos • Estructura de un ciclo

Algoritmos • Estructura de un ciclo

Algoritmos • Ejemplo: Crear un algoritmo que sume N elementos y muestre el resultado

Algoritmos • Ejemplo: Crear un algoritmo que sume N elementos y muestre el resultado

N var cont suma 2 1 1 0 2 2 1 3 3

N var cont suma 2 1 1 0 2 2 1 3 3

Algoritmos • Ejemplo: Crear un algoritmo que encuentre el número mayor de N números

Algoritmos • Ejemplo: Crear un algoritmo que encuentre el número mayor de N números enteros positivos ingresados por teclado.

Algoritmos • Ejemplo: Crear un algoritmo que calcule

Algoritmos • Ejemplo: Crear un algoritmo que calcule