bloque i informatica 2 algoritmos v2

32
Bloque I. Diseña y elabora algoritmos para la solución de problemas Ing. Juan José Del Ángel García

Upload: jjcompuuv

Post on 31-Jul-2015

117 views

Category:

Software


1 download

TRANSCRIPT

Bloque I. Diseña y elabora algoritmos para la solución de

problemas

Ing. Juan José Del Ángel García

¿Que es un Problema?

Algunas definiciones de problema son:

Un problema es una situación que debe aclararse o resolverse por medio de la aplicación de un procedimiento.

Un problema es un conjunto de hechos o circunstancias que dificultan la consecución de un fin.

Un problema es una situación cuya respuesta o solución debe obtenerse mediante la aplicación de un método.Problem

a

Aplicación de

metodología

Solución

Metodología para resolución de problemas cotidianos:

Identifica y comprende el

problema

Plantea alternativas de solución

Elige una alternativa

Desarrolla la solución

Evalúa la solución

Metodología para la solución de un problema cotidiano

Identificar el problema: Para resolver un problema, es indispensable entender exactamente en qué consiste el problema y que tipo de resultado se solicita.

Planteamiento de alternativas de solución: La mayoría de los problemas se pueden resolver de mas de una forma, por lo que es necesario pensar y plantear diferentes alternativas que permitan resolver el problema.

Elección de una alternativa: Para elegir una alternativa de solución óptima, necesitas valorar las ventajas y desventajas década una de ellas, tomando en cuenta las características del problema que deseas resolver.

Desarrollo de solución: Éste paso consiste en desarrollar cada uno de los pasos que nos llevarán a obtener la solución, es decir, explicar claramente cuál es nuestro plan de acción para alcanzar la meta.

Evaluar la solución: Siempre que sea posible evalúa la solución o comprueba el resultado para garantizar que se satisfacen las condiciones del problema. Aprovecha este paso para verificar que la alternativa que empleaste es la óptima. Puede suceder que al final te des cuenta que realizaste pasos innecesarios, o bien, puedes tener una nueva idea para resolver el problema de forma más sencilla, eficiente o creativa.

Metodología para la solución de un problema cotidiano

¿Qué es un algoritmo?Algunas definiciones de algoritmos son:

Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema especifico.

Un algoritmo es un conjunto de instrucciones que especifican la secuencia ordenada de operaciones a realizar para resolver un problema.

Un algoritmo es un método o fórmula para la resolución de un problema.

Un algoritmo es un conjunto ordenado y finito de pasos usados en la solución de un problema o realización de una tarea.

Algoritmos CotidianosSe refiere a todos aquéllos algoritmos que nos ayudan a resolver problemas diarios, y que los hacemos casi sin darnos cuenta de que estamos siguiendo una metodología para resolverlos. En una analogía con la vida diaria, un algoritmo pueden ser los pasos para:

Elaborar una receta de un platillo de cocina Cambiar el neumático ponchado de un

automóvil. Los pasos para lavarse los dientes, etc.

Ejemplo1: Algoritmo para cepillarse los dientes1. Tomar la crema dental

2. Destapar la crema dental

3. Tomar el cepillo de dientes

4. Aplicar crema dental al cepillo

5. Tapar la crema dental

6. Abrir la llave del lavamanos

7. Remojar el cepillo con la crema dental

8. Cerrar la llave del lavamanos

9. Frotar los dientes con el cepillo

10. Abrir la llave del lavamanos

11. Enjuagarse la boca

12. Enjuagar el cepillo

13. Cerrar la llave del lavamanos

14. Secarse la cara y las manos con una toalla

Ejemplo 2: Algoritmo para cambiar una llanta1. Estacionar el automóvil en algún lugar

nivelado.

2. Encender las intermitentes y poner el freno de mano.

3. Reunir las herramientas necesarias para el cambio.

4. Ubicar el gato debajo del automóvil, bajo el marco de la rueda.

5. Aflojar las tuercas con la llave de cruz.

6. Levantar el vehículo utilizando el gato,.

7. Seguir aflojando las tuercas hasta remover el neumático desinflado o ponchado.

8. Colocar el neumático de repuesto y ajustar levemente las tuercas.

