Sie sind auf Seite 1von 24

Republica Bolivariana de Venezuela. Ministerio del Poder Popular para la Defensa. Universidad Nacional Experimental de las Fuerzas Armadas.

TSU Anlisis y Diseo de Sistema. 2do. Semestre- seccin 2. Lenguaje de Programacin

Algoritmo, programacin y tratamientos de datos.

Facilitadora: Denis Acosta

Alumnos: Martnez Jan 19.077.520 Mejias Abner 19.871.175 Morales Carlos 23.731.238 Ruiz Yecci 25.036.462 Bellenate Luismar 23.729.714

CUIDAD BOLIVAR, OCTUBRE 2012 INTRODUCCION.

Lenguaje de programacin es el idioma utilizado para controlar el comportamiento de una mquina, particularmente una computadora. Consiste en un conjunto de smbolos y reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos y expresiones. Hay muchos lenguajes de programacin, pero para programar no es necesario conocer todos los lenguajes, es igual que cuando hablamos, podemos comunicarnos en espaol aunque no sepamos alemn. Aunque la palabra debera ser idioma ya que lenguaje realmente abarca todos los idiomas pero en computacin equivocadamente se usa el trmino lenguaje cuando el trmino correcto es idiomas de programacin. En la actualidad los lenguajes de programacin estn escritos para ser compresibles por el ser humano, a este cdigo se le llama cdigo fuente, pero no es comprendido por la mquina ya que esta solo maneja el lenguaje binario. La compilacin es el proceso de traducir un programa en cdigo fuente a programa en cdigo objeto (que usa el lenguaje binario), el programa encargado de compilar se llama compilador. La mayora de software de programacin trae su propio compilador.

1.- Arreglos

Un arreglo puede definirse como un grupo o una coleccin finita, homognea y ordenada de elementos. Los arreglos pueden ser de los siguientes tipos: Arreglos Unidimensionales: Un arreglo unidimensional es un tipo de datos estructurado que est formado de una coleccin finita y ordenada de datos del mismo tipo. Es la estructura natural para modelar listas de elementos iguales. Arreglos Bidimensionales: Este tipo de arreglos al igual que los anteriores es un tipo de dato estructurado, finito ordenado y homogneo. El acceso a ellos tambin es en forma directa por medio de un par de ndices. Arreglos Multidimensionales: Este tambin es un tipo de dato estructurado, que est compuesto por n dimensiones. Para hacer referencia a cada componente del arreglo es necesario utilizar n-ndice, uno para cada dimensin. 2.- Funciones En programacin, una funcin es una seccin de un programa que calcula un valor de manera independiente al resto del programa. En esencia, una funcin es un mini programa: tiene una entrada, un proceso y una salida. Una funcin tiene tres componentes importantes:

los parmetros, que son los valores que recibe la funcin como entrada; el cdigo de la funcin, que son las operaciones que realiza la funcin; y el resultado o valor de retorno, que es el valor final que entrega la funcin.

La sintaxis para definir una funcin es la siguiente:


function {nombre}({parmetro}: {tipo}; ...): {tipo del resultado}; var {variables locales} begin {cdigo de la funcin} end;

3.- Procedimientos. Un procedimiento es una seccin de un programa (al igual que una funcin) que realiza varias sentencias de manera independiente al resto del programa. La diferencia con una funcin es que un procedimiento no entrega ningn valor como resultado. Los procedimientos son tiles para agrupar secuencias de sentencias que deben ser realizadas juntas. Usar procedimientos suele hacer que los programas sean ms fciles de leer. La sintaxis para crear un procedimiento es la siguiente:
procedure {nombre}({parmetro}: {tipo}; ...); var {variables locales} begin {cdigo del procedimento} end;

