Sie sind auf Seite 1von 17

Informtica Ingeniera Electrnica y Ambiental Lenguaje de Programacin

Pgina 1

Un lenguaje de programacin es un idioma artificial diseado para expresar cmputos que pueden ser llevadas a cabo por mquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento fsico y lgico de una mquina, para expresar algoritmos con precisin, o como modo de comunicacin humana. Est formado por un conjunto de smbolos y reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el cdigo fuente de un programa informtico se le llama programacin. Tambin la palabra programacin se define como el proceso de creacin de un programa de computadora, mediante la aplicacin de procedimientos lgicos, a travs de los siguientes pasos: El desarrollo lgico del programa para resolver un problema en particular. Escritura de la lgica del programa empleando un lenguaje de programacin especfico (codificacin del programa). Ensamblaje o compilacin del programa hasta convertirlo en lenguaje de mquina. Prueba y depuracin del programa. Desarrollo de la documentacin. Mantenimiento del programa. Existe un error comn que trata por sinnimos los trminos 'lenguaje de programacin' y 'lenguaje informtico'. Los lenguajes informticos engloban a los lenguajes de programacin y a otros ms, como por ejemplo HTML (lenguaje para el marcado de pginas web que no es propiamente un lenguaje de programacin, sino un conjunto de instrucciones que permiten disear el contenido de los documentos). Permite especificar de manera precisa sobre qu datos debe operar una computadora, cmo deben ser almacenados o transmitidos y qu acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a travs de un lenguaje que intenta estar relativamente prximo al lenguaje humano o natural. Una caracterstica relevante de los lenguajes de programacin es precisamente que ms de un programador pueda usar un conjunto comn de instrucciones que sean comprendidas entre ellos para realizar la construccin de un programa de forma colaborativa. Para que la computadora entienda nuestras instrucciones debe usarse un lenguaje especfico conocido como cdigo de mquina, el cual la mquina comprende fcilmente, pero que lo hace excesivamente complicado para las personas. De hecho slo consiste en cadenas extensas de nmeros 0 y 1. ste es el lenguaje que entienden los microprocesadores y el nico que son capaces de ejecutar. Para facilitar el trabajo, los primeros operadores de computadoras decidieron hacer un traductor para reemplazar los 0 y 1 por palabras o abstraccin de palabras y letras provenientes del ingls; ste se conoce como lenguaje ensamblador (o assembler). Por ejemplo, para sumar se usa la instruccin ADD de la palabra inglesa (sumar). El lenguaje ensamblador sigue la misma estructura del lenguaje mquina, pero las letras y palabras son ms fciles de recordar y entender que los nmeros. Ejemplo: la instruccin ADD 3 (que sumara 3 al valor de un registro especfico (tpicamente el acumulador) pordra traducirse como 0001 0011 (eleccin arbitraria donde los primeros 4 nmeros binarios (1 en decimal) se referira a la instruccin sumar y los ltimos 4 nmeros binarios (3 en decimal) se referira al valor que se debe sumar.

Informtica Ingeniera Electrnica y Ambiental

Pgina 2

La necesidad de recordar secuencias de programacin para las acciones usuales llev a denominarlas con nombres fciles de memorizar y asociar: ADD (sumar), SUB (restar), MUL (multiplicar), CALL (ejecutar subrutina), etc. A esta secuencia de posiciones se le denomin instrucciones, y a este conjunto de instrucciones se le llam lenguaje ensamblador (o assembler). Posteriormente aparecieron diferentes lenguajes de programacin, los cuales reciben su denominacin porque tienen una estructura sintctica similar a los lenguajes escritos por los humanos, denominados tambin lenguajes de alto nivel. EVOLUCIN DE LOS LENGUAJES DE PROGRAMACIN: LENGUAJES DE PRIMERA GENERACIN Lo constituyen los lenguajes maquina. Estos se consideran como de bajo nivel por que no existe un programa de codificacin menos complicado que el que utiliza los smbolos binarios 1 y 0. ASCII, utiliza ceros y unos para representar letras del alfabeto. Como este es el lenguaje del CPU, los archivos de texto traducidos a los grupos binarios ASCII pueden leerse por casi cualquier plataforma de sistemas de computadoras. LENGUAJES DE SEGUNDA GENERACIN A estos se les denomi lenguaje ensamblador. Los lenguajes ensambladores usan cdigos como ADD para agregar o MVC para mover, y asi sucesivamente. (algunos ejemplos vistos anteriormente). Los programas de software de sistemas tales como los sistemas operativos y los programas de utilidad se escriben con frecuencia en un lenguaje ensamblador. LENGUAJES DE TERCERA GENERACIN Estos son mas fciles de aprender y usar que los lenguajes maquina y el lenguaje ensamblador, pues su similitud con la comunicacin y comprensin humana cotidiana es mayor. Ejemplos: Fortran, C, Pascal, Java, etc. Aunque son mas fciles de programar, no son tan eficientes en trminos de rapidez operacional y memoria. Son relativamente independientes del hardware de la computadora. Esto significa que el mismo programa puede utilizarse en varias computadoras diferentes de distintos fabricantes LENGUAJES DE CUARTA GENERACIN Lenguajes que permiten hacer cosas muy fciles, utilizando "cosas" prefabricadas. Son menos flexibles que los de 3era generacin y permiten hacer cosas slo para lo que fueron creados. ejemplos Natural y PL-SQL. Son lenguajes que se relacionan menos con procedimientos y que son aun mas parecidos al ingles que los lenguajes de tercera generacin. Algunas caractersticas incluyen capacidades de consulta y base de datos, de creacin de cdigos y capacidades grficas. Ejemplos Visual C++, Visual Basic, Power Builder, Delphi, Forte y muchos otros. Lenguajes de consulta son utilizados para hacer preguntas a la computadora con frases parecidas a las de un idioma, ejemplo el ingls. Lenguaje de consulta estructurado: Lenguaje estndar que a menudo se usa para realizar consultas y manipulaciones a la base de datos. LENGUAJES DE QUINTA GENERACIN Alrededor de la mitad 1998 surgieron herramientas de lenguajes de quinta generacin, los cuales combinan la creacin de cdigos basadas en reglas, la administracin de reutilizacin y otros avances. Programacin basada en conocimiento: Mtodo para el desarrollo de programas de computacin en el que se le ordena a la computadora realizar un propsito en vez de

Informtica Ingeniera Electrnica y Ambiental

Pgina 3

instruirla para hacerlo. (se esta utilizando en el campo de la robtica), tambien en Inteligencia artificlal.Ejemplos Prolog, Eiffel.

LENGUAJES DE PROGRAMACIN ORIENTADOS A OBJETOS Permiten la interaccin de objetos de programacin incluyendo elementos de datos y las acciones que se realizan en ellos. Por ejemplo: Un objeto denota datos respecto a un empleado y todas las operaciones que se pudieran realizar sobre los datos (clculo de nminas). En la programacin orientada a objeto, los datos, instrucciones y otros procedimientos de programacin se agrupan en un elemento denominado objeto. Caractersticas presente en el paradigma de programacin orientada a objetos: Encapsulacin. proceso de reagrupar elementos dentro de un objeto. Polimorfismo. proceso que le permite al programador desarrollar una rutina o grupo de actividades que operaran sobre objetos mltiples. Herencia. Propiedad utilizada para describir objetos en un grupo de este tomando caractersticas de otros en el mismo grupo o clase de objetos. Cdigo reutilizable. Cdigo de instrucciones dentro de un objeto que se puede usar repetidamente en diferentes programas de diversas aplicaciones. SMALLTALK , C++ , JAVA LENGUAJES DE PROGRAMACIN VISUAL Lenguajes que usan el ratn, iconos o smbolos en la pantalla y mens despegables para desarrollar programas. SELECCIN DE UN LENGUAJE DE PROGRAMACIN El mejor lenguaje de programacin para usarse en un programa en particular incluye equilibrar las caractersticas funcionales del lenguaje con aspectos como costo, control y complejidad. Un factor importante que debe considerarse al seleccionar cualquier lenguaje de programacin es la cantidad de control directo que se necesita para operar el hardware. Programacin La programacin es el proceso de disear, escribir, probar, depurar y mantener el cdigo fuente de programas computacionales. El cdigo fuente es escrito en un lenguaje de programacin. El propsito de la programacin es crear programas que exhiban un comportamiento deseado. El proceso de escribir cdigo requiere frecuentemente de conocimientos en varias reas distintas, adems del dominio del lenguaje a utilizar, algoritmos especializados y lgica formal. Para crear un programa, y que la computadora interprete y ejecute las instrucciones escritas en el, debe usarse un Lenguaje de programacin. Como vimos, la computadora slo entiende lenguaje de mquina, pero para nuestra facilidad y comodidad existen los lenguajes de alto nivel. Escribir un programa en un lenguaje de alto nivel es mucho ms sencillo que estar escribiendo ceros y unos. Una vez que se termina de escribir un programa, sea en assembler o en un lenguaje de alto nivel, es necesario compilarlo. Compilar un programa es traducirlo a lenguaje de

Informtica Ingeniera Electrnica y Ambiental

Pgina 4

mquina; es decir, traducir un programa de un lenguaje de alto nivel a un lenguaje de mquina. La programacin se rige por reglas y un conjunto ms o menos reducido de rdenes, expresiones, instrucciones y comandos que tienden a asemejarse a una lengua natural acotada (en ingls); y que adems tienen la particularidad de una reducida ambigedad. Cuanto menos ambiguo es un lenguaje de programacin, se dice, es ms potente. Bajo esta premisa, y en el extremo, el lenguaje ms potente existente es el binario, con ambigedad nula.

Programas y Algortmos Un algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Un programa normalmente implementa (traduce a un lenguaje de programacin concreto) uno o ms algoritmos. Un algoritmo puede expresarse de distintas maneras: en forma grfica, como un diagrama de flujo, en forma de cdigo como en pseudocdigo o un lenguaje de programacin, en forma explicativa, etc. Los programas suelen subdividirse en partes menores, llamadas mdulos, de modo que la complejidad algortmica de cada una de las partes sea menor que la del programa completo, lo cual ayuda al desarrollo del programa. Esta es una prctica muy utilizada y se conoce como "refinamiento progresivo". Un programa est formado por algoritmos y estructuras de datos. Compilacin El programa escrito en un lenguaje de programacin (fcilmente comprensible por el programador) es llamado programa fuente y no se puede ejecutar directamente en una computadora. La opcin ms comn es compilar el programa obteniendo un mdulo objeto, aunque tambin puede ejecutarse en forma ms directa a travs de un intrprete informtico. El cdigo fuente del programa se debe someter a un proceso de traduccin para convertirlo en lenguaje mquina (que es nico ejecutable por el procesador). A este proceso se le llama compilacin. Normalmente la creacin de un programa ejecutable lleva dos pasos. El primer paso se llama compilacin (propiamente dicho) y traduce el cdigo fuente escrito en un lenguaje de programacin almacenado en un archivo a cdigo en bajo nivel (normalmente en cdigo objeto, no directamente a lenguaje mquina). El segundo paso se llama enlazado en el cual se enlaza el cdigo de bajo nivel generado de todos los ficheros y subprogramas que se han mandado a compilar y se aade el cdigo de las funciones que hay en las bibliotecas del compilador para que el ejecutable pueda comunicarse directamente con el sistema operativo, traduciendo as finalmente el cdigo objeto a cdigo mquina, y generando un mdulo ejecutable. Estos dos pasos se pueden hacer por separado, almacenando el resultado de la fase de compilacin en archivos objetos; para enlazarlos en fases posteriores, o crear

Informtica Ingeniera Electrnica y Ambiental

Pgina 5

directamente el ejecutable; con lo que la fase de compilacin se almacena slo temporalmente. Un programa podra tener partes escritas en varios lenguajes (por ejemplo C, C++ y ensamblador), que se podran compilar de forma independiente y luego enlazar juntas para formar un nico mdulo ejecutable. Librera: es un conjunto de subprogramas utilizados para desarrollar software. Las bibliotecas contienen cdigo y datos, que proporcionan servicios a programas independientes, es decir, pasan a formar parte de stos. Esto permite que el cdigo y los datos se compartan y puedan modificarse de forma modular. Algunos programas ejecutables pueden ser a la vez programas independientes y bibliotecas, pero la mayora de stas no son ejecutables. Ejecutables y bibliotecas hacen referencias (llamadas enlaces o LINK) entre s a travs de un proceso conocido como enlace (o link), que por lo general es realizado por un software denominado enlazador o linker. La mayora de los sistemas operativos modernos proporcionan bibliotecas que implementan la mayora de los servicios del sistema. De esta manera, estos servicios se convierten en una "materia prima" que cualquier aplicacin moderna espera que el sistema operativo ofrezca. Conceptos fundamentales Cdigo Fuente: El cdigo fuente es un conjunto de lneas de texto que son las instrucciones que debe seguir la computadora para ejecutar dicho programa. Por tanto, en el cdigo fuente de un programa est descrito por completo su funcionamiento. El cdigo fuente de un programa es el escrito por un programador en algn lenguaje de programacin. Como vimos, en este primer estado no es directamente ejecutable por la computadora, sino que debe ser traducido a lenguaje de mquina. Para esta traduccin se usan los llamados compiladores. Cdigo Objeto En programacin, se llama cdigo objeto al cdigo que resulta de la compilacin del cdigo fuente. Consiste en lenguaje de mquina y se distribuye en varios archivos que corresponden a cada cdigo fuente compilado. Para obtener un programa ejecutable se han de enlazar todos los archivos de cdigo objeto con un programa llamado enlazador (linker). Cdigo Ejecutable El cdigo que es capz de ejecutar un procesador.

Informtica Ingeniera Electrnica y Ambiental

Pgina 6

Unidades de Medida de la Informacin


Definicin: Bit: Dgito binario. Es el elemento ms pequeo de informacin del ordenador. Un bit es un nico dgito en un nmero binario (0 o 1). Los grupos forman unidades ms grandes de datos en los sistemas de ordenador siendo el Byte (ocho Bits) el ms conocido de stos. Byte: Se describe como la unidad bsica de almacenamiento de informacin, generalmente equivalente a ocho bits. En espaol, a veces se le llama octeto. Cada byte puede representar, por ejemplo, una letra. Kilobyte: Es una unidad de medida utilizada en informtica que equivale a 1.024 Bytes. Se trata de una unidad de medida comn para la capacidad de memoria o almacenamiento de las computadoras. Megabyte: es una unidad de medida de cantidad de datos informticos. Es un mltiplo binario del byte, que equivale a 220 (1048576) Bytes. Gigabyte: Es la unidad de medida ms utilizada en los discos duros. Tambin es una unidad de almacenamiento. Debemos saber que un byte es un carcter cualquiera. Un gigabyte, en sentido amplio, son 1.000.000.000 bytes (mil millones de bytes), tambin, cambiando de unidad, 1.000 megas (MG megabytes). Pero con exactitud 1 GB son 1.073.741.824 bytes 1.024 MB. El Gigabyte tambin se conoce como "Giga" Terabyte: Es la unidad de medida de la capacidad de memoria y de dispositivos de almacenamiento informtico (disco duro). Una unidad de almacenamiento tan desorbitada que resulta imposible imaginrsela, ya que coincide con algo ms de un trilln de bytes (un uno seguido de dieciocho ceros). El terabyte es una unidad de medida en informtica y su smbolo es el TB. Es equivalente a 240 bytes.

Fases para la creacin de un programa.


Definicin del Problema: Esta fase est dada por el enunciado del problema, el cual requiere una definicin clara y precisa. Es importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa. Anlisis del Problema: Esta fase requiere de una clara definicin, donde se contemple exactamente lo que debe hacer el programa y el resultado o solucin deseada, entonces es necesario definir:

Informtica Ingeniera Electrnica y Ambiental


Los datos de entrada (tipo y cantidad) Cual es la salida deseada (tipo y cantidad) Los mtodos y frmulas que se necesitan para procesar los datos.

Pgina 7

En esta etapa se determina que hace el programa. Una recomendacin muy practica es el que nos pongamos en el lugar de la computadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados. Diseo del Algoritmo: En esta etapa se determina como se hace el programa. El diseo del algoritmo es independiente del lenguaje de programacin. Las herramientas para disear algoritmos son: Diagramas de Flujos y Pseudocodigo El Diagrama de Flujo: Es una representacin grfica de un algoritmo

El Pseudocdigo: Las instrucciones se escriben en palabras similares al espaol que facilitan tanto la escritura como la lectura de programas Si queremos crear el pseudocdigo del diagrama de flujo anterior, entonces: Ingresar A y B Si A > B entonces Asignar a C A+10 Sino Asignar a C B-A Fin Si Las caractersticas de un buen algoritmo son: Debe tener un punto particular de inicio (programa principal). El modulo de nivel mas alto que llama a (subprogramas) modulos de nivel mas bajos. Debe ser definido, no debe permitir dobles interpretaciones. Debe ser general, es decir, soportar la mayora de las variantes que se puedan presentar en la definicin del problema. Debe ser finito en tamao y tiempo de ejecucin. Codificacin: La codificacin es la operacin de escribir la solucin del problema (de acuerdo a la lgica del diagrama de flujo o pseudocdigo), en una serie de instrucciones detalladas, en un cdigo reconocible por la computadora, la serie de

Informtica Ingeniera Electrnica y Ambiental

Pgina 8

instrucciones detalladas se le conoce como cdigo fuente, el cual se escribe en un lenguaje de programacin o lenguaje de alto nivel. Prueba y Depuracin: Los errores humanos dentro de la programacin de computadoras son muchos y aumentan considerablemente con la complejidad del problema. El proceso de identificar y eliminar errores, para dar paso a una solucin sin errores se le llama depuracin. La prueba consiste en la captura de datos hasta que el programa no presente errores (los ms comunes son los sintcticos y lgicos). Documentacin: Describe los pasos a dar en el proceso de resolucin de un problema. La importancia de la documentacin debe ser destacada en el producto final. Programas pobremente documentados son difciles de leer, mas difciles de depurar y casi imposibles de mantener y modificar. A menudo un programa escrito por una persona, es usado por otra. Por ello la documentacin sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones. La documentacin de un programa puede ser interna o externa. La primera es la contenida en lneas de comentarios y la segunda incluye anlisis, diagrama de flujo y/o pseudocdigo, manuales de usuario con instrucciones para ejecutar el programa y para interpretar los resultados. Mantenimiento: Se lleva acabo despus de terminado el programa, cuando se detecta que es necesario hacer algn cambio, ajuste o complementacin al programa para que siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que el programa este correctamente documentado.

Introduccin a los Algoritmos.


La necesidad de escribir algoritmos surge a partir de la identificacin de un problema para el cual se necesita una solucin. Una parte importante es saber qu problema se va a resolver. Luego, determinar si existe una especificacin simple y precisa. Definicin de Algoritmo: un algoritmo es una serie de pasos o acciones que se realizan para resolver un problema determinado. Es una secuencia finita de instrucciones, cada una de las cuales tiene un significado preciso y puede ejecutarse en una cantidad finita de pasos en un tiempo acotado. Por ejemplo, se quiere preparar una tarta de queso. Una receta, es una formalizacin de los pasos para preparar la tarta de queso. Teniendo en cuenta que los ingredientes son queso de untar, huevos, yogur natural, harina y azcar, la receta para su preparacin es: Encender el horno a 200. Mezclar todos los ingredientes y batirlos hasta que queden bien disueltos y sin ningn grumo. Untar el molde con mantequilla y verter la mezcla. Meter la preparacin en el horno y bajar la temperatura a 170 para su coccin. En 20 o 25 minutos estar lista, apagar el horno y dejarla dos minutos ms. Sacar la tarta del horno, dejarla enfriar unos minutos y luego se lleva al frigorfico hasta el momento de servirse. Observar que:

Informtica Ingeniera Electrnica y Ambiental

Pgina 9

En un nmero finito de pasos se resuelve la receta. En este caso, son 5 pasos a seguir para que la tarta quede lista. Las instrucciones de la receta son precisas. En cada paso, es claro qu accin realizar. Las recetas culinarias son un claro ejemplo de algoritmo. Existe un problema, elementos para solucionarlos, un procedimiento a seguir y un resultado que es el plato listo. Veremos que todas estas cualidades las debe cumplir un algoritmo. En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas. Ms ejemplos: Ejemplo de un algoritmo para cambiar la llanta a un automvil: 1. Inicio. 2. Traer gato. 3. Levantar el coche con el gato. 4. Aflojar tornillos de las llantas. 5. Sacar los tornillos de las llantas. 6. Quitar la llanta. 7. Poner la llanta de repuesto. 8. Poner los tornillos. 9. Apretar los tornillos. 10. Bajar el gato. 11. Fin Ejemplo de un algoritmo para preparar una taza de caf, tomando en cuenta que se tiene agua caliente, una taza, cuchara, caf, crema y azcar. 1. Inicio. 2. Verter agua caliente en la taza. 3. Tomar con la cuchara el caf. 4. Poner el caf en la taza. 5. Quieres azcar? Si 6 No 8 6. Tomar el azcar con la cuchara 7. Poner el azcar en la taza. 8. Quieres Crema? Si 9 No 11 9. Tomar la crema con la cuchara. 10. Poner crema en la taza 11. Revolver. 12. Fin Estos ejemplos muestran la formalizacin de los pasos a seguir para solucinar problemas de la vida cotidiana. Se plantea una secuencia de pasos precisos que, ejecutndolas en orden, se llega a la solucin del problema. Otro Ejemplo: Partimos de la definicin del problema. La mejor y tpica manera de empezar es con algo cotidiano y simple como la preparacin del mate. Teniendo en cuenta que los ingredientes son: la yerba y el agua y los utensillos son: el mate, la bombilla, la paba y el termo. Agregar yerba al mate llenar agua en la paba

Informtica Ingeniera Electrnica y Ambiental


Encender la hornalla Colocar la paba sobre la hornalla Esperar hasta que tenga la temperatura adecuada Verter el agua de la paba al termo Poner la bombilla en el mate Verter el agua del termo en el mate (cebar el mate) Observar que:

Pgina 10

En un nmero finito de pasos se pudo resolver el problema planteado. En este caso, son 8 los pasos a seguir para que el mate quede listo. Las instrucciones son precisas. En cada paso, es claro qu accin realizar. Las recetas culinarias son un claro ejemplo de algoritmo. Existe un problema, elementos para solucionarlos, un procedimiento a seguir y un resultado que es el plato listo. Pre y post condiciones En dichos ejemplos se puede observar que existen condiciones que se deben cumplir antes de realizar el algoritmo (como por ejemplo, disponer de todos los ingredientes de la receta, disponer de una rueda de auxilio y gato, y disponer de todos los ingredientes necesarios para el caf). A estas condiciones que son necesarias que se cumplan antes de comenzar la ejecucin del algoritmo, se las llama pre-condiciones. Se pueden asumir como verdaderas antes de comenzar con la ejecucin de las acciones especificadas en el algoritmo. De la misma forma, existen condiciones post-ejecucin, las cuales son condiciones que surgen a partir de la ejecucin del algoritmo. Es interesante documentar estas pre-condiciones y post-condiciones. Por ejemplo, para la receta de la tarta de queso se puede especificar: Pre-condiciones para preparar una tarta de queso: se dispone de la cantidad necesaria de harina, huevos, queso, yogur y azcar. Adems se dispone de un horno, recipientes y elementos para batir. Post-condiciones: se obtiene una rica tarta de queso (lo de rico es relativo al cocinero). Dejemos de lado la tarta, el auto y el caf y veamos caractersticas de algoritmos informticos: Las instrucciones de un algoritmo se pueden repetir un nmero finito de veces (si ellas mismas indican repeticin) pero un algoritmo debe terminar despus de ejecutar un nmero finito de instrucciones, sin importar cules fueron los datos o elementos de entrada. Una instruccin es una accin a ejecutar (la puede ejecutar cualquier entidad: un hombre, una computadora, un auto, etc). Dicha instruccin se debe poder realizar o llevar a cabo en un nmero finito de pasos. Es necesario que la instrucciones sean precisas, y que slo signifiquen una sola cosa: es necesario que las instrucciones estn libres de ambigedades. Las caractersticas fundamentales: Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso.

Informtica Ingeniera Electrnica y Ambiental

Pgina 11

Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez (ante la misma entrada de datos). Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algn momento, debe tener un nmero finito de pasos. La definicin de un algoritmo debe describir tres partes: Entrada, Proceso y Salida: Datos de Entrada: un algoritmo tiene cero o ms entradas, es decir cantidades que le son dadas antes de que el algoritmo comience, o dinmicamente mientras el algoritmo corre. Procesamiento de Datos: aqu incluye operaciones aritmtico-lgicas, selectivas y repetitivas; cuyo objetivo es obtener la solucin del problema. Salida de Resultados: permite comunicar al exterior el resultado. Puede tener una o ms salidas, es decir cantidades que tienen una relacin nica respecto a las entrantes. Pseudocdigo El pseudocdigo es una herramienta de programacin en la que las instrucciones se escriben en palabras similares al espaol (en nuestro caso, similar al lenguaje natural que estemos empleando), que facilitan la escritura y lectura de los programas. As, los ejemplos que comenzaremos a estudiar y a escribir, sern en pseudocdigo, donde determinaremos un conjunto finito de palabras claves. Dichas palabras claves estarn escritas en negrita y tendrn una sintaxis y una semntica particular. Cuando hablamos de sintaxis en un lenguaje hablamos de la forma en cmo se escribe dicha instruccin (por el momento, usamos pseudocdigo para escribir nuestros programas, con lo cual la sintaxis podr tener un grado de flexibilidad). A medida que avancemos en la materia y aprendamos el lenguaje de programacin C, su sintaxis se ir definiendo y utilizando. A su vez, la semntica de una instruccin es qu significa dicha instruccin, lo que realiza cada vez que se ejecuta.

Diagramacin Lgica
En general, hay varias formas de escribir un algoritmo, una de las mas conocida es la de diagramacin lgica: El diagrama de flujo es un medio de presentacin visual y grfica de flujo de datos, a travs de un algoritmo, las operaciones ejecutadas dentro del sistema y la secuencia en que se ejecutan. Los smbolos utilizados en la diagramacin lgica son los siguientes: Nombre Descripcin Grfica Indica el principio y el fin del Inicio - Fin I algoritmo respectivamente Una variable o constante recibe un valor (numrico o alfanumrico) Si se cumple la condicin el flujo de dato ira por el lado del SI, caso contrario por el NO

Asignacin Decisin

SI

NO

Informtica Ingeniera Electrnica y Ambiental

Pgina 12

Ingreso

Ingreso de datos (por teclado, mouse, dispositivo auxiliar, etc)

Egreso

Salida de datos (por pantalla, impresora, dispositivo auxiliar, etc.)

Flujo de Datos

Traslado de informacin Nos da la idea de un orden en la programacin. En algunos casos lleva flecha (direccin) Cuando el espacio del diagrama es insuficiente en la hoja, el conector permite guiarnos a la prxima hoja. Si son varios se suele usar numeracin para referenciarlos Permite la ejecucin de un bloque de instrucciones y la repite mientras que se cumpla una condicin. Hay tres tipos: Mientras , Para y Hacer Mientras

Conector entre diagramas

Ciclo - bucle

A continuacin mostramos las tres formas

Mientras

Para

Hacer Mientras

condicin

no

si
sentencias

sentencias

condicin

sentencias

no

condicin

si

Informtica Ingeniera Electrnica y Ambiental

Pgina 13

El diagrama es como un circuito formado con smbolos que encierran las instrucciones y lneas que apuntan hacia la siguiente instruccin de modo que no se pierda el orden. Adems, las operaciones elementales como la entrada de datos, salida de datos, ciclos, etc. se reconocen de las dems instrucciones porque no se encierran en rectngulos sino en otra clase de figuras por lo que segn la figura en la que est encerrada la instruccin se reconoce su significado; Es muy didctico, por lo que es muy fcil de entender. I Por ejemplo: Para desarrollar un algoritmo que le permita leer dos valores en las variable A y B, y le permita escribir el resultado de la suma de los dos. A,B Para dar solucin a este ejercicio es necesario realizar tres tareas: Leer los valores de entrada, Calcular la suma de dichos valores por ltimo escribir el resultado obtenido de dicha suma. C=A+B

C F

VARIABLES Y CONSTANTES
Un objeto es una Variable, cuando su valor puede modificarse y adems posee un Nombre que lo identifica y un Tipo que describe su uso. Un objeto es una Constante, cuando su valor no puede modificarse y adems posee un Nombre que lo identifica y un Tipo que describe su uso. Cuando definimos una Variable, estamos creando un objeto para el Procesador. La diferencia respecto de la definicin de una constante, es que en el momento de su creacin, el valor del objeto es desconocido, mientras que para una constante no solamente es conocido sino que permanece inalterado durante la ejecucin del procedimiento resolvente. Recurdese que la definicin de los objetos, siempre tiene lugar en el Ambiente. TIPOS DE DATOS El concepto formalmente definido de Dato, se da a continuacin : Es la expresin general que describe los objetos con los cuales opera un procesador. Si llevamos esta definicin al mbito de Programas Codificados en algn lenguaje, la palabra Procesador se sustituye por Computador. Por Tipo de Dato, entenderemos la Clase que agrupa Datos con idnticas capacidades de operacin. Existen diferencias entre los distintos lenguajes de programacin en cuanto a los Tipos de Datos que se utilizan, las operaciones permitidas entre ellos y el modo en que pueden organizarse (Estructuras mas complejas). En cambio, s podemos encontrar como matiz comn en todos los lenguajes, que los mismos proporcionan un conjunto fijo de Tipos de Datos, llamados Datos Primitivos o

Informtica Ingeniera Electrnica y Ambiental

Pgina 14

Bsicos. Cada Tipo de Dato Primitivo o Bsico, define como se mencion anteriormente, el conjunto de valores que puede asumir una variable, as definida, como potencial contenido. De aqu se desprende que el Tipo de Dato, fija el conjunto de Operaciones aplicables a todos los Datos de su Clase. Los Tipos de Datos Bsicos que manejan la mayora de los Procesadores son: Tipo NUMERICO Tipo LOGICO Tipo CARACTER Estos Tipos se aplican tanto a las Variables como a las Constantes, pero debe observarse que una variable de un determinado Tipo, slo puede tomar como valor una constante del mismo Tipo. A continuacin, se analizarn cada uno de los distintos Tipos Bsicos mencionados: Tipo Numrico : Bsicamente se distinguen dos Subtipos : Tipo Numrico Entero. Tipo Numrico Real. Los Datos Numricos Enteros, debern siempre estar comprendidos entre los valores mnimo y mximo que cada computador establezca. Los Datos Numricos Reales, tendrn en general dos formas de representacin : Apelando a un punto Decimal que separe la mantisa de la parte entera ,o bien segn la Notacin Cientfica, utilizable para expresar nmeros muy grandes o muy chicos. Esto entraa a dos maneras de considerar a las expresiones decimales de los nmeros Reales: Notacin Cientfica o Exponencial, y Coma o Punto Flotante, en la cual se fija la cantidad de dgitos significativos (sin considerar ceros a izquierda). En realidad, la notacin de punto flotante, es un tipo de notacin cientfica en un formato particular, denominado normalizado en base 2 (dos). No se har incapi aqu sobre estos mecanismos de representacin, ya que se supone que el lector est familiarizado con ellos. En cuanto a la representacin interna de nmeros reales dentro de un ordenador, dada su complejidad respecto de la representacin de nmeros enteros, se har alguna referencia ms adelente. Tipo Lgico : A este Tipo de Dato, se lo suele llamar tambin Tipo Booleano, en honor al matemtico ingls George Boole, quien cre un Algebra para el tratamiento de los mismos. Por tal razn muchas veces se presentar a tales variables bajo la denominacin de Variables Booleanas. La principal caracterstica que posee este Tipo, es que su valor no es cuantitativo, sino cualitativo. Adems mientras que una variable del tipo numrico puede asumir un gran conjunto de valores (idealmente infinitos) como contenido, una variable Booleana, es binaria y por consiguiente podr asumir dos valores solamente : Verdadero (True) o Falso (False). De este dominio impuesto para el Tipo en estudio, se explica su caracter cualitativo. Estas variables permiten describir Estados del Ambiente mediante un enunciado implcito en las mismas que puede resultar verdadero o falso, dependiendo del instante de la observacin.

Informtica Ingeniera Electrnica y Ambiental

Pgina 15

Las operaciones posibles de definir entre ellas as como tambin sus aplicaciones sern luego estudiadas detalladamente. Tipo Caracter : Involucran a un conjunto ordenado y finito de smbolos que el procesador puede reconocer. Si bien no existe un conjunto estandar, podemos decir que dicho conjunto est bsicamente integrado por: 1) Letras maysculas (desde la A hasta la Z), sin incluir la CH y la LL (eventualmente puede no ser incluida la ). 2) Letras minsculas (desde la a hasta la z), con las mismas restricciones que para las maysculas. 3) Dgitos (del 0 al 9). 4) Caracteres especiales. Estn incluidos aqu smbolos tales como: *,+,-,:,;,,,",/,<,>,=,|,\,~,@,#,$,.,%,^,&,(,),{,},[,],`,!,?,' y otros. El espacio en blanco, tambin puede ser considerado como un caracter. A continuacin mostramos una tabla con los tipos de datos bsicos y sus rangos de valores:

