Vous êtes sur la page 1sur 30

TEMA 2.

- CONCEPTOS DE PROGRAMACIN ESTRUCTURADA

2.1. Introduccin

En el tema anterior aprendiste que la programacin estructurada es uno de los


primeros paradigmas que surgieron en la historia de la programacin. La
aparicin de este paradigma va aparejada a la aparicin de lenguajes de medio
y alto nivel, ms cercanos al lenguaje humano. Este tipo de lenguajes permiten
formulacin de problemas ms complejos.

Pero lo ms importante de este paradigma es que ayuda a abordar las tareas


de programacin de una forma organizada, esto es, estructurada

Antes de que se estableciera este concepto sobre programacin en la dcada


de los setenta, la lgica empleada en la programacin abusaba de los saltos
incondicionales, esto quiere decir que la ejecucin del programa no segua un
camino facilmente reconocible y por tanto dichos programas eran difciles de
mantener y actualizar incluso por sus propios desarrolladores.

Gracias a la programacin estructurada todo esto cambi y debido a la madurez


de este modelo se entiende que adquirir bases slidas en este paradigma
constituye el primer paso en el proceso de aprendizaje dentro del mundo de la
programacin

2.2. Tipos de datos

El trmino programacin va asociado siempre al trmino dato, y es debido a


que al programar se recuperan, transforman y/o almacenan datos. En general
podemos afirmar que al programar trabajamos con datos. Pero que es lo que
deberamos entender por dato?

Un dato no es ms que un segmento de informacin, simple o compleja, con


entidad propia. Tal vez dicho as no quede muy claro pero todos conocemos
aunque sea de manera intuitiva lo que es un dato, y para verlo ms claro lo
nico que tienes que hacer es dar un vistazo a tu documento de identificacin
(DNI, NIE, Pasaporte, etc.). En cualquiera de estos documentos puedes
encontrar datos, como por ejemplo, un nmero de identificacin, tu nombre y
tus apellidos, la fecha de nacimiento, sexo, etc.

Programacin .NET I. Conceptos de Programacin Estructurada 2.1


Como ves cada uno de estos segmentos de informacin tienen entidad propia,
pueden ser simples (como por ejemplo un nombre) o complejos (como una
direccin compuesta por el nombre de la calle, cdigo postal, y el nmero) y
son susceptibles de ser tratados, procesados (averiguar la edad basndonos en
la fecha de nacimiento) y almacenados.

Los datos pueden clasificarse segn su tipo en

Datos simples o elementales

Binarios
o Bit
o Byte
Numricos
o Entero
o Real
Alfanumricos
o Carcter
o Cadena
Booleanos
Fechas

Datos complejos o estructura de datos

Vectores (matriz o array)


Registro (estructura de datos)
Listas Enlazadas
Pilas
Colas
rboles

Bit:

Unidad mnima de informacin empleada informtica,


basada en el sistema binario y por lo tanto que solo
acepta los valores 0 y 1. Es utilizada para representa
dos posibles estados, ambos excluyentes

2.2 Programacin .NET I. Conceptos de Programacin Estructurada


Byte:

Secuencia de 8 bits contiguos. Generalmente se


emplea este tipo de datos cuando se realizan
operaciones muy cercanas a la mquina o en
comunicacin de datos entre ordenadores.

Ejemplo: 01110100

Entero:

Este tipo de dato se emplea para representar un


subconjunto finito de nmeros enteros y el rango de
nmeros posibles depender del lenguaje utilizado y
de si se representan nmeros negativos o no.

Ejemplos: 1, 7, 54886, 0 ,-1, -713

Real:

Este tipo de dato se emplea para representar un


subconjunto finito de nmeros que puedan expresarse
en notacin de coma flotante. Al igual que suceda con
los enteros, el rango de nmeros posibles para
representar depender de la cantidad de memoria que
se asigne a este tipo de datos as como de la precisin
que se pretenda conseguir.

Ejemplos: 4,6 x 10 30
-8.9 x 10 21

Programacin .NET I. Conceptos de Programacin Estructurada 2.3


Carcter:

Este tipo de dato se reserva para la representacin de


cualquier letra, nmero, signo de puntuacin o en
general cualquier signo tipogrfico.

Ejemplos: A , z , ^ , @ , 1 , :

Cadena:

Es cualquier representacin de una secuencia de


caracteres de longitud finita.

Ejemplos:
despertador , abstracto , El Ingenioso Hidalgo

Booleanos:

El tipo de dato booleano, tambin llamado tipo lgico,


se emplea para definir dos posibles estados,
generalmente Verdadero / Falso, o Encendido /
Apagado.

Fecha:

Evidentemente este tipo de dato se usa para


representar valores de fecha. Su tratamiento puede
diferir dependiendo de los distintos lenguajes.

Ejemplo: 11/10/2007

2.4 Programacin .NET I. Conceptos de Programacin Estructurada


Vectores (Arrays):

Un Vector (tambin llamado array) es una coleccin o sucesin de


datos del mismo tipo a los cuales se accede mediante un ndice.
Seguramente esta descripcin puede parecerte poco clara as que
mejor vemos lo que es un vector mediante un ejemplo: una cola de
personas esperando al autobus es un vector, y es sencillo identificar
a cada una de ellas por la posicin (ndice) que ocupan en la misma.

Los vectores pueden tener mas de una dimensin, comnmente se


denominan a estos como Matrices. Un ejemplo claro de una matriz
lo tenemos en los casilleros de llaves de un hotel. Estos casilleros
estn ordenados por filas y columnas que representan plantas y
nmeros de habitacin y el tamao y funcin de los mismos es
idntica para cada casilla, de tal manera que indicando un nmero
de fila y columna se puede acceder rpidamente al contenido del
casillero.

Registros (Estructuras):

Un registro, tambin llamado estructura, es una agrupacin de


varios datos bajo un mismo conjunto o estructura. Los tipos de datos
que pueden formar un registro pueden ser simples o complejos
(incluso otros registros) y a cada uno de estos datos se denomina
campo del registro.

Estamos muy acostumbrados a trabajar diariamente con registros


por que por norma general esta agrupacin de datos se hace con
algn significado, y conforman una unidad de informacin mayor.

Por ejemplo el DNI, el carnet de socio de un video club, o cualquier


formulario de inscripcin es un registro, pues contiene datos ms
simples pero aparecen en conjunto, dotando a la totalidad de un
significado ms completo.

Programacin .NET I. Conceptos de Programacin Estructurada 2.5


Listas enlazadas, Pilas, Colas, rboles:

Estos tipos de datos complejos son objeto de estudio de una


disciplina de computacin llamada Estructura de Datos. De momento
y debido a la dificultad de los mismos no vamos a profundizar en
ellos aunque si es conveniente que sepas de su existencia.

2.6 Programacin .NET I. Conceptos de Programacin Estructurada


2.1. Variables y Operaciones

Decamos que la programacin consista en la recuperacin, transformacin y


almacenamiento de datos, y despus de conocer los distintos tipos de datos es
el momento de centrarse un poco en el almacenamiento y transformacin de
los mismos.

Los trminos que debes manejar y asociar son los siguientes:

Variables > Almacenamiento temporal de los datos


Constantes > Valor fijo de un dato
Literales > Valores directos de datos
Operaciones ->Transformacin de los datos

Variables

Una variable es un espacio de memoria reservado en el ordenador para que


nuestro programa pueda trabajar con algn dato. Es decir en una variable
vamos a almacenar el valor de un dato.

En el argot de programacin se denomina declarar una variable a la creacin


de una variable, y es imprescindible especificar que tipo de dato va a contener
la variable a la hora de declararla.

Un ejemplo de declaracin podra ser:

Declara Apellido de tipo Cadena

De esta manera hemos dicho que en nuestro programa existir una variable
que se denomina Apellido y que puede almacenar datos del tipo cadena.

Debes tener en cuenta que el valor de la variable puede cambiar a lo largo de


la ejecucin del programa. En un primer momento la variable Apellido puede
contener el valor Gonzlez pero ms adelante y mediante alguna operacin
puede llegar a contener el valor Smith.

Tambin debes saber que el valor de una variable se mantiene en la memoria


del ordenador mientras el programa se este ejecutando. Una vez finalizado
dicho valor se pierde.

Programacin .NET I. Conceptos de Programacin Estructurada 2.7


Operaciones

Las operaciones son las diferentes transformaciones a las que podemos someter
a los datos. La manera ms elemental de llevar a cabo estas transformaciones
es mediante la aplicacin de operadores.

