algoritmos i temas 1

68
Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I Algoritmos, Estructuras y Programación I Unidad I INTRODUCCIÓN A LA LÓGICA DE PROGRAMACIÓN Y DISEÑO DE PROGRAMAS

Upload: strellaroja

Post on 07-Jun-2015

1.793 views

Category:

Documents


2 download

DESCRIPTION

INTRODUCCIÓN A LA LÓGICA DE PROGRAMACIÓN Y DISEÑO DE PROGRAMAS

TRANSCRIPT

Page 1: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Algoritmos, Estructuras y Programación I

Unidad I

INTRODUCCIÓN A LA LÓGICA DE PROGRAMACIÓN Y DISEÑO DE PROGRAMAS

Page 2: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Contenido Programático

1. Datos y tipos de datos.

2. Expresiones.

3. Operadores aritméticos, relacionales y lógicos.

4. Operación de asignación.

Page 3: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Contenido Programático

5. Pasos para resolver un problema.

• Análisis del problema• Diseño de algoritmos• Codificación y depuración• Verificación• Documentación.

6. Diseño de algoritmos• Implementación de algoritmos utilizando las

técnicas del pseudocódigo y diagrama de flujo.

Page 4: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Datos

• Dato: “Hecho o valor a partir del cual se puede inferir una conclusión; información"

• Los datos son aquello que un programa manipula. Sin datos un programa no funcionaría correctamente. Los programas manipulan datos de manera muy diferente según el tipo de dato del que se trate

Page 5: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Tipos de Datos

1. Datos Numéricos

Se llama así al conjunto de datos numéricos y son representados de distintas formas.

Tipos de Datos Numéricos 1.1 Entero (integer)

1.2 Real (real)

Page 6: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Tipos de Datos

1.1.Tipo de dato numérico entero (integer):

• Representa un subconjunto finito de los números enteros.

• El número mayor que puede representar depende del tamaño del espacio usado por el dato y la posibilidad (o no) de representar números negativos.

• Los tipos de dato entero disponibles y su tamaño dependen del lenguaje de programación usado así como la arquitectura en cuestión.

• Ejemplo: 5, 6,-15,4,2480

• Van desde el -32768 hasta el 32767

Page 7: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Tipos de Datos

1.2. Tipo de dato numérico real (real):

• Representa un subconjunto finito de los números reales.

• Los números reales siempre tienen un punto decimal y pueden ser positivos o negativos.

• Los números reales constan de una parte entera y una decimal.

• Ejemplo: 0.0006,9.3632,3.0,-8.17,-63.3387

Page 8: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Tipos de Datos

2. Datos lógicos ( Booleanos):

• Conocidos también como datos booleanos, este tipo de datos es aquel que solo admite dos tipos de valores, los que son verdadero (true) o falsos (false).

• Los dos son usados para la representación de alternativas (si/no) que se dan según la condición que se plantee, es decir, si se quiere que el programa evalué una condición determinada , esta puede ser verdadera o falsa, dependiendo de las reglas que se hayan planteado anteriormente.

Page 9: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Tipos de Datos

3. Datos tipo carácter:

• Los datos de este tipo forman un conjunto finito y ordenado que la computadora puede reconocer.

• Un dato tipo carácter contendrá solamente un carácter.

• No existe un estándar en lo que respecta al reconocimiento de caracteres , pero las computadoras pueden reconocer los siguientes caracteres:

– Caracteres alfabéticos (A,B,C,D,…….)– Caracteres numéricos (1,2,3,4,………)– Caracteres especiales (+,-,*,/,.,>,<,…,etc.)

Page 10: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Tipos de Datos

4. Datos tipo cadena• Son literalmente cualquier cadena o secuencia de

caracteres que puedan imprimirse en la pantalla.

• Un modo de representar los datos tipo carácter son , el tipo cadena (string)

• Las cadenas pueden representarse de varias formas:

– Con comillas simples:

'Esta es una cadena'

– Con comillas dobles:

"Esta otra es una cadena muy similar"

Page 11: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Tipos de Datos

4. Datos tipo cadena (Cont.)

