SlideShare una empresa de Scribd logo
1 de 19
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
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 programas
principales y subprogramas se clasifican en
dos tipos:

Variables
locales

Variables
Globales
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.
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.
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 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 )
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.
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);
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.
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 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
•
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 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:
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.
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.
Conclusiones
Referencias:
Bibliográficas
• LUÍS, J. (2003): “Fundamentos de
Programación, Algoritmos, Estructuras de
Datos y Objetos.” Mc-Graw Hill. Madrid.

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Clase2
Clase2Clase2
Clase2
 
Funciones y subrutinas
Funciones y subrutinasFunciones y subrutinas
Funciones y subrutinas
 
Presentacion capitulo 6
Presentacion capitulo 6Presentacion capitulo 6
Presentacion capitulo 6
 
Funciones y Subrutinas
Funciones y SubrutinasFunciones y Subrutinas
Funciones y Subrutinas
 
Instrucciones basicas-para-c++
Instrucciones basicas-para-c++Instrucciones basicas-para-c++
Instrucciones basicas-para-c++
 
Apuntes programacion basica
Apuntes programacion basicaApuntes programacion basica
Apuntes programacion basica
 
Co
CoCo
Co
 
Conceptos basicos de programacion
Conceptos basicos de programacion Conceptos basicos de programacion
Conceptos basicos de programacion
 
Funciones en VB
Funciones en VBFunciones en VB
Funciones en VB
 
Unidad 2 Principios de programación
Unidad 2 Principios de programaciónUnidad 2 Principios de programación
Unidad 2 Principios de programación
 
Diapositivas compu final
Diapositivas compu finalDiapositivas compu final
Diapositivas compu final
 
Hd
HdHd
Hd
 
algoritmo
algoritmoalgoritmo
algoritmo
 
USO DE LOS ELEMENTOS DEL LENGUAJE JAVASCRIPT
USO DE LOS ELEMENTOS DEL LENGUAJE JAVASCRIPTUSO DE LOS ELEMENTOS DEL LENGUAJE JAVASCRIPT
USO DE LOS ELEMENTOS DEL LENGUAJE JAVASCRIPT
 
Pseudocódigo
Pseudocódigo Pseudocódigo
Pseudocódigo
 
Funciones
FuncionesFunciones
Funciones
 
Elementos
ElementosElementos
Elementos
 
Estructuras básicas
Estructuras básicas Estructuras básicas
Estructuras básicas
 
Intorduccion Algoritmos
Intorduccion AlgoritmosIntorduccion Algoritmos
Intorduccion Algoritmos
 
Estructuras básicas
Estructuras básicas Estructuras básicas
Estructuras básicas
 

Similar a Exposicion grupal

Fundamentos de programación: Subprogramas
Fundamentos de programación: SubprogramasFundamentos de programación: Subprogramas
Fundamentos de programación: SubprogramasLuis Ortiz
 
Funciones lenguaje c modulo4
Funciones lenguaje c modulo4Funciones lenguaje c modulo4
Funciones lenguaje c modulo4flaquita_dany
 
FUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE Cflaquita_dany
 
Funciones
FuncionesFunciones
Funcionesadark
 
Actividad 20
Actividad 20 Actividad 20
Actividad 20 luis-1995
 
Pseudocódigo apunte segun sea y subrutinas
Pseudocódigo apunte segun sea y subrutinasPseudocódigo apunte segun sea y subrutinas
Pseudocódigo apunte segun sea y subrutinasAlejandro Canosa
 
Estructura del programa arduino
Estructura del programa arduinoEstructura del programa arduino
Estructura del programa arduinotecnocm
 
procedimientos (programación)
procedimientos (programación)procedimientos (programación)
procedimientos (programación)Jandry Banegas
 
Elementos de una variable trabajo grupal computacion
Elementos de una variable trabajo grupal computacionElementos de una variable trabajo grupal computacion
Elementos de una variable trabajo grupal computacionjime97
 
Elementos de una variable trabajo grupal computacion
Elementos de una variable trabajo grupal computacionElementos de una variable trabajo grupal computacion
Elementos de una variable trabajo grupal computacionjime97
 
Funciones con arrays y vectores en c
Funciones con arrays y vectores en cFunciones con arrays y vectores en c
Funciones con arrays y vectores en cDiego Maxdj Chicaiza
 