Son los operadores los principales agentes de transformacin de los datos.

Como si de expresiones matemticas se trataran los operadores deben aplicarse


sobre operandos en expresiones ms complejas, o dicho de otra manera los
operadores se usan para cambiar el valor de las variables usando para ello el
valor de literales, constantes u otras variables.

Existen operadores unarios, que solo actan sobre un operando y existen


operadores binarios que actan sobre varios operandos

Ejemplos de operadores:

a+b

Valor1 AND Valor2

NOT Valor_booleano

Constantes

Es un valor de dato declarado permanente, que permanece invariable y no se


puede cambiar durante la ejecucin de un programa.

Como la constante lleva asociado un valor, es necesario asignarlo en el


momento de su declaracin

Un ejemplo de declaracin podra ser:

Declara Constante PI = 3.14159

Una vez que la constante se ha declarado se puede utilizar en cualquier


expresin:

(10 * PI ) / 2

2.8 Programacin .NET I. Conceptos de Programacin Estructurada


Literales

Los literales son valores constantes que no han sido declarados en el programa
y que se utilizan directamente en algunas expresiones.

Por ejemplo en la expresin

10 + 89

Los valores 10 y 89 son literales, son valores que no han sido declarados en
ningn sitio, aparecen directamente en el programa y su valor es el que
representan, el nmero 10 y el nmero 89.

Tambin es habitual el uso de literales de tipo cadena como por ejemplo Juan
, cliente, Introduce tu password:, y en general cualquier conjunto
de caracteres que vengan entrecomillados

Programacin .NET I. Conceptos de Programacin Estructurada 2.9


Precedencia de operadores

Los operadores que puedes usar a la hora de programar son muy diversos, y
dependen del tipo de operacin que se quiera llevar a cabo y del tipo de dato
sobre el que queramos actuar.

Una clasificacin de los distintos tipos de operadores ms comunes es la


siguiente:

Operador de asignacin
Operadores aritmticos
Operadores de comparacin
Operadores Lgicos
Operadores de cadena

Al igual que sucede con las expresiones matemticas, cuando en alguna de


nuestras sentencias de un programa aparezcan varios operadores el orden en
el que se van a resolver depender del nivel de precedencia que tengan dichos
operadores.

Operador de asignacin:

Es el operador elemental a la hora de trabajar con variables. Este


operador cambia el contenido de una variable cambiando su valor
por el valor que aparezca a ala derecha de la expresin. El smbolo
utilizado habitualmente es el signo =

Ejemplo

Apellido = Garca
Incremento = 7845

El operador de asignacin puede emplearse sobre cualquier tipo de


dato simple.

Ahora que conoces las operaciones de declaracin de variables y la


asignacin puedes declara variables asignndoles un valor inicial,
por ejemplo:

Declara Tasa de tipo Real = 2,6

2.10 Programacin .NET I. Conceptos de Programacin Estructurada


Operadores aritmticos:

Son los operadores con los que se realizan las tpicas operaciones
matemticas

Operador Descripcin
+ Suma
- Resta
* Multiplicacin
/ Divisin
Divisin entera
Mdulo Resto de la divisin
^ Exponenciacin

Estos operadores se aplican sobre operandos de tipo entero o real.


Ejemplo

Preciofinal = Precio + IVA

Operadores de comparacin:

Con estos operadores se realizan comprobaciones en las que dos


operandos deban cumplir cierta condicin. El valor que devuelve la
expresin es un valor booleano Verdadero si la comparacin se
cumple o Falso en el caso contrario.

Operador Descripcin
== Igual que
<> Distinto que
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que

Estos operadores se aplican sobre operandos de tipo entero o real.

Programacin .NET I. Conceptos de Programacin Estructurada 2.11


Operadores lgicos:

Estos operadores se aplican sobre operandos de tipo booleano y


sirven para evaluar si se cumplen determinadas condiciones sobre
este tipo de datos, el resultado de evaluar estas expresiones son
siempre otro valor booleano.

Operador Descripcin
Devuelve Verdadero si ambos operandos son Verdaderos.
AND
En otro caso devuelve el valor Falso
Devuelve Verdadero si alguno de los operandos es
OR
Verdadero, de no ser as devuelve Falso
Invierte el valor del operando. Si era Verdadero devuelve
NOT
Falso y si era Falso devuelve Verdadero
Devuelve Verdadero si uno y solo uno de los operandos es
XOR
Verdadero.