4.- Lenguaje de Programacin. Un lenguaje de programacin es un idioma artificial diseado para expresar procesos 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.1 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.

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. Historia Para que la computadora entienda nuestras instrucciones debe usarse un lenguaje especfico conocido como cdigo 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. 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. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (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. 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. 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. La primera programadora de computadora conocida fue Ada Lovelace, hija de Anabella Milbanke Byron y Lord Byron. Anabella introdujo en las matemticas a Ada quien, despus de conocer a Charles Babbage, tradujo y

ampli una descripcin de su mquina analtica. Incluso aunque Babbage nunca complet la construccin de cualquiera de sus mquinas, el trabajo que Ada realiz con stas le hizo ganarse el ttulo de primera programadora de computadoras del mundo. El nombre del lenguaje de programacin Ada fue escogido como homenaje a esta programadora. A finales de 1953, John Backus someti una propuesta a sus superiores en IBM para desarrollar una alternativa ms prctica al lenguaje ensamblador para programar la computadora central IBM 704. El histrico equipo Fortran de Backus consisti en los programadores Richard Goldberg, Sheldon F. Best, Harlan Herrick, Peter Sheridan, Roy Nutt, Robert Nelson, Irving Ziller, Lois Haibt y David Sayre.2 El primer manual para el lenguaje Fortran apareci en octubre de 1956, con el primer compilador Fortran entregado en abril de 1957. Esto era un compilador optimizado, porque los clientes eran reacios a usar un lenguaje de alto nivel a menos que su compilador pudiera generar cdigo cuyo desempeo fuera comparable al de un cdigo hecho a mano en lenguaje ensamblador. En 1960, se cre COBOL, uno de los lenguajes usados an en 2010 en informtica de gestin. A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un mtodo ms eficiente para programarlas. Entonces, se crearon los lenguajes de alto nivel, como lo fue BASIC en las versiones introducidas en los microordenadores de la dcada de 1980. Mientras que una tarea tan sencilla como sumar dos nmeros puede necesitar varias instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastar una sola sentencia.

Tcnica. Para escribir programas que proporcionen los mejores resultados, cabe tener en cuenta una serie de detalles.

Correccin. Un programa es correcto si hace lo que debe hacer tal y como se estableci en las fases previas a su desarrollo. Para determinar si un programa hace lo que debe, es muy importante especificar claramente qu debe hacer el programa antes de desarrollarlo y, una vez acabado, compararlo con lo que realmente hace. Claridad. Es muy importante que el programa sea lo ms claro y legible posible, para facilitar as su desarrollo y posterior mantenimiento. Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente, as como cuidar el estilo en la edicin; de esta forma se ve facilitado el trabajo del programador, tanto en la fase de creacin como en

las fases posteriores de correccin de errores, ampliaciones, modificaciones, etc. Fases que pueden ser realizadas incluso por otro programador, con lo cual la claridad es an ms necesaria para que otros programadores puedan continuar el trabajo fcilmente. Algunos programadores llegan incluso a utilizar Arte ASCII para delimitar secciones de cdigo. Otros, por diversin o para impedir un anlisis cmodo a otros programadores, recurren al uso de cdigo ofuscado.

Eficiencia. Se trata de que el programa, adems de realizar aquello para lo que fue creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible los recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido creado y a la cantidad de memoria que necesita, pero hay otros recursos que tambin pueden ser de consideracin al obtener la eficiencia de un programa, dependiendo de su naturaleza (espacio en disco que utiliza, trfico de red que genera, etc.). Portabilidad. Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma, ya sea hardware o software, diferente a aquella en la que se elabor. La portabilidad es una caracterstica muy deseable para un programa, ya que permite, por ejemplo, a un programa que se ha desarrollado para sistemas GNU/Linux ejecutarse tambin en la familia de sistemas operativos Windows. Esto permite que el programa pueda llegar a ms usuarios ms fcilmente.

5.- Tipos de Lenguajes de Programacin. Lenguajes de mquina El lenguaje mquina de una computadora consta de cadenas de nmeros binarios (ceros y unos) y es el nico que "entienden" directamente los procesadores. Todas las instrucciones preparadas en cualquier lenguaje de mquina tienen por lo menos dos partes. La primera es el comando u operacin, que dice a la computadora cul es la funcin que va a realizar. Todas las computadoras tienen un cdigo de operacin para cada una de sus funciones. La segunda parte de la instruccin es el operando, que indica a la computadora dnde hallar o almacenar los datos y otras instrucciones que se van a manipular; el nmero de operandos de una instruccin vara en las distintas computadoras. En una computadora de operando nico, el equivalente binario de "SUMAR 0814" podra hacer que se sume el valor que se encuentra en la localidad de almacenamiento o direccin 0814 al valor que se encuentra en la unidad aritmtica lgica. En una mquina de dos operandos, la representacin binaria de "SUMAR 0814 8672" podra hacer que se sume el valor que est en la localidad 8672 al valor que est en la direccin 0814. El formato de operando nico es popular en las microcomputadoras ms pequeas; la estructura de dos operandos se encuentra en casi todas las dems mquinas.

Segn los estndares actuales, las primeras computadoras eran poco tolerantes. Los programadores tenan que traducir las instrucciones de manera directa a la forma de lenguaje de mquina que comprendan las computadoras. Por ejemplo, un programador que escribiera la instruccin "SUMAR 0814" para una de las primeras mquinas IBM hubiera escrito: 000100000000000000000000000010111000 Adems de recordar las docenas de cdigos numricos para los comandos del conjunto de instrucciones de la mquina, el programador tena que conocer las posiciones donde se almacenan los datos y las instrucciones. La codificacin inicial muchas veces requera meses, por lo que era costosa y era frecuente que originara errores. Revisar las instrucciones para localizar errores era casi tan tedioso como escribirlas por primera vez. Adems, si era necesario modificar un programa posteriormente, la tarea poda llevarse meses. Lenguajes ensambladores A principios de la dcada de 1950, y con el fin de facilitar la labor de los programadores, se desarrollaron cdigos nemotcnicos para las operaciones y direcciones simblicas. La palabra nemotcnico se refiere a una ayuda para la memorizacin. Uno de los primeros pasos para mejorar el proceso de preparacin de programas fue sustituir los cdigos de operaciones numricos del lenguaje de mquina por smbolos alfabticos, que son los cdigos nemotcnicos. Todas las computadoras actuales tienen cdigos nemotcnicos aunque, naturalmente, los smbolos que se usan varan en las diferentes marcas y modelos. La computadora sigue utilizando el lenguaje de mquina para procesar los datos, pero los programas ensambladores traducen antes los smbolos de cdigo de operacin especificados a sus equivalentes en lenguaje de mquina. Este procedimiento prepar avances posteriores. Si la computadora era capaz de traducir smbolos convenientes en operaciones bsicas, por qu no hacer tambin que realizara otras funciones rutinarias de codificacin, como la asignacin de direcciones de almacenamiento a los datos? La tcnica de direccionamiento simblico permite expresar una direccin no en trminos de su localizacin numrica absoluta, sino en trminos de smbolos convenientes para el programador. Durante las primeras etapas del direccionamiento simblico, el programador asigna un nombre simblico y una direccin real a un dato. Por ejemplo, el programador podra asignar el valor total de mercanca adquirida durante un mes por un cliente de una tienda de departamentos a la direccin 0063, y darle el nombre simblico TOTAL. Se podra asignar el valor de la mercanca devuelta sin usar durante el mes a la direccin 2047 y drsele el nombre simblico CRDITO. As, durante el resto del programa, el programador se referir a los nombres simblicos, ms que a las direcciones, cuando fuera preciso procesar

estos datos. Por ejemplo, se podra escribir la instruccin "S CRDITO TOTAL" para restar el valor de las mercancas devueltas del importa total de compras para obtener el importe de la factura mensual del cliente. A continuacin, el programa ensamblador traducira la instruccin simblica a esta cadena de bits:

Ms adelante se hizo otra mejora. Se dej a la computadora la tarea de asignar y recordar las direcciones de las instrucciones. Lo nico que tena que hacer el programador era indicar a la computadora la direccin de la primera instruccin, y el programa ensamblador se encargaba de almacenar, de manera automtica, todas las dems en forma secuencial a partir de ese punto. As, si se agregaba ms tarde otra instruccin al programa, no era necesario modificar las direcciones de todas las instrucciones que seguan al punto de insercin (como tendra que hacerse en el caso de programas escritos en lenguaje de mquina). En vez de ello, el procesador ajustaba automticamente las localidades de memoria la prxima vez que se ejecutaba el programa. En la actualidad, los programadores no asignan nmeros de direccin reales a los datos simblicos, simplemente especifican dnde quieren que se coloque la primera localidad del programa, y el programa ensamblador se encarga de lo dems: asigna localidades tanto para las instrucciones como para los datos. Estos programas de ensamble, o ensamblador, tambin permite a la computadora convertir las instrucciones en lenguaje ensamblador del programador en su propio cdigo de mquina. Un programa de instrucciones escrito en lenguaje ensamblador por un programador se llama programa fuente. Despus de que el ensamblador convierte el programa fuente en cdigo de mquina a ste se le denomina programa objeto. Para los programadores es ms fcil escribir instrucciones en un lenguaje ensamblador que en cdigos de lenguajes de mquina, pero es posible que se requieran dos corridas de computadora antes de que se puedan utilizar las instrucciones del programa fuente para producir las salidas deseadas. Los lenguajes ensambladores tienen ventajas sobre los lenguajes de mquina. Ahorran tiempo y requieren menos atencin a detalles. Se incurren en menos errores y los que se cometen son ms fciles de localizar. Adems, los programas en lenguaje ensamblador son ms fciles de modificar que los programas en lenguaje de mquina. Pero existen limitaciones. La codificacin en lenguaje ensamblador es todava un proceso lento. Una desventaja importante de estos lenguajes es que tienen una orientacin a la mquina. Es decir, estn diseados para la marca y modelo especfico de procesador que se utiliza, y es probable que, para una mquina diferente, se tengan que volver a codificar los programas.

Lenguajes de alto nivel Los primeros programas ensambladores producan slo una instruccin en lenguaje de mquina por cada instruccin del programa fuente. Para agilizar la codificacin, se desarrollaron programas ensambladores que podan producir una cantidad variable de instrucciones en lenguaje de mquina por cada instruccin del programa fuente. Dicho de otra manera, una sola macroinstruccin poda producir varias lneas de cdigo en lenguaje de mquina. Por ejemplo, el programador podra escribir "LEER ARCHIVO", y el programa traductor producira una serie detallada de instrucciones al lenguaje de mquina previamente preparadas, con lo que se copiara un registro del archivo que estuviera leyendo el dispositivo de entrada a la memoria principal. As, el programador no se tena que ocupar de escribir una instruccin por cada operacin de mquina realizada. El desarrollo de las tcnicas nemotcnicas y las macroinstrucciones condujo, a su vez, al desarrollo de lenguajes de alto nivel que a menudo estn orientados hacia una clase determinada de problemas de proceso. Por ejemplo, se han diseado varios lenguajes para procesar problemas cientfico-matemtico, asimismo han aparecido otros lenguajes que hacen hincapi en las aplicaciones de proceso de archivos. A diferencia de los programas de ensamble, los programas en lenguaje de alto nivel se pueden utilizar con diferentes marcas de computadores sin tener que hacer modificaciones considerables. Esto permite reducir sustancialmente el costo de la reprogramacin cuando se adquiere equipo nuevo. Otras ventajas de los lenguajes de alto nivel son: Son ms fciles de aprender que los lenguajes ensambladores. Se pueden escribir ms rpidamente. Permiten tener mejor documentacin. Son ms fciles de mantener. Un programador que sepa escribir programas en uno de estos lenguajes no est limitado a utilizar un solo tipo de mquina. Lenguajes compilados Naturalmente, un programa que se escribe en un lenguaje de alto nivel tambin tiene que traducirse a un cdigo que pueda utilizar la mquina. Los programas traductores que pueden realizar esta operacin se llaman compiladores. stos, como los programas ensambladores avanzados, pueden generar muchas

lneas de cdigo de mquina por cada proposicin del programa fuente. Se requiere una corrida de compilacin antes de procesar los datos de un problema. Los compiladores son aquellos cuya funcin es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje mquina con cdigo binario). Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el cdigo. Lenguajes interpretados Se puede tambin utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el cdigo objeto que se produce durante la corrida de compilacin para utilizarlo en una corrida de produccin futura, el programador slo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuacin, un programa intrprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la mquina, convierte cada proposicin del programa fuente en lenguaje de mquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el cdigo objeto para utilizarlo posteriormente. La siguiente vez que se utilice una instruccin, se le debe interpretar otra vez y traducir a lenguaje mquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo, cada instruccin del ciclo tendr que volver a ser interpretado cada vez que se ejecute el ciclo, lo cual hace que el programa sea ms lento en tiempo de ejecucin (porque se va revisando el cdigo en tiempo de ejecucin) pero ms rpido en tiempo de diseo (porque no se tiene que estar compilando a cada momento el cdigo completo). El intrprete elimina la necesidad de realizar una corrida de compilacin despus de cada modificacin del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelacin deber ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una corrida de produccin. Lenguajes de programacin declarativos Se les conoce como lenguajes declarativos en ciencias computacionales a aquellos lenguajes de programacin en los cuales se le indica a la computadora qu es lo que se desea obtener o qu es lo que se esta buscando, por ejemplo: Obtener los nombres de todos los empleados que tengan ms de 32 aos. Eso se puede lograr con un lenguaje declarativo como SQL.