Similar a Exposicion grupal (20)

Fundamentos de programación: Subprogramas
Fundamentos de programación: SubprogramasFundamentos de programación: Subprogramas
Fundamentos de programación: Subprogramas
 
Ensayo funciones
Ensayo funcionesEnsayo funciones
Ensayo funciones
 
Presentacion
PresentacionPresentacion
Presentacion
 
Funciones lenguaje c modulo4
Funciones lenguaje c modulo4Funciones lenguaje c modulo4
Funciones lenguaje c modulo4
 
FUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE C
 
Variables
VariablesVariables
Variables
 
Funciones en c++
Funciones en c++Funciones en c++
Funciones en c++
 
Funciones
FuncionesFunciones
Funciones
 
Actividad 20
Actividad 20 Actividad 20
Actividad 20
 
Funciones
FuncionesFunciones
Funciones
 
Pseudocódigo apunte segun sea y subrutinas
Pseudocódigo apunte segun sea y subrutinasPseudocódigo apunte segun sea y subrutinas
Pseudocódigo apunte segun sea y subrutinas
 
Funcionesclase1
Funcionesclase1Funcionesclase1
Funcionesclase1
 
8448148681
84481486818448148681
8448148681
 
Introduccion.pptx
Introduccion.pptxIntroduccion.pptx
Introduccion.pptx
 
Estructura del programa arduino
Estructura del programa arduinoEstructura del programa arduino
Estructura del programa arduino
 
procedimientos (programación)
procedimientos (programación)procedimientos (programación)
procedimientos (programación)
 
Elementos de una variable trabajo grupal computacion
Elementos de una variable trabajo grupal computacionElementos de una variable trabajo grupal computacion
Elementos de una variable trabajo grupal computacion
 
Elementos de una variable trabajo grupal computacion
Elementos de una variable trabajo grupal computacionElementos de una variable trabajo grupal computacion
Elementos de una variable trabajo grupal computacion
 
Funciones con arrays y vectores en c
Funciones con arrays y vectores en cFunciones con arrays y vectores en c
Funciones con arrays y vectores en c
 
Tecnologia.pdf
Tecnologia.pdfTecnologia.pdf
Tecnologia.pdf
 

Más de Ángel Leonardo Torres

Lab4: Diseñar y construir un oscilador de cristal y un oscilador LC
Lab4: Diseñar y construir un oscilador de cristal y un oscilador LCLab4: Diseñar y construir un oscilador de cristal y un oscilador LC
Lab4: Diseñar y construir un oscilador de cristal y un oscilador LCÁngel Leonardo Torres
 
Lab 3: Amplificadores de pequeña señal
Lab 3: Amplificadores de pequeña señalLab 3: Amplificadores de pequeña señal
Lab 3: Amplificadores de pequeña señalÁngel Leonardo Torres
 
Diseño y simulación de un amplificador de pequeña señal para una frecuencia d...
Diseño y simulación de un amplificador de pequeña señal para una frecuencia d...Diseño y simulación de un amplificador de pequeña señal para una frecuencia d...
Diseño y simulación de un amplificador de pequeña señal para una frecuencia d...Ángel Leonardo Torres
 
Diseño y construcción un filtro pasa-banda de 3er orden
Diseño y construcción un filtro pasa-banda de 3er ordenDiseño y construcción un filtro pasa-banda de 3er orden
Diseño y construcción un filtro pasa-banda de 3er ordenÁngel Leonardo Torres
 
Diseño y simulación de filtros de RF
Diseño y simulación de filtros de RFDiseño y simulación de filtros de RF
Diseño y simulación de filtros de RFÁngel Leonardo Torres
 
Diseño y simulación de acopladores de RF
Diseño y simulación de acopladores de RFDiseño y simulación de acopladores de RF
Diseño y simulación de acopladores de RFÁngel Leonardo Torres
 
Graficar (Impedancia y fase) el comportamiento de los componentes pasivos en RF
Graficar (Impedancia y fase) el comportamiento de los componentes pasivos en RFGraficar (Impedancia y fase) el comportamiento de los componentes pasivos en RF
Graficar (Impedancia y fase) el comportamiento de los componentes pasivos en RFÁngel Leonardo Torres
 