Operadores de cadena:

Dependiendo del lenguaje utilizado podremos disponer de un mayor


nmero de herramientas para trabajar con cadenas de caracteres.
Sin embargo como operador fundamental existe el operador
concatenacin, que permite crear una cadena a partir de juntar otras
existentes. El smbolo del operador concatenacin es &.

Ejemplo:

Declara Nombre de tipo Cadena


Declara Apellido de tipo Cadena
Declara Persona de tipo Cadena
Nombre = Pedro
Apellido = Collado
Persona = Nombre & Apellido

el contenido de la cadena Persona ser Pedro Collado

2.12 Programacin .NET I. Conceptos de Programacin Estructurada


2.4. Estructuras de control

Antes de profundizar en el significado y uso de las estructuras de control debes


conocer dos fundamentos bsicos de la programacin estructurada.

El primero de ellos afirma que cualquier programa de este paradigma debe


tener un punto de entrada y un punto de salida.

El segundo fundamento es el conocido como Teorema de la Estructura que


dice lo siguiente :Cualquier programa debe escribirse utilizando
solamente tres estructuras de control que son: secuencia, iteracin y
seleccin

Estos axiomas fundamentales que deben cumplir cualquier programa


estructurado ayudan al programador a seguir el flujo de ejecucin de un
programa de manera ms sencilla y evita que se cometa el error de programar
saltos de una seccin de cdigo a otra de manera arbitraria (incondicional)

Dado que son tan importantes y todos los lenguajes de programacin


estructurada las contemplan, es muy importante que conozcas
conceptualmente las siguientes estructuras de control:

Secuencia
Seleccin
Iteracin

Programacin .NET I. Conceptos de Programacin Estructurada 2.13


Secuencia

Las instrucciones del programa deben ejecutarse en el orden en que van


apareciendo, es decir una a continuacin de la otra:

Ejemplo:.

En el siguiente ejemplo podrs apreciar como todas las instrucciones


se ejecutan en orden secuencial, una detrs de otra sin verse el flujo
del programa afectado de ninguna forma.

Inicio Programa
Funcin Principal()
Inicio
Declara Nombre, Apellido de tipo Cadena
Escribir (Introduce tu nombre:)
Leer (Nombre)
Escribir (Introduce tu Apellido:)
Leer (Apellido)
Escribir (Hola, & Nombre & & Apellido)
Fin
Fin Programa

2.14 Programacin .NET I. Conceptos de Programacin Estructurada


Seleccin

Esta estructura permite escoger entre dos opciones basadas en un predicado.


Se conoce como estructura SI ENTONCES SINO. Cuando un programa llega
a un punto de seleccin evaluar el predicado, una condicin que arrojar un
valor booleano Verdadero o Falso. Si la condicin se cumple se tomar un
camino y en el caso contrario se tomar el otro.

Ejemplo:.

Dependiendo del valor introducido por el usuario para la variable


Edad el flujo de ejecucin tomar un camino u otro.

Inicio Programa
Funcin Principal()
Inicio
Declara Edad de tipo Entero
Escribir(Introduce tu edad: )
Leer (Edad)
Si Edad >= 18 entonces
Escribir (Eres mayor de edad.)
Sino
Escribir (An no eres mayor de edad.)
Fin Si
Fin
Fin Programa

Programacin .NET I. Conceptos de Programacin Estructurada 2.15


Iteracin

La iteracin consiste en la repeticin de un bloque de sentencias mientras se


cumpla una determinada condicin o hasta que se cumpla determinada
condicin, a estas repeticiones tambin se las conocen como bucle.
Existen dos estructuras para representar esta situacin, la conocida como
HACER MIENTRAS y la estructura MIENTRAS REPETIR.
Ambas estructuras son muy similares, la nica diferencia es que en HACER -
MIENTRAS el bloque de sentencias se ejecuta al menos una vez antes de
evaluar la condicin, sin embargo en MIENTRAS REPETIR puede darse la
situacin que la condicin se evale, no se cumpla y no se llegue a ejecutar
nunca el bloque de sentencias

2.16 Programacin .NET I. Conceptos de Programacin Estructurada


Ejemplo:.

