Upload
morgan-bryant
View
217
Download
0
Embed Size (px)
DESCRIPTION
Pasaje de Parámetros Program parametros; var pa1, pa2: integer; procedure p(pf1: integer; var pf2: integer); var local: integer; begin local := pf1 + pf2; writeln(pf1,pf2,local); pf1 := pf1 + 1; pf2 := local + 1; writeln(pf1, pf2, local); end; begin pa1:=1; pa2:=3; writeln(pa1, pa2); p(pa1, pa2); writeln(pa1, pa2); end. Consola Memoria Comienza la ejecución del programa pa1 pa2
Citation preview
PrácticatRAZAS & Manejo de memoria
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1, pf2, local); pf1:= pf1+1; pf2:=local+1; writeln(pf1, pf2, local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2);end.
Consola
Memoria
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local := pf1 + pf2; writeln(pf1,pf2,local); pf1 := pf1 + 1; pf2 := local + 1; writeln(pf1, pf2, local);end;begin pa1:=1; pa2:=3; writeln(pa1, pa2); p(pa1, pa2); writeln(pa1, pa2);end.
Consola
Memoria
Comienza la ejecución del programa
pa1pa2
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2);end.
13
Consola
Memoriapa1pa2
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2);end. 1 3
13
Consola
Memoriapa1pa2
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2);end. 1 3
131
Consola
Memoria
El control pasa al procedimientoEl bloque del programa principal se suspende
pa1pa2pf1pf2loca
l
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2);end. 1 3
131
4
Consola
Memoriapa1pa2pf1pf2loca
l
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2);end. 1 3
1 3 4
131
4
Consola
Memoriapa1pa2pf1pf2loca
l
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2);end. 1 3
1 3 4
152
4
Consola
Memoriapa1pa2pf1pf2loca
l
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2);end. 1 3
1 3 42 5 4
152
4
Consola
Memoriapa1pa2pf1pf2loca
l
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2);end. 1 3
1 3 42 5 4
15
Consola
Memoriapa1pa2
El procedimiento termina
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2);end. 1 3
1 3 42 5 41 5
15
Consola
Memoriapa1pa2
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2); p(pa2, pa1); writeln(pa1, pa2);end.
1 31 3 42 5 41 5
15
Consola
Memoriapa1pa2
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2); p(pa2, pa1); writeln(pa1,pa2);end.
1 31 3 42 5 41 5
155
Consola
Memoriapa1pa2pf1pf2loca
l
En esta invocación pa2 se liga
a pf1 y pa1 se liga a pf2
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2); p(pa2,pa1); writeln(pa1,pa2);end.
1 31 3 42 5 41 5
155
6
Consola
Memoriapa1pa2pf1pf2loca
l
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2); p(pa2,pa1); writeln(pa1,pa2);end.
…5 1 6
155
6
Consola
Memoriapa1pa2pf1pf2loca
l
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2); p(pa2,pa1); writeln(pa1,pa2);end.
…5 1 6
756
6
Consola
Memoriapa1pa2pf1pf2loca
l
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2); p(pa2,pa1); writeln(pa1,pa2);end.
…5 1 66 7 6
756
6
Consola
Memoriapa1pa2pf1pf2loca
l
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2); p(pa2,pa1); writeln(pa1,pa2);end.
…5 1 66 7 6
75
Consola
Memoriapa1pa2
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2); p(pa2,pa1); writeln(pa1,pa2);end.
…5 1 66 7 67 5
75
Consola
Memoriapa1pa2
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2); p(pa2,pa1); writeln(pa1,pa2); p(-10,pa1); writeln(pa1,pa2);end.
…7 5
75
Consola
Memoriapa1pa2
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2); p(pa2,pa1); writeln(pa1,pa2); p(-10,pa1); writeln(pa1,pa2);end.
…5 1 66 7 67 5
75
-10
Consola
Memoriapa1pa2pf1pf2loca
l
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2); p(pa2,pa1); writeln(pa1,pa2); p(-10,pa1); writeln(pa1,pa2);end.
…-10 7 -3-9 -2 -3
-25-9
-3
Consola
Memoriapa1pa2pf1pf2loca
l
Pasaje de ParámetrosProgram parametros;var pa1, pa2: integer;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local:=pf1+pf2; writeln(pf1,pf2,local); pf1:= pf1+1; pf2:=local+1; writeln(pf1,pf2,local);end;begin pa1:=1; pa2:=3; writeln(pa1,pa2); p(pa1,pa2); writeln(pa1,pa2); p(pa2,pa1); writeln(pa1,pa2); p(-10,pa1); writeln(pa1,pa2);end.
…-10 7 -3-9 -2 -3-2 5
-25
Consola
Memoriapa1pa2
Manejo de memoriaprogram paramProc;var pa1, pa2:integer;procedure p(var pf1: integer; var pf2: integer);var local:integer;begin local := pf1+pf2; pf1:= pf1+1; pf2 :=local+1; writeln(pf1, pf2, local);end;begin pa1:=1; pa2:=5; p(pa1, pa1); p(pa1, pa1);end.
pa1pa2
Manejo de memoriaprogram paramProc;var pa1,pa2:integer;procedure p(pf1: integer; pf2: integer);var local: integer;begin local := pf1+pf2; pf1:= pf1+1; pf2 :=local+1; writeln(pf1, pf2, local);end;begin pa1:=1; pa2:=5; p(pa1, pa1);end.
pa1pa2
Manejo de memoria
1pa1pa2
program parampyf;var pa1, pa2: integer; function f(x: integer): integer;begin f:=x+1;end;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local := f(pf1) + f(pf2); pf1:= pf1+10; pf2 :=local+1; writeln(pf1:5,pf2:5,local:5);end;begin pa1:=1; pa2:=f(pa1); p(pa1, pa2); writeln(pa1:5,pa2:5);end.
Manejo de memoria
12
pa1pa2
program parampyf;var pa1, pa2: integer; function f(x: integer): integer;begin f:=x+1;end;procedure p(pf1: integer; var pf2: integer);var local: integer;begin local := f(pf1) + f(pf2); pf1:= pf1+10; pf2 :=local+1; writeln(pf1:5,pf2:5,local:5);end;begin pa1:=1; pa2:=f(pa1); p(f(pa1*2), pa2); writeln(pa1:5,pa2:5);end.