• Podemos acceder a los caracteres individuales de una cadena al tratarla como una matriz de caracteres.

• Usualmente hay varias operaciones que el lenguaje de programación provee para ayudarnos a manipular las cadenas, tales como buscar una subcadena dentro de otra, unir dos cadenas, copiar una cadena en otra, etc.

Page 12: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Tipos de Datos

5. Tipos de datos complejos• Colecciones: Las ciencias de la Computación han

creado una disciplina en sí misma para estudiar las colecciones y sus diversos comportamientos. Algunos

de los nombres que podrás encontrar son: – Matrices o vectores: Una lista de items que pueden ser

indexados para una recuperación sencilla y rápida. Usualmente es necesario aclarar de entrada cuántos items deseamos guardar en la matriz. Por ejemplo, si tenemos un vector llamado A, podemos recuperar su tercer item escribiendo A[3].

– Listas: Una lista es una secuencia de items. La diferencia con los vectores es que una lista puede seguir creciendo al agregársele un nuevo item.

Page 13: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Tipos de Datos

5. Tipos de datos complejos (cont)

– Pilas:Las pilas de datos funcionan asi: se agrega un dato a la pila o se retira uno de ella, pero el dato retirado es siempre el último que se colocó en la pila (Last in First Out) “Ultimo en entrar Primero en salir”.

– Bolsas:Una bolsa es una colección de items sin un orden específico y que puede contener duplicados. Las bolsas tienen en general operadores que nos permiten agregar, buscar y borrar los items

– Conjunto:Un conjunto tiene la propiedad de guardar únicamente un miembro de cada item. En estos, se puede comprobar si un item pertenece al conjunto (pertenencia), y agregar, remover u obtener items o unir dos conjuntos según la teoría matemática de los conjuntos (unión, intersección, etc.).

Page 14: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Tipos de Datos

5. Tipos de datos complejos (cont)

– Cola:Una cola es similar a una pila excepto que el primer elemento de una cola es el primero en ser retirado. Esto se conoce como First In First Out ("el primero es el primero") o FIFO .

– Diccionarios:Un diccionario combina las propiedades de las listas, los conjuntos y los vectores. Es posible seguir agregando elementos (como en las listas) y también acceder a los items mediante una clave provista en el punto de inserción (como con los vectores). Debido a que el acceso a los datos se realiza por medio de una clave, ésta debe ser necesariamente única ya que si no se perdería la referencia (como en los conjuntos).

Page 15: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Tipos de Datos

5. Tipos de datos complejos (cont).

• Archivos: Como usuario de computadoras sabrás todo acerca de los archivos, la base de prácticamente todo lo que hacemos con una computadora. No es sorprendente entonces que la mayor parte de los lenguajes de programación incluyan un tipo especial de datos llamado archivo.

• Fecha y Hora: La fecha y la hora a veces se incluyen como predeterminados en algunos lenguajes. En otros casos son representados simplemente por un número alto (típicamente el número de segundos a partir de una determinada fecha u hora). Para otros lenguajes este tipo se representa de manera compleja

Page 16: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Tipos de Datos

5. Tipos de datos complejos (cont).• Tipos definidos por el usuario: En ocasiones deseamos

agrupar varios datos juntos y tratarlos como si fueran un solo elemento. Un ejemplo de esta situación podría ser la descripción de una dirección postal: la calle, el número, la ciudad y el código postal. La mayor parte de los lenguajes nos permiten agrupar estos datos en un registro o estructura.

En BASIC un registro de este tipo se realiza así:

Type

Direccion

Numero_Casa AS INTEGER

Calle AS STRING

Ciudad AS STRING

Cod_Postal AS STRING

End Type

Page 17: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Constantes

Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa.

Ejemplo: pi = 3.1416

Page 18: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Variables

• Es un espacio en la memoria de la computadora que

permite almacenar temporalmente un dato durante la ejecución de un proceso, su contenido puede cambiar durante la ejecución del programa.

• Para poder reconocer una variable en la memoria de la computadora, es necesario darle un nombre con el cual podamos identificarla dentro de un algoritmo.

Ejemplo: área = pi * radio ^ 2