La Tabla ASCII : La palabra ASCII, responde a la sigla de los trminos AMERICAN STANDARD CODE FOR INFORMATION INTERCHANGE (Cdigo Americano Standard para el Intercambio de Informacin). En ella se ha asignado un cdigo nico (en Binario, y sus correspondientes en los sistemas de numeracin Decimal y Hexadecimal) a cada uno de los caracteres posibles de reconocer por un computador. Esto constituye implcitamente una ordenacin de los mismos. El lector puede consultar entonces dicha tabla (disponible en muy variadas publicaciones de informtica), para tener conocimiento del conjunto de valores asumibles por un Dato Tipo Caracter. Existen diversas circunstancias bajo las cuales conviene integrar al ambiente objetos (variables) del tipo caracter. Algunos ejemplos sern presentados posteriormente. Podemos sintetizar los Tipos de Datos Primitivos mediante el esquema que se presenta a continuacin : Datos Primitivos Numrico Caracter Real Lgico

Entero

Informtica Ingeniera Electrnica y Ambiental

Pgina 16

Informtica Ingeniera Electrnica y Ambiental Operadores Lgicos


Existen tres Operaciones Lgicas fundamentales:

Pgina 17

1 - Conjuncin Lgica o Producto Lgico : El operador correspondiente se representa mediante los smbolos '^' (propio de la Lgica Proposicional) 'AND' y '.' En el Lenguaje de Programacin C se utiliza el smbolo '&&'. El efecto de este Operador es la evaluacin simultnea del Estado de Verdad de la variables lgicas involucradas. LLamamos Estado de Verdad, a uno cualquiera de los dos valores del conjunto Lgico. En tal sentido a los Operadores Lgicos en general, se los denomina Conectores Lgicos, puesto que "conectan" predicados (o variables lgicas). As tendremos, por ejemplo que la expresin : A && B, ser Verdadera nicamente si A y B lo son. Cualquier otro arreglo de Estados de Verdad para ambas variables, dar como resultado el Valor Falso, puesto que basta con que una de la dos variables tenga valor Falso, para que ambas no sean simultneamente Verdaderas. Variables Lgicas P Q Verdadero Verdadero Verdadero Falso Falso Verdadero Falso Falso Resultado P && Q Verdadero Falso Falso Falso

