Documente Academic
Documente Profesional
Documente Cultură
[...] Las escaleras se suben de frente, pues hacia atrs o de costado resultan particularmente incmodas. La actitud natural consiste en mantenerse de pie, los brazos colgando sin esfuerzo, la cabeza erguida aunque no tanto que los ojos dejen de ver los peldaos inmediatamente superiores al que se pisa, y respirando lenta y regularmente. Para subir una escalera se comienza por levantar esa parte del cuerpo situada a la derecha abajo, envuelta casi siempre en cuero o gamuza, y que salvo excepciones cabe exactamente en el escaln. Puesta en el primer peldao dicha parte, que para abreviar llamaremos pie, se recoge la parte equivalente de la izquierda (tambin llamada pie, pero que no ha de confundirse con el pie antes citado), y llevndola a la altura del pie, se le hace seguir hasta colocarla en el segundo peldao, con lo cual en ste descansar el pie, y en el primero descansar el pie. (Los primeros peldaos son siempre los ms difciles, hasta adquirir la coordinacin necesaria. La coincidencia de nombre entre el pie y el pie hace difcil la explicacin. Cudese especialmente de no levantar al mismo tiempo el pie y el pie). Llegando en esta forma al segundo peldao, basta repetir alternadamente los movimientos hasta encontrarse con el final de la escalera. Se sale de ella fcilmente, con un ligero golpe de taln que la fija en su sitio, del que no se mover hasta el momento del descenso
1 2
Julio Cortzar (Historias de Cronopios y de Famas). Simone Ortega (1080 recetas de cocina).
Sean AB y CD dos nmeros cualesquiera no primos entre s. Es preciso hallar la comn divisor) de AB y CD. medida comn mxima (mximo
Si CD mide (divide) a AB, como se mide tambin a s mismo, entonces CD es medida comn de CD y AB. Y est claro que tambin es la mxima, pues ninguna mayor que CD medir a CD. Sin embargo, si CD no mide a AB, entonces, restndose sucesivamente el menor de los AB y CD del mayor, quedar un nmero que medir al anterior. No quedar una unidad: porque en otro caso AB y CD seran primos entre s [VII, 1], lo que contradice la hiptesis de partida.
As pues, quedar un nmero que medir al anterior. Ahora bien, CD, al medir a BE, deja EA menor que l mismo, y EA, al medir a DZ, deje ZC menor que l mismo, y medir CZ a AE. As pues, como CZ mide a AE, y AE mide a DZ, entonces CZ medir tambin a DZ; pero se mide tambin a s mismo; entonces medir tambin al total CD. Como CD mide a BE entonces CZ mide a BE; y mide tambin a EA; por tanto medir tambin al total BA; al medir tambin a CD; entonces CZ mide a AB y CD. Por tanto, CZ es medida comn a AB y CD. Tambin en esta ocasin es la mxima. Pues, si CZ no es la medida comn mxima de AB y CD, un nmero que sea mayor que CZ medir a los nmeros AB, GD. Supongamos que existe y se denomina H. Si H mide a CD y CD mide a BE, entonces H mide tambin a BE; pero tambin mide al total BA; entonces medir tambin al resto AE. Pero AE mide a DZ; por tanto, H medir a DZ y mide tambin al total DC; luego medir tambin al resto CZ, esto es: el mayor al menor, lo cual es imposible; as pues, no medir a los nmeros AB y CD un nmero que sea mayor que CZ. Por consiguiente, CZ es la medida comn mxima de AB y CD.A partir de esto queda claro que, si un nmero mide a dos nmeros, medir tambin a su medida comn mxima.
Algoritmos. Introduccin
n
Objetivo asignatura:
n n
Ejemplos de algoritmos:
n
Obvio a posteriori: instrucciones para subir una escalera (Julio Cortazar). De andar por casa: receta de la tortilla de patatas. Infantil: multiplicacin de nmeros enteros con lpiz y papel. Clsico: mtodo de Euclides para hallar el M.C.D. de dos nmeros.
3
Un algoritmo:
n n
n n
Resuelve un problema especfico. Es ejecutado por una entidad en un entorno dado. Consta de una serie de pasos que deben llevarse a cabo siguiendo una secuencia marcada. Se aplica de forma mecnica. Termina en un tiempo finito.
4
Algoritmos. Definicin
ALGORITMO ES...
Un algoritmo es una secuencia de pasos que es llevada a cabo de forma mecnica y sistemtica por un actor que se desenvuelve en un entorno dado para resolver un problema determinado en un tiempo finito.
OTRA DEFINICIN...
Un algoritmo es una combinacin de instrucciones combinadas de forma adecuada para resolver un determinado problema en una cantidad finita de tiempo. Cada instruccin es una indicacin sencilla y no ambigua.
Algoritmos. Etimologa
n
El trmino ALGORITMO deriva del nombbre de Mahommed ibn Musa al-Khowrizm (matemtico S.IX) Introdujo el sistema de numeracin actual (hind) y el lgebra. Describi las reglas de las operaciones aritmticas que se denominaron reglas de alKhowrizm y deformaron en algoritmos.
6
3000 AC: baco. 1274: Ramn Llull, dispositivos demostraciones lgicas. 1500: Leonardo DaVinci, mquinas de calcular mecnicas. 1624: Schickard desarroll una calculadora con 4 operaciones bsicas. 1671: Leibniz construy una calculadora con las 4 operaciones ms la raz cuadrada. 1830: Babbage diseo una computadora programable impulsada a vapor. Su colaboradora, Ada Lovelace, escribi programas para la mquina.
Cocinero. Computador. Huevos, patatas, cebolla... Datos. Cascar, batir, pelar, freir... Sumar, restar, comparar, asignar...
Algoritmos resuelven problemas interesante compartir algoritmos. Formas de describir los algoritmos:
n n n n
4.
5.
Definir los coeficientes de la ecuacin de segundo grado: a, b y c. Determinar el valor del discriminante: b2-4ac. Si el discriminante es cero slo hay una solucin: -b/(2a). Si el discriminante es positivo pero no cero hay dos soluciones: (-bdiscr)/(2a). Si el discriminante es negativo no hay soluciones reales.
10
Lenguaje natural:
n n
No es universal (mltiples idiomas). Es ambiguo y susceptible de errores. Es demasiado amplio (una instruccin es sencilla para unas personas y compleja para otras).
11
Organigramas (ejemplo)
n
COMENZAR
Ventajas:
n n n n
Smbolos universales. Menos ambiguos. Pocos smbolos bien delimitados. Ms cercanos al ordenador. Smbolos no intuitivos. Texto sigue siendo lenguaje natural. Representacin tediosa (y confusa). Intiles para el ordenador.
LEER a
LEER b
Inconvenientes:
n n n n
LEER c
discr b2-4ac
SI discr = 0
s -b/(2a)
NO
SI discr > 0
s1 ( - b+ d i s c r ) / ( 2 a ) s2 ( - b- discr)/(2a)
NO
F I N
12
Pseudocdigo (ejemplo):
escribir Deme los coeficientes y resolver una ecuacin de 2 g escribir Cunto vale A? leer a escribir Cunto vale B? leer b escribir Cunto vale C? leer c discr b2-4ac si discr=0 entonces s -b/(2a) escribir Slo hay una solucin:, s si no si discr>0 entonces s1 (-b+discr)/(2a) s2 (-b-discr)/(2a) escribir Las soluciones son:, s1, s2 si no escribir No hay soluciones reales. fin_si fin_si
13
Pseudocdigo:
n n n
Es fcilmente comprensible. Est bien delimitado. Elimina las ambigedades del lenguaje natural. Es compacto.
14
15
Lenguajes de programacin:
n n
n n
Estn bien delimitados. Eliminan las ambigedades del lenguaje natural. Son compactos. Comprensibles por un ordenador y por una persona.
16
Algoritmos. Desarrollo/Implementacin
n
17
Algoritmos. Desarrollo/Implementacin
Ejemplo. Anlisis y diseo
Enunciado: Proporcionar un algoritmo que determine si un ao indicado por el usuario es bisiesto. Entrada: Proceso: Salida: El usuario debera introducir un ao, un ao es un nmero entero positivo. Un ao es bisiesto si es mltiplo de 4 pero no de 100, la excepcin son los aos mltiplos de 400. Hay dos posibles salidas: El ao es bisiesto y El ao no es bisiesto.
Condiciones de error: Si el dato introducido no es vlido (nmero negativo o cero) debera indicarse: Dato no vlido. Nivel 1 Nivel 2 Determinar si un ao indicado por el usuario es o no un ao bisiesto. 2.1. Solicitar un ao al usuario. 2.2. Determinar si el ao es bisiesto o no. 2.3. Indicar al usuario el resultado obtenido. 2.1.1. Dar un mensaje al usuario solicitando un ao. 2.1.2. Leer el ao. 2.1.3. Si el ao no es vlido indicrselo al usuario. 2.2.1. Si el ao no es mltiplo de 4 no es bisiesto. 2.2.2. Si el ao es mltiplo de 4 pero no de 100 es bisiesto. 2.2.3. Si el ao es mltiplo de 400 es bisiesto. 2.3.1. Si el ao es bisiesto dar el mensaje El ao es bisiesto. 2.3.2. Si el ao no es bisiesto dar el mensaje El ao no es bisiesto.
Nivel 3
18
Algoritmos. Desarrollo/Implementacin
n
19
Algoritmos. Desarrollo/Implementacin
n
Determinar si el ao es bisiesto o no
20
10
Algoritmos. Desarrollo/Implementacin
n
21
Algoritmos. Desarrollo/Implementacin
n
program anno_bisiesto integer anno logical bisiesto print *,'Por favor, deme un ao' read *,anno if (anno<=0) then print *,'El ao no es vlido' else if (mod(anno,4)==0) then if ((mod(anno,400))==0) then bisiesto=.true. else if ((mod(anno,100))==0) then bisiesto=.false. else bisiesto=.true. end if end if end if if (bisiesto) then print *,'El ao es bisiesto' else print *,'El ao no es bisiesto' end if end if end
22
11
Accin. Indicador (variable). Informacin. Estado. Datos/Resultados. Lxico. Tipo de datos. Operador.
23
Variables:
n n
n n n
Nombres formados por caracteres alfanumricos. Excluyendo (..., ..., , y espacio en blanco). No empiezan por nmero. No sensibles a maysculas. Ejemplos vlidos: v, aceleracion, K, v1, b_n, Pot, ... Ejemplos no vlidos: 1n, ao , p v , aceleracin , ...
24
12
Tipos de datos:
n
entero:
n n
Subconjunto (rango) de Z. Operaciones: suma(+), resta(-), producto(*), divisin entera(div) y resto(mod). Subconjunto (rango) de R. Operaciones: suma(+), resta(-), producto(*), divisin(/), raz cuadrada, logaritmos, exponenciacin, potenciacin y trigonomtricas. Dos valores: verdadero y falso . Operaciones lgica booleana: and/ , or / y not /. Conjunto de caracteres imprimibles (letras, nmeros y smbolos de puntuacin). Subconjuntos de letras y nmeros ordenados. Operaciones: concatenacin de cadenas (+). 25
real:
n n
logico:
n n
caracter :
n
n n
Comparacin:
n n
Admitidas por todos los tipos. Mayor(> ), menor(< ), mayor o igual( ), menor o igual( ), igual(= ) y distinto( ). El resultado de estas operaciones es de tipo logico. El operador se emplea de la forma izquierda derecha El elemento de la izquierda es una variable y el de la derecha una expresin cuyo valor es almacenado en dicha variable. Los tipos de ambos elementos deben ser compatibles.
Asignacin:
n
26
13
Literales:
n n n n
Expresin de valor constante de cualquier tipo. Literales de tipo entero : 45, 0, -17, ... Literales de tipo real: 3.1415 , -5.24e10, ... Literales de tipo caracter : E, algo de texto, ... Identificador que referencia un literal. Forma de definir una constante: constante literal
27
Constantes:
n n
Expresiones aritmticas: 2 * pi * r V * t Expresiones lgicas: (a > 5) and (a < 10) Expresiones de tipo caracter : Sub + cadena
28
14
Entrada/salida:
n n n
Permite interaccin con usuario. Dos operaciones: leer y escribir. Forma de uso:
n n
La primera lee un valor por teclado y lo almacena en la variable y la segunda muestra el valor de la expresin por pantalla.
29
15
Ejemplo: algoritmo que lee una longitud expresada en cm por teclado y la convierte a pulgadas.
cm_inch 0.39
constantes
variables longitud_cm real longitud_inch real inicio leer longitud_cm longitud_inch longitud_cm * cm_inch escribir longitud_inch fin 31
Algoritmos. Resumen
n n n
n n
Algoritmo = secuencia de pasos ejecutada mecnica y sistemticamente por un actor en un entorno para resolver un problema determinado en un tiempo finito. Los algoritmos son tan antiguos como la humanidad. El trmino algoritmo deriva del nombre del matemtico Mahommed ibn Musa al-Khowrizm. Los ordenadores son mquinas que ejecutan algoritmos. Los 3 elementos fundamentales en un algoritmo son:
n n n
Procesador Entorno Accin Lenguaje natural Organigramas Pseudocdigo Lenguajes de programacin Anlisis del problema Diseo descendente del algoritmo (descomponiendo el problema en subproblemas ). 32
16