Las variables son : el radio, el área y la constate es pi

Page 19: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Variables

Clasificación de las Variables

Page 20: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Variables

Clasificación de las Variables Por su contenido • Variables Numéricas: Son aquellas en las cuales se almacenan

valores numéricos, positivos o negativos, es decir almacenan números del 0 al 9, signos (+ y -) y el punto decimal. Ejemplo: iva = 0.15 pi = 3.1416 costo = 2500

• Variables Lógicas: Son aquellas que solo pueden tener dos valores (cierto o falso) estos representan el resultado de una

comparación entre otros datos. • Variables Alfanuméricas: Esta formada por caracteres

alfanuméricos (letras, números y caracteres especiales). Ejemplo: letra = ’a’ apellido = ’lopez’ dirección = ’Av. Libertad #190’

Page 21: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Variables

Clasificación de las Variables Por su uso • Variables de Trabajo: Variables que reciben el resultado de una

operación matemática completa y que se usan normalmente dentro de un programa. Ejemplo: Suma = a + b /c

• Contadores: Se utilizan para llevar el control del numero de

ocasiones en que se realiza una operación o se cumple una condición. Con los incrementos generalmente de uno en uno.

• Acumuladores: Forma que toma una variable y que sirve para llevar la suma acumulativa de una serie de valores que se van leyendo o calculando progresivamente.

Page 22: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Expresiones

• Son la combinación de constantes, variables, símbolos de

operación, paréntesis y nombres de funciones especiales. Los valores de las variables nos permitirán determinar el valor de las expresiones , debido a que estos están implicados en la operación de las operaciones indicadas. Estas constan de operandos y operadores .

• Según el tipo de objeto que manipulan , pueden clasificarse en:

– Aritméticas resultado tipo numérico– Relacionales resultado tipo lógico– Lógicas resultado tipo lógico.– Carácter resultado tipo carácter.

Page 23: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Expresiones Aritméticas

Estas expresiones son análogas a las formulas matemáticas. Las variables y constantes son numéricas ( real o entera) y las operaciones son las aritméticas.

+ suma

- resta

* multiplicación

/ división

**,^ exponenciación

div división entera

mod modulo o resto

Page 24: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Expresiones Lógicas (boolenas)

• Otro tipo de expresiones son las expresiones lógicas o

boolenas, cuyo valor es siempre verdadero o falso. Pues existen dos constantes lógicas , verdadera (true) y falsa (false), y que las variables lógicas pueden tomar solo estos dos valores , verdadero o falso.

• Estas expresiones se forman combinando constantes lógicas , variables lógicas y otras expresiones lógicas , utilizando los operadores lógicos not, and y or, y los operadores relacionales (de relación o comparación) =,<,>,<=,>=,<>.

Page 25: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Operadores aritméticos, relacionales y lógicos

Operadores Aritméticos

Operador Significado

+ Suma

- Resta

* Multiplicación

/ División

^ Exponenciación

Mod Módulo

Page 26: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Operadores aritméticos, relacionales y lógicos

Operadores Relacionales

Operador Significado

< Menor que

> Mayor que

<= Menor o igual que

>= Mayor o igual que

= Igual a

<> Distinto a, diferente de

Page 27: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Operadores aritméticos, relacionales y lógicos

Operadores Lógicos

Operadores Lógicos

Operador Descripción Resultado

A and B AND "true" si A y B son ambos verdaderos

A or B OR "true" si ambos o al menos uno de A y B son verdaderos

A == B Igualdad "true" si A y B son iguales

A <> B Desigualdad "true" si A y B NO son iguales

not B Desigualdad "true" si B no es verdadero (siendo B un valor o una expresión booleana)

Page 28: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Operadores aritméticos, relacionales y lógicos

Precedencia de Operadores

• Cuando una expresión aritmética se evalúa, el resultado es un número.  Ahora bien, cuando aparecen dos o mas expresiones aritméticas, qué operaciones se realizan primero?

• Una expresión aritmética en programación tiene una sintaxis de la forma: x2+1/2

