Académique Documents
Professionnel Documents
Culture Documents
1 2
Julio Cortzar (Historias de Cronopios y de Famas). Simone Ortega (1080 recetas de cocina). 1
Sean AB y CD dos nmeros cualesquiera no primos entre s. Es preciso hallar la medida comn mxima (mximo comn divisor) de AB y CD. 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.
Si se estudia con atencin cada uno de los algoritmos anteriores descubriremos una serie de caractersticas interesantes que definen la naturaleza de lo que es un algoritmo: Un algoritmo resuelve un problema especfico: subir una escalera, obtener una tortilla de patatas, hacer una multiplicacin o determinar el mximo comn divisor de dos nmeros. Un algoritmo es llevado a cabo por una entidad que trabaja en un entorno dado: una persona cuyo universo inmediato se reduce a su propio cuerpo y una escalera; un cocinero con una sartn, huevos, patatas, aceite, sal y cebolla; o un nio con lpiz y papel. Un algoritmo consta de una serie de pasos que deben llevarse a cabo siguiendo una secuencia marcada: algunos de los pasos en uno de los algoritmos anteriores seran: dar la vuelta a la tortilla, batir los huevos, pelar las patatas o cascar los huevos; dichos pasos deben aplicarse en un orden prefijado y no de cualquier manera. Un algoritmo se aplica de forma mecnica: un algoritmo no precisa decisiones subjetivas ni creatividad en su aplicacin, cualquiera con una receta adecuada para obtener tortilla de patatas lograr una tortilla de patatas. Sin embargo, s es necesario un acto creativo para desarrollar un nuevo algoritmo. Un algoritmo termina en un tiempo finito: todos los algoritmos deben finalizar, pueden tardar ms o menos tiempo en lograr un resultado pero dicho tiempo debe ser finito.
A finales del siglo XIX se comenzaron a aplicar nuevas tcnicas como las tarjetas perforadas (inicialmente utilizadas para controlar telares) y la electricidad en el desarrollo de mquinas precursoras de los ordenadores; durante la segunda guerra mundial se dio un impulso definitivo hacia el desarrollo de los mismos y se estableci una arquitectura que an hoy perdura; la revolucin iniciada por el transistor y, posteriormente, por el chip condujeron a la actual explosin informtica.
4 William Gibson y Bruce Sterling escribieron una novela de ciencia ficcin, The Difference Engine (La mquina diferencial), en la que las mquinas de Babbage llegan a ser construidas en la poca victoriana de tal manera que Inglaterra entra de forma simultnea en la Revolucin Industrial y la Revolucin de la Informacin.
Al aplicar estos conceptos al algoritmo de la tortilla de patatas podemos ver que el procesador es el cocinero, el entorno son los ingredientes (huevos, patatas, cebolla) y las acciones cada uno de los actos que se aplican sobre los ingredientes (cascar, batir, pelar, trocear, salar, freir, etc). Si, en cambio, se aplican a un algoritmo que se vaya a ejecutar en un ordenador tenemos que el procesador es el ordenador, el entorno son los datos con los que va a trabajar y las acciones seran todas aquellas operaciones que el ordenador puede realizar sobre los datos (sumar, restar, comparar, etc).
Lenguaje natural
La primera y ms sencilla forma de describir un algoritmo es empleando el lenguaje natural; por ejemplo, el algoritmo para encontrar las races de una ecuacin de segundo grado podra describirse as: 1. Definir los coeficientes de la ecuacin de segundo grado: a, b y c. 2 2. Determinar el valor del discriminante: b -4ac. 3. Si el discriminante es cero slo hay una solucin: -b/(2a). 4. 5. Si el discriminante es positivo pero no cero hay dos soluciones: (-bdiscr)/(2a). Si el discriminante es negativo no hay soluciones reales.
La ventaja fundamental es la facilidad de comprensin, cualquier persona (hispanoparlante, por supuesto) que lea dicho algoritmo podra entenderlo y aplicarlo; sin embargo, son varios los problemas que plantea describir un algoritmo de esta forma: El lenguaje natural no es universal, este algoritmo sera completamente intil para los no hispanoparlantes. El lenguaje natural es ambiguo y, por tanto, susceptible de errores. El lenguaje natural es demasiado amplio, lo que para una persona puede ser una instruccin sencilla puede no serlo para otra y desde luego no lo ser para un ordenador.
Por todo ello, se han buscado nuevas formas de describir los algoritmos que, cuando menos, sean ms universales, estn mejor delimitadas y no sean ambiguas; dos tcnicas que logran esto son los organigramas y las notaciones en pseudocdigo.
Organigramas
Los organigramas o diagramas de flujo permiten describir los algoritmos de forma grfica; para ello utilizan una serie de bloques que indican distintas circunstancias y flechas que muestran bajo qu condiciones se pasa de un bloque a otro. Algunos de los smbolos son los siguientes:
Entrada/Salida
Decisin
Informacin introducida Operacin que determina para su proceso o generada varios caminos alternativos como resultado. a seguir.
En la pgina siguiente se muestra un organigrama que describe el algoritmo anterior. Los organigramas presentan varias ventajas frente al lenguaje natural: Los smbolos son universales. Son menos propensos a la ambigedad. Por estar basados en un nmero pequeo de bloques y reglas para su empleo permiten delimitar mejor los algoritmos. Se aproximan ms a la forma en que trabaja el ordenador. El hecho de emplear smbolos supone que una persona que desconozca los smbolos puede tener dificultades para comprender el algoritmo o no entenderlo en absoluto. Aunque los smbolos son universales el texto que se coloca en su interior sigue siendo lenguaje natural.
4
Sin embargo:
La representacin grfica puede resultar bastante tediosa y en el caso de algoritmos complejos extremadamente confusa. Un ordenador no es capaz de utilizar una representacin visual como descripcin de un algoritmo.
Actualmente, los organigramas no son muy utilizados aunque para mostrar el funcionamiento de algoritmos sencillos siguen siendo resultando prcticos.
COMENZAR
LEER a
LEER b
LEER c
discr ! b2-4ac
SI discr = 0
s ! -b/(2a)
NO
SI discr > 0
s1 ! (-b+discr)/(2a) s2 ! (-b-discr)/(2a)
NO
FIN
Pseudocdigo
El pseudocdigo pretende aunar en un solo tipo de representacin las ventajas del lenguaje natural y de los organigramas sin ninguno de sus problemas; por tanto, el pseudocdigo: Es fcilmente comprensible para una persona que lo vea por vez primera. Est bien delimitado. Elimina las ambigedades del lenguaje natural. Se representa de una forma compacta.
De esta forma, el pseudocdigo se suele ver como un subconjunto de un lenguaje natural que proporciona un nmero limitado de operaciones para la construccin de algoritmos; la nica finalidad del pseudocdigo (como de los organigramas) es la comunicacin entre seres humanos. A continuacin se muestra un ejemplo de algoritmo descrito mediante un pseudocdigo:
escribir Deme los coeficientes y resolver una ecuacin de 2 grado escribir Cunto vale A? leer a escribir Cunto vale B? leer b escribir Cunto vale C? leer c
5
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
Lenguajes de programacin
Un lenguaje de programacin comparte las mismas caractersticas que el pseudocdigo pero, adems de ser comprensible para un ser humano, resulta comprensible para un ordenador; esto es, un algoritmo descrito mediante un lenguaje de programacin puede ser ejecutado por una mquina. A continuacin se muestra el algoritmo anterior descrito en el lenguaje de programacin FORTRAN:
program segundoGrado print *,'Deme los coeficientes y resolver una ecuacin de 2 grado' print *, 'Cunto vale A?' read *, a print *, 'Cunto vale B?' read *, b print *, 'Cunto vale C?' read *, c discr = b*b-4*a*c if (discr==0) then s = -b/(2*a) print *, 'Slo hay una solucin: ', s else if (discr>0) then s1 = (-b+sqrt(discr))/(2*a) s2 = (-b-sqrt(discr))/(2*a) print *, 'Las soluciones son: ',s1,s2 else print *, 'No hay soluciones reales' end if end if end
Como se puede ver, existen muchas similitudes entre el pseudocdigo y un lenguaje de programacin como FORTRAN, de hecho la mayor parte de lenguajes de programacin modernos resultan bastante inteligibles con unos conocimientos bsicos de ingls; sin embargo, aunque ahora sea difcil de apreciar, el pseudocdigo an es un lenguaje demasiado ambiguo y poco preciso para un ordenador.
vencers ; este mtodo consiste en resolver el problema mediante una aproximacin con distintos niveles de abstraccin, nunca se debe atacar desde el principio con un enfoque excesivamente detallado (muy prximo al ordenador). En primer lugar se plantea el problema empleando trminos del mismo problema (nivel de abstraccin 1). En segundo lugar, se descompone en varios subproblemas expresados tambin en trminos del problema y tratando de hacerlos lo ms independientes entre s que sea posible. Este paso se repite para cada subproblema tantas veces como sea necesario hasta llegar a una descripcin del problema que emplee instrucciones sencillas que puedan ser transformadas de forma sencilla a cdigo en un lenguaje de programacin. En la fase de diseo pueden emplearse grficos en forma de rbol para representar los subproblemas y las relaciones entre ellos y pseudocdigo para la descripcin formal de la forma de resolver cada subproblema. A continuacin se mostrar un ejemplo de anlisis y diseo para un problema dado.
Enunciado: Anlisis: Proporcionar un algoritmo que determine si un ao indicado por el usuario es bisiesto. Entrada: Proceso: Salida: Condiciones de error: Diseo Nivel 1 Nivel 2 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. Si el dato introducido no es vlido (nmero negativo o cero) debera indicarse: Dato no vlido. 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
Este diagrama muestra mejor la descomposicin descendente del problema planteado; cada caja es un problema o subproblema, las cajas hijas son subproblemas que componen un problema de un nivel de abstraccin superior. Es importante sealar que el nmero de subproblemas que aparecen en un nivel vara (aunque se suele mantener en torno a 7) y que no es necesario profundizar por igual en todos los casos.
Si el problema es muy sencillo puede realizarse un organigrama que describa el algoritmo que lo resuelve, en caso contrario es preferible utilizar un pseudocdigo; es necesario decir que el pseudocdigo tambin se desarrollar por niveles, de hecho, por cada caja/problema anterior debera obtenerse un pseudocdigo que lo resuelva.
Del latn divide et impera, aunque generalmente atribuida a Csar es una mxima romana abrazada por personajes como Maquiavelo, Luis XI de Francia o Montesquieu. 7
Problema Pseudocdigo del algoritmo que lo resuelve Determinar si un ao indicado por el usuario es o no un ao bisiesto. Solicitar un ao al usuario Determinar si el ao es bisiesto o no Indicar al usuario el resultado obtenido Solicitar un ao al usuario escribir Por favor, deme un ao leer AO si AO 0 entonces escribir El ao no es vlido si no determinar si el ao es bisiesto o no indicar al usuario el resultado obtenido fin_si Determinar si el ao es bisiesto o no si el ao es mltiplo de 4 entonces si el ao es mltiplo de 400 entonces BISIESTO ! si si no si el ao es mltiplo de 100 entonces BISIESTO ! no si no BISIESTO ! si fin_si fin_si si no BISIESTO ! no fin_si Indicar al usuario el resultado obtenido si BISIESTO = si entonces escribir El ao es bisiesto si no escribir El ao no es bisiesto fin_si
Una vez hecho esto es posible obtener el pseudocdigo completo y detallado que resuelve el problema:
escribir Por favor, deme un ao leer AO si AO 0 entonces escribir El ao no es vlido si no si el ao es mltiplo de 4 entonces si el ao es mltiplo de 400 entonces BISIESTO ! si si no si el ao es mltiplo de 100 entonces BISIESTO ! no si no BISIESTO ! si fin_si fin_si si no BISIESTO ! no fin_si si BISIESTO = si entonces escribir El ao es bisiesto si no escribir El ao no es bisiesto fin_si fin_si
Una vez se ha obtenido el pseudocdigo traducirlo a un lenguaje de programacin es extremadamente sencillo, el cdigo FORTRAN correspondiente al pseudocdigo anterior es el siguiente:
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
8
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
Conceptos fundamentales
A lo largo de la asignatura se utilizarn en muchas ocasiones algunos trminos que conviene definir clramente; por el momento, los ms importantes sern los conceptos de: accin, indicador o variable, informacin, estado, datos y resultados, lxico, tipo de datos y operador. Accin: Como ya se dijo anteriormente, una accin es un suceso, llevado a cabo por un procesador. Una accin siempre modifica su entorno. Indicador o variable: El entorno de una accin est compuesto de indicadores que pueden tomar distintos valores (por esa razn tambin se denominan variables puesto que los valores pueden cambiar, es decir, variar); cada indicador o variable tiene asignado un nombre para poder referirse a l. Informacin: El hecho de que un indicador/variable tenga asociado un valor es irrelevante si dicha asociacin no es interpretada; por ejemplo si sabemos que el indicador/variable v tiene asociado el valor 70.5 no nos aporta nada, es la interpretacin de v como velocidad en km/h de dicha pareja la que nos proporciona una informacin. As pues, la informacin es la asociacin entre una variable, un valor y la interpretacin que se hace. Estado: Puesto que el entorno est formado por indicadores/variables que pueden tomar diferentes valores est claro que el entorno no es inmutable sino dinmico; el conjunto de valores de los indicadores/variables del entorno en un instante se denomina estado. De esta forma, si una accin modifica su entorno (los valores de uno o ms indicadores) se puede afirmar que las acciones hacen pasar el entorno de un estado a otro. Datos/resultados: Una accin emplea un tiempo finito en su ejecucin; si la accin se inicia en t0 y termina en t1, el estado del sistema en el instante t0 (los valores de los indicadores) definen los datos de la accin mientras que el estado del sistema en el instante t1 (los valores de los indicadores tras la ejecucin de la accin) definen los resultados de la accin. Lxico: Como sabemos, un procesador comprende y ejecuta instrucciones que componen un algoritmo; el conjunto finito de acciones que el procesador puede comprender y ejecutar constituye el lxico del procesador. Tipo de datos: En matemticas se clasifican los datos en funcin de ciertas caractersticas importantes; as tenemos naturales, enteros, reales, complejos, etc. Esta clasificacin se hace mediante conjuntos; n dichos conjuntos pueden estar formados por elementos individuales, R, o agregaciones de valores, R . Esta forma de clasificacin resulta muy til y, por tanto, a partir ahora todos los indicadores (variables) tendrn asignado un tipo. Operador: A lo largo de muchos de los ejemplos anteriores se ha dado por supuesto que el procesador conoca la forma de realizar asignaciones, comparar valores, etc. Dichas acciones se conocen con el nombre de operadores y las acciones que realizan son, por tanto, operaciones; los alumnos conocen la mayor parte de los operadores presentes en el lxico de la notacin algortmica que se va a estudiar; se trata de los operadores aritmticos, de comparacin, etc.
Otra caracterstica de los identificadores es que no pueden empezar por nmero, slo por letra (o subrayado). En algunas notaciones (y lenguajes de programacin), las maysculas se consideran como caracteres diferentes de las minsculas mientras que en otros no se hace as; para simplificar las cosas nuestra notacin ser insensible a maysculas. En resumen, Ejemplos de identificadores vlidos: v, aceleracion, K, v1, b_n, Pot, ... Ejemplos de identificadores no vlidos: 1n (empieza por nmero), ao (incluye un carcter no vlido, la ), aceleracin (incluye un carcter no vlido, la ), p v (incluye un espacio en blanco), ... Ejemplos de identificadores equivalentes (en nuestra notacin): v y V; anno, Anno, ANNO y AnnO; Pot, pot y poT, ...
Tipos de datos: Ya se ha mencionado el hecho de que las variables deben pertenecer a un tipo de datos determinado; en nuestra notacin algortmica tenemos los siguientes tipos: entero, real, logico y caracter. Los tipos se describen en funcin de las operaciones que admiten. El tipo entero se corresponden con un subconjunto finito (un rango) de los enteros , variando el tamao de dicho rango en funcin del computador; las operaciones soportadas son las operaciones aritmticas bsicas: suma (+), resta (-), producto (*), divisin entera (div) y mdulo/resto (mod). El resultado de operar dos valores de tipo entero resulta otro valor de tipo entero con un valor exacto (siempre y cuando no resulte un valor fuera del rango). El tipo real se corresponde con un subconjunto de nmeros reales; una diferencia fundamental entre un valor real y un valor entero es que el segundo siempre es exacto mientras que el primero es un valor aproximado, susceptible de errores de redondeo. El tipo real admite las mismas operaciones que el tipo entero, exceptuando la divisin entera y el mdulo (la divisin real emplea el operador /); adems de estas, admite las tpicas funciones reales: raz cuadrada, exponenciacin, potenciacin, logaritmo y funciones trigonomtricas. Al operar valores de tipo real se obtienen resultados de tipo real. Para facilitar las cosas es posible operar valores de tipo real con valores de tipo entero y aplicar operaciones del tipo real al tipo entero; en todos estos casos el resultado es de tipo real. El tipo logico admite tan slo dos valores: verdadero y falso; las operaciones admitidas son las de la lgica booleana: y-lgico (and o ), o-lgico (or o ) y no-logico (not o ). Hay que sealar que hay operadores que, an no operando sobre valores de tipo logico, dan como resultado valores de dicho tipo; nos referimos a los operadores de comparacin. El tipo caracter comprende el conjunto de caracteres imprimibles; dicho conjunto tiene una serie de caractersticas: Contiene las 26 letras del alfabeto latino, los 10 dgitos de la numeracin arbiga y caracteres como smbolos de puntuacin. Los subconjuntos de letras y nmeros estn ordenados; es decir si un carcter es mayor que la A y menor que la Z es una letra mayscula, si es mayor que a y menor que z es una letra minscula y si es mayor que 0 y menor que 9 es un nmero. Existe un carcter blanco o espacio.
6
El tipo caracter tiene una nica operacin propia, la concatenacin de cadenas de caracteres que emplea el operador (+). Todos los tipos admiten, adems, la operaciones de comparacin: los operadores de comparacin disponibles son mayor (>), menor (<), mayor o igual (), menor o igual (), igual (=) y distinto (). Como ya se dijo, el resultado de una comparacin es un valor de tipo logico. Literales: En todo momento es posible definir literales, expresiones de valor constante, de cualquier tipo; as es posible tener literales de tipo entero (por ejemplo, 45, 0 o 17), de tipo real (por ejemplo, 3.141592, 10.5e20 o 5.24e5) y de tipo caracter (por ejemplo, E, etc o Esto es una cadena). En muchas ocasiones es necesario utilizar un valor literal de forma reiterada, por ejemplo 3.141592, en esos casos es preferible referirse a dicho valor mediante un identificador, por ejemplo pi, que utilizar el valor en s; para ello se utilizan las denominadas constantes, identificadores a los que se les asigna un valor que no puede ser modificado en ningn punto del algoritmo. Para definir una constante emplearemos la notacin: constante literal De esta forma se est asociando a un identificador un valor constante determinado, a partir de la definicin de la constante, sta puede ser utilizada en cualquier punto del algoritmo comportndose de forma
6 En una leccin posterior se describir la forma en que un ordenador manipula los diferentes tipos de datos, explicndose la razn por la que los enteros y reales slo son representables en un rango determinado.
10
totalmente equivalente al literal cuyo valor representa. A continuacin se muestran un par de ejemplos de definicin de constantes: pi 3,1415926535897932384626433832795 NA 6.0221367e23 Expresiones: una expresin es una combinacin de variables, constantes y literales de tipos compatibles entre s, estos elementos estn combinados mediante operadores vlidos; la expresin ms simple est formada por un nico elemento (variable, literal o constante) sin ningn operador. Es posible tener expresiones aritmticas (combinando expresiones de tipo entero y/o real), expresiones lgicas (combinando expresiones de tipo logico) y expresiones de tipo caracter. A continuacin se muestran algunas expresiones tpicas: 2 * pi * r v * t (a>5) and (a<10) Sub + cadena Asignacin: el operador de asignacin, !, se emplea segn la notacin siguiente: izquierda ! derecha El elemento situado a la izquierda del operador es una variable a la que se asignar el valor de la expresin de la derecha; para poder realizar la asignacin de forma adecuada ambos elementos deben ser del mismo tipo. Entrada/salida: La mayor parte de los algoritmos necesitan interactuar con el usuario, es posible que ste deba indicar una serie de valores (por ejemplo, los coeficientes de una ecuacin de segundo grado) o que el algoritmo deba proporcionar unos resultados al mismo usuario (por ejemplo, las posibles soluciones de dicha ecuacin). Las acciones de entrada salida son dos: leer y escribir. El formato de la primera es muy sencillo: leer variable; el resultado de la accin es la lectura de un valor por teclado que ser asignado a la variable variable. El formato de la segunda es similar: escribir expresin; donde expresin puede ser de cualquier tipo (entero, real, logico o caracter). El resultado de esta accin es la visualizacin (en una pantalla) de la expresin. Para terminar esta introduccin, se mostrar la estructura bsica de un algoritmo en la notacin que se utilizar a lo largo del curso: constantes c1 literal1 c2 literal2 ... variables v1 tipo1 v2 tipo2 ... inicio accion1 accion2 ... fin A continuacin se muestra un algoritmo muy sencillo que convierte una longitud expresada en centmetros en su equivalente expresada en pulgadas: constantes cm_inch 0.39 variables longitud_cm real longitud_inch real inicio leer longitud_cm longitud_inch ! longitud_cm * cm_inch escribir longitud_inch fin
11
Resumen
1. 2. 3. 4. 5. Un algoritmo es una secuencia de pasos ejecutada mecnica y sistemticamente por un actor en un entorno dado 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 de un algoritmo son: 6. 7. 8. 9. Procesador. Entorno. Accin. Lenguaje natural. Organigramas. Pseudocdigo. Lenguajes de programacin. Un anlisis del problema. Un diseo descendente del algoritmo (descomponiendo el problema en subproblemas). Accin. Indicador o variable. Informacin. Estado. Datos/resultados. Lxico. Tipo de datos. Operador. Variables. Tipos de datos. Literales y constantes. Expresiones. Operacin de asignacin. Operaciones de entrada/salida.
12