exposicion grupal
Post on 06-Jul-2015
109 Views
Preview:
TRANSCRIPT
Universidad Técnica Particular de Loja
INTEGRANTES:
Byron Narváez
María José Orellana
Nashelly Romero
Ángel Torres
ELECTRONICA Y TELECOMUNICACIONES
FUNDAMENTOS DE LA PROGRAMACION
ING. SANTIAGO QUIÑONES
Grupo N 2
Capitulo 5
TEMARIO
• Ámbito: variables locales y globales.
• Comunicación con subprogramas: paso de parámetros.
• Los efectos laterales.
AMBITO: VARIABLES LOCALES Y GLOBALES
• Las variables utilizadas en los programasprincipales y subprogramas se clasifican endos tipos:
Variables locales
Variables
Globales
VARIABLE LOCAL
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.
Definición:
VARIABLE GLOBAL
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.
Definición:
Variable Global
Variable Local
Variable Local
Variable Local
Ejemplo:
Comunicación con subprogramas: paso de parámetros
• Cuando un programa llama a un subprograma, la información se comunica através de la lista de parámetros y se establece una correspondenciaautomática entre los parámetros formales y actuales. Los parámetrosactuales 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 )
Sintaxis para el llamado de un subprograma
• La declaración del subprograma se hace con:
• Y la llamada al subprograma con
• Donde F1, F2, . . . Fn son los parámetros formales y A1, A2, . . . An losparámetros actuales o reales.
Llamar_a nombre (A1, A2, ...,An )
Existen dos métodos para establecer la
correspondencia de parámetros:
• Correspondencia posicional. La correspondenciase establece aparejando los parámetros reales yformales según su posición en las listas: así, Fi secorresponde con Ai, donde i= 1, 2, . . . n. estemétodo tiene algunas desventajas de legibilidadcuando el número de parámetros es grande.
• Correspondencia por el nombre explicito:también llamado método de paso deparámetros por nombre. En este método, en lasllamadas se indica explícitamente lacorrespondencia entre los parámetros reales yformales.
Sub (Y => B, X => 30);
PASO POR VALOR
• El paso de parámetros por valor consiste encopiar el contenido de la variable quequeremos pasar en otra dentro del ámbitolocal de la subrutina, consiste pues en copiarel contenido de la memoria del argumento quese quiere pasar a otra dirección dememoria, correspondiente al argumentodentro del ámbito de dicha subrutina. Setendrán dos valores duplicados eindependientes, con lo que la modificación deuno no afecta al otro.
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
PASO POR REFERENCIA
• El paso de parámetros por referencia consisteen proporcionar a la subrutina a la que se lequiere pasar el argumento la dirección dememoria del dato. En este caso se tiene unúnico valor referenciado (o apuntado) desdedos puntos diferentes, el programa principal yla subrutina a la que se le pasa elargumento, por lo que cualquier acción sobreel parámetro se realiza sobre la mismaposición de memoria
•
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
Efectos laterales
Las modificaciones que se produzcan mediante una función oprocedimiento en los elementos situados fuera delsubprograma (función o procedimiento) se denominan efectoslaterales. Aunque en algunos casos los efectos laterales puedenser beneficiosos en la programación, es conveniente norecurrir a ellos de modo general.
Consideramos a continuación los efectos laterales en:funciones y en procedimientos.
EFECTOS LATERALES EN funciones
• Una función toma los valores de los argumentos ydevuelve un único valor. Sin embargo, al igual quelos procedimientos una función – en algunoslenguajes de programación – puede hacer cosassimilares a un procedimiento o subrutina.
• Una función puede tener parámetros variablesademás de parámetros valor en la lista deparámetros formales.
• Una función puede cambiar el contenido de unavariable global y ejecutar instrucciones de E/S(escribir un mensaje en la pantalla, leer un valordel teclado, etc). Estas operaciones se conocecomo parámetros laterales y se deben evitar.
EFECTOS LATERALES EN procedimientos
• La comunicación del procedimiento con el resto delprograma se debe realizar normalmente a través deparámetros.
• Si un procedimiento modifica una variable global(distinta de un parámetro actual), este es un efectolateral. Por ello, excepto en contadas ocasiones, nodebe aparecer en la declaración del procedimiento. Sise 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 unavariable global, utilice un parámetro formal variable enla declaración del procedimiento y a continuaciónutilice la variable global como el parámetro actual enuna llamada al procedimiento.
Conclusiones
Referencias:
Bibliográficas
• LUÍS, J. (2003): “Fundamentos de Programación, Algoritmos, Estructuras de Datos y Objetos.” Mc-Graw Hill. Madrid.
top related