• Hay que observar que esta expresión es totalmente deferente a esta otra (x2+1)/2, por lo que es importante codificar las expresiones aritméticas correctamente

Page 29: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Operadores aritméticos, relacionales y lógicos

Reglas de Evaluación

• Todas las subexpresiones entre paréntesis se evalúan primero.  Las subexpresiones entre paréntesis anidados se evalúan de adentro hacia afuera, es decir, que el paréntesis mas interno se evalúa primero.

• Prioridad de Operaciones:  Dentro de una misma expresión o subexpresión, los operadores se evalúan en el siguiente orden:

.

* , / Multiplicación y división

div,mod División y Modulo de enteros

+,- Suma y Resta

Page 30: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Operadores aritméticos, relacionales y lógicos

Reglas de Evaluación

Los operadores en una misma expresión o subexpresión con igual nivel de prioridad se evalúan de izquierda a derecha

.

Page 31: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Operación de Asignación

• Se utiliza para asignar o almacenar valores a

variables o constantes. Es una operación que sitúa un valor determinado en una posición de memoria. Se demuestra en pseudocódigo con el símbolo <- (Una flecha apuntando hacia el identificador, donde se desea guardar el valor.)

variable <- expresión

• El tipo de expresión debe ser del mismo tipo que el de la variable, en caso contrario en la fase de compilación se produciría un error de tipos.

Page 32: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Operación de Asignación

Reglas de Asignación

1. Una variable en el lado derecho de una sentencia de asignación debe tener un valor antes de que la sentencia de asignación se ejecute.  Hasta que un programa le da un valor a una variable, esa variable no tiene valor.

Por ejemplo:Si x no tiene un valor antes de ejecutar y <- x+1, se producirá un error lógico.

2. En la izquierda de una sentencia de asignación solo pueden existir variables.  Por consiguiente no es valido lo siguiente:Valor_Neto - Tasas <- 34015.

Page 33: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Operación de Asignación

Reglas de Asignación

Además hay que recordar que la operación de asignación es una operación destructiva debido a que el valor almacenado en una variable se pierde o se destruye y se sustituye por el nuevo valor en la sentencia de asignación.

Page 34: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Pasos para resolver un problema

• Análisis del problema

• Diseño de algoritmos

• Codificación y depuración

• Verificación

• Documentación.

Page 35: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Pasos para resolver un problema

Análisis del problema

• Esta fase requiere una clara definición donde se contemple exactamente lo que debe hacer el programa y el resultado o solución deseada.

• Dado que se busca una solución se precisan especificaciones de entrada y salida.

• Para poder definir bien un problema es conveniente responder a las siguientes preguntas:

• ¿Qué entradas se requieren? (cantidad y tipo) • ¿Cuál es la salida deseada? (cantidad y tipo) • ¿Qué método produce la salida deseada?

Page 36: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Pasos para resolver un problema

Diseño de Algoritmos

• En la fase de análisis en el proceso de programación se determina que hace el programa. En la fase de diseño se determina como hace el programa la tarea solicitada.

• Los métodos utilizados para el proceso del diseño se basan en el conocido divide y vencerás. Es decir la resolución de un problema complejo se realiza dividiendo el problema en subproblemas y a continuación dividir estos subproblemas en otros de nivel mas bajo, hasta que sea implementada una solución en la computadora. Este método se conoce técnicamente como diseño descendente (top-down) o modular.

Page 37: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Pasos para resolver un problema

Diseño de Algoritmos

• Cada programa bien diseñado consta de un programa principal (el módulo de nivel mas alto) que llama a subprogramas (módulos) de nivel mas bajo, que a su vez pueden llamar a otros subprogramas.

• Los módulos pueden ser planeados, codificados, comprobados y depurados independientemente y a continuación combinarlos entre sí. Este proceso implica la ejecución de estos pasos hasta que el programa se ha terminado:

– Programar un módulo – comprobar el módulo – Si es necesario, depurar el módulo – Combinar el módulo, con el resto de los otros módulos

Page 38: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Pasos para resolver un problema

Diseño de Algoritmos

• El diseño del algoritmo es independiente del lenguaje de programación en el que se vaya a codificar posteriormente.