La programacin declarativa es una forma de programacin que implica la descripcin de un problema dado en lugar de proveer una solucin para dicho problema, dejando la interpretacin de los pasos especficos para llegar a dicha solucin a un intrprete no especificado. La programacin declarativa adopta, por lo tanto, un enfoque diferente al de la programacin imperativa tradicional. En otras palabras, la programacin declarativa provee el "qu", pero deja el "cmo" liberado a la implementacin particular del intrprete. Por lo tanto se puede ver que la programacin declarativa tiene dos fases bien diferenciadas, la declaracin y la interpretacin. Es importante sealar que a pesar de hacer referencia a intrprete, no hay que limitarse a "lenguajes interpretados" en el sentido habitual del trmino, sino que tambin se puede estar trabajando con "lenguajes compilados". Programacin lgica La idea fundamental de la programacin lgica consiste en emplear la lgica como lenguaje de programacin. La lgica no es imperativa porque no sirve para indicar cmo resolver un problema (rdenes). La lgica es declarativa porque sirve para especificar qu problema resolver (condiciones). En la programacin lgica, se especifican las condiciones que satisfacen las soluciones, se deducen las soluciones a partir de las condiciones y el nfasis de todo est en qu problema resolver. El problema se describe especificando qu caracteriza a sus posibles soluciones. La programacin lgica, junto con la funcional, forma parte de lo que se conoce como programacin declarativa. En los lenguajes tradicionales, la programacin consiste en indicar cmo resolver un problema mediante sentencias; en la programacin lgica, se trabaja de forma descriptiva, estableciendo relaciones entre entidades, indicando no cmo, sino qu hacer. Se establece entonces que la idea esencial de la programacin lgica es: algoritmos = lgica + control. Es decir, un algoritmo se construye especificando conocimiento en un lenguaje formal (lgica de primer orden), y el problema se resuelve mediante un mecanismo de inferencia (control) que acta sobre aqul. Al hacer un recorrido por la programacin lgica, aparece como uno de sus lenguajes ms representativos, Prolog, que es un clsico de la inteligencia artificial y que se aplica de mltiples formas en el desarrollo de software comercial.

