La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Elementos de un lenguaje de programación Indispensable saberlo y memorizarlo Tome sus apuntes correspondientes.

Presentaciones similares


Presentación del tema: "Elementos de un lenguaje de programación Indispensable saberlo y memorizarlo Tome sus apuntes correspondientes."— Transcripción de la presentación:

1 Elementos de un lenguaje de programación Indispensable saberlo y memorizarlo Tome sus apuntes correspondientes

2 ELEMENTOS DE LENGUAJES DE PROGRAMACIÓN Los elementos esenciales de todo lenguaje de programación son: operadores declaraciones constantes variables funciones de biblioteca Es mediante ellos y algunos otros elementos de programación básicos, que podemos definir correctamente un buen número de instrucciones o pasos para la solución de un problema con la computadora, desde la entrada de información hasta la salida de los resultados.

3 OPERADORES Los operadores básicos son los siguientes: suma........................................................(+) resta.........................................................(-) negacion...................................................(-) residuo de division entera........................(mod) multiplicacion..........................................(*) division entera..........................................(\) [ en C se usa el carácter % ] division.....................................................(/) exponenciacion..........................................(^) [ en C se usa una función ] La prioridad de los operadores para la evaluación de las expresiones aritméticas, involucrando funciones del programa y de biblioteca, de izquierda a derecha es la siguiente: Funciones Exponenciacion Multiplicacion o division reales Division entera Mod Suma resta

4 DECLARACIONES. Las instrucciones de un programa se dividen en ejecutables y no ejecutables. Estas ultimas (las declaraciones no ejecutables) proveen a la computadora la información necesaria sobre las característica de las variables, especificaciones para formatos de salida, etc.

5 CONSTANTES Los tipos de constantes se dividen en: Enteras Reales Alfanuméricas A su vez de los dos primeros grupos, las constantes pueden catalogarse en: De precisión sencilla De doble precisión Definiciones: Constante entera. Cantidad que carece de punto y digitos decimales, solo admite signos (positivo y negativo) Constante real. Cantidad que incluye punto y digitos decimales, solo admite signos (positivo y negativo) Constante alfanumérica. Son valores que involucran no solamente digitos, sino tambien letras o caracteres y que en su conjunto tienen asignado un valor numérico para almacenarse en la memoria de la computadora.

6 Comentario Las constantes reales permiten representar algunos numeros racionales o cantidades con fracción definida exactamente, en razon de las limitaciones de su memoria y de la forma em que se almacenan. Curiosamente una fracción real se almacena en forma parecida a una notación representada en forma exponencial, es decir, hay una parte entera y un exponente. La precisión simple de las cantidades reales garantiza por lo general seis digitos decimales exactos, la doble precisión, el doble más o menos. Las constantes enteras se utilizan en la programación para definir contadores, indices de arreglos, valores máximos en cuanto al número de elementos en arreglos, tamaño de variables numéricas, etc., y se prefiere hacerlo con variables debido a que sus valores se almacenan utilizando menos localidades de memoria y, por lo tanto un empleo mas eficiente de la memoria de la computadora.

7 VARIABLES Una variable es un nombre que empieza con una letra y puede estar formada por varios caracteres mas (por lo general son válidos dígitos, letras y el subguión _). Las variables estan clasificadas en: Enteras Reales Alfanuméricas y se enplean para almacenar valores definidos por constantes de tipo Entero Real Alfanumérico

8 FUNCIONES DE BIBLIOTECA Una función de biblioteca es un subproceso preprogramado, identificado con un nombre de una letra y de uno a cinco caracteres mas, seguido de argumento(s) entre paréntesis que asocia a él o a los valores definidos por argumento(s), un valor unico en respuesta al llamado de la función. Todo lenguaje de programación cuenta con una cantidad básica de funciones conocidas como de biblioteca, que ayudan al programador en sus labores y evitan definirlas con subprocesos adicionales. Su numero varía de lenguaje en lenguaje y de computadora a computadora, sin embargo, podemos decir que dicha lista básica y sintaxis es prácticamente común a todos los lenguajes. Las funciones pueden emplearse en todas las expresiones aritméticas, órdenes de escritura y asignación. Como ejemplo considerese las siguientes funciones:

9 Definiciones. Las variables enteras son aquellas cuyo nombre esta mencionado en una declaración de este tipo o que se dan por definición en algún lenguaje o porque incluyen algun caracter específico que actua como identificador de tipo, como en el caso del lenguaje Basic, por ejemplo: I%,J%,K%,N%,M%,(el caracter % identifica a variables de tipo entero.) Estas variables solo almacenan valores enteros, por lo que si se les da valores con fracción lo redondearan al entero más próximo para almacenarlo. Algunos lenguajes no redondean y solo toman la parte entera; en lenguaje C se definen mediante declaraciones. Las variables reales son aquellas cuyo nombre se incluye en una declaración de tipo (lenguaje C) o que son consideradas asi por omisión (lenguaje Basic), por ejemplo: A,B,C,X,Y,Z. En el caso del Basic se puede adicionar un caracter como identificador de tipo, por ejemplo: A!,B!,etc. La clasificación en variables de tipo alfanumérico requiere de la presencia de una declaración de tipo al principio del programa fuente (lenguaje C) o de un identificador como se muestra a continuación para el caso de Basic: RESP$,X$,W$

10 Funciones básicas más usuales: Valor absoluto de X, ABS(X) Logaritmo natural de X, LOG(X) Seno trigonométrico de X (en radianes), SIN(X) Coseno trigonométrico de X (en radianes), COS(X) FUNCIóN e X, EXP(X) Raíz cuadrada de X, SQR(X) Tangente de X (en radianes), TAN(X) Arco tangente de X, ATN(X)

11 TIPOEJEMPLOS INTEGER0 -1 +30000 REAL0.0 -1..3E5 0.0001 1.E-4 DOUBLE PRECISION.3D5 1.D-5 LOGICAL.FALSE..TRUE. CHARACTER'Hola!' 'Mayo''04' COMPLEX(1,2) CMPLX(-0.5,1.E-3) Tipos de Constantes

12 Variablesbles Toda variable debe tener un tipo de dato y un nombre El nombre de una variable se sujeta a las reglas que existen en el lenguaje para formar un identificador Algunos identificadores están reservados como son los nombres de comandos del lenguaje, e.g. RETURN Un identificador debe iniciar con una letra A-Z, seguida cero ó más letras A-Z, _ (gui ó n bajo) y dígitos 0-9 Nota-1: No se aceptan letras que no sean del alfabeto inglés, e.g. á, üe aceptan letras que no sean del alfabeto inglés, e.g. á, ü Nota-2: En Fortran77 se acostumbran usar sólo identificadores en MAYUSCULASNota-2: En Fortran77 se acostumbran usar sólo identificadores en MAYUSCULAS Variables Declaración Variables: Antes de la primer sentencia debe declarar las variables indicando tipo-dato seguido de uno o más identificadores separados por coma Tipo de Dato Implícito: Aquellas variables no declaradas que comienzan con I,J,K,L,M ó N se consideran de tipo INTEGER, caso contrario se consideran de tipo REAL Ejemplos: INTEGER A REAL B,C BOOLEAN D

13 Inicialización: Luego de declarar una variable, es importante inicializar dicha variable antes de usarla. Existen dos formas de hacerlo: Asignación: Mediante el operador de asignación =, e.g. X=0 Inicialización Múltiple: Una lista de variables puede inicializarse mediante la sentencia DATA Ejemplos: INTEGER A,B,C,D DATA A,B,C/3*0/ ! INICIALIZACION MULTIPLE: A=0, B=0, C=0 D = 1 ! ASIGNACION

14 Declaraciones y definiciones Utilizando un léxico formalista, podemos decir que una declaración es una sentencia que introduce un nombre en una unidad de compilación dándole existencia semántica. Esto de la "existencia semántica" es una forma elegante de decir que a partir de ahí el compilador sabe que "cosa" es (representa) ese nombre. La forma de darle existencia semántica a las entidades es declararlos (algo así como "presentarlos" formalmente en el código). Por ejemplo, si declaramos una variable x o una función func, a partir de ahí el compilador sabe que x es una variable de tal tipo, y que func es una función de características cuales. El punto importante a resaltar aquí es que cada declaración asocia un nombre con un tipo de dato, lo que en C++ (una sociedad muy clasista) es importante, ya que el conocimiento del "tipo" que corresponde a un identificador, proporciona al compilador mucha información sobre la entidad representada por este (en muchas ocasiones "casi" toda la información necesaria No olvidar que una declaración no hace nada más que esto. Es decir, no añade ninguna otra información distinta de relacionar una etiqueta con un tipo. Posteriormente, cuando esta etiqueta esté asociada con una entidad concreta (con una zona de memoria), las operaciones permitidas se realizarán sobre esta entidad. Recordemos que la entidad puede ser un objeto-dato o un algoritmo (una función).

15 Nombre de BibliotecaDescripcion assert.h Es proporcionar una definicion de la macro assert, que imprime un mensaje de error y aborta el programa alloc.h Existen funciones para asignar, liberar memoria, u obtener informacion de bloques de memoria. ctype.h Son funciones que nos permiten conocer la naturaleza de un caracter, o bien para convertir de mayusculas a minusculas y viceversa; y valores enteros a codigos ASCII. dir.hEsto permite ordenar, crear, modificar, mover y eliminar directorios errno.h Representa los numeros de error, despues que ocurre un error se puede consultar el valor de la varianble del sistema deerrno para obtener mas informacion sobre ese error. float.hDefine los limites de los tipos de coma flotante limits.hDefine los limites de los diferentes tipos de enteros math.hContiene las funciones matematicas estandar utilizadas en C y C++ setjmp.hDefine el tipo de jmp_buf para algunas funciones. signal.hContiene funciones de estado. stdarg.h Define funciones que pueden ser llamadas con diferentes numeros de argumentos, de modo que se pueda escribir f(a) y f(a,b). stdef.hSe definen algunos tipos especiales stdio.h Incorporan las funciones de Entrada - Salida E/S estandar, tipos y macros stlib.h Declara funciones que son utiles para diferentes propositos, en especial de busqueda y ordenacion. string.h Este archivo contiene funciones para manejo de cadenas de caracteres. time.hContiene funciones relativas a fechas y horas BIBLIOTECAS Y DESCRIPCIONES DE USO

16 1 La declaración se completa con la definición. En esta fase se concreta la creación de la entidad (donde y cuando). Si es un objeto-dato se le asigna memoria física y posiblemente se inicializa. Ejemplo: int x = 3;. Si es un algoritmo (función) se establece su código. En muchos casos la declaración y definición se realiza en la misma sentencia. En otros casos la declaración mantiene su sentido original de ser una simple exposición de un tipo de entidad con un nombre y posiblemente algún atributo adicional); en este caso la declaración se denomina también referencia. Como puede verse, las declaraciones pueden definir y/o referenciar. Cualquier declaración que además reserve almacenamiento a un objeto o función es una definición. Así pues, el concepto definición implica una iniciación del objeto (en el sentido de que empieza a tener existencia física al asignársele espacio en memoria). En lo sucesivo, para evitar ambigüedades, utilizaremos declaración en el sentido referenciar, y definición cuando se trata de asignar memoria física y posiblemente inicializar esta con valores determinados.

17 En estas cuestiones es muy importante mantener claras las diferencias conceptuales y semánticas, en especial cuando los objetos son instancias de clases: Declaración: Simplemente asocia un identificador con un tipo (existencia semántica). La declaración de una función se denomina prototipo La gramática C++ exige que la declaración de una entidad se indique primero su tipo y después el identificador con el que se la conocerá en adelante. Ejemplos: extern int x; class C; int func(int x, char c); // prototipo

18 Observe que la gramática C++ permite realizar varias declaraciones en una sola sentencia separando con comas los identificadores: int x, y, z; C c1, c2, c3; Pero hay que prestar atención a este tipo de sentencias porque pueden deparar sorpresas: int x, y, z; // Ok! x, y, z son tipo int. C* c1, c2, c3; // Atención: c1 es tipo C*, mientras que c2 y c3 son tipo C. Después de la declaración es poco lo que puede hacer el compilador con una etiqueta, ya que solo conoce el "tipo" de objeto que representa. Sin embargo, son posibles aquellos usos para los que basta con esta información. Ejemplo: struct E1; // declara que E1 es tipo struct struct E2* pe2; // declara que pe2 es tipo E2* (puntero-a-struct- E2) E1* ep1; // declara que pe1 es tipo E1* (puntero-a-struct-E1)

19 Este tipo de declaraciones se denominan adelantadas (en el sentido que no están acompañadas por una definición adecuada). Las entidades en esta situación (en la que el compilador solo tiene conocimiento del tipo), se denominan tipos incompletos ("Incompletely defined object type"); son las clases declaradas y no definidas, y las matrices de tipos incompletos o de tamaño indefinido. Ejemplo: class C; // clase declarada pero no definida char m1[ ]; // matriz de tamaño indefinido Este tipo de declaraciones se denominan adelantadas (en el sentido que no están acompañadas por una definición adecuada). Las entidades en esta situación (en la que el compilador solo tiene conocimiento del tipo), se denominan tipos incompletos ("Incompletely defined object type"); son las clases declaradas y no definidas, y las matrices de tipos incompletos o de tamaño indefinido. Ejemplo: class C; // clase declarada pero no definida char m1[ ]; // matriz de tamaño indefinido

20 En los casos en que no es necesario conocer el tamaño del objeto incompletamente declarado, sí es posible utilizarlos en la definición de otras entidades. Esto ocurre típicamente cuando la definición solo contiene punteros y referencias al objeto incompleto, ya que en ambos casos, el tamaño siempre es el mismo. Por ejemplo, sería válido el siguiente trozo de código: class A: /* Clase declarada pero no definida aquí la suponemos definida en otra unidad de compilación */ class B { public: A* aptr; void foo (const A& a);... } Iniciación: asigna memoria física al objeto (existencia física). Si no se produce una inmediata asignación de valores determinados, la zona asignada puede contener basura. Ejemplo: int* ptr; int x; int func(int x, char c) { return (x + c) } class C { int x; char c; };

21 Destrucción: en adelante el identificador no es reconocido y el espacio de memoria es desasignado; puede volver a ser utilizado por otros objetos. Sus valores actuales pueden permanecer, pero serán basura para el próximo objeto que ocupe dicho espacio de memoria. Ejemplo: delete c; De acuerdo con lo anterior, puede considerarse que la secuencia vital de un objeto utilizable por el programa contiene las siguientes fases: Declarar Relacionar un identificador (nombre) con un tipo. Iniciar Reservar almacenamiento. Inicializar Asignarle valores. Destruir Desasignación semántica y física


Descargar ppt "Elementos de un lenguaje de programación Indispensable saberlo y memorizarlo Tome sus apuntes correspondientes."

Presentaciones similares


Anuncios Google