En este ejemplo el bloque en el que se solicita la clave del usuario


se repetir indefinidamente mientras el valor introducido no sea el
correcto.

Inicio Programa
Funcin Principal()
Inicio
Declara Clave de tipo Cadena
Repetir
Escribir (Introduce tu clave:)
Leer (Clave)
Mientras Clave <> Ssamo
Escribir (Clave Aceptada.)
Fin
Fin Programa

Existe otro tipo de secuencia de iteracin muy utilizada denominada DESDE


valor x HASTA valor y REPETIR. Lo interesente de este bucle es que se conocen
de antemano cuantas iteraciones van a sufrir el bloque de sentencias, a cada
una de estas repeticiones se las conoce como pasos y su cuenta se va llevando
en un variable denominada contador.

Programacin .NET I. Conceptos de Programacin Estructurada 2.17


2.1. Subprogramas: procedimientos y funciones

Segn tus programas vallan ganando complejidad te dars cuenta que algn
proceso concreto se repite. No sera genial poder separar esa funcionalidad y
poder usarla cuando la necesites sin tener que repetir de nuevo todo el cdigo
de programacin? Esto es posible gracias a los subprogramas, que no es ms
que un bloque de cdigo con una funcionalidad concreta y que puede ser
utilizado siempre que lo desees.

Pero esta no es la nica ventaja de los subprogramas, gracias a ellos puedes ir


reduciendo la complejidad de un problema de programacin dividindolo en
tareas de menor complejidad y realizando estas tareas mediante subprogramas.

La ejecucin de un programa que utiliza subprogramas es sencilla, las


instrucciones se van ejecutando hasta que se encuentra la llamada al
subprograma, que ejecuta su bloque de sentencias y devuelve el control de la
ejecucin a la siguiente instruccin desde la que fue llamado.

En ocasiones tus subprogramas pueden necesitar conocer algn valor para


llevar a cabo su ejecucin. Puedes hacerle conocer estos valores a travs de
los denominados parmetros de entrada.

Hasta el momento hemos hablado de los subprogramas de forma general pero


existen dos tipos diferenciados de subprogramas:

Funciones
Procedimientos

2.18 Programacin .NET I. Conceptos de Programacin Estructurada


Funciones

Las funciones son subprogramas que aceptan uno o varios parmetros de


entrada y devuelven un nico valor de salida. Su estructura tendr una
cabecera, con el nombre de la funcin y los parmetros, y un cuerpo con la
declaracin de variables e instrucciones de la funcin.

Funcion Nombre_funcion (Parametro1 :tipo_parametro, ..,


ParametroN :tipo_parametro) :tipo_funcin

Declaracin de variables
Inicio
Instrucciones
Valor de retorno
Fin

Ejemplo:.

Esta funcin devuelve el cuadrado de un nmero entero pasado


como parmetro.

Inicio Programa
Funcin Principal()
Inicio
Declara Numero de tipo Entero
Escribir (Introduce un numero para conocer su cuadrado:)
Leer (Numero)
Escribir (El cuadrado del numero es: Cuadrado(Numero))
Fin

Funcion Cuadrado (cuad : de tipo Entero) : de tipo Entero


Inicio
Cuadrado = cuad * cuad
Fin

Fin Programa

Programacin .NET I. Conceptos de Programacin Estructurada 2.19


Procedimientos

Los procedimientos son subprogramas que aceptan ninguno, uno o varios


parmetros de entrada y no tienen un valor de retorno. Su estructura tendr
una cabecera, con el nombre del procedimiento y los parmetros (en caso de
tenerlos), y un cuerpo con la declaracin de variables e instrucciones.

Procedimiento Nombre_procedimiento (Parametro1


:tipo_parametro, .., ParametroN :tipo_parametro)

Declaracin de variables
Inicio
Instrucciones

Fin

Ejemplo:.

Procedimiento para calcular el mayor de dos nmeros introducidos

Inicio Programa
Funcin Principal()
Inicio
Declara a, b de tipo Entero
Escribir (Dime un numero:)
Leer (a)
Escribir (ahora dame otro numero:)
Leer (b)
Mayor(a, b)
Fin

2.20 Programacin .NET I. Conceptos de Programacin Estructurada


Ejemplo (continuacin):.

Procedimiento Mayor (a : de tipo Entero, b : de tipo Entero)