Programacin funcional La programacin funcional es un paradigma de programacin declarativa basado en la utilizacin de funciones matemticas. El objetivo de la programacin funcional es conseguir lenguajes expresivos y matemticamente elegantes, en los que no sea necesario bajar al nivel de la mquina para describir el proceso llevado a cabo por el programa. Los programas escritos en un lenguaje funcional estn constituidos nicamente por definiciones de funciones, entendiendo stas no como subprogramas clsicos de un lenguaje imperativo (pues la programacin funcional es declarativa), sino como funciones puramente matemticas, en las que se verifican ciertas propiedades como la transparencia referencial (el significado de una expresin depende nicamente del significado de sus subexpresiones), y por tanto, la carencia total de efectos laterales. Otras caractersticas propias de estos lenguajes son la no existencia de asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteracin (lo que obliga en la prctica a que todas las repeticiones de instrucciones se lleven a cabo por medio de funciones recursivas). Existen dos grandes categoras de lenguajes funcionales: los funcionales puros y los hbridos. La diferencia entre ambos estriba en que los lenguajes funcionales hbridos son menos dogmticos que los puros, al permitir conceptos tomados de los lenguajes imperativos, como las secuencias de instrucciones o la asignacin de variables. En contraste, los lenguajes funcionales puros tienen una mayor potencia expresiva, conservando a la vez su transparencia referencial, algo que no se cumple siempre con un lenguaje hbrido. Programacin orientada a bases de datos Las bases de datos son programas que administran informacin y hacen ms ordenada la informacin, aparte de hacer la fcil de buscar y por supuesto de encontrar. Las caractersticas de las bases de datos pueden ser ventajosas o desventajosas: pueden ayudar a almacenar, organizar, recuperar, comunicar y manejar informacin en formas que seran imposibles sin las computadoras, pero tambin afecta de alguna manera ya que existen enormes cantidades de informacin en bases de datos de las que no se tiene control del acceso. Las bases de datos tienen muchos usos: facilitan el almacenamiento de grandes cantidades de informacin; permiten la recuperacin rpida y flexible de informacin, con ellas se puede organizar y reorganizar la informacin, as como imprimirla o distribuirla en formas diversas.

Es claro que los lenguajes orientados a bases de datos son declarativos y no imperativos, pues el problema es "qu" se quiere hacer o "qu" se necesita buscar y encontrar en la base de datos, y no se enfatiza el "cmo". Una base de datos tambin se puede definir como un banco de datos o conjunto de datos que pertenecen al mismo contexto, almacenados sistemticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayora por documentos y textos impresos en papel e indexados para su consulta. En la actualidad, y gracias al desarrollo tecnolgico de campos como la informtica y la electrnica, la mayora de las bases de datos tienen formato electrnico, que ofrece un amplio rango de soluciones al problema de almacenar datos. Los sistemas gestores de bases de datos (SGBD) permiten almacenar y posteriormente acceder a los datos de forma rpida y estructurada. Lenguajes de programacin imperativos En ciencias de la computacin se llama lenguajes imperativos a aquellos en los cuales se le ordena a la computadora cmo realizar una tarea siguiendo una serie de pasos o instrucciones, por ejemplo: Paso 1, solicitar nmero. Paso 2, multiplicar nmero por dos. Paso 3, imprimir resultado de la operacin. Paso 4, etc, El proceso anterior se puede realizar con un lenguaje imperativo como por ejemplo BASIC, C, C++, Java, Clipper, Dbase, C#, PHP, Perl, etc. Dentro de la programacin imperativa, se tiene un conjunto de instrucciones que le indican al computador cmo realizar una tarea. Los lenguajes imperativos se basan en comandos u rdenes que se le dan a la computadora para que haga algo, con el fin de organizar o cambiar valores en ciertas partes de la memoria. La ejecucin de estos comandos se realiza, en la mayor parte de ellos, secuencialmente, es decir, hasta que un comando no ha sido ejecutado no se lee el siguiente. Segn el dominio, o mejor dicho con el propsito que se utiliza el programa, se puede hablar de lenguajes de dominio especfico y de dominio general. Lenguajes imperativos procedurales En los lenguajes tradicionales o procedurales, es la aplicacin quien controla qu porciones de cdigo se ejecuta, y la secuencia en que este se ejecuta. La ejecucin de la aplicacin se inicia con la primera lnea de cdigo, y sigue una

ruta predefinida a travs de la aplicacin, llamando procedimientos segn sea necesario. Los lenguajes procedurales estn fundamentados en la utilizacin de variables para almacenar valores y en la realizacin de operaciones con los datos almacenados. Algunos ejemplos son: FORTRAN, PASCAL, C, ADA, ALGOL, En este tipo de lenguajes, la arquitectura consta de una secuencia de celdas, llamadas memoria, en las cuales se pueden guardar en forma codificada, lo mismo datos que instrucciones; y de un procesador, el cual es capaz de ejecutar de manera secuencial una serie de operaciones, principalmente aritmticas y booleanas, llamadas comandos. En general, un lenguaje procedural ofrece al programador conceptos que se traducen de forma natural al modelo de la mquina. El programador tiene que traducir la solucin abstracta del problema a trminos muy primitivos, cercanos a la mquina. Con un lenguaje procedural el usuario (normalmente ser un programador) especifica qu datos se necesitan y cmo obtenerlos. Esto quiere decir que el usuario debe especificar todas las operaciones de acceso a datos llamando a los procedimientos necesarios para obtener la informacin requerida. Estos lenguajes acceden a un registro, lo procesan y basndose en los resultados obtenidos, acceden a otro registro, que tambin deben procesar. As se va accediendo a registros y se van procesando hasta que se obtienen los datos deseados. Las sentencias de un lenguaje procedural deben estar embebidas en un lenguaje de alto nivel, ya que se necesitan sus estructuras (bucles, condicionales, etc.) para obtener y procesar cada registro individual. Algunos lenguajes imperativos Algunos lenguajes de programacin imperativos que se pueden mencionar son: BASIC C C++ Java C# PHP Perl

