La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— Transcripción de la presentación:

1 NVA-LNG1 3. SENTENCIAS

2 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

3 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

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

5 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

6 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 q3 230 850 q puntero 230

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

8 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

9 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

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

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

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

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

14 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

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

16 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);

17 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

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

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

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

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

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

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

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

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

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

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

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


Descargar ppt "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."

Presentaciones similares


Anuncios Google