FUNDAMENTOS DE PROGRAMACIÓN

25
FUNDAMENTOS DE PROGRAMACIÓN IS C . GA BRIEL ZEPEDA MARTÍNEZ EST . ABRAHAM F. MACHUCA VAZ QUEZ

description

FUNDAMENTOS DE PROGRAMACIÓN. ISC. GABRIEL ZEPEDA MARTÍNEZ EST. ABRAHAM F. MACHUCA VAZQUEZ. CONTENIDO TEMÁTICO. Definición de algoritmo. Características de un algoritmo. Estructura básica de un algoritmo. Ejemplos de algoritmos. Representación de algoritmos. Definición de problema. - PowerPoint PPT Presentation

Transcript of FUNDAMENTOS DE PROGRAMACIÓN

Page 1: FUNDAMENTOS DE PROGRAMACIÓN

FUNDAMENTO

S

DE

PROGRAMACIÓN

I SC . G

A B R I EL Z

E P E D A MA R T Í N

E Z

E S T . AB R A H A M F

. MA C H U C A

V A Z Q U E Z

Page 2: FUNDAMENTOS DE PROGRAMACIÓN

CONTENIDO TEMÁTICO1. Definición de algoritmo.2. Características de un algoritmo.3. Estructura básica de un algoritmo.4. Ejemplos de algoritmos.5. Representación de algoritmos.6. Definición de problema.7. Clasificación de problemas8. Ejercicios de problemas en clases.9. Trabajo en clase: Algoritmo colaborativo (Wiki), con ayuda

del Foro.10.Trabajo en casa.

Page 3: FUNDAMENTOS DE PROGRAMACIÓN

DEFINICIÓN DE ALGORITMOLa Real Academia de la Lengua define la

palabra algoritmo como conjunto ordenado y finito de operaciones que permite hallar la solución de un problema.

Los Algoritmos permiten describir claramente una serie de instrucciones que debe realizar el computador para lograr un resultado previsible.

Page 4: FUNDAMENTOS DE PROGRAMACIÓN

Vale la pena recordar que un procedimiento de computador consiste de una serie de instrucciones muy precisas y escritas en un lenguaje de programación que el computador entienda como lo es Scratch.

En resumen, un Algoritmo es una serie ordenada de instrucciones, pasos o procesos que llevan a la solución de un determinado problema.

Page 5: FUNDAMENTOS DE PROGRAMACIÓN

Los hay tan sencillos y cotidianos como seguir la receta del médico, abrir una puerta, lavarse las manos, etc; hasta los que conducen a la solución de problemas muy complejos.

Un algoritmo para ordenador está compuesto de un conjunto de pasos muy simples y muy bien definidos.

Page 6: FUNDAMENTOS DE PROGRAMACIÓN

Un algoritmo para ordenador está compuesto de un conjunto de pasos muy simples y muy bien definidos. Ejemplos típicos de posibles pasos son: sumar dos números dados, comparar si un número es mayor que otro, comprobar si la tercera letra de la palabra “ejemplo” es una “e”, etcétera.

Page 7: FUNDAMENTOS DE PROGRAMACIÓN

La palabra Algoritmo proviene del nombre del matemático y astrónomo AL-KHOWARIZMI, que vivió en el siglo IX y escribió un tratado sobre manipulación de números y ecuaciones.

Page 8: FUNDAMENTOS DE PROGRAMACIÓN

CARACTERÍSTICAS DE UN ALGORITMO1.Precisión.- El algortimo deberá indicar el

orden exacto de ejecución de cada taréa.2.Definitud o Determinismo.- Si se ejecuta

el algoritmo dos o mas veces con los mismos datos de entrada, se deberán obtener siempre los mismos datos de salida (resultado).

3.Finitud.- El algoritmo deberá terminar en algún momento y deberá usar una cantidad finita de recursos.

Page 9: FUNDAMENTOS DE PROGRAMACIÓN

Dada una cantidad de datos de entrada de un algoritmo, se dice que la cantidad de un recurso usada por dicho algoritmo para su ejecución determina la complejidad del algoritmo respecto a tal recurso.