Multiplexación por división de onda (wdm)
Multiplexación por división de onda (wdm)Multiplexación por división de onda (wdm)
Multiplexación por división de onda (wdm)Ángel Leonardo Torres
 
IMPLEMENTACIÓN DE UN HANDOVER CON ESTACIONES BASE DE SEGUNDA GENERACIÓN
IMPLEMENTACIÓN DE UN HANDOVER CON ESTACIONES BASE DE SEGUNDA GENERACIÓNIMPLEMENTACIÓN DE UN HANDOVER CON ESTACIONES BASE DE SEGUNDA GENERACIÓN
IMPLEMENTACIÓN DE UN HANDOVER CON ESTACIONES BASE DE SEGUNDA GENERACIÓNÁngel Leonardo Torres
 
CALCULO DE PROBABILIDAD DE DESVANECIMIENTOS
CALCULO DE PROBABILIDAD DE DESVANECIMIENTOSCALCULO DE PROBABILIDAD DE DESVANECIMIENTOS
CALCULO DE PROBABILIDAD DE DESVANECIMIENTOSÁngel Leonardo Torres
 
ACOPLADOR DE IMPEDANCIAS CON UNO Y DOS STUBS
ACOPLADOR DE IMPEDANCIAS CON UNO Y DOS STUBSACOPLADOR DE IMPEDANCIAS CON UNO Y DOS STUBS
ACOPLADOR DE IMPEDANCIAS CON UNO Y DOS STUBSÁngel Leonardo Torres
 
Diseño de red y cableado estructurado
Diseño de red y cableado estructuradoDiseño de red y cableado estructurado
Diseño de red y cableado estructuradoÁngel Leonardo Torres
 
Diseñar e implementar un radio enlace de larga distancia para brindar servici...
Diseñar e implementar un radio enlace de larga distancia para brindar servici...Diseñar e implementar un radio enlace de larga distancia para brindar servici...
Diseñar e implementar un radio enlace de larga distancia para brindar servici...Ángel Leonardo Torres
 
Recepción de imágenes meteorológicas del satélite NOAA 18
Recepción de imágenes meteorológicas del satélite NOAA 18Recepción de imágenes meteorológicas del satélite NOAA 18
Recepción de imágenes meteorológicas del satélite NOAA 18Ángel Leonardo Torres
 
Implementación de una red celular GSM-GPRS basado en OpenBTS
Implementación de una red celular GSM-GPRS basado en OpenBTSImplementación de una red celular GSM-GPRS basado en OpenBTS
Implementación de una red celular GSM-GPRS basado en OpenBTSÁngel Leonardo Torres
 
Construcción de una antena Yagi con doble polarización para la recepción de s...
Construcción de una antena Yagi con doble polarización para la recepción de s...Construcción de una antena Yagi con doble polarización para la recepción de s...
Construcción de una antena Yagi con doble polarización para la recepción de s...Ángel Leonardo Torres
 
Diseño de Una Red de Telecomunicaciones para brindar servicios de voz y datos...
Diseño de Una Red de Telecomunicaciones para brindar servicios de voz y datos...Diseño de Una Red de Telecomunicaciones para brindar servicios de voz y datos...
Diseño de Una Red de Telecomunicaciones para brindar servicios de voz y datos...Ángel Leonardo Torres
 

Más de Ángel Leonardo Torres (20)

Lab4: Diseñar y construir un oscilador de cristal y un oscilador LC
Lab4: Diseñar y construir un oscilador de cristal y un oscilador LCLab4: Diseñar y construir un oscilador de cristal y un oscilador LC
Lab4: Diseñar y construir un oscilador de cristal y un oscilador LC
 
Lab 3: Amplificadores de pequeña señal
Lab 3: Amplificadores de pequeña señalLab 3: Amplificadores de pequeña señal
Lab 3: Amplificadores de pequeña señal
 
Diseño y simulación de un amplificador de pequeña señal para una frecuencia d...
Diseño y simulación de un amplificador de pequeña señal para una frecuencia d...Diseño y simulación de un amplificador de pequeña señal para una frecuencia d...
Diseño y simulación de un amplificador de pequeña señal para una frecuencia d...
 
Diseño y construcción un filtro pasa-banda de 3er orden
Diseño y construcción un filtro pasa-banda de 3er ordenDiseño y construcción un filtro pasa-banda de 3er orden
Diseño y construcción un filtro pasa-banda de 3er orden
 