Inicio
Si a = b entonces
Escribir (Los nmeros son iguales.)
Sino
Si a > b entonces
Escribir (El primer nmero es mayor.)
Sino
Escribir (El segundo nmero es mayor.)
Fin Si
Fin Si
Fin
Fin Programa

Programacin .NET I. Conceptos de Programacin Estructurada 2.21


Prametros y subprogramas

Debes tener en cuenta que a la hora de crear un subprograma, ya sea


procedimiento o funcin, si tiene parmetros es necesario especificar que tipo
de datos son. Igualmente si el subprograma es una funcin, dado que esta
devuelve un valor tambin es necesario especificar de que tipo es este valor de
retorno.

Dado que la funcin devuelve un valor, a la hora de hacer una llamada a una
funcin debes recoger dicho valor de alguna manera, por ejemplo en una
variable.

Supongamos que tengo una funcin Calcula_Tasa que recibe un valor de


entrada de tipo real y devuelve el calculo de un impuesto

Puedes declarar una variable del mismo tipo

Declara Tasa de tipo Real

Y hacer la llamada a la funcin recogiendo el valor en dicha variable

Tasa = Calcula_Tasa(7,2)

Y qu sucede si necesitas que un subprograma devuelva ms de un valor de


retorno?

Habamos afirmado que las funciones tienen un nico valor de retorno y los
procedimientos no tienen ningn valor de retorno, y estrictamente as es pero
podemos utilizar los procedimientos para devolver ms de un valor.

Para ello debes conocer la diferencia a la hora de pasar los parmetros a un


subprograma. Existen dos formas de hacerlo

Paso de parmetros por valor


Paso de parmetros por referencia

2.22 Programacin .NET I. Conceptos de Programacin Estructurada


Paso de parmetros por valor

Cuando a un subprograma le pasamos los parmetros por valor no le estamos


pasando realmente la variable sino una copia del contenido de dicha variable,
de tal forma que cualquier cambio que se efecte sobre el parmetro dentro
del procedimiento no persiste a la salida del mismo.

La forma adecuada de declarar que un parmetro se pasa por valor es


indicndolo en la cabecera del procedimiento mediante el uso de la palabra
reservada val.

Procedimiento Nombre_procedimiento (val Parametro1


:tipo_parametro, .., val ParametroN :tipo_parametro)

Declaracin de variables
Inicio
Instrucciones
. . .
Fin

Si examinando un procedimiento o funcin no aparece especificado si los


parmetros son pasados por referencia o por valor debes entender que, por
defecto, son pasados siempre por valor

Programacin .NET I. Conceptos de Programacin Estructurada 2.23


Ejemplo:.

En este programa se pretende que un procedimiento intercambie el


valor de dos variables. Dado que el procedimiento toma los
parmetros por valor, la ejecucin del programa devolvera siempre
el mismo mensaje a vale 1 b vale 5

Inicio Programa
Funcin Principal()
Inicio
Declara a, b de tipo Entero
a = 1
b = 5
Escribir (a vale: & a & b vale: & b)
Cambiar(a, b)
Escribir (a vale: & a & b vale: & b)
Fin

Procedimiento Cambiar (val a :de tipo Entero val b :de tipo


Entero)
Declara Intercambio de tipo Entero
Inicio
Intercambio =a
a = b
b = Intercambio
Fin
Fin Programa

2.24 Programacin .NET I. Conceptos de Programacin Estructurada


Paso de parmetros por referencia

Al pasar los parmetros por referencia lo que realmente enviamos al


procedimiento es la direccin de memoria de la variable usada como parmetro
de tal manera que cualquier cambio efectuado en el parmetro durante la
ejecucin del procedimiento persiste a la salida del mismo.

La forma adecuada de declarar que un parmetro se pasa por valor es


indicndolo en la cabecera del procedimiento mediante el uso de la palabra
reservada ref.

Procedimiento Nombre_procedimiento (ref Parametro1


:tipo_parametro, .., ref ParametroN :tipo_parametro)

Declaracin de variables
Inicio
Instrucciones
. . .
Fin

Programacin .NET I. Conceptos de Programacin Estructurada 2.25


Ejemplo:.

En este programa se pretende que un procedimiento intercambie el


