You are on page 1of 8

1Algoritmos y Programacin 1.1 Computadoras y Sistemas Operativos 1.1.

1 Computadora Segn la RAE (Real Academia de la lengua espaola), una computadora es una mquina electrnica, analgica o digital, dotada de una memoria de gran capacidad y de mtodos de tratamiento de la informacin, capaz de resolver problemas matemticos y lgicos mediante la utilizacin automtica de programas informticos. Inicialmente, las primeras computadoras eran mquinas basadas en el funcionamiento de rels o de ruedas. Por ello slo eran capaces de realizar una nica tarea. A finales de los aos cuarenta Von Newman escribi en un artculo lo que seran las bases del funcionamiento de los ordenadores (seguidos en su mayor parte hasta el da de hoy).

Modelo Von Newman Las mejoras que consigui este modelo (entre otras) fueron:

Incluir el modelo de Programa Almacenado (fundamental para que el ordenador pueda realizar ms de una tarea) Aparece el concepto de Lenguaje de Programacin. Aparece el concepto de programa como amo secuencia de instrucciones secuenciales (aunque pueden incluir bifurcaciones y saltos).

El modelo no ha cambiando excesivamente hasta la actualidad de modo que el modelo actual de los ordenadores es el que se indica en la Ilustracin 2. De los componentes internos del ordenador, cabe destacar el procesador (o microprocesador, lo de micro hace referencia al tamao del mismo). Se trata de un chip que contiene todos los elementos de la Unidad Central de Proceso; por lo que es capaz de realizar e interpretar instrucciones. En realidad un procesador slo es capaz de realizar tareas sencillas como:

Operaciones aritmticas simples: suma, resta, multiplicacin y divisin Operaciones de comparacin entre valores Almacenamiento de datos

Arquitectura de los ordenadores actuales En definitiva los componentes sobre los que actualmente se hace referencia son:

Procesador. Ncleo digital en el que reside la CPU del ordenador. Es la parte fundamental del ordenador, la encargada de realizar todas las tareas. Placa base. Circuito interno al que se conectan todos los componentes del ordenador, incluido el procesador. Memoria RAM. Memoria principal del ordenador, formada por un circuito digital que est conectado mediante tarjetas a la placa base. Su contenido se pierde cuando se desconecta al ordenador. Lo que se almacena no es permanente.

Mientras el ordenador est funcionando contiene todos los programas y datos con los que el ordenador trabaja. Memoria cach. Memoria ultrarrpida de caractersticas similares a la RAM, pero de velocidad mucho ms elevada por lo que se utiliza para almacenar los ltimos datos utilizados de la memoria RAM. Perifricos. Aparatos conectados al ordenador mediante tarjetas o ranuras de expansin (tambin llamados puertos). Los hay de entrada (introducen datos en el ordenador: teclado, ratn, escner,...), de salida (muestran datos desde el ordenador: pantalla, impresora, altavoces,...) e incluso de entrada/salida (mdem, tarjeta de red). Unidades de almacenamiento. En realidad son perifricos, pero que sirven para almacenar de forma permanente los datos que se deseen del ordenador. Los principales son el disco duro (unidad de gran tamao interna al ordenador), la disquetera (unidad de baja capacidad y muy lenta, ya en desuso), el CD-ROM y el DVD.

Hardware y Software Hardware: Se trata de todos los componentes fsicos que forman parte de un ordenador: procesador, RAM, impresora, teclado, ratn,...

Software: Se trata de la parte conceptual del ordenador. Es decir los datos y aplicaciones que maneja y que permiten un grado de abstraccin mayor. Cualquier cosa que se pueda almacenar en una unidad de almacenamiento es software (la propia unidad sera hardware). 3 Algoritmos 1.3.1 Nocin de algoritmo Segn la RAE: conjunto ordenado y finito de operaciones que permite hallar la solucin de un problema. Los algoritmos, como indica su definicin oficial, son una serie de pasos que permiten obtener la solucin a un problema. La palabra algoritmo procede del matemtico rabe Mohamed Ibn Al Kow Rizmi, el cual escribi sobre los aos 800 y 825 su obra Quitad Al Mugabala, donde se recoga el sistema de numeracin hind y el concepto del cero. Fibonacci, tradujo la obra al latn y la llam: Algoritmi Dicit. El lenguaje algortmico es aquel que implementa una solucin terica a un problema indicando las operaciones a realizar y el orden en el que se deben efectuarse. Por ejemplo en el caso de que nos encontremos en casa con una bombilla fundida en una lmpara, un posible algoritmo sera:

(1) Comprobar si hay bombillas de repuesto (2) En el caso de que las haya, sustituir la bombilla anterior por la nueva (3) Si no hay bombillas de repuesto, bajar a comprar una nueva a la tienda y sustituir la vieja por la nueva Los algoritmos son la base de la programacin de ordenadores, ya que los programas de ordenador se puede entender que son algoritmos escritos en un cdigo especial entendible por un ordenador. Lo malo del diseo de algoritmos est en que no podemos escribir lo que deseemos, el lenguaje ha utilizar no debe dejar posibilidad de duda, debe recoger todas las posibilidades. Por lo que los tres pasos anteriores pueden ser mucho ms largos: 1. Comprobar si hay bombillas de repuesto 1. Abrir el cajn de las bombillas 2. Observar si hay bombillas 2. Si hay bombillas: 1. Coger la bombilla 2. Coger una silla 3. Subirse a la silla 4. Poner la bombilla en la lmpara 3. Si no hay bombillas 1. Abrir la puerta 2. Bajar las escaleras.... Cmo se observa en un algoritmo las instrucciones pueden ser ms largas de lo que parecen, por lo que hay que determinar qu instrucciones se pueden utilizar y qu instrucciones no se pueden utilizar. En el caso de los algoritmos preparados para el ordenador, se pueden utilizar slo instrucciones muy concretas. 1.2.2 Caractersticas de los algoritmos Caractersticas que deben de cumplir los algoritmos obligatoriamente

Un algoritmo debe resolver el problema para el que fue formulado. Lgicamente no sirve un algoritmo que no resuelve ese problema. En el caso de los programadores, a veces crean algoritmos que resuelven problemas diferentes al planteado. Los algoritmos son independientes del ordenador. Los algoritmos se escriben para poder ser utilizados en cualquier mquina. Los algoritmos deben de ser precisos. Los resultados de los clculos deben de ser exactos, de manera rigurosa. No es vlido un algoritmo que slo aproxime la solucin. Los algoritmos deben de ser finitos. Deben de finalizar en algn momento. No es un algoritmo vlido aquel que produce situaciones en las que el algoritmo no termina. Los algoritmos deben de poder repetirse. Deben de permitir su ejecucin las veces que haga falta. No son vlidos los que tras ejecutarse una vez, ya no pueden volver a hacerlo por la razn que sea.

Caractersticas aconsejables para los algoritmos

Validez. Un algoritmo es vlido si carece de errores. Un algoritmo puede resolver el problema para el que se plante y sin embargo no ser vlido debido a que posee errores Eficiencia. Un algoritmo es eficiente si obtiene la solucin al problema en poco tiempo. No lo es si es lento en obtener el resultado. ptimo. Un algoritmo es ptimo si es el ms eficiente posible y no contiene errores. La bsqueda de este algoritmo es el objetivo prioritario del programador. No siempre podemos garantizar que el algoritmo hallado es el ptimo, a veces s.

1.2.3 Elementos que conforman un algoritmo


Entrada. Los datos iniciales que posee el algoritmo antes de ejecutarse. Proceso. Acciones que lleva a cabo el algoritmo. Salida. Datos que obtiene finalmente el algoritmo.

1.2.4 Fases en la creacin de algoritmos Hay tres fases en la elaboracin de un algoritmo: 1. Anlisis. En esta se determina cul es exactamente el problema a resolver. Qu datos forman la entrada del algoritmo y cules debern obtenerse como salida. 2. Diseo. Elaboracin del algoritmo. 3. Prueba. Comprobacin del resultado. Se observa si el algoritmo obtiene la salida esperada para todas las entradas. Definicin de Algoritmo Definiciones:

Un algoritmo se puede definir como una secuencia de instrucciones que representan un modelo de solucin para determinado tipo de problemas. Grupo de instrucciones que realizadas en orden conducen a obtener la solucin de un problema. En esencia, todo problema se puede describir por medio de un algoritmo. Para llegar a la realizacin de un programa es necesario el diseo previo de un algoritmo, de modo que sin algoritmo no puede existir un programa. El diseo de algoritmos requiere creatividad y conocimientos profundos de la tcnica de programacin. "Un lenguaje de programacin es slo un medio para expresar un algoritmo y una computadora es slo un procesador para ejecutarlo." (Luis Joyanes.)

En concepto informtico; un algoritmo se define como cualquier procedimiento computacional bien definido que toma algn(os) valor(es) como entrada y produce un(os) valor(es) de salida. Analizamos algoritmos para predecir los recursos que el algoritmos consumir. Ocasionalmente memoria, medios de comunicacin, pero el recurso ms importante que

medimos es el tiempo que tomar en ejecutarse el programa que tiene implementado nuestro algoritmo.

Caractersticas de los algoritmos


Preciso: Definirse de manera rigurosa, sin dar lugar a ambigedades. Definido: Si se sigue un algoritmo dos veces, se obtendr el mismo resultado Finito: Debe terminar en algn momento Datos de entrada: Debe tener cero o ms elementos de entrada, es decir, debe tener por lo menos una instruccin que ordene averiguar el dato o los datos. Debe producir un resultado: Los datos de salida sern los resultados de efectuar las instrucciones. Los datos de entrada pueden ser ninguno, pero los de la salida deben ser alguno o algunos.

Se concluye que un algoritmo debe ser suficiente y breve, es decir, no exceder en las instrucciones ni quedarse corto. Entre dos algoritmos que lleven a un mismo objetivo, siempre ser mejor el ms corto. Etapas para la solucin de un problema por medio del computador

Anlisis del problema: definicin y delimitacin. Considerar los datos de entrada, el proceso que debe realizar la computadora y los datos de salida. Diseo y desarrollo del algoritmo: Pseudocdigo o escritura natural del algoritmo, diagramas de flujo, etc. Prueba de escritorio: Seguimiento manual de los pasos descritos en el algoritmo. Se hace con valores bajos y tiene como fin detectar errores. Codificacin: Seleccin de un lenguaje y digitacin del pseudocdigo haciendo uso de la sintaxis y estructura gramatical del lenguaje seleccionado. Compilacin o interpretacin del programa: El software elegido convierte las instrucciones escritas en el lenguaje a las universales entendidas por la computadora. Ejecucin: El programa es ejecutado por la mquina para llegar a los resultados esperados. Depuracin (debug): Operacin de detectar, localizar y eliminar errores de mal funcionamiento del programa Evaluacin de resultados: Obtenidos los resultados se los evala para verificar si son correctos. Un programa puede arrojar resultados incorrectos an cuando la ejecucin es perfecta.

Modelos para resolver problemas de algoritmos - Pseudocdigo Es la tcnica que permite la solucin de un problema mediante un algoritmo escrito en palabras normales de un idioma (por ejemplo, el espaol). Es la narracin del proceso en palabras imperativas. Es comn encontrar en pseudocdigo palabras como: Inicie, leer, escribir, sume, divida, calcule. No hay un lxico obligado para el pseudocdigo pero con el uso frecuente se han establecido algunos estndares. Este es un ejemplo de un programa escrito en pseudocdigo:

Inicie {Clculo de salario neto y deduccin de 5%} Leer nombre,horas,valorhora; CalculoSalario <- horas*valorhora; Deduccion <- CalculoSalario*0.05; Salarioneto <- CalculoSalario - Deduccion; Escribir nombre,' Su salario es: ', CalculoSalario, ' la deduccion es: ', Deduccion, ' Salario Neto es: ',Salarioneto; Operadores Lgicos Los operadores lgicos combinan sus operandos de acuerdo con las reglas del lgebra de Boole para producir un nuevo valor que se convierte en el valor de la expresin, puede ser verdadero o falso. Signo OR AND NOT Ejemplos: Expresin Verdad AND Falso NOT Falso Verdad OR Falso Resultado Falso Verdad Verdad Significado Suma lgica (O) Producto lgico (Y) Negacin (NO)

Tabla de la verdad Con los operadores lgicos booleanos se construyen las tablas de verdad: Valor de A V V F F Valor de B V F V F not ( A ) F F V V A and B V F F F A or B V V V F

Clase 3 - Asignaciones, Entradas y Salidas (I/O) Asignaciones La operacin de dar valor a una variable se llama asignacin. La asignacin vamos a representarla con el smbolo <- , ( una flecha apuntando a la izquierda). No utilizaremos

en signo" = " ya que el operador de asignacin vara de acuerdo con el lenguaje de programacin utilizado. El formato general de una asignacin es: nombre de la variable <- expresin 1. La flecha se sustituye en los lenguajes de programacin por = (basic, c); := (pascal). Pero para evitar ambigedades en el pseudocdigo utilizaremos la flecha para la asignacin y el smbolo = para indicar igualdad. 2. Entrada y Salida de Informacin Los datos que vamos a obtener del usuario para procesarlos tambin deben ser asignados a variables, la operacin de lectura, lee un dato y lo asigna a una varible. La instruccin para la lectura de un dato es leer (read). Por ejemplo: 3. leer numero 4. Esta instruccin pide al usuario un valor que ser asignado a la variable numero, es decir, en numero se almacena el valor ingresado por el usuario. 5. leer Edad, Peso, Nombre 6. Representa la lectura de tres valores que se van a almacenar en las variables Edad, Peso y Nombre; en ese mismo orden. Ahora bien, cuando queramos mostrar el resultado del algoritmo, un mensaje, un valor, etc, vamos a utilizar el comando escribir (write). Por ejemplo: 7. escribir "Hola" 8. muestra en la pantalla el mensaje Hola, Hola va entre comillas porque es una cadena. 9. escribir A 10. muestra en la pantalla el valor que est almacenado en la variable A. 11. escribir "El valor del promedio es: ", promedio 12. Esta instruccin muestra el mensaje que est entre comillas y luego el valor de la variable promedio. La coma separa el mensaje de la variable. Si la variable promedio vale 5, lo que se ver en la pantalla ser: 13. El valor del promedio es: 5 14. Tambin podemos mostrar un mensaje cuando solicitamos algn dato al usuario por medio del comando leer as: 15. leer "Ingrese su edad", edad 16. El valor de la variable que pedimos al usuario se asigna a edad. Esta instruccin se ver as en la pantalla: 17. Ingrese su edad 18. En resumen: Las instrucciones disponibles para escribir un programa dependen del lenguaje de programacin utilizado. Existen instrucciones -o acciones- bsicas que se pueden implementar de modo general en cualquier algoritmo y que soportan todos los lenguajes de programacin. Estas son: 1 2 3 4 5 Instrucciones de Inicio Instrucciones de asignacin Instrucciones de lectura Instrucciones de escritura Instrucciones de fin Inicio <leer escribir Fin

You might also like