Diferencia entre lenguajes declarativos e imperativos En los lenguajes declarativos las sentencias que se utilizan lo que hacen es describir el problema que se quiere solucionar, pero no las instrucciones necesarias para solucionarlo. Esto ltimo se realizar mediante mecanismos internos de inferencia de informacin a partir de la descripcin realizada. Los lenguajes imperativos describen paso a paso un conjunto de instrucciones que deben ejecutarse para variar el estado un programa y hallar la solucin, es decir, un algoritmo en el que se describen los pasos necesarios para solucionar un problema. Lenguajes de programacin orientados a objetos En la Programacin Orientada a Objetos (POO u OOP segn siglas en ingls) se definen los programas en trminos de "clases de objetos", objetos que son entidades que combinan estado (es decir, datos) comportamiento (esto es, procedimientos o mtodos) e identidad (propiedad del objeto que lo diferencia del resto). La programacin orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas mdulos ms fciles de escribir, mantener y reutilizar. De esta forma, un objeto contiene toda la informacin, (los denominados atributos) que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de la misma clase, al poder tener valores bien diferenciados en sus atributos). A su vez, dispone de mecanismos de interaccin (los llamados mtodos) que favorecen la comunicacin entre objetos (de una misma clase o de distintas), y en consecuencia, el cambio de estado en los propios objetos. Esta caracterstica lleva a tratarlos como unidades indivisibles, en las que no se separan (ni deben separarse) informacin (datos) y procesamiento (mtodos). Dada esta propiedad de conjunto de una clase de objetos, que al contar con una serie de atributos definitorios, requiere de unos mtodos para poder tratarlos (lo que hace que ambos conceptos estn ntimamente entrelazados), el programador debe pensar indistintamente en ambos trminos, ya que no debe nunca separar o dar mayor importancia a los atributos a favor de los mtodos, ni viceversa. Hacerlo puede llevar al programador a seguir el hbito errneo de crear clases contenedoras de informacin por un lado y clases con mtodos que manejen esa informacin por otro (llegando a una programacin estructurada camuflada en un lenguaje de programacin orientada a objetos). Esto difiere de los lenguajes imperativos tradicionales, en los que los datos y los procedimientos estn separados y sin relacin, ya que lo nico que se busca es el procesamiento de unos datos y los procedimientos estn separados y sin

relacin, ya que lo nico que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programacin estructurada anima al programador a pensar sobre todo en trminos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. Los programadores de lenguajes imperativos escriben funciones y despus les pasan los datos. Los programadores que emplean lenguajes orientados a objetos definen objetos con datos y mtodos y despus envan mensajes a los objetos diciendo que realicen esos mtodos por s mismos. Un objeto se puede definir como un grupo de procedimientos que comparten un estado. Se define al conjunto de datos como "estado", y "mtodos" como el conjunto de procedimientos que pueden alterar ese estado. Un programa orientado a objetos es un mtodo de implementacin en el que los programas estn organizados como colecciones de objetos, donde cada uno es una instancia de alguna clase, y donde todas las clases son miembros de una jerarqua de clases conectadas por relaciones de herencia. Este tipo de lenguajes son muy recientes en comparacin a los primeros lenguajes de programacin que aparecieron.

Algunos lenguajes orientados a objetos Entre los lenguajes orientados a objetos ms importantes que se pueden mencionar, aparecen los siguientes: Ada C++ C# VB.NET Clarion Delphi Eiffel Jave Lexico (en castellano) Objective-C Ocaml

Oz PHP PowerBuilder Pitn Ruby Smalltalk 6.- Cadenas de caracteres. En programacin, una cadena de caracteres, palabra, ristra de caracteres o frase (string en ingls) es una secuencia ordenada de longitud arbitraria (aunque finita) de elementos que pertenecen a un cierto lenguaje formal o alfabeto anlogas a una frase o a unaoracin. En general, una cadena de caracteres es una sucesin de caracteres (letras, nmeros u otros signos o smbolos). Desde un punto de vista de la programacin, si no se ponen restricciones al alfabeto, una cadena podr estar formada por cualquier combinacin finita de todo el juego de caracteres disponibles (las letras de la 'a' a la 'z' y de la 'A' a la 'Z', los nmeros del '0' al '9', el espacio en blanco ' ', smbolos diversos '!', '@', '%', etc). En este mismo mbito (el de la programacin), se utilizan normalmente como un tipo de dato predefinido, para palabras, frases o cualquier otra sucesin de caracteres. En este caso, se almacenan en un vector de datos, o matriz de datos de una sola fila (array en ingls). Las cadenas se pueden almacenar fsicamente:

Seguidas. Enlazados letra a letra.

Generalmente son guardados un carcter a continuacin de otro por una cuestin de eficiencia de acceso. Un caso especial de cadena es la que contiene cero caracteres, a esta cadena se la llama cadena vaca; en teora de autmatas es comn denotar a la misma por medio de la letra griega .

7.- Procedimientos y funciones. Procedimiento de cadena. Delete(s, posicin, numero) Donde: S: cadena original o fuente Posicion: expresin entera Numero: cantidad de carcter a suprimir Ej. Cad1:=`computer Delete (cad1,4,6) Salida Com Insertar

Insert(cad1,s,posicin); Donde: Cad1: cadena a insertar S: donde se inserta Posicin: carcter a partir del cual se inserta. Ej. S:=`Jos Rodrguez Insert(`Garca, s,6); Salida Jos Garca Rodrguez Funciones funcion length lenght(s) s: expresin tipo cadena ej. Lenght(`sto es una prueba) Lenght(`) Salida 18 0

funcion posicin

pos(cadena buscada, cadena fuente) ej. Ch:=`uno dos tres cuatro cinco Writeln(`tres,Ch )); Writeln(`seis,Ch)); Salida 9 0 funcion copiar

copy(s,posicin,numero) donde: s:expresin tipo cadena posicin: primer carcter a extraer. Entero numero: total e caracteres a extraer. Ej. Ch:=`esto es una cadena muy larga Ch2:=copy(Ch,1,18); Write(Ch2), Salida `esto es una cadena funcion upcase upcase(expresin de caracteres) upcase(`a) salida `A 8.- Apuntadores y funciones. Los apuntadores permiten a los programas simular la llamada por referencia y crear y manipular estructuras dinmicas de datos, es decir, estructuras de datos que pueden crecer y encogerse, como las listas vinculadas, colas, pilas y rboles. Cuando C pasa argumentos a funciones, los pasa por valor, es decir, si el parmetro es modificado dentro de la funcin, una vez que termina la funcin el valor pasado de la variable permanece inalterado. Hay muchos casos que se quiere alterar el argumento pasado a la funcin y recibir el nuevo valor una vez que la funcin ha terminado. Para hacer lo anterior se debe usar una llamada por referencia, en C se puede simular pasando un puntero al

argumento. Con esto se provoca que la computadora pase la direccin del argumento a la funcin. Para entender mejor lo anterior consideremos la funcin swap() que intercambia el valor de dos argumentos enteros:

9.- Expresiones y mtodo de Ordenamiento. Los apuntadores son operandos validos dentro e expresiones aritmticas, expresiones de asignacin y expresiones de comparacin. Sin embargo, no todos los operandos generalmente utilizados en estas expresiones son validos con variables de apuntador. Es posible realizar muchas operaciones aritmticas con apuntadores. Un apuntador se puede incrementar (++) o disminuir (--), se puede sumar un entero a un apuntador (+ 0 + =), se puede restar un entero de un apuntador (0 - =), o se puede restar un apuntador de otro. El programa BURBUJA1.CPP, de la leccin 18 se modificar para que utilice dos funciones clasificBurbuja() e intercambiar() (vase el programa BURBUJA.CPP) La funcin clasificBurbuja() se encarga de ordenar el arreglo. Llama a la funcin intercambiar() para que intercambie los elementos del arreglo arreglo[j] y arreglo[j + 1] Recuerde que C++ aplica el ocultamiento de informacin entre funciones, por lo que intercambiar() no tiene acceso a los elementos individuales del arreglo clasificBurbuja() Debido a que clasificBurbuja() quiere que intercambiar() tenga acceso a los elementos del arreglo que se intercambiarn, pasa cada uno de ellos a intercambiar() mediante una llamada por referencia; la direccin de cada elemento del arreglo se pasa explcitamente. Aunque los arreglos completos se pasan automticamente mediante llamada por referencia, los elementos individuales del arreglo son escalares y por lo general se pasan mediante una llamada por valor. As que clasificBurbuja() utiliza el operador de direccin (&) en cada elemento del arreglo en la llamada de intercambiar(), como sigue: Intercambiar(&arreglo[j], &arreglo[j + 1]); Poniendo en prctica la llamada por referencia. La funcin intercambiar() recibe &arreglo[j] en la variable de apuntador elemento1Ptr. Gracias al ocultamiento de informacin, intercambiar() no puede saber el nombre arreglo[j], pero puede utilizar *elemento1Ptr como sinnimo de arreglo[j] Por lo tanto, cuando intercambiar() hace referencia a *elemento1Ptr, de hecho est referenciando a arreglo[j] en clasificBurbuja() De igual manera, cuando intercambiar() hace

referencia a *elemento2Ptr, en realidad est referenciando a arreglo[j + 1] en clasificBurbuja() Aun cuando no se permite que intercambiar() diga: temporal = arreglo[j]; arreglo[j] = arreglo[j + 1]; arreglo[j + 1] = temporal; Se logra exactamente el mismo efecto mediante: en la funcin intercambiar del programa BURBUJA.CPP /* El siguiente programa: BURBUJA.CPP, pone los valores en un arreglo, los ordena en orden ascendente e imprime el arreglo resultante. */ #include <iostream.h> //Para cout y cin #include <iomanip.h> //Para setw() void clasificBurbuja(int *, const int); void main(void) { const int TAMANO_ARREGLO = 10; int arreglo[TAMANO_ARREGLO] = {2, 6, 4, 8, 10, 12, 89, 68, 45, 37}; int i; cout << "Datos en el orden original\n"; for(i = 0; i < TAMANO_ARREGLO; i++) cout << setw(4) << arreglo[i]; clasificBurbuja(arreglo, TAMANO_ARREGLO); //Ordena el arreglo cout << "\nDatos en orden ascendente\n"; MIGUEL . TOLEDO MARTNEZ APUNTADORES Y CADENA LECCIN 20 20-16 Deben observarse varias caractersticas de la funcin clasificBurbuja() El encabezado de la funcin declara arreglo como int *arre, en lugar de como int arre[], indicando que clasificBurbuja() recibe como argumento un arreglo de un solo ndice (nuevamente, estas notaciones son intercambiables) El parmetro tamano se declara como const, aplicando el principio de menor privilegio. Aunque el parmetro tamano recibe una copia de un valor de main() y la modificacin de la copia no puede cambiar el valor en main() clasificBurbuja() no necesita alterar tamano para que cumpla su tarea. El tamao del arreglo permanece fijo durante la ejecucin de clasificBurbuja() Por lo tanto, tamano se declara como const para asegurarse de que no se pueda modificar. Si el tamao del arreglo se modificara durante el proceso de ordenamiento, el algoritmo de ordenamiento no se ejecutara correctamente. El prototipo de la funcin intercambiar() est incluido en el cuerpo de la funcin clasificBurbuja() porque es la nica funcin que llama a intercambiar() La colocacin del prototipo en clasificBurbuja() restringe las llamadas correctas a intercambiar() a aquellas que se llevan a cabo desde clasificBurbuja() Otras funciones que intentan llamar a intercambiar() no tienen acceso a un prototipo de

funcin apropiado. Por lo general, ste es un error de sintaxis, pues C++ requiere prototipos de funcin. Observe que la funcin clasificBurbuja() recibe como parmetro el tamao del arreglo. Dicha funcin debe saber el tamao del arreglo para poder ordenarlo. Cuando se pasa un arreglo a una funcin, sta recibe la direccin de memoria del primer elemento del arreglo. El tamao del arreglo se debe pasar por separado. Al definir la funcin clasificBurbuja() para que reciba como parmetro el tamao del arreglo, se logra que cualquier programa que ordene arreglos de enteros de un solo ndice de tamao arbitrario utilice dicha funcin. El tamao del arreglo podra haberse programado directamente en la funcin. Esto limita el uso de la funcin a un arreglo de un tamao especfico y reduce su capacidad de reutilizacin. Slo los programas que procesen arreglos de enteros de un solo ndice y que sean del tamao especificado podrn utilizar la funcin.

CONCLUSIN Los lenguajes de programacin no son simplemente un detalle ms del amplio mundo de la informtica, y por lo tanto deben ser vistos como el fundamento y la base del desarrollo y avance de la computacin. Estudiar los conceptos bsicos, clasificacin, diferencias, propiedades y funcionamiento de los lenguajes de programacin es elemental para cualquier estudiante o profesional dedicado a la computacin, pues de esa manera se logra tener una perspectiva global y mucho ms amplia que tendr mucho peso al estar bien documentados y al conocer qu son, cmo se clasifican y de qu manera trabajan los lenguajes de programacin. Luego del desarrollo de esta investigacin resulta fcil comprender los tipos y la clasificacin que se les da a los lenguajes de programacin en base a sus funcionalidades y caractersticas. Este estudio tambin permite desarrollar un sentido crtico de los lenguajes de programacin, de forma que el programador no seleccione ni emita un juicio respecto a determinado lenguaje basado simplemente en su limitado conocimiento ni basado en la popularidad de la que goza cierto lenguaje, sino que el programador est capacitado para dar razones contundentes y certeras del por qu

un lenguaje es mejor que otro para determinada tarea, qu ventajas tiene uno respecto del otro, y que as tambin el programador sea capaz de seleccionar el lenguaje que ms le convenga para la resolucin de un problema determinado.

BIBLIOGRAFIA. http://www.monografias.com/trabajos38/tipos-lenguajes-programacion/tiposlenguajes-programacion2.shtml. http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n. http://csrg.inf.utfsm.cl/~rbonvall/progra-utfsm-2010-1/funciones.html. http://es.answers.yahoo.com/question/index?qid=20080811112059AAZ5IxA.

http://es.wikipedia.org/wiki/Cadena_de_caracteres. http://www.fismat.umich.mx/mn1/manual/node9.html.
PDF MIGUEL . TOLEDO MARTNEZ.

Das könnte Ihnen auch gefallen