Documente Academic
Documente Profesional
Documente Cultură
Secuencia de pasos que describen el mtodo para resolver un problema La ejecucin de un algoritmo implica la ejecucin de cada uno de sus pasos La resolucin de un problema exige el diseo del algoritmo adecuado
2.1 Algoritmos 2.2.1.- CONCEPTO DE ALGORITMO Pasos para resolver un problema en un ordenador:
1. 2. 3. 4.
Anlisis del problema Diseo del algoritmo Codificacin Traduccin, Validacin y Ejecucin
Acciones bien definidas Secuencia finita de operaciones en un orden determinado Debe acabar en un tiempo finito
Un algoritmo es una secuencia finita de operaciones bien definidas que resuelven un problema, cada una de las cuales requieren una cantidad finita de memoria y se realiza en un tiempo finito. BONDAD de un ALGORITMO: Factores que la determinan:
2.1 Algoritmos 2.2.1.- Ejemplos de diseo de un algoritmo Un cliente realiza un pedido a una fbrica. La fbrica examina la ficha del cliente, para comprobar si este es o no solvente antes de enviar el pedido.
1. 2. 3. 4. 5. 6.
Inicio. Leer el pedido. Examinar la ficha del cliente. Si el cliente es solvente, aceptar pedido; en caso contrario, rechazar pedido. Fin.
2.1 Algoritmos 2.2.1.- Ejemplos de diseo de un algoritmo Suma de los nmeros pares entre 2 y 1000. 2+4+6+8+...+1000. SUMA y NUMERO
1. 2. 3. 4.
Inicio. Inicializar SUMA a 0. Inicializar NUMERO a 2. Sumar NUMERO a SUMA. El resultado ser el nuevo valor de SUMA. Incrementar NUMERO en 2 unidades. Si NUMERO <= 1000 ir al paso 4; en caso contrario, escribir el valor de SUMA y terminar el proceso. Fin.
5. 6.
7.
Definicin Representacin de los datos Entradas Salidas Descomposicin en subproblemas Diseo descendente Refinamientos sucesivos Optimizacin y Depuracin Eleccin del lenguaje Adaptacin al problema Conocimientos Disponibilidad de rutinas Herramientas de desarrollo Entorno de la aplicacin Codificacin (normas de estilo) Traduccin Prueba y Depuracin
2.
3.
Implementacin
4.
Ejecucin
Datos: Objetos con los cules opera un ordenador Datos de entrada Instrucciones Datos de salida El diseo de la estructura de datos es tan importante como el diseo del algoritmo Tipos de datos:
Simples
numrico
entero real
lgico carcter
Estructurados
2.3.2.- Datos numricos Enteros: subconjunto finito de los enteros ( Rango : de 32768 a 32768) Reales: subconjunto de los nmeros reales Notacin exponencial o cientfica:
367520100000000000000 3.675201 x 1020 .0000000000302579 3.02579 x 10-11 36.75201 x 1018 36.75201 mantisa 18 exponente
10
2.3.- Datos, Tipos de Datos y Operaciones Primitivas 2.3.2.- Datos lgicos (booleano) Posibles valores:
Verdadero (true) Falso (false) alfabticos (A, B, C, ..., Z) (a, b, c, ..., z) numricos (1, 2, 3, ..., 9, 0) especiales (+, -, *, /, ^, ., ;, <, > $, ...)
En algunos lenguajes existe el tipo cadena como tipo de dato simple Ej/ Hola
11
2.4.- Variables y Expresiones 2.4.1.- Variables y Constantes Constante: objeto que contiene un valor que no vara durante la ejecucin del programa.
Identificador : nombre que identifica a una constante Tipo : Determinado por el valor que almacena. enteras, reales, carcter y lgicas Ej/ 20, 1.44, B, Pepe.
Definicin:
const PI = 3.1416
12
Variable: objeto que contiene un valor que puede variar durante la ejecucin del programa
Identificador : nombre que identifica a la variable. Ej /notas Tipo : No cambia. Determina el tipo del valor que almacenar la variable y la operaciones que se pueden realizar con ella. enteras, reales, carcter y lgicas
13
Formato
Identificador_de_variable expresin Notas 8 Notas 5 El valor que tuviera la variable antes de la operacin de asignacin desaparece
14
15
16
Asignacin de cadena
var cadena: cad ...... cad Hola que tal
17
((cuadrado(8) * p 4) / 2 3 * 5) + d * 3
Segn el tipo de datos de los elementos de la expresin, sta puede ser: aritmtica, cuyo resultado es de tipo numrico; lgica, cuyo resultado es de tipo lgico y carcter, siendo su resultado de tipo carcter.
18
Expresiones Aritmticas Operador + * / div mod Significado suma resta multiplicacin divisin real divisin entera resto (mdulo)
19
1.
2.
operador unario operadores *, /, div, mod (todos tienen la misma prioridad) operadores +, - (ambos presentan la misma prioridad) Si en una expresin, encerrada o no entre parntesis, aparece ms de un operador con la misma prioridad se evaluar de izquierda a derecha.
20
a) 2 * 5 + 4*3 10 + 4*3 10 + 12 22
b) 3 + 2 *6 8 / 2 3 + 12 8 / 2 3 + 12 4 15 4 11
c) 4 / 2 * 2 3 + 5 2 * 2 3 + 5 4 3 + 5 7 + 5 2
21
Operadores.
Expresiones lgicas: Se combinan constantes lgicas, variables lgicas y otras expresiones lgicas, utilizando los operadores lgicos y los operadores relacionales.
22
Expresiones lgicas:
Operadores relacionales Comparaciones entre valores de tipo numrico, carcter o lgico, y el resultado ser verdadero o falso. Con estos operadores se pueden expresar condiciones en los algoritmos, de las cuales depender la realizacin de ciertas tareas.
23
Expresiones lgicas:
Operador Significado < > = menor que mayor que igual que menor o igual que mayor o igual que distinto de
Operadores relacionales
24
25
Expresiones lgicas:
Operadores lgicos Operador lgico no y Tablas de verdad: no: p verdadero falso Significado negacin de p conjuncin de p y q disyuncin de p y q Expresin lgica no p pyq pq
no p falso verdadero
26
Operadores lgicos
q verdadero falso verdadero falso pyq verdadero falso falso falso
Y:
p y q es verdadero slo si p y q son verdadero. : p verdadero verdadero falso falso q verdadero falso verdadero falso pq verdadero verdadero verdadero falso
27
Escritura Escribir(cadena)
Ejemplos: escribir(Hola, que tal) escribir la cadena: Hola, que tal escribir(El valor de la variable a es: , a), suponiendo que el valor almacenado en la variable a sea igual a 3, visualizar: El valor de la variable a es 3.
28
29
Similar al lenguaje hablado. No sigue ninguna norma ni estructura en su representacin. No es adecuado por su ambigedad y falta de precisin.
30
Parecido al lenguaje natural, pero est sujeto a determinadas reglas Estructura es similar a la de un programa, lo que facilita su traduccin a lenguaje de alto nivel.
Es un punto intermedio entre el lenguaje natural y el lenguaje de alto nivel. Es bastante apropiado si se utiliza un lenguaje de programacin estructurado por la similitud que existe entre ellos.
Esta herramienta de diseo de algoritmos permite la posibilidad de describir tipos de datos, constantes, variables y cualquier tipo de expresin, adems de instrucciones de entrada y salida e instrucciones de control.
31
32
Claridad en la comprensin Dificultad en la actualizacin Se usan unos smbolos que contienen las instrucciones del algoritmo, estos smbolos se enlazan mediante flechas que indican el flujo, el orden o secuencia en el que deben ir realizndose las operaciones. Diagrama del Sistema u Organigrama: muestra un esquema de la aplicacin segn los datos de E/S y los soportes donde se encuentran Diagrama de Detalles u Ordinograma: Se describe toda la secuencia de operaciones que resuelven el problema. Se debe expresar el Comienzo, el fin, las operaciones y la secuencia.
33
El indicador de comienzo y fin del algoritmo slo puede aparecer una vez. El comienzo del algoritmo debe estar en la parte superior. El flujo de informacin debe aparecer de arriba hacia abajo y de izquierda a derecha. Las lneas de flujo no deben cruzarse, para ello se utilizan los conectores o bien para la misma pgina o bien para pginas distintas. No pueden existir cruces de lneas de flujo entre operaciones unidas por conectores, stas tambin se unen con conectores. No debe hacerse mucho uso de comentarios.
34
NO
SI
35
Lnea de flujo. Indica en el sentido en el que se van a realizar las operaciones. Lnea conectora. Se usa para unir dos objetos.
36
Combinacin de pseudocdigo y diagrama de flujo Las instrucciones se sitan en rectngulos Poco usado
Nombre del algoritmo Accin 1 Accin 2 . . . Accin n Fin_algoritmo
37
Ejemplo Ilustrativo
Siguiendo los pasos para la realizacin de un programa y utilizando todos los mtodos de descripcin de algoritmos estudiados se desea resolver el siguiente problema:
escriba la
38
Ejemplo Ilustrativo
1.- Planteamiento y anlisis del problema
Salidas
Recursos:
Longitud= 2Radio rea= Radio2 Volumen: 4/3Radio3
39
1) 2) 3) 4) 5)
40
Inicio. Leer Radio. Calcular Longitud Calcular Superficie Calcular Volumen Escribir Longitud, Superficie y Volumen. Fin.
41
Inicio. Leer Radio. Longitud= 2*3.1416*Radio Superficie = 3.1416*(Radio*Radio) Volumen= 4/3*3.1416*(Radio*Radio*Radio) Escribir Longitud, Superficie y Volumen. Fin.
42
leer (radio)
Longitud = 2* 3.1416* Radio rea = 3.1416* Radio*Radio Volumen = 4/3* 3.1416* Radio*Radio*Radio
Fin
43
Fin
44
Descripcin en Pseudocdigo
//Algoritmo que calcula la longitud de una circunferencia, //el rea del crculo y el volumen de la esfera. Algoritmo Clculos const PI= 3.1416 var real: radio, longitud, area, volumen inicio leer(radio) longitud 2* PI*radio area 2* PI* (radio* radio) volumen (4/3) * PI *(radio*radio*radio) escribir(La longitud de la circunferencia es igual a, longitud, El rea del crculo es, area, El volumen de la esfera es, volumen) fin_algoritmo
45
Lenguaje C
/*Algoritmo que calcula la longitud de una circunferencia, el rea del crculo y el volumen de la esfera.*/ #include <stdio.h> #define PI 3.1416 int main() { float radio, longitud, area, volumen; printf(Introduzca el radio); scanf(%f,&radio); longitud = 2* PI*radio; area = 2* PI* (radio* radio); volumen= 4/3 * PI *(radio*radio*radio); printf(La longitud de la circunferencia es igual a %f, El rea del crculo es %f y El volumen de la esfera es %f, longitud, area, volumen); }
46