Page 10: FUNDAMENTOS DE PROGRAMACIÓN

En una computadora los recursos son: tiempo de proceso y memoria, por lo tanto a un algoritmo computacional se le pueden calcular sus complejidades temporales y espaciales.

Page 11: FUNDAMENTOS DE PROGRAMACIÓN

ESTRUCTURA BÁSICA DE UN ALGORITMOSe constituye por tres elementos:

1.Datos.- Son los que el algoritmo recibe, procesa y entrega como resultado.

2.Instrucciones.- Son las acciones o procesos que el algoritmo realiza sobre los datos.

3.Estructuras de control.- Determinan el orden en que se ejecutarán las instrucciones del algoritmo.

Page 12: FUNDAMENTOS DE PROGRAMACIÓN

EJEMPLOS DE ALGORITMOSProblema. Un estudiante se encuentra en su casa dormido, pero deberá ir a la universidad a tomar la clase de fundamentos de programación. ¿Que deberá hacer el estudiante?.InicioPaso 1. Dormir.Paso 2. Hacer 1 hasta que suene el despertador (o grite la mamá).Paso 3. Mirar la hora.Paso 4. ¿Hay tiempo suficiente?.Paso 4.1 Si hay, entonces:Paso 4.1.1 Bañarse.Paso 4.1.2 Vestirse. paso 4.1.3 Desayunar.Paso 4.2 Sino, Paso 4.2.1 Vestirse.

Page 13: FUNDAMENTOS DE PROGRAMACIÓN

Paso 5. Cepillarse los dientes.Paso 6. Despedirse de los padres.Paso 7. ¿hay tiempo suficiente?.Paso 7.1 Si hay, entonces:Paso 7.1.1 Caminar a tomar el autobús.Paso 7.2 Sino, Correr a la parada del camión.Paso 8. Hasta que pase un autobús hacia la universidad, hacer:Paso 8.1 Esperar el autobús.Paso 9. tomar el autobús.Paso 10. Mientras no llegue a la universidad hacer:Paso 10.1 seguir en el camión.Paso 10.2 repasar mentalmente lo visto en la clase anterior.Paso 11 Tocar el timbre del camión.Paso 12. bajarse del camión.Paso 13. entrar a la Universidad.Fin

Page 14: FUNDAMENTOS DE PROGRAMACIÓN

Problema. Realizar la suma de los números 2448 y 5746.InicioPaso 1. Colocar los números el primero encima del segundo, de tal

manera que las unidades, decenas, centenas, etc., de los números queden alineadas. Trazar una línea debajo del segundo número.

Paso 2. Empezar por la columna que se encuentra en el extremo derecho.

Paso 3. Sumar los dígitos de la columna.Paso 4. Si la suma es mayor a 9 anotar un 1 encima de la siguiente

columna a la izquierda y anotar debajo de la línea las unidades de la suma. Si no es mayor anotar la suma debajo de la línea.

Paso 5. Si hay mas columnas a la izquierda, pasar a la siguiente columna a la izquierda y volver a 3.

Paso 6. El número debajo de la línea es la solución.Fin

Page 15: FUNDAMENTOS DE PROGRAMACIÓN

Ejercicio 1. A diferencia de los seres humanos que realizan actividades sin detenerse a pensar en los pasos que deben seguir, los computadores son muy ordenados y necesitan que quien los programan les diga cada uno de los pasos que deben realizar y el orden lógico de ejecución.

Numera en orden lógico los pasos siguientes (para pescar): ___ El pez se traga el anzuelo. ___ Enrollar el sedal. ___ Tirar el sedal al agua. ___ Llevar el pescado a casa. ___ Quitar el Anzuelo de la boca del pescado. ___ Poner carnada al anzuelo. ___ Sacar el pescado del agua.

Page 16: FUNDAMENTOS DE PROGRAMACIÓN

Ejercicio 2. En una hoja aparte, describe detalladamente los pasos que seguirías para lograr cada una de las siguientes tareas:

1. Adquirir una revista 2. Empacar un regalo 3. Freír un huevo en aceite 4. Hacer un avión con una hoja de papel 5. Hacer un barco con una hoja de papel 6. Tirar la basura 7. Encender una vela 8. Tomar una fotografía 9. Explicar las reglas de un juego a un compañero 10. Volar un papalote

* Favor de subirlos a la plataforma en formato de texto.

Page 17: FUNDAMENTOS DE PROGRAMACIÓN

Ejercicio 3. Se necesita hacer el pago del teléfono en las oficinas de Telmex. De preferencia en el cajero, de lo contrario en la caja. El monto es de $469.00, y se tiene un billete de %500.00. Elaborar un algoritmo para hacer el pago.

Page 18: FUNDAMENTOS DE PROGRAMACIÓN

REPRESENTACIÓN DE ALGORITMOSLas técnicas para la representación de algoritmos

utilizadas mas comúnmente son:

1. Diagramas de flujo.- Se basan en la utilización de diversos símbolos para representar operaciones específicas.

2. Pseudocódigo.- Es un lenguaje de especificación de algoritmos. El uso de este lenguaje hace el paso de codificación, relativamente fácil.

Page 19: FUNDAMENTOS DE PROGRAMACIÓN

DEFINICIÓN DE PROBLEMASe tiene un problema cuando se desea

encontrar uno o varios objetos desconocidos que cumplen condiciones y/o relaciones, previamente definidas, respecto a uno o varios objetos conocidos. De esta manera, solucionar un problema es encontrar los objetos desconocidos de dicho problema.

Page 20: FUNDAMENTOS DE PROGRAMACIÓN

CLASIFICACIÓN DE PROBLEMASLos problemas se clasifican por la existencia de

una solución en solubles, no solubles e indecidibles.

• Un problema se dice Soluble si se sabe de antemano que existe una solución para él.

• Un problema se dice Insoluble si se sabe que no existe una solución para él.

• Un problema se dice Indecidible si no se sabe si existe o no una solución para él.

Page 21: FUNDAMENTOS DE PROGRAMACIÓN

PROBLEMAS SOLUBLES:Se dividen en dos clases: Los algorítmicos y los

no algorítmicos.

• Un problema se dice Algorítmico si existe un algoritmo que permita darle solución.

• Un problema se dice No Algorítmico si no existe un algoritmo que permita encontrar su solución.

Page 22: FUNDAMENTOS DE PROGRAMACIÓN

Problema 1. Un granjero tiene 50 animales entre cerdos y gallinas. Si la cantidad de patas de los animales es 140, ¿Cuántos cerdos y cuantas gallinas tiene el granjero?

• Variables conocidas: La cantidad total de animales, cantidad de patas totales.

• Variables desconocidas: La cantidad de cerdos y la cantidad de gallinas.

• Condiciones: La suma de los cerdos y las gallinas es igual a 50. la suma de los pies de los cerdos (4 c/u) y de las gallinas (2 c/u) es igual a 150.

• Tipo de problema: Soluble-Algorítmico.

Page 23: FUNDAMENTOS DE PROGRAMACIÓN

Problema 2. realizar la suma de los siguientes números: 124567 y 7834567.

• Variables conocidas: Un número natural.• Variables desconocidas: Dos números

naturales: 12467 y 7834567.• Condiciones: El número desconocido es igual

a la suma de los 2 números dados.• Tipo de problema: Soluble-Algorítmico.

Page 24: FUNDAMENTOS DE PROGRAMACIÓN

Problema 3. Una partícula se mueve en el espacio de manera aleatoria, si en el instante de tiempo t se encuentra en la posición X, ¿Cuál será la posición exacta de dicha partícula 10 segundos después?.

• Variables conocidas: Posición en el instante de tiempo t.• Variables desconocidas: Una posición.• Condiciones: La partícula se mueve en el espacio de

forma aleatoria.• Tipo de problema: Insoluble. No se puede solucionar

porque no existe forma de predecir la posición de la partícula, ya que el movimiento es aleatorio.

Page 25: FUNDAMENTOS DE PROGRAMACIÓN

EJERCICIOS DE PROBLEMAS EN CLASE

(REVISAR LA PLATAFORMA MOODLE)