Está en la página 1de 3

LENGUAJES Y PARADIGMAS DE PROGRAMACIÓN

Guía de Ejercicios
Durante el desarrollo de esta actividad Usted debe familiarizarse con los conceptos de flujo de
control y el mecanismo abstracción procedural.

1. Considere los siguientes fragmentos de código escritos en lenguajes no especificados y diga


cuáles son los valores impresos por el programa bajo las siguientes condiciones:
a. Todos los parámetros son pasados por valor.
b. Todos los parámetros son pasados por valor-resultado.
c. Todos los parámetros son pasados por referencia.
d. Justifique su respuesta (en los 3 incisos anteriores) indicando las variables generadas en
cada llamada de función y cómo opera cada tipo de paso de parámetros.
Fragmento 1
#include <stdio.h>
int x=0;
void p(int, int);
void main(){
int x = 1;
p(x,x);
printf("%d \n", x);
}
void p(int y, int z){
x = x+1;
y = y+1;
z = z+1;
printf(“%d,%d,%d \n", x, y, z);
}

Fragmento 2
void SubOne(int, int);
void SubTwo();

int x, y, z;
int main(){
x = 1; y = 2; z = 3;
SubOne(x, y);
printf("Valores1:" x, y, z);
SubTwo();
printf("Valores2: " x, y, z);

return 0;
}

1
void SubOne(int a, int b){
int z, w;
a = a + 1; b = a + 5;
z = b - 1;
w = x;
printf("En SubOne: " x, y, z, w, a, b);
}

void SubTwo(){
int a = 5, x = 10;
y = 20;
printf("En SubTwo: " a, x, y, z);
}

2. Considere el siguiente fragmento de programa escrito en un lenguaje no identificado. Cuáles


son los valores impresos por el programa bajo las siguientes condiciones:
a. Todos los parámetros son pasados por valor.
b. Todos los parámetros son pasados por referencia.
c. Todos los parámetros son pasados por valor-resultado.
d. El parámetro formal k es pasado por valor y l por referencia.
e. El parámetro formal k es pasado por referencia y l por valor.
f. El parámetro formal k es pasado por referencia y l por valor-resultado.
g. El parámetro formal k es pasado por valor-resultado y l por referencia.
h. El parámetro formal k es pasado por valor y l por valor-resultado.

begin
integer n, m;
procedure p(k: integer, l: integer);
begin
integer m := 4;
k := k+2;
l := l + n + m;
print(n, m);
n := n+(2*k);
m := n;
end;
n := 4;
m := 8;
p(n, m);
print(n, m);
end;

2
3. A continuación, se muestra un código en un lenguaje no especificado. ¿Cuáles son los
valores impresos por el programa bajo las siguientes condiciones?
a. Asumiendo un alcance estático, los parámetros de las funciones fun y gun son pasados
por referencia.
b. Asumiendo un alcance dinámico, los parámetros de las funciones fun y gun son pasados
por valor-resultado.
var x=30;
function gun( z )
{
x = 10;
z = z + 10;
print( x );
}
function fun( y )
{
var x = y + 5;
gun( y );
print( x );
}
fun ( x );
print( x );

Nota: var equivale a la declaración de una variable.

Ejercicios de Estudio Independiente

1. Realice los ejercicios 4, 5 y 7 del Problem Set y 1, 6, 7, 8 y 9 del Programming Exercises ambos
en el Capítulo 9 “Subprograms” del libro “Concepts of Programming Languages”, 11 edition,
Robert W. Sebesta, 2016.

También podría gustarte