Page 39: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Pasos para resolver un problema

Codificación y depuración

• Codificación: Es la escritura en un lenguaje de programación de la representación de un algoritmo. Dado que el diseño del algoritmo es independiente del lenguaje de programación utilizado en su implementación, el código puede ser escrito con igual facilidad en un lenguaje o en otro.

Page 40: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Pasos para resolver un problema

Codificación y depuración

• Compilación y ejecución: Una vez que el algoritmo se ha convertido en un programa fuente, es preciso introducirlo en memoria mediante el teclado y almacenarlo posteriormente en un disco. Esta operación se realiza con un editor de texto, posteriormente el programa fuente se convierte en un archivo de programa que se guarda en un disco.

Page 41: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Pasos para resolver un problema

Codificación y depuración

• El programa fuente debe ser traducido a lenguaje máquina. Este proceso se realiza con el compilador y el sistema operativo que se encarga prácticamente de la compilación.

• Si al compilar el programa fuente se presentan errores ( errores de compilación), es necesario volver a editar el programa, corregir los errores y compilar de nuevo. Esto se repite hasta que ya no se presenten mas errores, obteniéndose el programa objeto, el cual todavía no es ejecutable directamente.

Page 42: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Pasos para resolver un problema

Codificación y depuración

• Al ya no existir errores en el programa fuente se debe instruir al sistema operativo para que efectúe la fase de montaje o enlace, del programa fuente con las librerías del programa del compilador. Este proceso de montaje produce un programa ejecutable.

Page 43: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Pasos para resolver un problema

Codificación y depuración

• Cuando se ha creado un programa ejecutable este se puede ya ejecutar desde el sistema operativo con solo teclear su nombre.

• Suponiendo que no existen errores durante la ejecución (errores en tiempo de ejecución), se obtendrá la salida de resultados correctos del programa.

Page 44: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Pasos para resolver un problema

Verificación y depuración

• Verificación y depuración: Es el proceso de ejecución del programa con una amplia variedad de datos de entrada, llamados datos de test o prueba como son: valores normales de entrada, valores externos de entrada que comprueben los límites del programa y valores de entrada que comprueben aspectos especiales del programa. Estos determinarán si el programa contiene errores o no.

Page 45: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Pasos para resolver un problema

Verificación y depuración

Al ejecutar un programa se pueden producir tres tipos de errores:

• Errores de Compilación: Se producen normalmente por un uso incorrecto de las reglas del lenguaje de programación, suelen ser errores de sintaxis.

• Errores de Ejecución: Se producen por instrucciones que la computadora puede comprender pero no ejecutar. En estos casos se detiene la ejecución del programa y se imprime un mensaje de error. Ejemplo de esto puede ser una división por cero.

.

Page 46: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Pasos para resolver un problema

Verificación y depuración

Al ejecutar un programa se pueden producir tres tipos de errores:

• Errores Lógicos: Se producen en la lógica del programa y la fuente del error suele ser el diseño del algoritmo, son mas difíciles de detectar puesto que el programa puede funcionar y no producir errores de compilación ni de ejecución pero regresará resultados incorrectos. En este caso se debe regresar a la fase de diseño, modificar el algoritmo, cambiar el programa fuente y compilar y depurar una vez mas.

Page 47: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Pasos para resolver un problema

Documentación

• Documentación: La importancia de la documentación debe ser destacada por su influencia en la etapa final, ya que programas pobremente documentados son difíciles de leer, mas difíciles de depurar y casi imposibles de mantener y modificar.

• Puede ser interna y externa. La documentación interna es la contenida en líneas de comentarios. La documentación externa incluye análisis, diagramas de flujo y/o pseudocódigos, manuales de usuarios con instrucciones para ejecutar el programa y para interpretar los resultados.

Page 48: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Pasos para resolver un problema

Documentación

• La documentación es vital cuando se desea corregir posibles errores futuros o bien cambiar el programa. Estos cambios se denominan mantenimiento del programa.

• Además es de buena costumbre para todo buen programador, dejar comentado su código, esto es para que el futuro programador pueda darle mantenimiento fácilmente a el programa, o incluso, si es el mismo creador quien debe darle mantenimiento.

