NVA-LNG1 3. SENTENCIAS. NVA-LNG2 Asignación Es una sentencia que almacena: el valor del argumento ubicado a la derecha del símbolo que la representa En.

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

Estrella 0 - Fundamentos de la Programación
Prototipo de compilador didáctico del lenguaje LC99
Procedimientos y Funciones
Programación I Teoría III
Direcciones, Arreglos y Argumentos de Funciones
Funciones. Programación, Algoritmos y Estructuras de Datos.
Una variable en un programa es algo con un nombre, cuyo valor puede variar. La manera en que el compilador y enlazador maneja esto es asignando un bloque.
1.2 Sintaxis del lenguaje Java.
Funcionamiento, programación
Introducción al Lenguaje C (ANSI)
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Metodología de la Programación
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Teoría de lenguajes y compiladores
Unidad 3 Punteros.
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.

TRAMPAS EN EL DISEÑO DE LENGUAJES CON RELACIÓN A LOS NOMBRES - REGLAS DE ALCANCE - COMPILACIÓN POR SEPARADO CONTROL DE FLUJO - EVALUACIÓN DE EXPRESIONES.
Compiladores II ( /04/ :03) Tema 2. Generación de Código para Estructuras Complejas Lecciones 3 y 4.
Tema 4: Sentencias de control
Semana 5 Subprogramas..
FUNCIONES EN C. SOBRE FUNCIONES... Caja negra in_1 in_N out_1 In_2 Función: Nombre. (Con el cual es invocada). Entradas. (Parámetros de la función). Salida.
Cobol C Pascal Fortran 5. UNIDADES DE PROGRAMAS SmallTalk Java C++
Introducción a los punteros
Unidad III Elementos del lenguaje C++
Índice. Revisando conceptos acerca de la memoria.
Programación III Clase 08 Arreglos.
INGENIERIA EN SISTEMAS COMPUTACIONALES
Introducción al análisis de algoritmos
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Capítulo 2 – Estructuras de Control
Descomposición Modular. Funciones
Unidad VI Registros (estructuras, uniones y enumeraciones)
Programación en Pascal
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
1 6. PARAMETRIZACIÓN. 2 Parametrización La parametrización permite realizar una abstracción de la identidad de varios ejemplos de los datos Los valores.
1 Asignación Dinámica de Memoria Agustín J. González Versión original de Kip Irvine ELO 329.
Programación I Arreglos II- Matrices.
Informática Ingeniería en Electrónica y Automática Industrial
Teoría – Alejandro Gonzalez
EXPRESIONES Y SENTENCIAS
Informática Ingeniería en Electrónica y Automática Industrial
Agenda Clase 11 Parametrización. Pasaje de parámetros (modos). Razones de escogencia entre modos. Clausuras como parámetros. Etiquetas, Conformat Arrays,
APUNTADORES.
1 Definición y Conversión de datos Agustín J. González ELO-329.
PROGRAMACIÓN MULTIMEDIA
Símbolos de Programación Estructurada
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
Términos algoritmo diseñar algoritmo implementar algoritmo
1 Asignación Dinámica de Memoria Agustín J. González ELO 329.
Contenido:  ¿Qué son los Punteros?  Los Procedimientos: New y Dispose.
1 5. UNIDADES DE PROGRAMAS. 2 Uso de mecanismos de control de secuencia de: Invocaciones Retornos Entre: PPSP 1 a) I R SP 1 SP 2 b) I R Unidades subordinadas.
UNIVERSIDAD LATINA INTRODUCCION A LA PROGRAMACION INSTRUCCIONES INTERATIVAS.
INTRODUCCIÓN AL LENGUAJE C++. Instrucciones Temas.
Teoría de lenguajes y compiladores
PRINCIPIOS DE PROGRAMACIÓN

Estructuras de Decisión
PUNTEROS EN EL LENGUAJE C
Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
 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.
Informática Ingeniería en Electrónica y Automática Industrial
Conceptos y Lenguaje Imperativo
1 Definición y Conversión de datos Agustín J. González ELO-329.
Cobol C Pascal Fortran 2. OBJETOS DE DATOS SmallTalk Java C++
U2 Tipos de datos, referenciación y errores 1. Datos problema simple enteroreal carácter booleano Ingeniero = Oreja+catalejo modelo ordenador solución.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) V. GESTIÓN DE TIPOS Y GENERACIÓN DE CÓDIGOS.
Programación en Visual Basic
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 5.
Transcripción de la presentación:

NVA-LNG1 3. SENTENCIAS

NVA-LNG2 Asignación Es una sentencia que almacena: el valor del argumento ubicado a la derecha del símbolo que la representa En la referencia del argumento ubicado a la izquierda del mismo

NVA-LNG3 l-valor y r-valor l-valor: Referencia (left value) r-valor: Valor (right value) Expresan la función que ellos desempeñan a ambos lados de un símbolo de asignación. referencia nombre Tipo valor l-valorr-valor

NVA-LNG4 Ejemplo La sentencia de asignación: x:= x+1 l-valor r-valor Activo: se modificaPasivo: se utiliza su valor

NVA-LNG5 Cada variable tiene un l-valor que designa su ubicación en memoria. Una constante sólo tiene r-valor. En una variable subindicada A[i], el l-valor es la ubicación en memoria del i-ésimo elemento de A r-valor es el valor almacenado en esa ubicación. Consideraciones -23 i

