Diseño de Una Red de Telecomunicaciones para brindar servicios de voz y datos...
Exposicion grupal
1. Universidad Técnica Particular de Loja
ELECTRONICA Y TELECOMUNICACIONES
FUNDAMENTOS DE LA PROGRAMACION
ING. SANTIAGO QUIÑONES
Grupo N 2
Capitulo 5
INTEGRANTES:
Byron Narváez
María José Orellana
Nashelly Romero
Ángel Torres
2. TEMARIO
• Ámbito: variables locales y globales.
• Comunicación con subprogramas: paso de
parámetros.
• Los efectos laterales.
3. AMBITO: VARIABLES LOCALES Y
GLOBALES
• Las variables utilizadas en los programas
principales y subprogramas se clasifican en
dos tipos:
Variables
locales
Variables
Globales
4. VARIABLE LOCAL
Definición:
Una variable local es aquella cuyo ámbito se restringe a la función que la ha
declarado se dice entonces que la variable es local a esa función. Esto implica
que esa variable sólo va a poder ser manipulada en dicha sección, y no se
podrá hacer referencia fuera de dicha sección. Cualquier variable que se
defina dentro de las llaves del cuerpo de una función se interpreta como una
variable local a esa función.
5. VARIABLE GLOBAL
Definición:
Una variable global es aquella que se define fuera del cuerpo de cualquier
función, normalmente al principio del programa, después de la definición de
los archivos de biblioteca (#include), de la definición de constantes simbólicas
y antes de cualquier función. El ámbito de una variable global son todas las
funciones que componen el programa, cualquier función puede acceder a
dichas variables para leer y escribir en ellas. Es decir, se puede hacer
referencia a su dirección de memoria en cualquier parte del programa.
8. Comunicación con subprogramas:
paso de parámetros
• Cuando un programa llama a un subprograma, la información se comunica a
través de la lista de parámetros y se establece una correspondencia
automática entre los parámetros formales y actuales. Los parámetros
actuales son sustituidos o utilizados en lugar de los parámetros formales.
• La declaración del subprograma se hace con:
• Y la llamada al subprograma con Llamar_a nombre (A1, A2, ...,An )
9. Sintaxis para el llamado de un
subprograma
• La declaración del subprograma se hace con:
• Y la llamada al subprograma con
Llamar_a nombre (A1, A2, ...,An )
• Donde F1, F2, . . . Fn son los parámetros formales y A1, A2, . . . An los
parámetros actuales o reales.
10. Existen dos métodos para establecer la
correspondencia de parámetros:
• Correspondencia posicional. La correspondencia
se establece aparejando los parámetros reales y
formales según su posición en las listas: así, Fi se
corresponde con Ai, donde i= 1, 2, . . . n. este
método tiene algunas desventajas de legibilidad
cuando el número de parámetros es grande.
• Correspondencia por el nombre explicito:
también
llamado
método
de
paso
de
parámetros por nombre. En este método, en las
llamadas
se
indica
explícitamente
la
correspondencia entre los parámetros reales y
formales.
Sub (Y => B, X => 30);
11. PASO POR VALOR
• El paso de parámetros por valor consiste en
copiar el contenido de la variable que
queremos pasar en otra dentro del ámbito
local de la subrutina, consiste pues en copiar
el contenido de la memoria del argumento que
se quiere pasar a otra dirección de
memoria, correspondiente al argumento
dentro del ámbito de dicha subrutina. Se
tendrán
dos
valores
duplicados
e
independientes, con lo que la modificación de
uno no afecta al otro.
12. Ejemplo:
En la función principal
tenemos 2 valores a y b
cuando se llama a la
función “función” los
valores se pasan a n y m
porque solo se pasan los
valores de las variables
y no se modifica nada
13. PASO POR REFERENCIA
• El paso de parámetros por referencia consiste
en proporcionar a la subrutina a la que se le
quiere pasar el argumento la dirección de
memoria del dato. En este caso se tiene un
único valor referenciado (o apuntado) desde
dos puntos diferentes, el programa principal y
la subrutina a la que se le pasa el
argumento, por lo que cualquier acción sobre
el parámetro se realiza sobre la misma
posición de memoria
•
14. Ejemplo:
#include <iostream>
using namespace std;
int funcion(int &n, int &m);
int main() {
int a, b;
a = 10; b = 20;
cout << "a,b ->" << a << ", " << b << endl;
cout << "funcion(a,b) ->" << funcion(a, b) << endl;
cout << "a,b ->" << a << ", " << b << endl;
return 0;
}
int funcion(int &n, int &m) {
n = n + 2;
m = m - 5;
return n+m;
Sucede lo mismo que el
anterior caso pero este
hacen que con el &
retornen las variables con
el orden que estuvieron
15. Efectos laterales
Las modificaciones que se produzcan mediante una función o
procedimiento en los elementos situados
fuera del
subprograma (función o procedimiento) se denominan efectos
laterales. Aunque en algunos casos los efectos laterales pueden
ser beneficiosos en la programación, es conveniente no
recurrir a ellos de modo general.
Consideramos a continuación
funciones y en procedimientos.
los
efectos
laterales
en:
16. EFECTOS LATERALES EN
funciones
• Una función toma los valores de los argumentos y
devuelve un único valor. Sin embargo, al igual que
los procedimientos una función – en algunos
lenguajes de programación – puede hacer cosas
similares a un procedimiento o subrutina.
• Una función puede tener parámetros variables
además de parámetros valor en la lista de
parámetros formales.
• Una función puede cambiar el contenido de una
variable global y ejecutar instrucciones de E/S
(escribir un mensaje en la pantalla, leer un valor
del teclado, etc). Estas operaciones se conoce
como parámetros laterales y se deben evitar.
17. EFECTOS LATERALES EN
procedimientos
• La comunicación del procedimiento con el resto del
programa se debe realizar normalmente a través de
parámetros.
• Si un procedimiento modifica una variable global
(distinta de un parámetro actual), este es un efecto
lateral. Por ello, excepto en contadas ocasiones, no
debe aparecer en la declaración del procedimiento. Si
se necesita una variable temporal en un procedimiento,
utilicé una variable local, no una variable global.
• Si se desea que el programa modifique el valor de una
variable global, utilice un parámetro formal variable en
la declaración del procedimiento y a continuación
utilice la variable global como el parámetro actual en
una llamada al procedimiento.