9. Bajar el vehículo.

10. Utilizando la llave de cruz ajustar las tuercas con más fuerza.

11. Guardar todos los implementos.

A fin de resolver un problema utilizando sistemas de cómputo, debe seguirse una serie de pasos que permiten avanzar por etapas bien definidas hacia la solución:

1. Definición de Problema2. Análisis de los Datos3. Diseño del algoritmo4. Codificación5. Prueba y Depuración6. Documentación7. Mantenimiento

Metodología para la solución de un problema por medio de

computadoras:

Metodología para la solución de un problema por medio de computadoras:

Definición del Problema: Fase donde se da el enunciado del problema, el cual debe ser claro y complejo. Es importante que conozcamos exactamente "que se desea obtener al final del proceso"

Análisis del Problema: Fase donde se definen:o Los datos de entrada.o Los métodos y fórmulas necesarios para procesar los

datos.o Cual es la información que se desea producir (salida)

Diseño del Algoritmo: Fase donde se construye un algoritmo que resuelve el problema analizado utilizando una herramienta algorítmica (pseudocódigo o diagrama de flujo).

Metodología para la solución de un problema por medio de la computadora:

Codificación: Fase donde se escribe la solución del problema en un lenguaje de programación siguiendo la lógica del diagrama de flujo o pseudocódigo.

Prueba y Depuración: Fase donde se identifican y eliminan errores, dando paso a una solución sin errores.

Documentación: Fase donde se crean los manuales que enseñan a los usuarios el funcionamiento del programa.

Mantenimiento: Fase donde se realizan cambios, ajustes o complementaciones al programa para que siga trabajando de manera correcta.

Un algoritmo esta compuesto por: La etapa de entrada indica los datos que son

necesarios para la solución del problema en cuestión.

En la etapa de proceso o procesamiento, es donde se realizan las operaciones que tienen que ver con la solución del problema.

La etapa de salida es donde se mostrarán los resultados obtenidos en el procesamiento.

Entrada Proceso Salida

OperadoresUn operador es el símbolo que determina el tipo de operación o relación que habrá de establecerse entre los operandos para alcanzar un resultado.Los operadores se clasifican en tres tipos:

Aritméticos Relacionales Lógicos

Operadores Aritméticos

Son aquéllos que permiten la realización de cálculos aritméticos. Utilizan operandos numéricos y proporcionan resultados numéricos.

Operador Operación

+ Suma

- Resta

*Multiplicaci

ón

/ División

%Residuo de la División

^Exponencia

ción

Operadores Relacionales

Permiten realizar comparaciones de valores de tipo numérico o carácter. Sirven para expresar las condiciones en los algoritmos. Proporcionan resultados lógicos (Verdadero o Falso).

Operador Significado

< Menor que

> Mayor que

= Igual que

<= Menor o igual que

>= Mayor o igual que

<> Diferente de

Operadores Lógicos Son aquéllos que permiten la combinación

de condiciones para formar una sola expresión lógica. Utilizan operandos lógicos y proporcionan resultados lógicos también.

Operador

Relación

notNegación

(No)

andConjunció

n (Y)

orDisyunció

n (O)

Tabla de verdad Y (and)El resultado es verdadero solo

cuando ambas condiciones son verdaderas, si una o ambas son falsas el resultado será falso

Condición 1 Operador

Condición 2

Resultado

V And F F

F V F

V V V

F F F

Tabla de verdad O (or)El resultado es verdadero cuando

al menos uno de las condiciones es verdadera, y solo será falso si ambas concidiones son falsas.

Condición 1 Operador

Condición 2

Resultado

V Or F V

F V V

V V V

F F F

Tabla de Verdad No (not)

El resultado es Verdadero si la condición es Falsa y es resultado será Falso si la condición es Verdadera.

Condición OperadorResultad

o

V Or F

F V

Características de los algoritmos

Todo algoritmo debe ser:

Preciso: Debe indicar claramente los pasos y el orden en que se debe realizar cada paso.

Finito: Siempre debe tener un fin, es decir, finalizar después de realizar un número finito de pasos.

Definido: Cada paso del algoritmo debe ser claro; las acciones que se van a realizar deben ser especificas y sin ambigüedades.