NVA-LNG6 Consideraciones cont. Si p es una variable puntero, su r- valor es la dirección a la cual p apunta l-valor es la ubicación en la cual esa dirección se encuentra almacenada. 500 p puntero 120 Gráficamente: p5 120 q q puntero 230

NVA-LNG7 void main() {int *p, i=5,k; p=&i; k=*p; *p=7; printf("%d %d\n", i,k); } Ejemplo 1

NVA-LNG8 void main() {int *p, *q, i=1,j=2,**t; printf("%d %d\n", i,j); p=&i; q=&j; *p=*q; printf("%d %d\n", i,j); t=&p; **t=7;} printf("%d %d\n", i,j); } Ejemplo 2

NVA-LNG9 Alias Para una variable: el l-valor es único; un l-valor puede pertenecer a más de una variable En este, caso, x e y tienen el mismo l-valor, razón por la cual x es llamada "alias de y" e y "alias de x". X Y PUNTERO 500 3

NVA-LNG10 Alias en ForTran Equivalence Integer x,y : x=5 print y; Lenguaje Fortran provee el concepto de alias a través de la sentencia Equivalence. El cambio de valor de un ALIAS ocasionará un cambio en el valor de todos los ALIAS.

NVA-LNG11 Implementación El compilador genera código para calcular el r-valor de b en algún registro R. Si los tipos de a y b son distintos, el compilador genera código para convertir en R (si es posible) el r-valor de b al tipo de a. El compilador genera código para almacenar el contenido del registro R en el l-valor de a. Sea la sentencia a := b;

NVA-LNG12 Formas de Asignación  C: operación binaria infija con prioridad inferior a la de las restantes operaciones sobre tipos elementales. a = ( b = c + d ) + ( e = f + g ); Por ejemplo: M[++i]=i i=i+1; M[i]=i; M[i++]=iM[i]=i; i=i+1;

NVA-LNG13 Formas de Asignación  PL/I: permiten asignaciones de la forma A = B donde: A y B pueden ser de tipos estructurados compatibles Si A es un arreglo en PL/I, la asignación A=0 lo inicializa con ceros.

NVA-LNG14 Asignación Múltiple La modalidad 1. p, q  q, p; 2. A[i], A[j]  A[j], A[i]; 3. A[i], i  i, A[i]; v 1, v 2,..., v k  e 1, e 2,..., e k Utiliza la correspondencia posicional entre l-valores y r-valores. 4. i, A[i]  A[i], i; aux=A[i]; A[i]=A[j]; A[j]=aux

NVA-LNG15 Inicialización Proporcionar un valor a una variable antes de comenzar la ejecución del código al cual pertenece Inicialización Implícita Explícita Asignar el valor cero a todas las variables numéricas, sin realizar una asignación Si aparece como parte de una declaración int v[5] = {11, 22, 33, 44, 55};

NVA-LNG16 Inicialización Explícita int v[5] = {11, 22, 33, 44, 55}; int v[] = {11, 22, 33, 44, 55}; int v[5] = {11, 22};¿Resto de los elementos? char s[] = {'A','B','C','D',0}; char s[] = {'A','B','C','D','\0'}; char s[] = "ABCD"; char s[5] = "ABCD"; Type Vector = Array[1..4] of Integer; Const v:Vector=(5,3,8,10);

NVA-LNG17 Control de Secuencia Implícito Ejecución Paralela Sentencia GoTo Sentencia Selección Sentencias de Iteración Sentencias de E/S Sentencias de Invocación Sentencias Estructuradas

NVA-LNG18 Implícito La ejecución procede según el orden físico de las sentencias que conforman una unidad de código

NVA-LNG19 Ejecución Paralela Ejecución paralela conceptual de un bloque de instrucciones. Para expresar paralelismo, Dijkstra sugiere la estructura parbegin/parend: parbegin S 1 ; S 2 ; ··· S n ; parend parbegin c[1]:= a[1] * b[1]; c[2]:= a[2] * b[2]; c[3]:= a[3] * b[3]; parend;

NVA-LNG20 Goto Objetivo: Es el traspaso explícito del control a una instrucción con label desde cualquier punto de un programa.... excepto cuando la instrucción se encuentra al interior de un bloque.

NVA-LNG21 Goto ejemplo label L; var A : array  0..9  of integer; i : integer; begin i := 0; L :Readln(A[i]); i := i + 1; If i < 10 then goto L; end;

NVA-LNG22 Selección Selección simple (if-then) Selección doble (if-then-else) Selección múltiple (case)

NVA-LNG23 Sentencias de Selección ? S V F ? S1 V S2 F S1S2Sn... ? if-then if-then-else Case- switch

NVA-LNG24 Repetición Repetición "mientras" (while) Repetición "hasta" (repeat) Repetición con variable de control (for)

NVA-LNG25 Sentencias de Repetición ? S V F ? S V F Mientras Repeat ? S V F do--while ? S for

NVA-LNG26 Entrada/Salida Constituyen la interfaz de comunicación con: las rutinas del sistema operativo destinadas a la transferencia de datos

NVA-LNG27 Invocación Constituyen el mecanismo de activación de unidades de programa

NVA-LNG28 S. Estructuradas Corresponde a la sentencia compuesta o bloque. Ciertos lenguajes, como C, permiten declarar variables locales al interior de un bloque, por ejemplo: { int i = 0; ··· { int j = 0; ··· } ··· }