2 - Disyuncin Lgica Inclusiva o Suma Lgica: El Operador correspondiente, se representa mediante los smbolos 'v' (propio de la Lgica Proposicional), 'OR' y '+' En el Lenguaje de Programacin C se utiliza el smbolo '||'. El efecto de este operador, es la evaluacin no simultnea del Estado de Verdad de las variables lgicas involucradas. Esto implica que al tener Estado Verdadero por lo menos una de las variables afectadas, la operacin dar un resultado verdadero. As tendremos que la expresin : A || B, ser Falsa nicamente cuando el Estado de ambas variables sea Falso. En cualquier otro caso, la operacin ser Verdadera. Variables Lgicas P Q Verdadero Verdadero Verdadero Falso Falso Verdadero Falso Falso Resultado P || Q Verdadero Verdadero Verdadero Falso

3 - Negacin o Complemento Lgico : Este Operador representado por un guin sobre la Variable a Complementar ejemplo y tambin la palabra NOT al aplicarse a un predicado lgico (simple o compuesto) , devuelve el valor opuesto; es decir : si el predicado en cuestin es Falso, el resultado ser Verdadero y recprocamente. En el Lenguaje de Programacin C se utiliza el smbolo '!'. As se tendr que la expresin : !( A || B ), devolver como resultado verdadero, nicamente cuando las variables A y B adopten simultneamente el estado falso.

Das könnte Ihnen auch gefallen