Laboratorio 1: Circuitos Resonantes.
Laboratorio 1: Circuitos Resonantes.Laboratorio 1: Circuitos Resonantes.
Laboratorio 1: Circuitos Resonantes.
 
Diseño y simulación de filtros de RF
Diseño y simulación de filtros de RFDiseño y simulación de filtros de RF
Diseño y simulación de filtros de RF
 
Diseño y simulación de acopladores de RF
Diseño y simulación de acopladores de RFDiseño y simulación de acopladores de RF
Diseño y simulación de acopladores de RF
 
Circuitos resonantes
 Circuitos  resonantes Circuitos  resonantes
Circuitos resonantes
 
Graficar (Impedancia y fase) el comportamiento de los componentes pasivos en RF
Graficar (Impedancia y fase) el comportamiento de los componentes pasivos en RFGraficar (Impedancia y fase) el comportamiento de los componentes pasivos en RF
Graficar (Impedancia y fase) el comportamiento de los componentes pasivos en RF
 
Multiplexación por división de onda (wdm)
Multiplexación por división de onda (wdm)Multiplexación por división de onda (wdm)
Multiplexación por división de onda (wdm)
 
YateBTS – BladeRF
YateBTS – BladeRFYateBTS – BladeRF
YateBTS – BladeRF
 
IMPLEMENTACIÓN DE UN HANDOVER CON ESTACIONES BASE DE SEGUNDA GENERACIÓN
IMPLEMENTACIÓN DE UN HANDOVER CON ESTACIONES BASE DE SEGUNDA GENERACIÓNIMPLEMENTACIÓN DE UN HANDOVER CON ESTACIONES BASE DE SEGUNDA GENERACIÓN
IMPLEMENTACIÓN DE UN HANDOVER CON ESTACIONES BASE DE SEGUNDA GENERACIÓN
 
CALCULO DE PROBABILIDAD DE DESVANECIMIENTOS
CALCULO DE PROBABILIDAD DE DESVANECIMIENTOSCALCULO DE PROBABILIDAD DE DESVANECIMIENTOS
CALCULO DE PROBABILIDAD DE DESVANECIMIENTOS
 
ACOPLADOR DE IMPEDANCIAS CON UNO Y DOS STUBS
ACOPLADOR DE IMPEDANCIAS CON UNO Y DOS STUBSACOPLADOR DE IMPEDANCIAS CON UNO Y DOS STUBS
ACOPLADOR DE IMPEDANCIAS CON UNO Y DOS STUBS
 
Diseño de red y cableado estructurado
Diseño de red y cableado estructuradoDiseño de red y cableado estructurado
Diseño de red y cableado estructurado
 
Diseñar e implementar un radio enlace de larga distancia para brindar servici...
Diseñar e implementar un radio enlace de larga distancia para brindar servici...Diseñar e implementar un radio enlace de larga distancia para brindar servici...
Diseñar e implementar un radio enlace de larga distancia para brindar servici...
 
Recepción de imágenes meteorológicas del satélite NOAA 18
Recepción de imágenes meteorológicas del satélite NOAA 18Recepción de imágenes meteorológicas del satélite NOAA 18
Recepción de imágenes meteorológicas del satélite NOAA 18
 
Implementación de una red celular GSM-GPRS basado en OpenBTS
Implementación de una red celular GSM-GPRS basado en OpenBTSImplementación de una red celular GSM-GPRS basado en OpenBTS
Implementación de una red celular GSM-GPRS basado en OpenBTS
 
Construcción de una antena Yagi con doble polarización para la recepción de s...
Construcción de una antena Yagi con doble polarización para la recepción de s...Construcción de una antena Yagi con doble polarización para la recepción de s...
Construcción de una antena Yagi con doble polarización para la recepción de s...
 
Diseño de Una Red de Telecomunicaciones para brindar servicios de voz y datos...
Diseño de Una Red de Telecomunicaciones para brindar servicios de voz y datos...Diseño de Una Red de Telecomunicaciones para brindar servicios de voz y datos...
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.
  • 19. Referencias: Bibliográficas • LUÍS, J. (2003): “Fundamentos de Programación, Algoritmos, Estructuras de Datos y Objetos.” Mc-Graw Hill. Madrid.