valor de dos variables. Dado que el procedimiento toma los
parmetros por referencia, la ejecucin del programa devolver dos
mensajes distintos a vale 1 b vale 5 y a vale 5 b vale 1

Inicio Programa
Funcin Principal()
Inicio
Declara a, b de tipo Entero
a = 1
b = 5
Escribir (a vale: & a & b vale: & b)
Cambiar(a, b)
Escribir (a vale: & a & b vale: & b)
Fin

Procedimiento Cambiar (ref a :de tipo Entero ref b :de tipo


Entero)
Declara Intercambio de tipo Entero
Inicio
Intercambio =a
a = b
b = Intercambio
Fin
Fin Programa

2.26 Programacin .NET I. Conceptos de Programacin Estructurada


mbito de resolucin

Ahora que ya tienes nociones sobre lo que son la variables, las estructuras de
control y los procedimientos y funciones, es un buen momento para
puntualizar algunos aspectos que hemos, intencionadamente, pasado por
alto.

En primer lugar habrs observado en los ejemplos que en cualquier programa


existen unas instrucciones de inicio y fin de programa que acotan todo el
contenido del mismo

Inicio Programa
Sentencias . . .
Fin Programa

Tambin te habrs dado cuenta de que siempre existe una funcin principal, y
aunque ya sabes que son y para que sirven las funciones, debes considerar a
la funcin principal como una funcin un poco distinta dado que es la primera
que se ejecuta, es el punto de entrada del programa, y no puede haber
ningn programa que no tenga esta funcin principal.

Funcin Principal()
Inicio
Sentencias . . .
Fin

Para terminar es necesario que asimiles bien el trmino resolucin o mbito


de una variable.

Programacin .NET I. Conceptos de Programacin Estructurada 2.27


Hasta el momento siempre hemos declarado las variables dentro de cada
funcin, sin embargo puedes declarar las variables a nivel de programa antes
de la funcin principal

Inicio Programa
Declara variable de tipo Entero

Funcin Principal()
Sentencias . . .
Fin

Procedimiento Secundario (a, b)


Inicio
Sentencias . . .
Fin

Fin Programa

El alcance o visibilidad de las variables, es decir el acceso o modificacin de


su contenido es lo que se denomina mbito de una variable, de esta forma
podemos hablar de:

mbito global
Las variables que se declaran a nivel de programa, fuera
de cualquier funcin, incluida la principal son de mbito
local, con eso queremos decir que el contenido de dichas
variables es accesible desde cualquier funcin, en definitiva
desde cualquier parte del programa.

mbito local
Las variables que se declaran a nivel de funcin son de
mbito local, con eso queremos decir que el contenido de
dichas variables es accesible exclusivamente desde
sentencias incluidas en dicha funcin, en definitiva desde
cualquier parte del programa.

Si una variable local tiene el mismo nombre que una


variable global el valor que se utilizar durante la ejecucin
del programa ser el de la variable local.

2.28 Programacin .NET I. Conceptos de Programacin Estructurada


Ejemplo mbito global:.

Inicio Programa
Declara global de tipo Entero = 1
Funcin Principal()
Inicio
Escribir (La variable global vale: & global)
Cambiar()
global = 200
Escribir (La variable global vale: & global)
Fin

Procedimiento Cambiar ()
Inicio
global = 100
Escribir (La variable global vale: & global)
Fin
Fin Programa

Los valores obtenidos en la ejecucin de la variable global sern:


1, 100 y 200

Programacin .NET I. Conceptos de Programacin Estructurada 2.29


Ejemplo mbito local:.

Inicio Programa
Declara global de tipo Entero = 10
Funcin Principal()
Inicio
Declara a, b de tipo Entero
a = 1
b = 5
Escribir (a vale: & a & b vale: & b & global
vale: & global)
Cambiar()
global = 200
Escribir (a vale: & a & b vale: & b & global
vale: & global)
Fin

Procedimiento Cambiar ()
Declara a, b de tipo Entero
Inicio
global = 100
a = 7
b = 9
Escribir (a vale: & a & b vale: & b & global
vale: & global)
Fin
Fin Programa

Los valores obtenidos en la ejecucin para a, b y global sern


respectivamente: 1, 5, 10 7, 9, 100 1, 5, 200

2.30 Programacin .NET I. Conceptos de Programacin Estructurada

Vous aimerez peut-être aussi