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

Slides:



Advertisements
Presentaciones similares
DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
Advertisements

ING SEC 3 - UCSC Agosto 2009 Laboratorio Lenguaje de Programación ING – Universidad Católica SSMA Concepción Semestre II Tema:
Elementos de Pascal Escribir un programa en Pascal que lea los valores de los catetos de un triángulo rectángulo y calcule y muestre la hipotenusa. program.
Fundamentos de la Programación Estructurada
Técnico en programación de Software
Unidad 2 Algoritmos y resolución de problemas
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
Tipo de Dato Abstracto Tipos de datos:
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Objetos de un programa Datos: Se denomina dato a toda aquella información característica de una entidad y que es susceptible de tratamiento en un programa.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Teoría de lenguajes y compiladores
Algoritmo y Estructura de Datos I
Ingeniero Anyelo Quintero
Conceptos Básicos de Java
La estructura básica de los programas en java, algo a tener en cuenta y que debemos recordar siempre es el archivo debe llevar el nombre de la clase con.
POO Java Módulo 3 Elementos de programas Identificadores
Tema 6: Clases Antonio J. Sierra.
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
Fundamentos de Programación
Lenguaje C.
EXPONENTES Y RADICALES
LENGUAJE “C” Programación.
Semana 5 Subprogramas..
CARACTERÍSTICAS DE LOS PROGRAMAS
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
Tema 2: Los tipos de datos
Índice. Revisando conceptos acerca de la memoria.
TIPOS DE DATOS ABSTRACTOS
Clase 10: Estructuras de datos y arreglos.
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
ESTRUCTURA DE DATOS ESD-243
Descomposición Factorial Unidad 5
Administración de Proyectos de desarrollo de Software Ciclo de vida de un proyecto Enfoque moderno Temas Componentes Directivas Declaraciones globales.
COMPONENTES DE UN ALGORITMOS
Elementos básicos del lenguaje
Ada 2º Parte (variables, ámbitos , subrutinas , tipos abstractos de datos y excepciones)
ETAPAS PARA SOLUCIONAR UN PROBLEMA
Unidad II Introducción a la programación en C++
Informática Ingeniería en Electrónica y Automática Industrial
PENSAMIENTO ANALÍTICO SISTÉMICO DAISY KATERINE RODRÍGUEZ DURÁN
Programación en C para electrónicos
Algoritmo Ing. Maria Rosana Heredia
PARCIAL DE JUNIO DEL 2014 LENGUAJE DE PROGRAMACIÓN UN LENGUAJE SE PUEDE DEFINIR COMO UN CONJUNTO DE PALABRAS Y FORMAS DE EXPRESIÓN POR MEDIO DE.
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Elementos básicos del lenguaje
APUNTADORES.
Elementos básicos del lenguaje
Términos algoritmo diseñar algoritmo implementar algoritmo
PHP con Bases de Datos Tema 2 Variables, Constantes y Tipos de Datos
Estructura de un programa C
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
UNIVERSIDAD TECNICA PERTICULAR DE LOJA
 Un lenguaje se puede definir como un conjunto de palabras y formas de expresión por medio de las cuales se comunican y relacionan miembros de una comunidad.
PRINCIPIOS DE PROGRAMACIÓN

Operaciones Algebraicas
Presente un cuestionario con los aspectos mas importantes sobre los
UNIDAD 4: Introducción a la Lógica Computacional Objetivo : Interpretar y aplicar adecuadamente los fundamentos básicos de la estructura y funcionamiento.
Lic. Carla Aguirre Montalvo
Programación de Computadores
EL TIPO DE DATO LOGICO y constantes.
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
CONSTANTES DENTRO DE UN CÁLCULO O EN LOS PASOS PARA SOLUCIONAR UN PROBLEMA, EXISTIRÁN VALORES QUE NUNCA VAN A CAMBIAR Y SE LOS CONOCE COMO CONSTANTES.
MEMORIA DINÁMICA.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
3.6 Manejo de E/S Estructuras En la creación de soluciones para algunos problemas surge la necesidad de agrupar datos de diferente tipo o de manejar datos.
Transcripción de la presentación:

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

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.

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

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.

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.

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.

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

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:

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$

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)

TIPOEJEMPLOS INTEGER REAL E 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

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

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

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).

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

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.

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

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)

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

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; };

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