Page 49: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Diseño de Algoritmos

• El Sistema para escribir un algoritmo consiste

en hacer una descripción paso a paso con un lenguaje natural del citado algoritmo. Siendo estos un conjunto de pasos para resolver un problema.

• Estos tienen las siguientes propiedades :• Deberán seguir una secuencia definida por pasos

hasta obtener un resultado distinto.• Podrán ejecutarse cada vez que se requiera para

distintos datos.

Page 50: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Diseño de Algoritmos

Representación grafica de los Algoritmos

• La representación de un algoritmo se logra mediante la independizacion de este, del lenguaje de programación elegido. Con esto se logra que pueda ser representado en cualquier lenguaje . Para ello debe ser representado grafica y numéricamente , así cualquier lenguaje de programación será capaz de interpretar su codificación.

Page 51: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Diseño de Algoritmos

Representación grafica de los Algoritmos

• Un algoritmo se representa tomando las siguientes consideraciones:

• Diagrama de Flujo

• Diagrama Nassi- Schneiderman

• Pseudocódigo

• Lenguaje español

• Formulas

Page 52: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Diseño de Algoritmos

Pseudocódigo

– Es un lenguaje muy parecido al lenguaje utilizado para escribir programas por computadora, es decir, un lenguaje de pseudoprogramación.

– El pseudocódigo se concibió para superar las dos principales limitaciones de los lenguajes algorítmicos gráficos: son lentos de crear y difíciles de modificar sin un nuevo dibujo.

– Por otra parte, el pseudocódigo es más fácil de utilizar ya que es similar al nuestro, es una mezcla de lenguaje natural y símbolos, términos y otras características

utilizadas en lenguajes de alto nivel (palabras reservadas).

Page 53: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Diseño de Algoritmos

Pseudocódigo

Las principales características de los pseudocódigos son:

1. Utilizan los operadores Aritméticos, Relacionales y Lógicos.

2. Los nombres de sus identificadores (variables, constantes, nombre del pseudocódigo, etc.), deben cumplir con las reglas para la creación de los mismos.

3. Se pueden incluir comentarios dentro del pseudocódigo para hacerlo más entendible, utilizando dos diagonales invertidas [\\].

4. Se debe dejar una indentación (sangría o margen) en los bloques de instrucciones.

Page 54: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Diseño de Algoritmos

5. Usa ciertas palabras claves (reservadas) utilizadas de

modo general en los diferentes lenguajes de programación:

PSEUDOCÓDIGO, VARIABLES, INICIO, FIN, LEE, ESCRIBE, IMPRIME, IF_THEN_ELSE, CASE OF, FOR DO, WHILE DO REPEAT UNTIL, ARRAY.

6. Deben iniciar con el nombre del pseudocódigo, seguido de la declaración de variables y luego el cuerpo del pseudocódigo:

PSEUDOCÓDIGO nombre

DECLARACIONES DE VARIABLES

INICIO

           \\ CUERPO DEL PSEUDOCÓDIGO

FIN

Page 55: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Diseño de Algoritmos

– Ejemplo: Diseñe un pseudocódigo que lea 3 números,

los sume e imprima su resultado.

PSEUDOCÓDIGO sumatoria

VARIABLES

    eN1, eN2, eN3, eSuma: Entero

INICIO

    ESCRIBE ?Dame tres números:?

    LEE eN1, eN2, eN3

    eSuma = eN1 + eN2 + eN3

    ESCRIBE ?El resultado de la suma es: ?, eSuma

FIN

Page 56: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Diseño de Algoritmos

– Otro Ejemplo de Pseudocodigo:

Algoritmo Superficie_Circunferenciaconst     PI = 3.14var     entero: radio, s

inicio   leer( radio )   s = PI * radio * radio   escribir( “La superficie de la circunferencia de radio”, radio, “es igual a “, s )

Fin_algoritmo

Page 57: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Diseño de Algoritmos

Diagrama de Flujo (DFD)

