Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porGilberta Pedroza Modificado hace 9 años
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; ··· } ··· }
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.