Entradas: Debe tener una o más entradas (datos) necesarias para realizar el procesamiento.

Salidas: El algoritmo debe tener al menos una salida correcta (información) resultado del procesamiento.

IdentificadoresLos identificadores representan los datos de un programa (constantes, variables, tipos de datos). Un identificador es una secuencia de caracteres que sirve para identificar una posición en la memoria de la computadora y que nos permite accesar a su contenido.

Las reglas para dar nombre a un identificador son:

Debe comenzar con un carácter alfabético. Puede contener solo letras y números. No se permiten espacios en blanco. Se puede utilizar el guion bajo intermedio como separador. No utilizar como identificador ninguna palabra reservada del

lenguaje.

Variables y Constantes- Una variable es una localización en la memoria principal que almacena un dato que puede cambiar a lo largo de la ejecución del programa. Una variable tiene asociada dos cosas fundamentales: Un nombre que identifica de manera única la

localización de memoria donde se almacena el dato. Un tipo que especifica la naturaleza del dato que puede

almacenar la variable.

Según el tipo de dato de la variable podemos tener variables enteras, variables reales, variables de carácter, variables booleanas, etc.

- Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa. Un ejemplo es Pi cuyo valor es 3.1416

Pseudocódigo

Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. Las instrucciones básica para el diseño de algoritmos son:

A. Instrucción de entrada: consiste en obtener un dato de un dispositivo de entrada, como el teclado, y almacenarlo en una variable. Ejemplo:

Leer Base, Altura

B. Instrucción de asignación: consiste en asignar a una variable el valor de una fórmula, de otra variable o de una constante. Ejemplo:

Área=(Base*Altura)/2

C. Instrucción de salida: consiste en mostrar el valor de una variable en un dispositivo de salida como la pantalla o la impresora. Ejemplo:

Escribir Área

Ejemplo de Pseudocódigo

Inicio

Definir prec, pv,subt,iva,tot como Real

Escribir "Precio del producto"

Leer prec

Escribir "Productos vendidos"

Leer pv

subt<-prec*pv

iva<-subt*0.16

tot<-subt+iva

Escribir "El subtotal es ", subt

Escribir "El subtotal es ", iva

Escribir "El subtotal es ", tot

Fin

Diagrama de FlujoEs la representación gráfica de un algoritmo y sus símbolos más usados son:

Ejemplo de Diagrama de flujoInicio

Definir prec, pv, subt, iva, tot

“El subtotal es ”,subt“El iva es ”,iva

“El total es ”,tot

prec, pv

Subt prec*pvIva subt*0.16Tot subt+iva

Fin

Estructuras de Control (I)

Las estructura de control secuenciales: Son aquellas en las que las instrucciones están una a continuación de la otra siguiendo una secuencia única, sin cambios de ruta. La forma de esta estructura es la siguiente:

Estructuras de Control (II)Las estructuras de control selectivas son aquellas en donde se comparan valores, para que en base al resultado de esta comparación se siga un curso de acción dentro del programa.

Las estructuras de control selectivas se utilizan para resolver problemas donde sea necesario tomar decisiones, es decir, donde se tengan diferentes caminos para llegar a la solución de un determinado problema

Existen 2 tipos de estructuras de control selectiva:

Estructura selectiva simple Estructura selectiva doble

Estructuras de Control (III)

Las estructuras selectivas simple son aquellas en donde se ejecutan las acciones solo si la condición o prueba lógica es verdadera.

condición

acciones

V F

Pseudocódigo

Si (condición) entonces

acción1

acción 2

………

acción n

fin-si

Estructuras de Control (IV)

Las estructuras selectivas dobles son aquellas en donde se ejecutan un conjunto de acciones si la condición es verdadera y un conjunto de acciones diferente si es verdadera.

condición

Acciones-F Acciones-V

VF

Pseudocódigo

Si (condición) entonces

acciones 1

Sino

acciones 2

Fin-si

Estructuras de Control (III)Las estructuras de control cíclicas son aquellas en las que se evalúa una condición y se repite un conjunto de acciones mientras la condición sea verdadera, el ciclo termina cuando la condición se hace falsa. La forma de esta estructura es la siguiente: