La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.

Presentaciones similares


Presentación del tema: "Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que."— Transcripción de la presentación:

1 Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que están relacionadas con el desarrollo del pensamiento y de la tecnología. TERCERA GENERACION DE LOS LENGUAJES DE PROGRAMACION: A mediados de los 50 se comenzaron a crear lenguajes de programación que eran más propicios para la elaboración de software que los lenguajes ensamblador de bajo nivel. A mediados de los 50 se comenzaron a crear lenguajes de programación que eran más propicios para la elaboración de software que los lenguajes ensamblador de bajo nivel.

2  Sus instrucciones eran de alto nivel.  Sus instrucciones eran independientes de las máquinas.  Se utilizaba un programa llamado traductor que traducía a lenguaje máquina los programas escritos en lenguajes de alto nivel.  Aparece el termino “compiladores” para referirse a estos programas traductores.  En 1957: aparece FORTRAN (FORmula TRANslating) sistema traductor de fórmulas matemáticas.  LENGUAJES DE TERCERA GENERACION:  Primeros lenguajes.- FORTRAN y COBOL. ALGOL60.  Después de estos aparecen.- BASIC (1965), SNOBOL, APL, PL/1 y SIMULA, entre otros.  En los 70.- PASCAL, C, MODULA y PROLOG.  Más recientes.- Eiffel, Smalltalk, ADA, ML, C++ y Java.

3 Con la aparición de los lenguajes de tercera generación se alcanzó, en gran medida la meta de la independiencia respecto a las máquinas. A partir de los años sesenta, empiezan a surgir diferentes lenguajes de programación, atendiendo a diversos enfoques, características y propósitos. Según estimados, actualmente existen alrededor de 2000 lenguajes de programación y continuamente están apareciendo otros más nuevos, que prometen hacer mejor uso de los recursos computacionales y facilitar el trabajo de los programadores.

4 La cuarta generación: Los lenguajes de cuarta generación pretenden superar los problemas surgidos de los lenguajes de tercera generación:  Acelerar el proceso de construcción de aplicaciones.  Hacer aplicaciones fáciles y rápidas de modificar.  Minimizar los problemas de búsqueda y corrección de errores.  Generar código ejecutable sin errores a partir de los requerimientos deseados, dados con expresiones de alto nivel.  Hacer lenguajes fáciles de usar.

5 Estos lenguajes permiten:  Generar aplicaciones con un número de líneas menor.  Contar con un conjunto de instrucciones secuenciales.  Hacer uso de una gran diversidad de mecanismos (el rellenado de formularios, la interacción con la pantalla, etc.)

6 Estos lenguajes se distinguen por formar parte de un entorno de desarrollo que comprende:  el manejador de una base de datos.  La administración de un diccionario de datos.  El control de accesos.  El manejo de la consistencia de la información.  Otras características enfocadas a facilitar los programas de acceso y explotación de la información.  LENGUAJES DE CUARTA GENERACION:  PROGRESS.  SYSBASE.  INFORMIX.  ORACLE.

7 LENGUAJE DE PROGRAMACION ADA

8 HISTORIA En los 70's hubo interés del Departamento de Defensa de EE.UU. (DoD) para desarrollar un lenguaje sencillo para usar en sistemas de tiempo real incrustados. En los 70's hubo interés del Departamento de Defensa de EE.UU. (DoD) para desarrollar un lenguaje sencillo para usar en sistemas de tiempo real incrustados. Se buscaron desarrolladores para este lenguaje y en pocos meses se obtuvieron 17 propuestas de las cuales 4 fueron elegidas. De las 4 finalistas nombre-código "red", "green", "yellow" y "blue" el lenguaje "green" del francés Jean Ichbiah fue elegido en 1979. Aunque originalmente fue nombrado DoD-1, el nombre fue cambiado a ADA en nombre de Ada Lovelace una pionera en computación y partidaria de Charles Babbage. Pascal fue el punto de partida para el diseño de ADA pero el lenguaje resultante es muy diferente en muchos aspectos. Ada es más extenso, más complejo, permite ejecución concurrente, control en tiempo real de la ejecución, manejo de excepciones y tipos de datos abstractos.

9 Descripción de ADA Ada esta hecho para soportar la construcción de grandes programas. Un programa en Ada esta ordinariamente diseñado como una colección de grandes componentes de software llamados "Packages" cada uno representando un tipo de dato abstracto o un conjunto de objetos de datos compartidos entre subprogramas. Un programa en Ada consiste de un procedimiento singular que sirve como programa principal, el cual declara variables, y ejecuta sentencias, incluyendo llamadas a otros subprogramas. Un programa Ada puede envolver tareas que se ejecuten concurrentemente, si esto pasa entonces estas son inicializadas directamente por el programa principal y forman el nivel superior de la estructura del programa. Ada esta hecho para soportar la construcción de grandes programas. Un programa en Ada esta ordinariamente diseñado como una colección de grandes componentes de software llamados "Packages" cada uno representando un tipo de dato abstracto o un conjunto de objetos de datos compartidos entre subprogramas. Un programa en Ada consiste de un procedimiento singular que sirve como programa principal, el cual declara variables, y ejecuta sentencias, incluyendo llamadas a otros subprogramas. Un programa Ada puede envolver tareas que se ejecuten concurrentemente, si esto pasa entonces estas son inicializadas directamente por el programa principal y forman el nivel superior de la estructura del programa.

10 Ada provee un gran número de tipos de datos, incluyendo enteros, reales, enumeraciones, boleanos, arreglos, records, cadena de caracteres y apuntadores. Abstracción y encapsulación de tipos de datos y operaciones definidas por el usuario son proveídas por la característica de "package". El control de secuencia dentro de un subprograma utiliza expresiones y estructuras de control similares a Pascal. La estructura de control de datos de Ada utiliza la organización de estructura de bloque estática como en Pascal y además el lenguaje prosee llamadas a referencias no estáticas.

11 TIPOS DE DATOS PRIMITIVOS Variables y Constantes.  Cualquier objeto de datos puede ser definido como variable o como constante.  Cualquier declaración que empiece con la palabra constant es una constante y se deberá asignar un valor el cual no se podrá cambiar en la ejecución.  Si se omite la palabra constant la misma declaración define un tipo de dato variable, a la cual se le debe asignar un valor inicial y el cual se podrá cambiar en la ejecución.  Ejem: MaxSize constant integer := 500; CurrentSize integer := 0; MaxSize constant integer := 500; CurrentSize integer := 0; Tipos de Datos Numericos  Enteros, punto-flotante, punto-fijo y los tipos de datos básicos.  Declaraciones son similares que en Pascal usando los atributos range (para enteros) y digits (para flotantes) los cuales especifican el rango de valores que podrá tomar el tipo de dato.

12 Ejem: type DayOfYear is range 1..366; -- un valor entero de 1 a 366 MyBirhtday: DayOfYear := 219; -- MyBirthday inicializada a 219 type Result is digits 7 -- flotante de 7 digitos Anwer: Result :=3.17; -- varible de 7 digitos. Los tipos type DayOfYear is range 1..366; -- un valor entero de 1 a 366 MyBirhtday: DayOfYear := 219; -- MyBirthday inicializada a 219 type Result is digits 7 -- flotante de 7 digitos Anwer: Result :=3.17; -- varible de 7 digitos. Los tipos Integer y float están predefinidos en el paquete estándar como: type integer is range implementation defined; type integer is range implementation defined; type float is digits implementation defined; type float is digits implementation defined;Enumeraciones  Enumeraciones deben de definirse usando un estilo como Pascal de definición e implementación. Ejem: type class is (Fresh, Soph, Junior, Senior); type class is (Fresh, Soph, Junior, Senior); La representación en la ejecución usa el número de posición para cada valor de la literal, empezando con 0 para el primer valor listado, 1 para el segundo etc. La representación en la ejecución usa el número de posición para cada valor de la literal, empezando con 0 para el primer valor listado, 1 para el segundo etc.

13 Tipos Caracter y Boleano  Estas son definidas en el paquete estándar para ser enumeraciones específicas. Tipo de Dato Apuntador  Un tipo apuntador llamado access, junto con una función primitiva new, crean un nuevo objeto y regresa un apuntador a este, el cual debe ser asignado a una variable del tipo access.  Una variable no pude ser directamente declarada como access en vez de esto se hace lo siguiente; type acces_typename is access typename; type acces_typename is access typename; y la variable deber ser declarada como un tipo de dato definido. y la variable deber ser declarada como un tipo de dato definido.  Todas las variables del tipo acces tienen el valor NULL por default.  Un bloque de almacenamiento puede ser solicitado para cualquier tipo de dato usando la sentencia: for acces_typename use expresion; for acces_typename use expresion; Donde expresión es el tamaño del bloque a pedir. Donde expresión es el tamaño del bloque a pedir.

14 TIPO DE DATOS ESCTRUCTURADOS Vectores y Arreglos Vectores y Arreglos  Un arreglo de objetos puede ser declarado con cualquier número de dimensiones, cualquier rango y cualquier tipo de componente. Ejem: Table: array (1..10, 1..20) of float; Table: array (1..10, 1..20) of float; crea una matriz de 10 X 20 de numeros reales; crea una matriz de 10 X 20 de numeros reales;  Definición de tipos puede ser utilizada para crear clases de cualquier tipo de arreglo de objetos. Ejem: type Matrix is array (integer range <>,integer range <>) of float; type Matrix is array (integer range <>,integer range <>) of float; donde los indican un campo que se debe llenar. donde los indican un campo que se debe llenar.  Inicialización: cualquier arreglo deber de ser inicializado en su declaración. Cadena de Caracteres  Las cadenas de caracteres son tratadas como un tipo de vector predefinido usando otros dos tipos predefinidos positive (enteros) y character (enumerando los caracteres definidos en el paquete estandar).

15 type string array (positive range <>) of character; type string array (positive range <>) of character;Ejem: MyString : string(1..30); MyString : string(1..30); CONTROL DE SECUENCIA La ejecución de Ada esta orientada a sentencias como FORTRAN y Pascal. La ejecución de Ada esta orientada a sentencias como FORTRAN y Pascal.Expresiones  Expresiones en Ada permiten primitivas y funciones definidas para ser combinadas en secuencias de manera usual.  Notación infijo es usada para la aritmética binaria, relacional y operaciones boleanas.  Notación prefija es usada para operaciones unarias. (+,-, y NOT), los paréntesis deben de utilizarse para agrupar operaciones y la precedencia es la misma que en Pascal. Sentencias  Las estructuras de secuencias de control de sentencias son las usuales sentencias condicionales (if y case) y las sentencias de iteración (loop).  Todas las sentencias de control terminan con las sentencia end seguida con la palabra de dicha sentencia ejem: end if, end loop.

16 SENTENCIAS CONDICIONALES Sentencia If  La sentencia if tiene la siguiente forma: if boolena expresion then if boolena expresion then secuencias de sentencias secuencias de sentencias elsif boolean expresion then elsif boolean expresion then secuencia de sentencias secuencia de sentencias else else secuencia de sentencias secuencia de sentencias end if end if Sentencia CASE  La forma general de case es: case expresion is case expresion is when choice |...| choice => secuencia de sentencias; …. when choice |...| choice => secuencia de sentencias; …. when others => secuencia de sentencias; end case; when others => secuencia de sentencias; end case;

17 SENTENCIAS DE ITERACION Sentencia Loop  La sentencia básica de iteración tiene la siguiente forma. loop - secuencia de sentencias - secuencia de sentencias end loop end loop  La forma de terminar una sentencia de iteración loop se hace explicitamente con las sentencias exit, goto o return. Setencias controladas pueden ser creadas con las sentencias while y for. while boolean expresion while boolean expresion...... con for hay dos formas. for variable name in discrete_range; for variable name in discrete_range; for variable name in reverse discrete_range; for variable name in reverse discrete_range;

18 SUBPROGRAMAS Y MANEJO DE ALMACENAMIENTO  Procedimientos, funciones y tareas son los tres tipos de subprogramas que Ada maneja. Funciones y Procedimientos  Un procedimiento o función tiene la forma de una especificación: procedure procname(formal-parameters) is... function functioname(formal-parameters) return result_type is function functioname(formal-parameters) return result_type is seguida por un cuerpo como sigue : seguida por un cuerpo como sigue : secuencia de declaraciones secuencia de declaraciones begin begin secuencia de sentencias secuencia de sentencias exception exception manejadores de excepciones manejadores de excepciones end end  Los subprogramas pueden ser recursivos. La salida normal de un procedimiento o tarea es con la ejecución de return;

19 Ejemplo de un programa en ADA HOLA MUNDO!! % vi Hola.ada % vi Hola.ada with Text_IO; use Text_IO; with Text_IO; use Text_IO; procedure Doit is procedure Doit is procedure Hola(x: in integer) is procedure Hola(x: in integer) is begin begin if x=2 then if x=2 then put("Hola Mundo"); put("Hola Mundo"); else put ("Adios Mundo"); else put ("Adios Mundo"); end if end if end Hola; end Hola; y: integer; y: integer; begin begin y:=2; y:=2; Hola(y); Hola(y); end Doit; end Doit; % ada Hola.ada % ada Hola.ada %Hola %Hola

20  with Ada.Command_Line; use Ada.Command_Line; Ada.Text_Io; use Ada.Text_Io;  procedure Ackermann is  function ack (x : integer; y: integer) return integer is  begin  if x = 0 then  return y + 1;  elsif y = 0 then  return ack(x-1,1);  else  return ack(x-1,ack(x,y-1));  end if;  end ack;  x,y,a : integer;  begin  if Argument_Count = 2 then  x := Integer'Value (Argument(1));  y := Integer'Value (Argument(2));  elsif Argument_Count = 1 then  x := 3;  y := Integer'Value (Argument(1));  else  x := 3;  y := 3;  end if;  a := ack (x,y);  Put ("Ack (" & Integer'Image (x) & ",");  Put_Line (Integer'Image (y) & ") = " & Integer'Image (a));  end Ackermann;

21  with Text_IO, Ada.Numerics.Generic_Elementary_Functions; use TExt_IO, Ada.Numerics; procedure UsaMat is x, y : float; package MiFloat_IO is new Float_IO(float); package Funciones is new Generic_Elementary_Functions(float); use MiFloat_IO, Funciones; begin put("Dame un número real: "); get(x); y := sqrt(x); put("raíz cuadrada: "); put(y); end UsaMat; CLAUSULA DE CONTEXTO WITH Text_IO; etc.

22 INTRODUCION Lenguaje de programación de alto nivel. Sus primeras versiones datan de 1970. Es un lenguaje de programación estructurado creado por Niklaus Wirth, un profesor del Instituto tecnológico de Zurich, que lo creó pensando en un lenguaje didáctico que enseñase la programación como "una disciplina sistemática basada en determinados conceptos fundamentales". Estos conceptos más tarde se tornarían motivo de controversia entre los que creen que este lenguaje tiene utilidad limitada a los medios académicos, como Brian W. Kernighan. Lenguaje de programación de alto nivel. Sus primeras versiones datan de 1970. Es un lenguaje de programación estructurado creado por Niklaus Wirth, un profesor del Instituto tecnológico de Zurich, que lo creó pensando en un lenguaje didáctico que enseñase la programación como "una disciplina sistemática basada en determinados conceptos fundamentales". Estos conceptos más tarde se tornarían motivo de controversia entre los que creen que este lenguaje tiene utilidad limitada a los medios académicos, como Brian W. Kernighan. A partir de los años setenta se convirtió en el sucesor de ALGOL en el entorno universitario. Es un lenguaje estructurado, que permite construir programas muy legibles. Wirth es también autor del lenguaje MODULA-2. A partir de los años setenta se convirtió en el sucesor de ALGOL en el entorno universitario. Es un lenguaje estructurado, que permite construir programas muy legibles. Wirth es también autor del lenguaje MODULA-2. El lenguaje de programación Delphi es una versión orientada a objetos moderna del lenguaje Pascal y es ampliamente utilizada en la industria de software. El lenguaje de programación Delphi es una versión orientada a objetos moderna del lenguaje Pascal y es ampliamente utilizada en la industria de software.

23 ESTRUCTURA DE UN PROGRAMA La estructura general de un programa en Pascal es la siguiente:  program identificador; {nombre o cabecera de programa se puede omitir} La sentencia Program se utiliza al comienzo del programa para especificar el nombre del mismo. Este nombre no necesita ser el mismo del que posee el código fuente ni del programa ya compilador. Se puede omitir si se desea. La sentencia Program se utiliza al comienzo del programa para especificar el nombre del mismo. Este nombre no necesita ser el mismo del que posee el código fuente ni del programa ya compilador. Se puede omitir si se desea.  uses identificadores; Se usa para indicar al compilador las unidades (librerías de procedimientos) que se quieren utilizar en el programa y significa que a partir de esta línea se podrán utilizar todas las rutinas (subprogramas, es decir, procedimientos y funciones) incluidas en dichas unidades. Se usa para indicar al compilador las unidades (librerías de procedimientos) que se quieren utilizar en el programa y significa que a partir de esta línea se podrán utilizar todas las rutinas (subprogramas, es decir, procedimientos y funciones) incluidas en dichas unidades. Es decir se trata de un conjunto de procedimientos y funciones agrupadas en un archivo independiente, que podemos utilizar en cualquier de nuestros programas. Es decir se trata de un conjunto de procedimientos y funciones agrupadas en un archivo independiente, que podemos utilizar en cualquier de nuestros programas. Podemos fabricar nuestras propias unidades (ya lo veremos en temas posteriores), o podemos utilizar unidades ya prediseñadas por Turbo Pascal, por ejemplo la unidad Crt contiene subprogramas para el control de la pantalla (como la sentencia Clrscr que limpia la pantalla). Podemos fabricar nuestras propias unidades (ya lo veremos en temas posteriores), o podemos utilizar unidades ya prediseñadas por Turbo Pascal, por ejemplo la unidad Crt contiene subprogramas para el control de la pantalla (como la sentencia Clrscr que limpia la pantalla).

24  label lista de etiquetas;  const definiciones de constantes  type declaraciones de tipos de datos definidos por el usuario Tras la palabra TYPE deberemos colocar la declaración de tipo de datos que queremos utilizar en el programa. Este apartado se entenderá mejor en el tema tipo de datos, y en los diferentes ejemplos que existen en él. Tras la palabra TYPE deberemos colocar la declaración de tipo de datos que queremos utilizar en el programa. Este apartado se entenderá mejor en el tema tipo de datos, y en los diferentes ejemplos que existen en él.  var declaraciones de variables Tras la palabra VAR (también parte de declaración de datos) deberemos colocar las variables que se utilizaran en todo nuestro programa, así como indicar que tipo de datos se trata cada una de estas variables. Tras la palabra VAR (también parte de declaración de datos) deberemos colocar las variables que se utilizaran en todo nuestro programa, así como indicar que tipo de datos se trata cada una de estas variables. Todo dato necesario para la ejecución del programa principal (entre el begin y end.) deberá estar declarado previamente en la parte de declaración de variables (VAR), esta forma de trabajar se suele denominar declaración previa o declarar antes. Todo dato necesario para la ejecución del programa principal (entre el begin y end.) deberá estar declarado previamente en la parte de declaración de variables (VAR), esta forma de trabajar se suele denominar declaración previa o declarar antes. Si utilizáramos una variable no declarada previamente, el programa nos devolverá un mensaje de error y no se ejecutará. Este tipo de error es muy frecuente aunque son fáciles de corregir y detectar. Si utilizáramos una variable no declarada previamente, el programa nos devolverá un mensaje de error y no se ejecutará. Este tipo de error es muy frecuente aunque son fáciles de corregir y detectar.

25  procedure definiciones de procedimientos  function definiciones de funciones  begin {cuerpo del programa o programa principal sentencias de los programas También denominado programa principal, se debe colocar entre la palabra reservada begin y la palabra reservada end.(el punto inclusive). Entre este begin-end. se deben escribir las sentencias o instrucciones que forman el programa y que indican al ordenador como tiene que resolver un problema. Estas sentencias harán uso de los datos previamente declarados tras la parte var del programa. Salvo que existan sentencias de salto o bifurcación, la ejecución del programa se llevará a cabo de forma estrictamente secuencial, es decir, una instrucción o sentencia tras de otra. También denominado programa principal, se debe colocar entre la palabra reservada begin y la palabra reservada end.(el punto inclusive). Entre este begin-end. se deben escribir las sentencias o instrucciones que forman el programa y que indican al ordenador como tiene que resolver un problema. Estas sentencias harán uso de los datos previamente declarados tras la parte var del programa. Salvo que existan sentencias de salto o bifurcación, la ejecución del programa se llevará a cabo de forma estrictamente secuencial, es decir, una instrucción o sentencia tras de otra.  end.

26 TIPOS DE DATOS. TIPOS DE DATOS.Enteros:  Byte: Números enteros comprendidos entre 0 y 255.  Integer: Enteros entre –32768 y 32767.  Longint: Enteros entre –2.147.483.648 y 2.147.483.647  Word: Enteros positivos entre 0 y 65535. Reales:  Los tipos de datos reales representan al conjunto de los números reales. Todo número se puede representar como un real, aunque su representación interna no es la misma.  Real: 2.910-39... 1.71038 (11-12 cifras)  Single: 1.510-45... 3.41038 (7-8 cifras)  Double: 5.010-324... 1.710308 (15-16 cifras)  Extended: 1.910-4932... 1.1104932 (19-20 cifras)  Comp: -2-63 + 1... 263 – 1 (19-20 cifras) Caracteres:  Char: Puede contener un solo carácter.  Cada uno de los caracteres que se puede almacenar en un tipo char se pueden expresar gracias al código ASCII (256 caracteres), e internamente se almacenan realmente bajo este código.  Se representan entre comillas simples, de la siguiente forma:  ‘a’  El carácter blanco se escribe como un espacio entre comillas simples ‘ ‘.

27 Cadenas: String: Secuencia de caracteres escritos en una línea. Se colocan encerrados entre dos comillas simples, de la siguiente forma: ‘ESTO ES UN STRING’ La longitud de una cadena es el numero de caracteres que hay encerrados entre comillas simples, la cadena con ningún carácter se le llama cadena vacía o cadena nula se representa mediante dos comillas simples seguidas ‘’ y su longitud es cero. CONSTANTES Una constante es un valor que no puede cambiar durante la ejecución del programa, recibe un valor en el momento de la compilación del programa y este valor no puede ser modificado durante su ejecución. Deben ser declaradas antes de su utilización bajo la palabra reservada CONST, pueden ser de cualquier tipo de datos, y su valor debe ser asignado mediante el signo igual. Una constante es un valor que no puede cambiar durante la ejecución del programa, recibe un valor en el momento de la compilación del programa y este valor no puede ser modificado durante su ejecución. Deben ser declaradas antes de su utilización bajo la palabra reservada CONST, pueden ser de cualquier tipo de datos, y su valor debe ser asignado mediante el signo igual.Sintaxis:CONST Identificador = valor o expresión; La expresión podrá ser una operación matemática entre dos valores cualesquiera, o entre los valores almacenados en otras constantes o variables. Ejemplos:CONST Pi = 3.141592; /Valor tipo real*/ DosPi = 2 * Pi; /*Dospi vale 2 * 3.24..., el valor Pi debe estar declarado con anterioridad*/

28 VARIABLES Las variables son objetos de un programa cuyo contenido puede variar durante su toda su ejecución. El valor que queremos almacenar en cada una de ellas se llevará a cabo mediante la sentencia de asignación, sentencia que estudiaremos en el apartado sentencias básicas. No debemos confundir el valor que almacena una variable con el tipo de datos que puede almacenar. Una variable es en realidad una posición de memoria con nombre. A este identificador por el cual conocemos esta posición de memoria se le llama nombre de la variable, y el valor almacenado en ella se denomina valor de la variable. Todas las variables que se utilicen en el programa deben de estar declaradas previamente en la parte de declaración de variables, parte VAR, de l programa. Las variables son objetos de un programa cuyo contenido puede variar durante su toda su ejecución. El valor que queremos almacenar en cada una de ellas se llevará a cabo mediante la sentencia de asignación, sentencia que estudiaremos en el apartado sentencias básicas. No debemos confundir el valor que almacena una variable con el tipo de datos que puede almacenar. Una variable es en realidad una posición de memoria con nombre. A este identificador por el cual conocemos esta posición de memoria se le llama nombre de la variable, y el valor almacenado en ella se denomina valor de la variable. Todas las variables que se utilicen en el programa deben de estar declaradas previamente en la parte de declaración de variables, parte VAR, de l programa. Las declaraciones se deben realizar de la siguiente forma: VAR Identificador : tipo de datos ; VAR Listavar1 : tipo1; Listavar2 : tipo2;..ListavarN : tipoN; Donde listavar1 hace referencia a la lista de variables del mismo tipo, siempre separadas por comas. Y tipo1 al tipo de dato que comparten estas variables. Ejemplos:VAR Edad : Integer; Apellidos : String; Tasas : Real; Letra1, letra2, letra3 : char; Días, meses : integer;

29 SENTENCIAS BASICAS COMENTARIOS Un comentario es un texto explicativo, que se coloca dentro del código del programa. Es útil para el programador, y su uso es muy importante ya que facilita la compresión del mismo incluso para otras personas ajenas a su desarrollo, sobre todo en posteriores consultas. Un comentario es un texto explicativo, que se coloca dentro del código del programa. Es útil para el programador, y su uso es muy importante ya que facilita la compresión del mismo incluso para otras personas ajenas a su desarrollo, sobre todo en posteriores consultas. Se pueden usar en cualquier punto del programa, en una sola línea, al final de una línea, después de una línea o dentro de una misma sentencia, ya que se consideran invisibles el compilador, es decir, los ignora cuando se encuentra uno de ellos. Se pueden usar en cualquier punto del programa, en una sola línea, al final de una línea, después de una línea o dentro de una misma sentencia, ya que se consideran invisibles el compilador, es decir, los ignora cuando se encuentra uno de ellos. Su formato es el siguiente: Su formato es el siguiente: {comentario} (*comentario) {comentario} (*comentario) Cualquiera de los dos formatos es perfectamente valido, pudiéndose extender a lo largo de varias líneas y se hace de la siguiente forma: Cualquiera de los dos formatos es perfectamente valido, pudiéndose extender a lo largo de varias líneas y se hace de la siguiente forma: { Un comentario se puede hacer lo largo que uno quiera. De acuerdo. incluso los puedes anidar (*hola soy anidado*)} { Un comentario se puede hacer lo largo que uno quiera. De acuerdo. incluso los puedes anidar (*hola soy anidado*)}

30 SENTENICA DE ASIGNACIÒN SENTENICA DE ASIGNACIÒN La sentencia de asignación se utiliza para almacenar un dato dentro de una variable. En concreto lo que realiza la sentencia de asignación es situar un valor o dato en una zona de memoria. La sentencia de asignación se utiliza para almacenar un dato dentro de una variable. En concreto lo que realiza la sentencia de asignación es situar un valor o dato en una zona de memoria. La variable en la que queremos guardar el valor deberá estar previamente declarada en la zona de variables del programa (parte VAR) y el valor que se almacenara en ella deberá ser del mismo tipo de datos que encontramos en su declaración. La variable en la que queremos guardar el valor deberá estar previamente declarada en la zona de variables del programa (parte VAR) y el valor que se almacenara en ella deberá ser del mismo tipo de datos que encontramos en su declaración. Su Formato es el siguiente: variable := expresión; Su Formato es el siguiente: variable := expresión; La expresión puede ser un valor directo, una expresión matemática, u otra variable. Ejemplos: La expresión puede ser un valor directo, una expresión matemática, u otra variable. Ejemplos: {En el caso de que la variable fuera de tipo entero podríamos hacer lo siguiente} {En el caso de que la variable fuera de tipo entero podríamos hacer lo siguiente} variable1 := 9; variable1 := 9; variable2 := 9 + 10; {en variable2 se almacenaría 19} variable2 := 9 + 10; {en variable2 se almacenaría 19} {variable de tipo string] {variable de tipo string] variable := ‘Hola soy un string’; variable := ‘Hola soy un string’; {variable de tipo real} {variable de tipo real} variable := 12.34; variable := 12.34; {variable booleana} {variable booleana} variable := true; variable := true; La operación de asignación es una operación destructiva ya que cuando la utilizamos para almacenar algo en una variable, se borra el valor que almacenaba anteriormente, sustituyéndose por el nuevo valor. La operación de asignación es una operación destructiva ya que cuando la utilizamos para almacenar algo en una variable, se borra el valor que almacenaba anteriormente, sustituyéndose por el nuevo valor. variable := 9; {variable almacena 9} variable := 9; {variable almacena 9} variable := 10; {ahora el valor 9 desaparece y se almacena un 10} variable := 10; {ahora el valor 9 desaparece y se almacena un 10}

31 EXPRESIONES Y OPERACIONES ARITMETICAS Como hemos visto en el apartado anterior podemos almacenar en una variable el resultado de una expresión aritmética. En esta sección vamos a examinar que operadores podemos utilizar e dichas expresiones. Como hemos visto en el apartado anterior podemos almacenar en una variable el resultado de una expresión aritmética. En esta sección vamos a examinar que operadores podemos utilizar e dichas expresiones.

32 EJEMPLO: PROGRAM Ejemplo(INPUT, OUTPUT); FUNCTION PreguntaNombre:STRING; VAR nombre:STRING; BEGIN REPEAT WRITELN('Ingresa tu nombre:'); READLN(nombre); UNTIL nombre <> ''; PreguntaNombre := nombre; END; PROCEDURE Saluda; VAR nombre:STRING; BEGIN nombre := PreguntaNombre; IF nombre = 'wirth' THEN WRITELN('Hola señor Wirth!'); ELSE WRITELN('Hola '+nombre); ELSE WRITELN('Hola '+nombre);END; BEGIN Saluda; END.

33 HISTORIA C++  El lenguaje C++ fue creado hacia el año 1980 por Bjarne Stroustrup en los laboratorios Bell. En un principio se utilizó para hacer algunas simulaciones, que para aquel momento ningún otro lenguaje podría soportarlas.  C++ es el producto de la unión de los más grandes aportes hechos por el lenguaje C, tiene características en común con otros lenguajes como el BCPL, ALGOL 68, SIMULA 67, en especial podríamos decir que es un superconjunto del lenguaje C, ya que la similitud sintáctica que tiene C++ con este lenguaje se debe a que uno de los objetivos del creador era mantener y conservar programas que anteriormente fueron escritos en C, por ello se comenzó incluyendo varias de sus bibliotecas. Una de las mejoras mas importantes de C++ es el desarrollo de la Programación Orientada a Objetos, esto de debe a que incluye conceptos como la abstracción, herencia, encapsulamiento y polimorfismo. El concepto fundamental de C++ es la clase lo que viene a ser un tipo definido por el usuario, el cual permite un manejo mas personalizado de los datos.

34 PRIMER PROGRAMA  Cualquier programa por mas simple que sea contiene las siguientes características:  Cualquier programa por mas simple que sea contiene las siguientes características:  · Obtención de información desde cualquier periférico de entrada.  · Forma como se almacena esa información (estática o dinámicamente).  · Conjunto de instrucciones que manipularan esa información mediante determinado proceso.  · Mostrar los resultados obtenidos.  La siguiente es la estructura básica de un programa en C++:  Directivas del procesador.(bibliotecas de funciones).  Declaración de variables globales y funciones.(almacenamiento de los datos mediante un identificador).  Función principal main.(función principal).  main( )  { declaraciones locales.  instrucciones de una función.  }

35  Otras funciones.  Lo cual puede verse ilustrado con nuestro primer programa: //mi primer programa  #include main( ) { cout main( ) { cout<<"este es mi primer programa"; return (0); }  Este programa imprime en pantalla:  Este es mi primer programa.

36 PALABRAS RESERVADAS E IDENTIFICADORES  Cuando estamos programando en C++ podremos necesitar unas variables para almacenar un dato, C++ nos provee de varios tipos de datos para tal tarea, por ejemplo si necesitamos leer un número desde el teclado vamos a necesitar una variable  Palabras Reservadas: c++ utiliza palabras claves como cout, #include, main, etc, los cuales son identificadores que tienen un significado especial para el compilador. Solo podremos utilizarlas tal y como se han definido, además no podremos utilizar estos identificadores como nombre para las variables que definamos.  identificadores: Estos son los nombres que utilizamos para representar las variables, constantes, tipos, funciones y etiquetas de nuestro programa.  Estos identificadores en C++ deben cumplir lo siguiente:  · El primer carácter debe ser una letra o un subrayado.  · Los caracteres significativos son los 32 primeros del identificador.  Los identificadores son sensibles al tamaño y tipo de la letra, al igual que a las mayúsculas y minúsculas.

37 ENTRADA Y SALIDA  C++ tiene sus propios archivos de cabecera por ejemplo iostream.h, fstream.h las cuales conforman su colección de funciones de E/S. El flujo de entrada y salida se define como un conjunto de clases, las cuales están contenidas en el archivo de cabecera iostream.h y se sobrecargan con los operadores >.  SALIDA CON FORMATO.  La entrada y salida se puede realizar aplicándole un formato el cual se asocia con el stream de salida, un conjunto de manipuladores, estos permiten manipular la forma como son visualizados los resultados al usuario estos son algunos de los manipuladores los cuales se encuentran en el archivo de cabecera iomanip.h:

38  endl inserta el caracter de fin de línea '\n'  endl inserta el caracter de fin de línea '\n'  ends inserta el caracter de fin de cadena '\0'  dec conversión a decimal  hex conversión a hexadecimal  oct conversión a octal  ws Extrae un espacio en blanco del inicio de un stream  flush vacía el buffer respecto de un stream de salida  Setprecision (int n) precisión de un dato coma flotante (cifras significativas)  setfill (int car) determina el caracter de relleno para las cadenas de caracteres  setw (int n) establece anchura de campo  setiosflags (long fs) establece una lista de indicadores de formato, fija bites de formato  resetiosflags (long fs) suprime una lista de indicadores de formato e inicializa formato de bits  resetiosflags (long fs) suprime una lista de indicadores de formato e inicializa formato de bits

39 TIPOS DE DATOS BASICOS  NOMBRE RANGO TAMAÑO(bytes)   int -32768..32767 2   short -32768..32767 2   long -2,147.483.648..2,147.438.647 4   unsigned 0..65535 2   unsigned short 0..65535 2   unsigned long 0..4,294.967.295 4   float 3.4E-38..3.4E+384   double 1.7E-308..1.7E+308 8   long double 3.4E-4932..3.4E+4932 10   char -128..127 1   unsigned char 0..255 1 

40 ESTRUCTURAS CONDICIONALES  estas instrucciones nos van a servir para ejecutar una o varias líneas de código de manera especifica, a continuación una descripción de cada una de ellas.  estas instrucciones nos van a servir para ejecutar una o varias líneas de código de manera especifica, a continuación una descripción de cada una de ellas.  Estructura if:  Estructura if:  se utiliza para ejecutar una línea de código condicionalmente. A continuación la forma mas sencilla:  if(expresion) {  accion 1;  accion 2; .  accion n; }

41 ESTRUCTURA IF-ELSE  Otra versión de la estructura if mas general es la estructura if-else:  if(expresion) {  accion 1;  accion 2; .  accion n; }else  {  accion 1;  accion 2; .  accion n; }  Este tipo de Estructura permite evaluar la expresión de manera específica y tomar dos acciones distintas y ejecutar su respectivo bloque de acciones.

42 Estructura condicional "?".  permite evaluar una expresión particular y hacer una única selección de dos posibles acciones dependiendo de la validez o falsedad de la expresión así:  expresion ? accion_1: accion_2;  Estructura switch.  Cuando realizamos un programa encontraremos que necesitamos comprobar posibles valores de una variable, es para esto que nos sirve la  estructura switch, ahora su sintaxis:  switch (expresion) {  case valor_1: instruccion_1;  break;  case valor_2: instruccion_2;  break; .  case valor_n: instruccion_n;  break;  default: otra_instruccion; }

43 ESTRUCTURA FOR  Estructura for.  En varias ocasiones necesitamos ejecutar una o varias instrucciones un determinado numero de veces realizando o teniendo en cuenta una verificación, para ello utilizamos la estructura for la cual tiene la siguiente sintaxis:  int ciclo, numero_veces;  for ( ciclo = 0; ciclo < numero_veces; ciclo = ciclo + 1)  {  instruccion_1;  instruccion_2; .  instruccion_n;  }

44 ESTRUCTURA WHILE  El uso de while es similar al de for ya que antes de realizar el bloque de instrucciones se hace una verificacion preliminar, la sintaxis es la siguiente:  while( condicion )  {  {  instruccion_1;  instruccion_2; .  instruccion_n;  }  }

45 ESTRUCTURA DO-WHILE  La estructura do-while se diferencia de las anteriores, en que la verificación de una determinada condición se realiza al final del ciclo, es decir al entrar a la estructura do-while el ciclo se realiza por lo menos una vez, la sintaxis es la siguiente:  do {  instruccion_1;  instruccion_2; .  instruccion_n;  }while(condicion);  }while(condicion);

46 EJEMPLOS  Programa que ordena n números de forma descendente y ascendente utilizando el conocido método de burbujavalor.  #include  #define tamanyo 5  void Burbuja_Ascendente(int *vector)  {  int temporal;  for(int pase=0;pasevector[i+1])  {  temporal = vector[i];  vector[i] = vector[i+1];  vector[i+1] = temporal;  }

47  //fin if }  //fin for interno }  //fin for externo}  //fin de funcion void Burbuja_Descendente(int *vector)  {  int temporal;  for(int pase=0;  pase >enteros[i];  auxiliar[i] = enteros[i];  }  cout<<"ARREGLO ORIGINAL"<<<enteros[i]<<<endl<<"ARREGLO ASCENDENTE"<<<enteros[i]<<<endl<<"ARREGLO DESCENDENTE"<<<auxiliar[i]<

48  Este programa calcula el factorial de n, mediante una función recursiva  #include  long unsigned factorial(long unsigned numero)  {  if(numero<=1)  return 1;  else return numero*factorial(numero-1);  }  int main()  {  int n;  clrscr();  cout<<"numero n? ";  cin>>n;  for(int i=0;i<=n;i++)  cout<<endl<<i<<"!"<<setw(20)<<setiosflags(ios::right)<

49 - Historia del lenguaje de Programación Java - Objetivos de su diseño - Lo nuevo de Java - Gramática de Java - Un ejemplo de programa en Java

50 Historia de Java  1991 Sun Microsystems  James Gosling  Uso en software dirigido a la programaciòn de electrodomésticos  Vídeos, Tv, teléfonos, Ordenadores…  Sus primeras versiones OAK

51 Objetivos  Lenguaje familiar: - Java no sería un lenguaje totalmente nuevo, se parecería a lo que conocemos como C++.  Lenguaje orientado a objetos Es decir contar con las características de: - encapsulación - herencia - polimorfismo - enlace dinámico  Lenguaje robusto - En Java, los punteros, la aritmética de punteros y las funciones de asignación y liberación de memoria (malloc( ) y free( ) ) no existen. - En Java, los punteros, la aritmética de punteros y las funciones de asignación y liberación de memoria (malloc( ) y free( ) ) no existen. - En lugar de los punteros se emplean referencias a objetos, los cuales son identificadores simbólicos. - El gestor de memoria de Java lleva una contabilidad de las referencias a los objetos. Cuando ya no existe una referencia a un objeto, éste se convierte en candidato para la recogida de basura (garbage collection).

52  Lenguaje de alto rendimiento ( múltiples threads ) - Una de las características del lenguaje es que soporta la concurrencia a través de threads. - Una de las características del lenguaje es que soporta la concurrencia a través de threads. - En ocasiones puede interesarnos dividir una aplicación en varios flujos de control independientes, cada uno de los cuales lleva a cabo sus funciones de manera concurrente.  Lenguaje portable - El principal objetivo de los diseñadores de Java, y dado el gran crecimiento de las redes en los últimos años, fue el de desarrollar un lenguaje cuyas aplicaciones una vez compiladas pudiesen ser inmediatamente ejecutables en cualquier máquina y sobre cualquier sistema operativo. sistema operativo. Objetivos

53 Objetivos  Lenguaje lo más simple posible - Los diseñadores de Java trataron de mantener las facilidades básicas del lenguaje en un mínimo y proporcionar un gran número de extras con las librerías de clases.  Entrada/Salida  Redes  Gráficos  Creación del interfaz gráfico  Seguridad…  Lenguaje seguro - Se pretendía construir un lenguaje de programación que fuese seguro, esto es, que no pudiera acceder a los recursos del sistema de manera incontrolada. Por este motivo se eliminó la posibilidad de manipular la memoria mediante el uso de punteros y la capacidad de transformación de números en direcciones de memoria ( tal y como se hace en C ) evitando así todo acceso ilegal a la memoria. Esto se asegura porque el compilador Java efectúa una verificación sistemática de conversiones.

54 Lo nuevo  La gran novedad que aporta Java dentro de las nuevas generaciones de navegadores es la capacidad de desplazar el control de la interactividad de los servidores hacia las máquinas de los usuarios que se utilizan para recorrer Internet.  El lenguaje Java, visto desde un navegador de Internet, es pues un lenguaje que no es ni totalmente interpretado, ni totalmente compilado. El lenguaje se transforma en un código elemental parecido al ensamblador, llamado también p-code o byte-code.  Posee la particularidad de ser compacto y por tanto puede ser compilado (traducido a lenguaje máquina) muy rápidamente, en el transcurso de la propia ejecución del programa. El p-code constituye una capa intermedia que facilita enormemente la portabilidad de un entorno o de una máquina a otra.

55 Lo nuevo  Aparece entonces la "máquina virtual". Una máquina virtual es una capa lógica que hace creer al programa Java que se ejecuta en un ordenador real (con registros, memoria y procesador), cuando en realidad sólo ve una reconstrucción lógica de un ordenador.  Para ejecutar un programa Java compilado (que está en p-code), es preciso también que cuente con una implementación de la máquina virtual específica donde se desea ejecutar, la cual efectúa la transformación del p- code en un programa comprensible para la máquina.

56 Gramática  Comentarios // comentarios para una sola línea /* comentarios de una o más líneas */  Identificadores Identificador nombre_usuario ò Nombre_Usuario ò _variable_de_sistema ò $transaccion  Palabras clave abstract, continue, for, new, switch, boolean, default, goto, null, synchronizedbreak, do, if, package, thisbyte, double, implements, private, threadsafebyvalue, else, import, protected, throwcase, extends, instanceof, public, transient, catch, false, int, return, true, char, final, interface, short, try, class, finally, long, static, void, const, float, native, super, while. abstract, continue, for, new, switch, boolean, default, goto, null, synchronizedbreak, do, if, package, thisbyte, double, implements, private, threadsafebyvalue, else, import, protected, throwcase, extends, instanceof, public, transient, catch, false, int, return, true, char, final, interface, short, try, class, finally, long, static, void, const, float, native, super, while.  Palabras reservadas cast, future, generic, inneroperator, outer, rest, var,

57 Un ejemplo public class hello { public static void main (String[] args ) public static void main (String[] args ){ System.out.println ("Hola Mundo"); System.out.println ("Hola Mundo"); }}

58 CONCLUSIONES.  Lenguajes de alto nivel o de tercera generación: Se diseñan una serie de primitivas de alto nivel equivalentes a una secuencia de primitivas de bajo nivel. Dado que los traductores de estos lenguajes debían reunir o "compilar" varias instrucciones de código máquina para simular una primitiva de alto nivel, se denominó compiladores a los programas traductores. Se consigue independencia con respecto al ordenador, sólo se debe disponer del compilador adecuado para cada máquina. Las instituciones que se encargan de la definición de lenguajes son la ISO (International Standards Organization) y ANSI (American National Standards Institute).

59 CONCLUSIONES  Lenguajes de cuarta generación: Son aplicaciones que se suelen agrupar en paquetes formando sistemas que permiten a un usuario adaptar los programas a sus aplicaciones sin tener conocimientos técnicos. Se incluyen aquí las hojas de cálculo, los sistemas de bases de datos, etc. El entorno de programación que ofrecen es mucho más cercano al de la aplicación que los entornos ofrecidos por los lenguajes de tercera generación.


Descargar ppt "Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que."

Presentaciones similares


Anuncios Google