Documentos de Académico
Documentos de Profesional
Documentos de Cultura
QU ES UN PROBLEMA?
ALGORITMO
Podemos definir algoritmo como un "conjunto de reglas operacionales inherentes a un cmputo". Se trata de un mtodo sistemtico, susceptible de ser realizado mecnicamente, para resolver un problema dado. Hay que hacer nfasis en dos aspectos para que un algoritmo exista:
1. El nmero de pasos debe ser finito. De esta manera el algoritmo debe terminar en un tiempo finito con la solucin del problema, 2. El algoritmo debe ser capaz de determinar la solucin del problema.
3
CARACTERSTICAS DE UN ALGORITMO
1. Entrada: definir lo que necesita el algoritmo 2. Salida: definir lo que produce. 3. No ambiguo: explcito, siempre sabe qu comando ejecutar. 4. Finito: El algoritmo termina en un nmero finito de pasos. 5. Correcto: Hace lo que se supone que debe hacer. La solucin es correcta 6. Efectividad: Cada instruccin se completa en tiempo finito. Cada instruccin debe ser lo suficientemente bsica como para que en principio pueda ser ejecutada por cualquier persona usando papel y lpiz. 7. General: Debe ser lo suficientemente general como para contemplar todos los casos de entrada.
ALGORITMO
As podemos, decir que un Algoritmo es un conjunto finito de instrucciones precisas para resolver un problema. El algoritmo ms famoso de la historia procede de un tiempo anterior al de los antiguos griegos: el algoritmo de Euclides para calcular el mximo comn divisor de dos enteros. Si el problema es visto como una funcin, entonces el algoritmo toma una entrada y la transforma en la salida.
Un algoritmo puede ser caracterizado por una funcin lo cual asocia una salida: s= f (E) a cada entrada E.
Se dice entonces que un algoritmo calcula una funcin f. Entonces la entrada es una variable independiente bsica en relacin a la que se producen las salidas del algoritmo, y tambin los anlisis de tiempo y espacio.
Un programa consiste en la especificacin formal de un algoritmo por medio de un lenguaje de programacin, de forma que pueda ser ejecutado por una computadora
La fase de planteamiento del problema lo que pretende un algoritmo es sintetizar de alguna forma una tarea, clculo o mecanismo antes de ser transcrito al computador (anlisis previo del problema, primera visin de solucin, resultados parciales y totales, etc)
10
11
ALGORITMIA
La algoritmia es el estudio sistemtico del diseo y anlisis de algoritmos.
12
Programacin lgica
estructurada,
de
objetos,
funcional,
13
14
15
16
En la tercera etapa, se elige una aplicacin para cada tipo de dato abstracto y se escribe el procedimiento que corresponde a cada operacin de ese tipo. Tambin se reemplaza por cdigo en lenguaje de programacin toda la proposicin informal que quede en el algoritmo en seudolenguaje. El resultado ser un programa ejecutable.
17
TIPO DE DATO
El tipo de datos de una variable es el conjunto de valores que sta puede tomar. Los tipos de datos bsicos varan de un lenguaje a otro. Las reglas para construir tipos de datos compuestos a partir de los datos bsicos tambin varan de un lenguaje a otro.
18
Un TDA es un modelo matemtico, junto con varias operaciones definidas sobre ese modelo. Se disean los algoritmos en funcin de un TDA, debe de encontrarse una manera de representar los TDA en funcin de los tipos de datos y las operaciones manejados por un lenguaje establecido. Para representar el modelo matemtico bsico de un TDA, se emplean estructuras de datos que son conjunto de variables, quiz de tipos distintos, conectadas entre s de diversas formas.
19
ALGORITMO DE EUCLIDES
Permite obtener el m.c.d. de dos nmeros: Sean a, b los nmeros ( a > b ) Procedimiento 1 ) Se efecta la divisin entera a : b y obtenemos un cociente c1 y un resto r1 2 ) Se efecta la divisin del divisor b entre el resto r1 y obtenemos un cociente c2 y un resto r2 3 ) Se divide r1 entre r2 y obtenemos c3 y r3 Y as reiteradamente hasta llegar a una divisin exacta, de resto cero. Conclusin: el ltimo divisor empleado es el m.c.d.
20
ALGORITMO MCD
Inicio
variables m, n, r de tipo entero
obtener (m, n)
r = m mod n while (r 0) do m=n n=r r = m mod n end while imprimir (n)
Fin
21
2366 dividido entre 273 es 8 y sobran 182 mcd(2366,273) = mcd(273,182) 273 dividido entre 182 es 1 y sobran 91 182 dividido entre 91 es 2 y sobra 0 mcd(273,182) = mcd(182,91) mcd(182,91) = mcd(91,0)
22
#include using namespace std; int mcd(int x , int y){ int t; x = (x < 0) ? -x:x; y = (y < 0) ? -y:y; t = (x < y) ? x : y; while ( (x % t) || (y % t)) --t; return t; } int euc(int x,int y){ return (!y) ? x : euc(y,x%y); }
int main() { int x,y; cout << "x: "; cin >> x; cout << "y: "; cin >> y; cout << "MCD: " << mcd(x,y) << endl; cout << "MCD (euclides): " << euc(x,y) << endl; }
CDIGO
23