– Es aquel diagrama que utiliza símbolos estándar y en el que cada paso del algoritmo se visualiza dentro del símbolo adecuado y el orden en que los pasos se ejecutan se indica conectándolos con flechas llamadas "líneas de flujo" porque indican el flujo lógico del algoritmo.

– Es un medio de presentación visual y gráfica del flujo de datos, las operaciones ejecutadas y la secuencia en que se ejecutan dentro del algoritmo.

Page 58: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Diseño de Algoritmos

Algunos símbolos usados

A: Inicio / Fin Representa el inicio o el fin de un programa.

B: Entrada / Salida Representa cualquier tipo de introducción de datos o salida de información a la pantalla.

C: Proceso Indica cualquier tipo de operación que pueda originar un cambio de valor, operaciones aritméticas, etc.

D: Desición

Indica operaciones lógicas de comparación de valores. En función al resultado de la misma se determinará el camino a seguir.

E: Conector Enlaza dos partes de un diagrama de flujo.

F: Líneas de Flujo Muestran el sentido de ejecución de las operaciones.

G: Impresora Se usa como símbolo de salida de información a través de impresora.

Page 59: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Diseño de Algoritmos

• Ejemplo: Diseñe un diagrama de flujo que lea 3

números, los sume e imprima el resultado.

Page 60: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Diseño de Algoritmos

• Las estructuras condicionales simples se les

conoce como “Tomas de decisión”. Estas tomas de decisión tienen la siguiente forma:

Pseudocódigo: Diagrama de flujo:

Page 61: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Diseño de Algoritmos

• Las estructuras condicionales dobles permiten

elegir entre dos opciones o alternativas posibles en función del cumplimiento o no de una determinada condición. Se representa de la siguiente forma:

Pseudocódigo: Diagrama de flujo:

Page 62: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Diseño de Algoritmos

• Las estructuras de comparación múltiples, son

tomas de decisión especializadas que permiten comparar una variable contra distintos posibles resultados, ejecutando para cada caso una serie de instrucciones especificas. La forma común es la siguiente:

Pseudocódigo: Diagrama de flujo:

Page 63: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Diseño de Algoritmos

• Realizar un algoritmo en donde se pide la edad del usuario;

si es mayor de edad debe aparecer un mensaje indicándolo. Expresarlo en Pseudocódigo y Diagrama de flujos. :

Pseudocódigo: Diagrama de flujo:

Page 64: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Diseño de Algoritmos

• Se pide leer tres notas del alumno, calcular su definitiva en

un rango de 0-5 y enviar un mensaje donde diga si el alumno aprobó o reprobó el curso. Exprese el algoritmo usando Pseudocódigo y diagrama de flujos. . : Pseudocódigo:

INICIO    Not1, Not2, Not 3 :REAL    Def: REAL ESCRIBA ( “ Introduzca las notas”)   LEA Not1, Not2, Not3    Def = (Not1 + Not2 + Not3) /3    Si Def < 3 entonces       Escriba “Reprobó el curso”    Sino       Escriba “Aprobó el curso”    Fin-Si FIN

Page 65: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Diseño de Algoritmos

Diagrama de flujo:

Page 66: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Diseño de Algoritmos

• Se desea escribir un algoritmo que pida la altura de una persona, si la altura es menor o igual a 150 cm envíe el mensaje: “Persona de altura baja”; si la altura está entre 151 y 170 escriba el mensaje: “Persona de altura media” y si la altura es mayor al 171 escriba el mensaje: “Persona alta”.

Exprese el algoritmo usando Pseudocódigo y diagrama de flujos.

Page 67: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Diseño de Algoritmos

Pseuocódigo

INICIO    Altura: ENTERO    ESCRIBA “Cuál es tu altura? ”    LEA Altura    Si Altura <=150 entonces       ESCRIBA “persona de altura baja”    Sino       Si Altura <=170 entonces          ESCRIBA “persona de altura media”       Sino          Si Altura>170 ENTONCES             ESCRIBA “persona alta”          Fin-Si       Fin-Si    Fin-Si FIN

Page 68: Algoritmos i Temas 1

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I

Diseño de Algoritmos

Diagrama de Flujo