5/20/2018 Visual Basic
1/502
http://www.aulaclic.es/visualbasic/
Unidad 1. Programacin (I)
1.1. Obetivos del tema.!olo pretender "ue centremos un poco lo "ue es la tarea de la programacin# $"ue sobre todo es un aspecto de lgica# lgica aplastante.
1.%. Introduccin.Intentar dar una de&inicin de lo "ue es programar en la actualidad es mu$
atrevido# por lo "ue el "ue desee una de esas de&iniciones solo tiene "ue acudir a
Internet $ encontrara seguro un sin &in de ellas.
Pero para escribir un programa# una aplicacin# un pa"uete in&orm'tico# ha$ "ue
combinar varios elementos.
cnica.
*ise+o.
Imaginacin.
cnica# "ue se puede aprender# $ "ue es lo "ue se "uiere ense+ar en este curso
de iniciacin.
*ise+o# estilo# gusto# "ue es m's di&,cil ense+arlo# pues es una cuestin personal#
$ se trata de o&recer nuestro producto en un &ormato agradable para "uien lo va a
utili-ar.
Imaginacin# conocida la tcnica de programacin# est' capacidad se puede
ad"uirir con la eperiencia# es m's di&,cil# por"ue la capacidad de poder crear# imaginar
la solucin# o &orma en la cual se desea plantear o mostrar lo "ue se "uiere obtener# es
una capacidad individual "ue cada uno tiene m's o menos desarrollada.
stos elementos nos permitir'n combinar otros tres elementos# "ue son
l hardware# el ordenador.
0os procedimientos# &unciones# clases $ obetos.
0as estructuras de datos.
ardware# conocer los distintos elementos con los "ue se puede contar para
poder llegar a obtener una solucin optima a nuestro problema.
n programacin ha$ una gran variedad de tipos de programas# $ un amplio
espectro de peri&ricos en el mercado.
5/20/2018 Visual Basic
2/502
!u conocimiento nos puede &acilitar la solucin de un problema.
Procedimientos# &unciones# son las herramientas de las "ue nos valemos en la
programacin para la resolucin de un programa# para resolver un problema.
structuras de datos# los dos elementos anteriores nos permiten sacar el
rendimiento de un programa# pero un programa utili-a datos# pocos o muchos# pero
siempre in&ormacin# por lo tanto ha$ "ue manear de &orma adecuada dicha
in&ormacin.
1.2. lementos de programacin.Podr,amos denominar los siguientes apartados como elementos de la
programacin.
3 ener claro "ue "ueremos hacer.
3 *ominar los elementos a nuestro alcance.
3 Imaginar espacialmente la solucin "ue deseamos
obtener.
3 4plicar dicha solucin.
ener claro "ue "ueremos hacer# en condiciones normales# la creacin de unprograma parte de una &ase de dise+o "ue da como resultado &inal como tiene "ue ser
un programa $ lo "ue ha$ "ue hacer es transcribir a cdigo dicho resultado.
Por lo tanto antes de iniciar la escritura de un programa es imprescindible saber
de &orma clara $ sin paliativos "ue es lo "ue "ueremos hacer# si una silla o un barco.
5ormalmente una buena aplicacin suele conllevar un ahorro en el tiempo &inal#
por "ue no ha$ "ue retroceder ni tampoco corregir.
*ominar los elementos a nuestro alcance# implica tener un conocimiento $
dominio de los elementos mencionados anteriormente.
Imaginar espacialmente la solucin "ue deseamos obtener# la progresin en la
tcnica de la programacin# con el tiempo nos llevar' a imaginar# por decirlo de alguna
&orma# la solucin o la &orma de en&ocar como deseamos hacer el programa "ue nos
encargan# pero eso a otro nivel# os ir' pasando a lo largo del curso# $a "ue con los
eercicios "ue iremos planteando# a medida "ue los va$amos le$endo de &orma
inconsciente os ira apareciendo la &orma de en&ocarlos.
4plicar dicha solucin# $ solo "uedar' con todos los datos aplicarlos a la solucin
"ue en principio creemos m's adecuada# $ "ue luego modi&icaremos muchas veces.
5/20/2018 Visual Basic
3/502
a$ un principio# 6si &unciona no lo to"ues7# pero claro ...# as, "ue cada cual
decida cuando parar.
1.8. 0o principal de un programador.ener las ideas claras# saber de &orma eacta "ue es lo "ue tienes $ a donde has
de llegar.
ener claro en "ue orden "uieres hacerlo.
0o mas importante en programacin son los conceptos. !i se tienen claros# a
continuacin# podr's buscar las herramientas "ue necesitas en el lenguae "ue usas $
reali-ar's correctamente tu labor.
9emori-ar cosas no es importante# es m's importante saber donde esta un
manual $ buscar ah, la in&ormacin# "ue necesitemos.l cambiar a otro lenguae de programacin# si los conceptos son slidos# no
supondr' ningn trauma# pues cambiar'n las instrucciones "ue usas# pero no el orden
en "ue se tienen "ue reali-ar los pasos.
*ominar la herramienta de programacin de "ue dispones.
;eali-ar las pruebas adecuadas de &uncionamiento correcto del programa.
0a &ase de depuracin $ pruebas de un programa son important,simas# por"ue
eso nos lleva a un producto &inal &iable $ de probada e&icacia# lo cual da &iabilidad al
producto# $ al programador "ue lo crea.Un programa "ue no da con&ian-a no se utili-a.
1.
5/20/2018 Visual Basic
4/502
4 Eficiencia.
!e debe aprovechar al m'imo los recursos del ordenador# minimi-ando el
empleo de memoria $ el tiempo de eecucin. 4dem's# como es obvio# debe resolver el
problema para el "ue ha sido planteado.
5 Modularidad.
!e debe procurar no tener "ue resolver el mismo problema varias veces. 4 igual
problema# igual solucin# lo "ue conlleva la elaboracin de mdulos para resolver
problemas concretos.
6 Estructuracin.
0o programas deben tener nica $ eclusivamente estructuras lineales#
alternativas $ c,clicas# eclusivamente# o dicho de otra &orma# no es conveniente utili-ar
instrucciones de salto# aun"ue estn disponibles en el lenguae de programacin.
1.>. Problemas en los programas.=uando se tienen problemas con un programa# lo meor es ir haciendo pruebas
por -onas# visuali-ando contenidos mediante las herramientas# opciones de depuracin
del entorno "ue utili-amos# de las variables "ue nos interesan $ comprobando "ue se
eecutan las -onas del programa "ue a nosotros nos interesan "ue se eecute.
=uando se dise+a una rutina# &uncin# procedimiento o mtodo nuevo# esta debe
probarse &uera del programa# para asegurarse de su correcto dise+o $ "ue devuelve
correctamente los resultados# asign'ndole en la prueba todos los valores posibles paraveri&icar su correcto &uncionamiento.
n un programa pe"ue+o eso es mu$ &'cil de probar $ de controlar su eecucin
correcta.
=opiar un programa no es malo# no suele hacerse# suelen copiarse ideas# o
meorar cosas "ue se observan en otros pa"uetes# pero lo importante si se hace# es
saber como &unciona $ entenderlo# si no# no nos aportar' nada.
Unidad %. structura $ representacin de un programa (I)
%.1. Obetivos del tema.Veamos lo que es un programa, en cuanto a sus elementos mnimos, y
estructura mnima, poco a poco iremos ampliando e introduciendo el resto
de elementos.
%.%. Introduccin.Un ordenador tiene como misin la de realizar, o facilitar las tareas que de
otra forma se realizaran en una forma tediosa e incomoda.
5/20/2018 Visual Basic
5/502
Los ordenadores son capaces de ejecutar programas.
Los programas estn realizados por personas y los ejecutan los
ordenadores.
Los programas utilizan informacin en su ejecucin, y como resultado de su
ejecucin facilitan, o no, nuevos datos.
Los datos que se utilizan en los programas forman parte de las instrucciones
que ejecuta el programa.
%.2. scribir un programa.
Toda actividad necesita de un argot, jerga y convenios para poderse
entender entre las personas que se dedican a una misma laor. !o es que
se pretenda aislarse del resto de las personas, sino que es necesario ese
convenio y un lenguaje espec"co que a cada cosa le asigne su nomre
caracterstico y propio, y de esa forma facilite la comunicacin entre las
personas.
#e esta forma surge en cada profesin una serie de smolos y palaras
para facilitar el traajo.
$%iste varias formas de representar un programa de forma previa a su
codi"cacin y a partir de los datos que nos entregan como consecuencia de
la fase previa de anlisis.
!eudocdigo
Ordinogramas.
Lo que sigue es un peque&o ejemplo de un programa muy sencillo, en
formato de seudocdigo.
Inicio
Escribir Clculo del rea de un tringulo
Leer Introduzca la base del tringulo, Base
Leer Introduzca la altura del tringulo, Altura
5/20/2018 Visual Basic
6/502
Area = (Base * Altura) /
Escribir El rea del tringulo es , Area
!in
$sta forma de escriir, o de descriir dic'o programa se denomina
pseudocdigo.
(omo se puede comproar, es una forma sencilla de descriir un programa
en un formato muy pr%imo al ser 'umano, pero tami)n se puede
desarrollar de forma gr"ca.
*ara ello los smolos utilizados sicamente son+
5/20/2018 Visual Basic
7/502
a continuacin vemos el ejemplo de antes representado medianteorganigrama.
-mos sistemas son vlidos, cada cual puede elegir el que ms le guste.
pli"uemos lo visto.
Escribir Clculo del rea de un tringulo
sto es una instruccin "ue incorpora un teto "ue se llama literal# $ en un
programa de verdad en lugar de estar en castellano estar' en ingles.
Instruccin scribir
0iteral 6='lculo ?7
l &in de sta instruccin es el de poder comunicarse con la persona "ue est'
utili-ando el programa# $ poder emitir mensaes# de a$uda# de t,tulo# etc?
5/20/2018 Visual Basic
8/502
Leer Base del tringulo, Base
sto es una instruccin "ue es capa- de visuali-ar un teto $ esperar a "ue el
usuario escriba un dato.
Instruccin 0eer
0iteral 6Introdu-ca ?7
*ato @ase
l &in de sta instruccin es el de poder recibir datos por teclado desde la persona
"ue est' utili-ando el programa.
Inicio
"" / ""
!in
sta es la &orma de delimitar el programa en su inicio $ &inal# cada lenguae
dispone de una sintais m's o menos similar# @egin nd#
odos los programas de una u otra &orma tienen delimitado donde empie-a $
donde acaban# el sistema cambia en &uncin de la sintais de cada uno de los lenguaesde programacin.
0os programas no son solamente como lo visto en el eemplo# son algo m's
compleos e incorporan estructuras "ue $a incorporaremos m's adelante.
Unidad 2. 0os datos (I)
2.1. Obetivos del tema.emos visto en el tema anterior como un programa es algo mu$ &'cil# claro el
eemplo era mu$ &'cil# pero se trataba de dear visto# "ue es as,.
4hora vamos a ver "ue en el tema anterior hemos utili-ado datos# pero "ue en
realidad los datos son algo m's.
2.%. Introduccin.0os datos en un programa es uno de los elementos vitales del mismo# pero en la
vida cotidiana los utili-amos a diario tambin# si nos &iamos en los datos "ue utili-amos#nos daremos cuenta "ue son letras $ nmeros# nmeros solo o solo letras.
5/20/2018 Visual Basic
9/502
ambin# cuando a lo largo del d,a alguien nos da un dato pe"ue+o# normalmente
no memori-amos# pero si es largo o compleo# lo apuntamos# APor "uB# por "ue
tenemos nuestras limitaciones# por la edad# por lo despistados "ue somos etc..
0os ordenadores tambin disponen de memoria# $ tambin manean in&ormacin#
datos# $ en &uncin de lo voluminosos "ue sean los datos# los almacenar'n en la
memoria central del ordenador# o en un soporte# en el disco duro o lo grabaremos en un
dis"uete o disco compacto# etc..
2.2. 0os tipos de datos.In&orm'ticamente los datos son de dos tipos b'sicos# nmeros $ letras# o
numricos $ al&anumricos.
=on los datos numricos reali-amos operaciones de c'lculo $ con los
al&anumricos representamos in&ormacin $ la almacenamos para el uso en elprograma.
l dato numrico utili-ar' en memoria un espacio adecuado para el valor "ue
puede tomar.
=omo la memoria en un ordenador es vital# conviene aprovecharla al m'imo.
Un valor numrico puede tomar un valor desde cero# olvidemos los nmeros
negativos# hasta ....# hasta un valor "ue es imposible escribir# o sea# in&inito.
Pero eso en un ordenador es imposible de asumir.Por lo tanto lo "ue hacemos es "ue creamos rangos# $ a cada rango le
asignamos un tipo de dato.
A=mo se crean los rangosB
Pensemos en "ue un ordenador solo sabe utili-ar un uno $ un cero# ausencia de voltae $
presencia de voltae elctrico# sistema binario# pero nosotros utili-amos lo "ue denominamos el
sistema decimal# es decir die- elementos en lugar de dos.
n este sistema# cada uno de los d,gitos utili-ados se denomina bit# (Binar$ digit).
Por lo tanto para almacenar un nmero del cero al nueve# necesitaremos una
combinacin de ceros $ unos "ue permitan representar cada uno de esos nmeros# $ como son
die-# se necesitan die- combinaciones.
C C
1 1
% 1C
2 11
8 1CC
5/20/2018 Visual Basic
10/502
< 1C1
> 11C
D 111
E 1CCC
F 1CC1
sa ser,a la combinacin para representar los die- d,gitos del cero al nueve.
=ada uno de esos d,gitos los denominamos bits# por lo tanto el cinco necesita tres bits
para representarlo.
!i siguiramos esa secuencia podr,amos ir creando todos los nmeros decimales en
binario.
stos bit se agrupan en grupos de
1 bit.
8 bit un cuarteto.
E bit un octeto# un octeto es un b$te.
1C%8 b$tes# es un Gilob$te. Gb.
1C%8 Gb son un 9egab$te# 9gb
1C%8 9gb. son un Higab$te.
!i nos preguntamos por"ue se usa 1C%8 en lugar de 1CCC# la respuesta es "ue ha$ "ue
buscar blo"ues de E bits# "ue son un b$te# 1C%8 es % 1C .
0os datos al&anumricos no tiene problema en su representacin# pues cada car'cter
ocupa un b$te en memoria# tantos caracteres tantos b$tes# dentro de las limitaciones del
lenguae de programacin "ue se este utili-ando.
l motivo de utili-ar un b$te para cada car'cter es "ue el nmero de caracteres m'imodistintos en un idioma latino# o anglosaon# tomando los nmeros como caracteres
independientes# incluidos letras acentuadas $ caracteres de puntuacin no supera los %# con
un b$te podemos obtener % combinaciones distintas# del C al %
5/20/2018 Visual Basic
11/502
Pero los nmeros son datos compactos# no se pueden andar separando de &orma
arbitraria# $a "ue ha$ "ue reali-ar operaciones de c'lculo con ellos# por lo tanto han de ocupar
uno# dos o b$tes# pero contiguos# para as, poder operar matem'ticamente.
Por lo tanto los nmeros "ue podemos representar en un sistema depender' del nmero
de b$tes "ue pongamos untos para representar ese nmero.
Por eemplo si ponemos un solo b$te a disposicin del sistema# solo podremos
representar nmeros entre el C $ el %D $ 2%D>E# como nmeros enteros.
4un"ue eso parece un rango mu$ pe"ue+o# en programacin los nmeros enteros se
usan para contar cosas# $ en un porcentae mu$ elevado de casos es su&iciente ese rango#
siempre "ue se haga un uso adecuado de los recursos.
=laro la pregunta sale sola A pero nmeros ha$ .... B # claro "ue ha$ m's# pero esos $a
se han dado en clasi&icar en otro tipo de datos# los llamados nmeros reales.
0os nmeros reales se representan con otro sistema# no creeremos "ue se puede
asignar espacio en memoria para el nmero 1%28DEFC1%28DEFC# o bien para el
C#1%28DEFC1%28DEFC# eso no es &actible.Por lo tanto en &uncin del tama+o del espacio usado en memoria se puede abarcar m's
o menos valores.
sta tabla muestra los valores m'imos $ m,nimos en &uncin del nmero de b$tes
utili-ados en lun lenguae de programacin..
Pensemos "ue hace a+os un nmero entero utili-aba dos b$tes# ahora en los lenguaes
modernos utili-a 8# por lo "ue se aumenta el nmero de valores posibles v'lidos.
Unidad 2. 0os datos (II)
Byte
s
Mi!o M"ni!o
@$te nmeros 1 %D K2%#D>E
5/20/2018 Visual Basic
12/502
rangos
0ong ntero
largo
8 %#18D#8E2#>8D K%#18D#8E2#>8E
!ingle
precisin
nmeros
(positivos)
8 2.8C%E%22E 1.8C1%FEK8F2128E>%2188F2128E>%21
5/20/2018 Visual Basic
13/502
8.%. Introduccin.0as instrucciones es la &orma de hacer "ue un programa haga la tarea para la
cual lo estamos escribiendo# pero esas instrucciones tienen "ue manear datos# $ al &inal
lo "ue hacemos es escribir epresiones "ue se evalan $ "ue producen un resultado
"ue permite resolver o tomar una decisin.
Para utili-ar los datos necesitamos crear esas epresiones# las epresiones las
crearemos utili-ando los datos $ los operadores "ue me permiten dar sentido a esa
epresin para "ue produ-ca un resultado.
8.2. presiones.0as epresiones est'n compuestas por datos# $ los datos en un programa se
almacenan en variables.
0as denominamos de esa &orma por"ue su valor cambia a lo largo de la eecucindel programa# cuando un dato est' almacenado en una variable $ su valor es est'tico#
por eemplo declaramos la variable Pi M 2#181
5/20/2018 Visual Basic
14/502
Potencia.
Productos $ divisiones.
!uma $ restas.
=oncatenacin.
;elacionales.
5egacin.
=onuncin.
*is$uncin.
=uando ha$ epresiones "ue contienen operadores de m's de una categor,a# se
resuelven antes las "ue tienen operadores aritmticos# a continuacin las "ue tienen
operadores de comparacin $ por ltimo las de operadores lgicos.
0os operadores de comparacin tienen todos la misma prioridadN es decir# se
evalan de i-"uierda a derecha# en el orden en "ue aparecen. 0os operadores lgicos $
aritmticos se evalan en el siguiente orden de prioridad:
#i$os de o$eradores.
%rit!&ticos 'elacionales ($eradores
lgicos
ponenciacin Igualdad 5egacin lgica
5egacin *esigualdad# distinto =onuncin
9ultiplicacin $ divisin 9enor "ue *is$uncin
*ivisin de enteros 9a$or "ue clusin
lgica
9dulo aritmtico (9od) 9enor o igual "ue "uivalencia
4dicin $ substraccin 9a$or o igual "ue Implicacin
n cada lenguae de programacin cada operador tiene un s,mbolo asignado# en
la ma$or,a coinciden# pero ha$ algunos "ue cambian de &orma signi&icativa# por lo "ue
cuando se entre en cada lenguae se epondr'n los mismos.
=uando ha$ multiplicacin $ divisin en la misma epresin# cada operacin se
evala a medida "ue aparece# de i-"uierda a derecha. *el mismo modo# cuando se
presentan adiciones $ substracciones en una misma epresin# cada operacin se
evala tal como aparecen de i-"uierda a derecha. s posible usar parntesis para saltar
el orden de pre&erencia $ &or-ar "ue algunas partes de una epresin se evalen antes
5/20/2018 Visual Basic
15/502
"ue otras. 0as operaciones entre parntesis se reali-an antes "ue las de &uera. !in
embargo# dentro de los parntesis# la precedencia de los operadores se mantiene.
l operador de concatenacin de cadenas () o () no es realmente un operador
aritmtico# pero en orden de prioridad se encuentra a continuacin de todos los
operadores aritmticos $ antes "ue todos los operadores de comparacin.
8.8. A=omo se distinguen los tipos de variableB0a di&erenciacin entre un tipo $ otro de variables# se reali-a de dos &ormas
b'sicamente#
n la creacin a la hora de de&inirlas se les asigna un tipo#
pero el nombre no lleva ningn car'cter identi&icativo#
n la creacin a la hora de de&inirlas se les asigna un tipo $
adem's el nombre lleva un car'cter "ue la identi&ica como tal
tipo# si se utili-a el sistema de notacin hungara.
0a notacin hungara# consiste en pre&ios en minsculas "ue se a+aden a los nombres
de las variables# $ "ue indican su tipo.
l resto del nombre indica# lo m's claramente posible# la &uncin "ue reali-a la variable.
8.
5/20/2018 Visual Basic
16/502
0gicas. =ondicin 4nd =ondicin# o =ondicin
Or =ondicin.
;elacionales. 9a$or o Igual# M# QM# M# # Q
0ue se corresponde con los tipos de operadores descritos anteriormente.
Luego para cada tipo de operacin son necesarios unos smolos que
identi"quen la accin que se desea realizar.
- continuacin e%ponemos los operadores en un formato que suele ser
'aitual, pero que despu)s 'ar que volver a ver en el lenguaje
correspondiente.
(on el "n de poder realizar los ejemplos, se 'an utilizado los smolos que
se utilizan en Visual 1asic.
1 %rit!&ticos.
*ara indicar clculos de tipo matemtico.
!uma
;esta K
9ultiplicacin R
*ivisin /# *ivisin entera# o *IS
;esto divisin 9od
;a,- cuadrada !"r
ponenciacin T
$jemplos.
Sariable M Sariable 1 !uma $ adem's
es un =ontador.
Sariable M Sariable OtraSariable !uma# $ lo
llamamos 4cumulador.
Sariable M Sariable R 2 OtraSariable
2 Lgicos.
-nd, 2r, !ot, 3or, mp. $qv
Los operadores lgicos unen dos o ms condiciones para formar una 4nicae%presin.
5/20/2018 Visual Basic
17/502
2.1 And.
5e utiliza para efectuar una conjuncin lgica de dos e%presiones.
Sintaxis
resultado M epresin1 4nd epresin%
La sinta%is del operador -nd consta de las siguientes partes+
Parte Descripcin
resultado 2ligatorio6 cualquier variale num)rica.
=omentarios
!i $ slo si ambas epresiones se evalan como rue# el resultado es rue. !i cual"uiera
de las epresiones es Jalse# el resultado es Jalse. 0a siguiente tabla ilustra cmo se determina
el resultado:
0a tabla de verdad es:
presin1 presin% ;esultado
rue rue rue
rue Jalse Jalse
Jalse rue Jalse
Jalse Jalse Jalse
l operador 4nd eecuta tambin una comparacin bit a bit para identi&icar los bits de dos
epresiones numricas "ue tienen la misma posicin $ establece el bit correspondiente en el
resultado segn la siguiente tabla de decisin lgica:
0a tabla de verdad es :
@it @it ;esultado
C C C
C 1 C
1 C C
1 1 1
5/20/2018 Visual Basic
18/502
2.2 Or.
5e utiliza para ejecutar una disyuncin lgica sore dos e%presiones.
Sintaxis
resultado M epresin1 Or epresin%
La sinta%is del operador 2r consta de las siguientes partes+
Parte Descripcin
resultado 2ligatorio6 cualquier variale num)rica.
=omentarios
!i cual"uiera de las epresiones# o ambas# es rue# el resultado es rue. 0a siguiente
tabla indica cmo se determina el resultado:0a tabla de verdad es:
presin1 presin% ;esultado
rue rue rue
rue Jalse rue
Jalse rue rue
Jalse Jalse Jalse
l operador Or eecuta una comparacin bit a bit para identi&icar los bits de dos
epresiones numricas "ue tienen la misma posicin $ establece el bit correspondiente en el
resultado segn la siguiente tabla de decisin lgica:
0a tabla de verdad es:
@it1 @it% ;esultado
C C C
C 1 1
1 C 1
1 1 1
5/20/2018 Visual Basic
19/502
2.3 Not.
5e utiliza para ejecutar una negacin lgica sore una e%presin.
Sintaxis
resultado M 5ot epresin
La sinta%is del operador !ot consta de las siguientes partes+
Parte Descripcin
resultado 2ligatorio6 cualquier variale num)rica.
e%presin 2ligatorio6 cualquier e%presin.
=omentarios
0a siguiente tabla muestra cmo se determina el resultado:
presin ;esultadorae Jalse
Jalse rue
4dem's# el operador 5ot invierte los valores de bit de cual"uier variable $ establece el bit
correspondiente en resultado# de acuerdo con la siguiente tabla de decisin lgica:
0a tabla de verdad es:
@it1 ;esultado
C 1
1 C
2.4 Xor.
5e utiliza para realizar una e%clusin lgica entre dos e%presiones.
Sintaxis
5/20/2018 Visual Basic
20/502
resultado MV epresin1 Wor epresin%
La sinta%is del operador 3or consta de las siguientes partes+
Parte Descripcin
resultado 2ligatorio6 cualquier variale num)rica.
=omentarios
!i una $ slo una de las epresiones es rue# el resultado es rue. !in embargo# si
cual"uiera de las epresiones es 5ull# el resultado es tambin 5ull. =uando ninguna de las
epresiones es 5ull# el resultado se determina de acuerdo con la siguiente tabla:
0a tabla de verdad es:
presin1 presin% ;esultado
rue rue Jalse
rue Jalse rue
Jalse rue rue
Jalse Jalse Jalse
l operador Wor &unciona como operador lgico $ bit a bit. ecuta una comparacin bit a
bit para identi&icar los bits de dos epresiones utili-ando lgica de O eclusivo para obtener el
resultado# segn la siguiente tabla de decisin lgica:
0a tabla de verdad es:
@it1 @it% ;esultado
C C C
C 1 1
1 C 11 1 C
2.5 Imp.
5e utiliza para efectuar una implicacin lgica de dos e%presiones.
Sintaxis
resultado M epresin1 Imp epresin%
5/20/2018 Visual Basic
21/502
La sinta%is del operador mp consta de las siguientes partes+
Parte Descripcin
resultado 2ligatorio6 cualquier variale num)rica.
=omentarios
0a siguiente tabla ilustra cmo se determina el resultado:
0a tabla de verdad es:
presin1 presin% ;esultado
rue rue rue
rue Jalse Jalse
Jalse rue rue
Jalse Jalse rue
l operador Imp eecuta una comparacin bit a bit para identi&icar los bits de dos
epresiones numricas "ue tienen la misma posicin $ establece el bit correspondiente en el
resultado segn la siguiente tabla de decisin lgica:0a tabla de verdad es:
@it1 @it% ;esultado
C C 1
C 1 1
1 C C
1 1 1
2.6 E!.
5e utiliza para efectuar una equivalencia lgica de dos e%presiones.
Sintaxis
resultado M epresin1 "v epresin%
La sinta%is del operador $qv consta de las siguientes partes+
5/20/2018 Visual Basic
22/502
Parte Descripcin
resultado 2ligatorio6 cualquier variale num)rica.
=omentarios
!i cual"uiera de las epresiones es de tipo 5ull# el resultado es tambin 5ull. !i ninguna
de las epresiones es 5ull# el resultado se determina segn la siguiente tabla:
0a tabla de verdad es:
presin1 presin% ;esultado
rue rue rue
rue Jalse Jalse
Jalse rue Jalse
Jalse Jalse rue
l operador "v eecuta una comparacin bit a bit para identi&icar los bits de dos
epresiones numricas "ue tienen la misma posicin $ establece el bit correspondiente en el
resultado segn la siguiente tabla de decisin lgica:
0a tabla de verdad es:
@it1 @it% ;esultadoC C 1
C 1 C
1 C C
1 1 1
3 )adenas* strings.
$l smolo utilizado 'aitualmente es el 7 y el 8, que no representa una
suma, sino la concatenacin o unin de dos variales alfanum)ricas,
creando una nueva con el contenido de amas.
4
'elacionales
9, 9:, ;9, ;, ;:, :.
5on los smolos que se usan en una comparacin para indicar como
'acerla, si - 'a de ser mayor que 1, etc..
5/20/2018 Visual Basic
32/502
n todo programa ha$ una parte del mismo "ue se repite# $
"ue si no se inscribe en el 'mbito de un procedimiento deber,a estar
escrito un sin &in de veces.
Por lo tanto en lugar de repetir el cdigo a lo largo del
programa lo "ue se hace es escribirlo en el interior de un
procedimiento $ llamar a la eecucin del mismo cada ve- "ue haga
&alta.
so &acilita la escritura del programa# la modi&icacin del
mismo $ su claridad.
Podemos ver en el eemplo lateral como podr,a ser el
organigrama de un programa cual"uiera# sencillo# pero v'lido. =omo
podemos ver el organigrama aun"ue claro es largo $ pesado de leer#
imag,nense eso con un programa de verdad# no ser,a pr'ctico# de
escribir ni de seguir.
!i nos &iamos en las acciones de se programa# podemos
observar "ue ha$ cuatro pasos.
=arga.
Sisuali-acin.
Proceso.
Sisuali-acin.
=omo podemos ver la visuali-acin se repite.
!in embargo podemos dividir ese programa en blo"ues# cada
blo"ue es un procedimiento.
5/20/2018 Visual Basic
33/502
L el programa principal "uedar,a como sigue:
=omo podemos observar# el procedimiento Sisuali-ar se
eecuta dos veces# pero esta escrito solo una ve-# lo "ue hacemos es
llamarlo en dos ocasiones.
4dem's es mucho m's sencillo seguir el programa as,# "ue con
todo el cdigo a la vista# $a "ue solo tenemos "ue acudir a leer
a"uellos procedimientos "ue nos interesen.
0os procedimientos pueden o no recibir datos para la eecucin
del mismo.
0os procedimientos pueden o no devolver datos# tras la eecucin del mismo.
Un procedimiento participa de la resolucin de la estructura de un programa#
&orma parte de la misma# $ con una correcta utili-acin de los mismos conseguiremos
un programa ordenado $ &'cil de modi&icar# a la ve- "ue &'cil de entender por terceros $
de modi&icar en un &uturo.
l uso de procedimientos debe ir acompa+ado de un uso ra-onable de las
variables.
>.>. Junciones.
5/20/2018 Visual Basic
34/502
Un procedimiento se escribe para resolver la
estructura de un programa# $ podr' o no devolver o recibir
datos.
Una &uncin es una parte de nuestro cdigo "ue
&ormar' parte de una epresin especiali-ada en reali-ar
algn tipo de operacin# c'lculo# comparacin# dibuo# ...
Por lo tanto una &uncin no suele utili-arse para
resolver la estructura de un programa# sino para "ue se
pueda meorar el mismo.
!i en un programa ha$ "ue veri&icar si un valor cumple una determinada
condicin $ si es cierto reali-ar una accin $ sino otra# lo correcto es "ue se cree una
&uncin $ se utilice como parte de la instruccin condicional.
=uando se eecuta la
&uncin# sta devolver' un valor#
en el eemplo supongamos "ue
devuelve cierto o &also en &uncin
de los valores.
n el programa nosotros
podremos utili-ar la &uncin dentrode nuestras epresiones# con lo
"ue se &acilita la escritura del
mismo $ se simpli&ica.
n el eemplo podemos ver como la &uncin esta dentro de la instruccin
condicional# $ el resultado de su eecucin har' "ue se eecute una u otra de las ramas
del programa.
n el eemplo con seudocdigo podemos observar como la &uncin se integra
como una epresin en el interior de la condicin# $ su resultado ser' el "ue provo"ue
la accin en el entonces o en el si no.
#i !unci$n(A,B) entonces
Acci$n
#i no
Acci$n
5/20/2018 Visual Basic
35/502
!in de condici$n"
n ste eemplo vemos un eemplo m's# en ste caso la &uncin recibir,a un valor
numrico# $ devolver,a cierto si el nmero es primo# $ &also si no lo es.
n caso de cumplirse se eecutar,a la accin de escribir "ue el nmero s, es
primo# en caso contrario se escribir,a en pantalla# "ue el nmero no es primo.
#i %u&ero'ri&o(%u&ero) entonces
Escribir El n&ero es ri&o ,%u&ero
#i no
Escribir Este n&ero no es ri&o, %u&ero
!in de condici$n"
Por lo tanto nosotros podemos crear las &unciones "ue necesitamos# $ estas se
integran como parte de la instruccin "ue escribimos# lo "ue proporciona claridad $
legibilidad al programa.
4l &in $ al cabo un programa bien escrito se convierte en un libro# $ debe de ser
&'cil poderlo leer.
>.D. =onclusiones.emos visto los datos $ las epresiones.
!e ha eplicado las estructuras de programacin#
!ecuencial
4lternativa
;epetitiva
n ste tema se ha visto# mu$ por encima# sin entrar a &ondo# clases# lo "ue son
los procedimientos $ las &unciones# los hemos nombrado $ deado caer su eistencia.
!i lo visto hasta ahora lo tienen asimilado# hemos dado un gran paso.
Unidad D. 0as clases (I)
D.1. Obetivos del tema.
5/20/2018 Visual Basic
36/502
emos visto los componentes de un programa# hemos ido nombr'ndolos de
dentro hacia &uera# es decir
*ato
Sariable
presin
Instruccin
structuras
Procedimientos $ &unciones.
5os "ueda ver el o un elemento "ue contiene a todos estos# "ue es la clase.
0a clase es el elemento estructural "ue aglutina todos los anteriores $ permite
"ue epresemos nuestros programas.
0a clase est' a su ve- utili-ada dentro del programa.
D.%. Introduccin.!i nuestro estilo de programacin no contempla# comparte# o lo "ue cada uno
desee# el uso de clases $ obetos# el escala&n acaba con los procedimientos $
&unciones# $ estos se utili-an directamente dentro del programa.
5i uno es malo# ni el otro es per&ecto# son sistemas# estilos $ &iloso&,as distintas#
pero no se puede negar "ue el uso de clases es positivo dentro de la programacin.n la actualidad el tipo de programacin "ue se reali-a es lo "ue denominamos#
P. O. O.# programacin orientada a obetos.
*icho de otra &orma# la materia eplicada en temas anteriores# se colocan en el
interior de lo "ue denominamos clases# con las "ue crearemos los obetos.
Un obeto es un elemento derivado de una clase.
0a clase es un elemento estructural en un programa "ue dispone de
Propiedades "ue al &in $ al cabo son datos# vistos anteriormente.
9todos "ue son procedimientos $ &unciones# en cu$o interior
tenemos las estructuras b'sicas de programacin vistos
en el tema cinco $ en el tema anterior.
ventos "ue se constru$en tambin mediante cdigo.
D.2. =lase.n programacin# un obeto es un ente "ue es capa- de reali-ar tareas $
reaccionar ante a"uello "ue tiene a su alrededor# ante los eventos "ue lo rodean# sea un
partido de &tbol# una pel,cula# una sensacin# $ al "ue dotamos de una serie de
caracter,sticas# alto# bao# grande pe"ue+o $ "ue se de&inen cuando creamos el obeto $
5/20/2018 Visual Basic
37/502
"ue podemos dear "ue "uien va$a a utili-arlo los pueda modi&icar# pero siempre bao
nuestro control# claro# para eso el obeto lo hemos creado nosotros.
=omo lo "ue no se hace en in&orm'tica es crear varias veces lo mismo# las clases
las escribimos una sola ve-# $ lo "ue se hace es crear algo as, como un molde con el
"ue luego vamos haciendo copias.
Para pro&esionali-ar la parra&ada de antes# al molde se le llama clase# $ a esa
clase le dotamos de una &isonom,a# caracter,stica# a los elementos "ue describen esa
&isonom,a# lo llamamos propiedades.
0as tareas "ue "ueramos "ue sea capa- de reali-ar las denominamos mtodos.
L a la capacidad de reaccionar a los est,mulos eteriores lo llamamos eventos.
D.8. Propiedades.Un eemplo mu$ cercano# el ser humano# si deseamos crear una clase "ue imite
al ser humano le podr,amos crear una serie de caracter,sticas# propiedades# como
!eo
4ltura
=olor del pelo
=olor de los oos
Por lo tanto las propiedades describen el obeto.
Podemos crear caracter,sticas internas# "ue no se podr'n utili-ar &uera del obeto#
$ otras "ue ser'n eternas $ "ue s, "ue se ver'n en el obeto $ podr'n ser modi&icadas
lo "ue permitir' crear obetos de distintos tipos.
stas caracter,sticas eternas son las "ue de verdad denominamos propiedades#
pues es posible "ue sean modi&icadas por "uien utili-a la clase# "uien de verdad genera
despus el obeto.
0as caracter,sticas internas# por llamarlas as,# son en realidad variables de la
clase# las propiedades tambin lo son# pero se ven por parte del usuario.
D.
5/20/2018 Visual Basic
38/502
=orrer
*e sta &orma# escribiendo los mtodos# es decir el lugar donde se escribe el
cdigo de nuestro programa# se le dota de capacidades eecutivas a la clase# las
capacidades "ue dispondr' el obeto "ue de ella se derive.
D.>. ventos.L para "ue sea capa- de reaccionar ante lo "ue tiene a su alrededor# le
dotaremos de sentidos# "ue ser,a la &orma de poder reaccionar a lo "ue ha$ a su
alrededor.
Sista
O,doOl&ato
Husto
acto
=on eso conseguimos "ue un obeto sea capa- de reaccionar a los actos "ue se
producen a su alrededor# $ nosotros generaremos los eventos en los cuales tengamos
inters.
!i no necesitamos saber si llueve o no# habr' evento sta0loviendo# etc..L podr,amos seguir ense+'ndole cosas# podr,amos seguir escribiendo mtodos $
creando propiedades "ue de&inan a una persona# en la misma clase# o creando una
nueva "ue herede las capacidades de la "ue $a eiste.
0ongitud del pelo.
4ncho de la cintura
4ncho del pecho
0ongitud de las piernas.
D.D. Polimor&ismo.Pero las personas no son todas iguales# $ cada una dispone de distintas
habilidades# por lo "ue podremos dotar de m's habilidades a sta clase# a sta
persona.
Pintar
*ibuar
!umar@ailar
5/20/2018 Visual Basic
39/502
*e esa &orma# si nos &iamos cambiando el color de los oos o del pelo# o del seo#
a partir de un mismo punto de partida# podemos crear distintos tipos de personas.
D.E. erencia.0o "ue no vamos a hacer nunca tampoco es escribir una parte de un programa
de nuevo# cuando $a lo hemos escrito anteriormente# por lo "ue lo "ue se va haciendo
es crear clases# moldes base "ue luego vamos enri"ueciendo a partir de las $a
eistentes# a este concepto de aprovechamiento de lo $a eistente lo denominamos
herencia.
*e esa &orma podemos crear una clase base denominada persona con las
caracter,sticas est'ndar# o un bebe# si "ueremos llamarlo as,# al "ue hemos de ir
ense+ando a hacer cosas.
l bebe solo lo de&inir,amos por eemplo con
!eo
4ltura
=olor pelo
=olor oos
=olor de la piel
0e ense+aremos solo a
ablar
0eer
scribir
4ndar
=orrer
L le dotaremos de la posibilidad de reaccionar ante
=alor
Jr,o
!eco
9oado
L despus crear,amos una nueva clase "ue heredara esas capacidades $ le
a+adir,amos otras nuevas.
5/20/2018 Visual Basic
40/502
*e esa &orma podr,amos entrenarlo para "ue &uera un gran cocinero.
0e potenciar,amos la posibilidad de percibir los olores $ los sabores.
9eorar,amos su habilidad en el maneo de las manos.
Podr,amos crear una clase "ue &uera un matem'tico# al cual le potenciar,amos
sus capacidades mentales para el c'lculo $ la lgica.
D.F. Ocultacin.Pero en el maneo de estas posibilidades nunca permitir,amos "ue el dise+ador
de la clase cocinero o matem'tico pudiera cambiar el color del pelo# o de los oos.
sta caracter,stica "ue permite proteger las caracter,sticas del bebe se denomina
ocultacin.
D.1C. 4plicacin.=on lo "ue hemos comentado# si es capa- de asumir# madurar# $ comprender lo
"ue ha le,do# el pasar de la &ase de abstraccin a la real le supondr' mu$ poco
es&uer-o# $a "ue los conceptos base de la P. O. O.# son los comentados# solo "ueda la
aplicacin.
Seamos un eemplo un tanto irreal.
*esarrollamos una clase "ue denominamos umano
Clase u&ano
'roiedad #e+o
'roiedad Altura
'roiedad aza
'roiedad Color-.os
'roiedad Color'elo
etodo Ca&inar
!in de &etodo
etodo ablar
!in de &etodo
etodo Leer
!in de &etodo
5/20/2018 Visual Basic
41/502
etodo Escribir
!in de &etodo
!in de Clase
=ada uno de esos mtodos# contendr' el cdigo adecuado para "ue se realice la
accin "ue tiene como misin.
Por eemplo el mtodo 0eer# podr,a ser
etodo Leer(%o&breLibro)
!in de &etodo
L recibir,a como par'metro el nombre de un libro# el cual habr,a "ue leer.
n el interior del mtodo podr,amos tener escrito algo como
etodo Leer(%o&breLibro)
AbrirLibro(%o&breLibro)
ientras 0a1a o.as
ientras 0a1a Lineas
ientras 0a1a alabras
Leer alabra
!in de &ientras
Ca&biar2eLinea
!in de &ientras
Ca&biarde'agina!in de &ientras
CerrarLibro
!in de &etodo
Pero podr,amos a+adir un par'metro "ue &uera leer en vo- alta# o podr,amos
a+adir una condicin "ue &uera leer si no estas cansado.
5/20/2018 Visual Basic
42/502
Por lo tanto podr,a "uedar
ientras 0a1a 'alabras
Leer 'alabra
#i 0a1 3ue leer en 4oz alta
u.er"ablar 'alabra
!in de condici$n
!in de &ientras
O podr,a ser tambin
ientras 0a1a 'alabras 5 %oEsto1Cansado
Leer 'alabra
!in de &ientras
O evidentemente todo unto.
ientras 0a1a 'alabras 1 %oEsto1Cansado
Leer 'alabra
#i 0a1 3ue leer en 4oz alta u.er"ablar 'alabra
!in de condici$n
!in de &ientras
5osto$=ansado ser,a una &uncin "ue podr,a anali-ar el estado an,mico del
obeto 9uer $ devolver =ierto o Jalso# de tal &orma# "ue si es cierto se sigue le$endo $
si no# se abandona la lectura.
4s, "ue podr,amos llegar a algo parecido a lo siguiente.
etodo Leer(%o&breLibro)
AbrirLibro(%o&breLibro)
ientras 0a1a o.as 5 %oEsto1Cansado
ientras 0a1a Lineas 5 %oEsto1Cansado
ientras 0a1a 'alabras 5 %oEsto1Cansado
5/20/2018 Visual Basic
43/502
Leer 'alabra
#i 0a1 3ue leer en 4oz alta
u.er"ablar 'alabra
!in de condici$n
!in de &ientras
Ca&biar2eLinea
!in de &ientras
Ca&biarde'agina
!in de &ientras
CerrarLibro
!in de &etodo
Una ve- "ue disponemos de la clase $a escrita# el siguiente paso es poderla
utili-ar.
so se reali-a $a dentro de nuestro programa.
l primer paso ser,a declarar un obeto del tipo de la =lase# recordemos "ue
cuando declaramos una variable# es por"ue va a almacenar un dato# ese dato tendr' un
tipo# $ la variable ha de concordar con ese tipo de dato.
=on los obetos ocurre lo mismo# si declaramos un obeto# es por"ue deseamos
"ue ese obeto realice una serie de acciones# el obeto es capa- de reali-ar esas
acciones por"ue la clase de la "ue se deriva# posee esas capacidades.
Por lo tanto ha$ "ue crear el obeto de la clase "ue nosotros sabemos "ue posee
esas caracter,sticas.
Un eemplo# desde un programa se pueden utili-ar las librer,as de O&&ice# $ se
puede declarar un obeto "ue llamemos oa $ "ue se crea con las mismas
caracter,sticas $ habilidades "ue puede tener cel# o se podr,a hacer tambin con
Xord# declaramos un obeto "ue llamamos *ocumento del tipo Xord# $ podr,amos
escribir un documento de Xord a partir del contenido de una base de datos# sin pulsar
una sola tecla# $ lo m's divertido# podr,amos ver como el documento se escribe solo en
pantalla.
4ncdotas a parte# un obeto es eso# un elemento en nuestro programa con las
capacidades de reali-ar las cosas de la clase de la cual deriva.
5/20/2018 Visual Basic
44/502
n el programa el primer paso ser,a asignar al obeto los valores de las
propiedades "ue de&inir'n al obeto.
u.er"#e+o =
u.er"Altura = 678
u.er"aza = Blanca
u.er"Color-.os = 9erde
u.er"Color'elo = %egro
0a siguiente &ase $a ser,a su utili-acin.
u.er"Leer
O
u.er"Escribir
Por lo "ue el programa podr,a "uedar
Inicio 'rogra&a
2eclarar u.er del tio u&ano
u.er"#e+o =
u.er"Altura = 678
u.er"aza = B
u.er"Color-.os = 9erde
u.er"Color'elo = %egro
u.er"Leer!in de rogra&a
=laro est' "ue esto es la m,nima epresin de lo "ue podr,a ser# pero solo
pretende ser eso# un eemplo.
D.11. =onclusiones.videntemente la aplicacin es m's complea# pero lo es# por los tecnicismos
necesarios en la escritura de los programas# no por"ue cambie lo epuesto
anteriormente.
5/20/2018 Visual Basic
45/502
!i los conceptos est'n claros# la comprensin de la tarea de programar se &acilita
en gran medida.
Programar es dominar una tcnica# la tcnica no cambia# lo "ue cambian son los
lenguaes.
Para llegar a la tcnica $ tener agilidad en el planteamiento $ comprensin de los
planteamientos de un programa# es necesaria la eperiencia# $ la eperiencia solo se
logra con la pr'ctica $ el trabao del d,a a d,a.
Unidad E. S@ !tudio 5et %CC< (I)
E.1. Obetivos del tema.=on el &in de empe-ar con un lenguae de programacin vamos a ver en este
tema una introduccin a Sisual @asic.
n cuanto al tema de la historia de Sb# Ybasic# @asic etc# en Internet ha$
in&ormacin su&iciente.
E.%. Introduccin.s un lenguae de programacin "ue actualmente respeta pr'cticamente todas
las caracter,sticas de la P. O. O..
4nteriormente la generacin de un programa eecutable con @asic generaba un
eecutable# actualmente genera un archivo intermedio "ue se eecuta posteriormente
por la m'"uina virtual de !tudio 5et.
sta caracter,stica# "ue ho$ incorporan otros lenguaes de programacin#
convierte a S@ en un lenguae portable en el momento "ue eista una m'"uina virtual
para otros sistema operativos distintos de Xindows.
E.2. =aracter,sticas.
s &'cil de utili-ar# igualmente para personas "ue est'n inici'ndose como paraepertos en la materia.
l entorno de dise+o para un entorno gr'&ico es mu$ cmodo $ &'cil de utili-ar.
s un lenguae orientado a obetos.
iste un amplio espectro de obetos en el mercado para poderse integrar en el
lenguae.
5o dispone de punteros.
E.8. 4dvertencias.
5/20/2018 Visual Basic
46/502
l problema de las ma$sculas de otros lenguaes a"u, no se da# e incluso el
editor de teto de S@ uni&ica el nombre de las variables cuando las escribes de otra
&orma.
E.
5/20/2018 Visual Basic
47/502
4$udas
=orrector sint'ctico
=ompilacin.
l entorno en si es mu$ amplio $ eplicarlo en su totalidad no es el motivo de sta
documentacin# vamos a abordar solamente la parte "ue nos interesa para sta &ase de
iniciacin a la programacin con ste lenguae.
E.D. *escarga.!eguir los pasos "ue se indican en la p'gina de 9icroso&t.
E.E. Iniciar.
Jinali-ada la descarga $ la instalacin# podemos empe-ar nuestro primerpro$ecto en S@.
n el escritorio de Xindows dispondremos de un icono# con el teto
"ue ha$amos deseado asignarle $ con el "ue accederemos a la aplicacin.
n &uncin de cmo ha$amos con&igurado en la instalacin nos aparecer' un tipo
de inicio u otro# el "ue sigue puede ser uno de ellos# pero tambin puede aparecer una
ventana con un enlace a las ltimas noticias sobre !tudio net $ con los ltimos
pro$ectos abiertos a la i-"uierda.
5/20/2018 Visual Basic
48/502
n esta opcin si nos &iamos podemos ver las pesta+as de una serie de
ventanas "ue posteriormente ser'n tiles en el desarrollo de nuestros programas.
mpe-ando de i-"uierda a derecha# la pesta+a de =uadro de herramientas "ue
nos visuali-ar' los obetos disponibles para el dise+o de los &ormularios de nuestros
programas.
4"u, vemos la pesta+a de la caa de
herramientas a la i-"uierda $ a la derecha $a
desplegada.
!e puede visuali-ar de varias &ormas# en
&uncin de las necesidades de dise+o del
&ormulario.
0a
ventana de
eplorador de
soluciones es la"ue permite ver
todos los
elementos "ue componen el pro$ecto actual#
dispone de varios estilos de visuali-acin.
0a ventana de propiedades nos
permite acceder a todas las propiedades de losobetos del &ormulario "ue tengamos
seleccionado en ese momento
4l seleccionar una propiedad en la
parte in&erior de la ventana aparece una pe"ue+a
le$enda de las caracter,sticas de dicha
propiedad.
5/20/2018 Visual Basic
49/502
E.F. =rear un nuevo pro$ecto.n visual cada aplicacin "ue creamos necesita de un directorio donde se
depositan todos los elementos "ue lo componen# como en otras aplicaciones#
=ada uno de estas aplicaciones se denominan pro$ectos o soluciones.
l archivo "ue arranca cada solucin posee la etensin .!05 $ esta en el
directorio "ue se crea para la aplicacin.
Para iniciar un pro$ecto nuevo seleccionaremos la opcin 4rchivo [ 5uevo
pro$ecto.# de la barra de herramientas.
n ese momento se pone en marcha un asistente# como no# $ nos pedir' el tipo
de pro$ecto "ue deseamos crear.
Para los eemplos "ue vamos a ir viendo seleccionaremos la opcin "ue vemos
en la imagen# Xindows [ 4plicacin de =onsola.
!on eercicios sencillos "ue no necesitan de la compleidad de un &ormulario# $
as, no nos distraemos de lo importante.
5/20/2018 Visual Basic
50/502
l nombre del pro$ecto# podemos cambiarlo por el nombre "ue deseemos# $ su
ubicacin ser' la "ue l tiene por de&ecto# podemos dearla o bien crear la nuestra
propia.
a$ "ue tener presente "ue cada pro$ecto se ubica
en un directorio# donde estar'n todos los archivos "ue se
creen para dicho pro$ecto.
4l pulsar 4ceptar# nos crea la estructura b'sica del
pro$ecto "ue hemos seleccionado# $ $a podemos empe-ar
a escribir nuestro primer programa.
sto es lo "ue veremos cuando &inali-a el asistente.
l cdigo "ue escribiremos lo ubicaremos dentro del 9ain.
9's adelante iremos meorando nuestras estructuras.
n ste punto podr,amos a+adir unas l,neas de cdigo:
5/20/2018 Visual Basic
51/502
2i& dato6, dato, resultado As Integer
dato6 = 8
dato = 68
resultado = dato6 : dato
#1ste&"Console";riteLine(
5/20/2018 Visual Basic
52/502
2i& dato6 As Integer
2i& dato As Integer
2i& resultado As Integer
dato6 = 8
dato = 68
resultado = dato6 : dato
#1ste&"Console";riteLine(e1()
End #ub
End odule
Pero solo es cuestin de estilo.
E.1C. structura de un programa [email protected] del lenguae "ue utilicemos para programar# todos los
programas tienen un punto de inicio# una &ase de eecucin $ una &inali-acin.
n S@ en modo consola# $ si se desea en modo gr'&ico tambin# la &ase de inicio
es el denominado 9ain del programa# desde donde empie-a la eecucin del mismo#
siguiendo las instrucciones "ue en l ha$amos escrito# como podemos ver en el eemplo
anterior.
=omentemos las l,neas de nuestro eemplo:
odule odule6
s el nombre del mdulo "ue en ste caso contiene el 9ain# $ "ue si deseamos
podemos cambiar de nombre# $ al &inal disponemos de un nd 9odule..
#ub ain()
s el punto de inicio de nuestro programa# $ podemos observar como al &inal
disponemos de un nd !ub.
5/20/2018 Visual Basic
53/502
2i& dato6 As Integer
2i& dato As Integer
2i& resultado As Integer
*eclaramos las tres variables del eemplo como enteras.
dato6 = 8
dato = 68
resultado = dato6 : dato
4signamos unos datos $ reali-amos la operacin de suma.
#1ste&"Console";riteLine(
5/20/2018 Visual Basic
54/502
!i pulsamos en la barra de
herramientas el s,mbolo del Pla$# #
o pulsamos J
5/20/2018 Visual Basic
55/502
2 = 2ato
End #elect
End #ub
'ublic #ub #u&ar()
2i& esultado As Integer
esultado = 26 : 2
#1ste&"Console";riteLine(e1()
End #ub
End Class
n el siguiente tema se eplica m's a &ondo la estructura de la clase.
E.12. ;enombrar una clase.=on modi&icar el nombre en el &uente del programa es su&iciente.
Pero eso no modi&ica todas
las apariciones de la clase en el
programa# para ello ha$ "ue utili-arlas opciones del men de edicin.
dicin [ ;eempla-o r'pido
L actuar como pide el
&ormulario "ue aparece en la
imagen.
E.18. liminar una clase delpro$ecto.
Podemos hacerlo en el eplorador de soluciones sin ningn problema
Unidad F. Procedimientos (I)
F.1. Obetivos del tema.
5/20/2018 Visual Basic
56/502
Sisto $ nombrado los elementos de un programa $ sus estructuras# as, como la
&orma de representar las soluciones# ahora hemos de pro&undi-ar sobre el uso de los
procedimientos# el paso de par'metros $ sus caracter,sticas.
0os veremos desde el punto de vista genrico# sin entrar en lenguaes en
concreto.
F.%. Introduccin.Un programa es una estructura m's o menos complea# en &uncin del tama+o
del mismo.
Pero el cdigo "ue lo compone no puede estar todo en el 9ain del mismo# ser,a
di&,cil de entender $ de modi&icar# adem's de mu$ largo# por lo tanto conviene trocear.
!i recordamos el eercicio del primer tema# ese es el camino# pe"ue+os tro-os de
programa# &'ciles de escribir $ de modi&icar.
F.2. AProcedimientos o &uncionesBn el peor de los casos# todo lo "ue se puede escribir en un procedimiento se
puede resolver tambin con una &uncin# o al revs# \tcnicamente]# en la realidad no
debe abordarse as,.
l procedimiento nos va a permitir resolver la estructura de un programa# cuando
nos dan los resultados del an'lisis de un problema# nos dan una estructura# $ esa
estructura se resuelve mediante el uso de procedimientos.
F.8. Procedimientos.!iempre hemos de procurar crear procedimientos "ue sean cortos.
!e ha de intentar seguir la pauta de "ue un procedimiento no supere en mucho la
capacidad de l,neas de una pantalla o de una hoa de papel# no por ningn re"uisito
5/20/2018 Visual Basic
57/502
tcnico# si no por comodidad nuestra# lo cual no impide en absoluto "ue cuando nos
interese lo superemos.
Un procedimiento debe de ser un espacio estanco# su &orma de comunicacin
con los datos "ue ha$ en el eterior debe ser los "ue &iguran en la l,nea de par'metros.=ual"uier otra
&orma de utili-acin#
tcnicamente puede ser
correcta# $ de hecho
habr' alguna ve- "ue
habr' "ue saltarse esa
norma# conseo# pero a
la larga se convierte en
problemas.
!i creamos procedimientos sin dependencias del programa en el "ue se ubican#
podemos cambiarlo de aplicacin para aprovecharlo sin necesidad de reescribirlo#
por"ue todos los datos "ue &iguran en su interior tienen como origen su l,nea de
par'metros# $ no eiste otra &orma de comunicacin. 4s, no pueden haber sorpresas.
Un procedimiento es un elemento de nuestro programa# este elemento puede
recibir o no datos $ devolver o no datos.
F.
5/20/2018 Visual Basic
58/502
l procedimiento %$ Bson conocidos por el programa principal# %conoce a B$
Bconoce a %# pero %no conoce a B1# ni B1conoce a %.
F.>. 4mbito de valide- de las variables.=on las variables sucede algo parecido# $ adem's es mu$ importante "ue se
usen adecuadamente# para evitar errores# aprovechar los recursos al m'imo# $
tambin para &acilitar el modi&icacin $ comprensin del programa.
0as variables de nivel de programa# pueden ser utili-adas por los procedimientos
en su interior# no es aconseable.
s conveniente utili-ar el paso de variables# m's "ue el uso de las globales# $a
"ue eso le da independencia al procedimiento.
5/20/2018 Visual Basic
59/502
F.D. Paso de variables a los procedimientos.l paso de variables a los procedimientos es el camino adecuado para su
correcta utili-acin.
Para ellos ha$ "ue seguir unas normas# "ue son de lo m's sencillas $
absolutamente lgicas.
!i nosotros dise+amos un procedimiento# ste tendr' unas necesidades de datos.
sos datos ser'n propios o eternos# los propios no ha$ problema# pero los
eternos hemos de &acilit'rselos# para ello ha$ unas normas.
l env,o $ recepcin han de reali-arse en el mismo orden $ con el mismo tipo de datos.
!i vemos el eemplo# vemos "ue ambas coinciden en el color# digamos "ue sea el tipo#
son del mismo tama+o# digamos "ue sea el dato "ue se env,a.
5/20/2018 Visual Basic
60/502
l siguiente eemplo vemos "ue no coinciden ni color# tipo# ni tama+o dato# ni el
nmero de par'metros "ue se env,an $ reciben.
l nombre no tiene por"ue coincidir# pensemos "ue el mismo procedimiento
puede utili-arse en varios programas# no tienen por"ue coincidir los nombres de las
variables por eso# si no ser,a un problema bastante serio.
4ctualmente ha$ lenguaes "ue permiten "ue ha$a variables de uso opcional en
la l,nea de par'metros.
Pero eso es una ecepcin.
4"u, podemos ver
como en el programa
principal se env,a dos
variables a =40=U04# en
este procedimiento se
reciben en el mismo orden $con el mismo tipo.
5/20/2018 Visual Basic
61/502
4 su ve- luego desde =40=U04 se llama a ;P;!54 $ se le env,a tres
variables "ue se recogen igual.
F.E. Jormas de paso de datos a los procedimientos.a$ dos &ormas de pasar
los datos a los procedimientos
$ &unciones# por valor $ por
re&erencia.
l paso de datos por
re&erencia# es lo "ue nospermite "ue un procedimiento
sea independiente del
programa "ue lo llama.
*e esa &orma podemos
conseguir "ue un
procedimiento trabae con los
datos de otro procedimiento o
programa sin necesidad de "ue
las variables se llamen igual.
l paso de datos por re&erencia a un procedimiento# nos da la posibilidad de
poder modi&icar el valor de una variable pasada en el procedimiento# $ "ue ste sea
devuelto al programa principal o al procedimiento "ue lo ha llamado.
=uando se pasa un dato
por valor el dato es recibido por
el procedimiento pero ste dato
si se modi&ica en su interior no se
recibe modi&icado en el lugar en
el "ue se llama al procedimiento.
l paso de datos por valor
a un procedimiento# nos da la
posibilidad de poder enviar el
dato de una variable a un
procedimiento# $ "ue la variable
5/20/2018 Visual Basic
62/502
no pueda ser modi&icada en su contenido al &inali-ar la eecucin del procedimiento $
devolverse el control al programa principal o al procedimiento "ue lo ha llamado.
F.F. Uso de variables en los procedimientos.l uso de variables en los procedimientos $ &unciones no re"uiere de ningn
re"uisito "ue se distinga del "ue se haga en el programa principal# ni por nombres# ni
por ningn otro apartado "ue no sea lo "ue ha se ha epuesto en cuanto a tipos# 'mbito$ env,o.
F.1C. Pblicos o privados.5o estamos hablando de empresas# si no de los procedimientos.
0os procedimientos pueden ser pblicos o privados# depender' del 'mbito en el
cual deseamos "ue sean utili-ados.
=uando el procedimiento se desea utili-ar solo en el programa actual# $ "ue no
sea llamado desde otro programa# se declaran como privados# 6Private7.
=uando el procedimiento deseamos "ue sea algo de utili-acin genrica desde
cual"uier punto de la aplicacin entonces lo declaramos como pblico# 6Public7.
5ormalmente los procedimientos pblicos suelen agruparse en mdulos &uera del
programa# $ agruparlos por temas# lo cual permite tener el cdigo ordenado $ &'cilmente
accesible.
=uando desarrollamos una clase# el procedimiento o &uncin "ue se declara
como pblico# suele ser# se convierte en un mtodo "ue el usuario puede utili-ar en su
obeto.
Unidad 1C. Primer programa en S@# procedimientos (I)
1C.1. Obetivos del tema.Sisto como se inicia en S@ un programa# veamos ahora como resolver un
eercicio# bas'ndonos en el uso de procedimientos.
1C.%. Introduccin.
5/20/2018 Visual Basic
63/502
4 la hora de programar# podemos optar por varias soluciones# programacin
cl'sica o con obetos.
4ctualmente lo adecuado es utili-ar obetos# por lo tanto deber,amos elegir ese
camino# pero es una decisin personal e intrans&erible.
!i nos aclaramos meor con procedimientos $ &unciones# sin pro&undi-ar en
clases# podemos plantearnos las clases como un segundo nivel# al "ue intentar llegar
despus.
Pero el camino es el de empe-ar por los procedimientos# $a "ue como se ha
comentado# un mtodo es un procedimiento o una &uncin.
1C.2. Primer eercicio.omemos como punto de partida el del eemplo del tema anterior# creemos un
pro$ecto del tipo consola $ dmosle un nombre.
4rchivo [ 5uevo pro$ecto# de la barra de herramientas.
l nombre del pro$ecto# podemos cambiarlo por el nombre "ue deseemos# $ su
ubicacin ser' la "ue l tiene por de&ecto# podemos dearla o bien crear la nuestra
propia.
5/20/2018 Visual Basic
64/502
4parecer' la ventana vac,a a la "ue a+adimos el cdigo.
Por lo "ue nuestro programa "uedar,a:
odule odule6
#ub ain()
2i& dato6 As Integer
2i& dato As Integer
2i& resultado As Integer
dato6 = 8
dato = 68
resultado = dato6 : dato
#1ste&"Console";riteLine(e1()
End #ubEnd odule
al cual lo vemos &unciona# $ el
eercicio "uedar,a resuelto# pero vamos
un poco m's all'.
sta es una solucin# pero as, no
se puede hacer un programa# un programa es una estructura mu$ complea# o puedellegar a serlo# $ para eso hace &alta una estructura "ue sea resistente $ e&iciente.
4pli"uemos lo "ue hemos visto de los procedimientos.
1C.8. Par'metros en los procedimientos.l nombre "ue se le da a la l,nea de entrada en un procedimiento es de
par'metros# l,nea de entrada# etc?
5/20/2018 Visual Basic
65/502
mpecemos por pasar par'metros al procedimiento# por lo "ue en la l,nea de
par'metros tendr' "ue aparecer las dos variables.
0as variables tendr'n "ue ir declaradas con el tipo "ue les corresponde.
'ri4ate #ub 'rocedi&ento(B19al 26 As Integer, B19al
2 As Integer)
2i& resultado As Integer
resultado = 26 : 2
#1ste&"Console";riteLine(e1()
End #ub
4l procedimiento despus ha$ "ue llamarlo para "ue se eecute desde el
programa principal# $ por lo tanto tambin tiene "ue enviarse las variables "ue se
supone tiene "ue recibir en la l,nea de entrada al mismo.
'rocedi&iento(dato6,dato)
n el programa principal# dichas variables deber'n estar declaradas para poderse
utili-ar.
2i& dato6 As Integer
2i& dato As Integer
4hora veamos la solucin completa con los cambios.
odule odule6
'ri4ate #ub 'rocedi&iento(B19al 26 As Integer, B19al
2 As Integer)
2i& resultado As Integer
resultado = 26 : 2
5/20/2018 Visual Basic
66/502
#1ste&"Console";riteLine(
5/20/2018 Visual Basic
67/502
else
dat6 =
end i
a$ otra instruccin alternativa "ue es !elect =ase# "ue mucho m's estructurada
$ m's potente en cuanto a sencille- de posibilidades de creacin de estructuras.
4"u, tenemos un eemplo con los posibles valores "ue nos interese de W# pero
ha$ un sin &in de posibilidades en cuanto a posibles epresiones para evaluar.
#elect case F
case 6
Instrucci$nG
Instrucci$nG
case
Instrucci$nG
Instrucci$nG
Case else Console"?riteline(
5/20/2018 Visual Basic
68/502
"" / ""
case 6H no&bre&es =
5/20/2018 Visual Basic
69/502
+ =
end i
else
+ =
end i
2 Estructuras re$etiti,as.
=omo mencionamos en su momento# disponemos de dos tipos de bucles# el de
tipo ;epite $ el de tipo 9ientras# vamos a ver dichas instrucciones.
l bucle repite es una estructura en la "ue siempre se eecutar' un paso en el
ciclo del bucle# dado "ue no eiste ningn impedimento "ue impida la entrada en el
mismo.
l control de la estructura est' al &inal del mismo.
!i observamos la imagen podemos observar como el s,mbolo
en &orma de rombo# "ue es el "ue indica el control del bucle est'
situado al &inal de la estructura# $ al principio solo ha$ instrucciones.
0a &lecha indica al punto del programa en el cual se inicia la
estructura o en el "ue est' la primera instruccin del bucle.
!i observamos las &lechas podemos observar como la ltima
instruccin del bucle es la encargada de anali-ar la situacin en ese
momento# para volver a iniciar una ve- m's el ciclo o seguir hacia la
siguiente instruccin# $a &uera del bucle.
!u sintais es la siguiente.
do
instrucci$n
""" / """
instrucci$n
Loo Kntil (e+resi$n de condici$n)
5/20/2018 Visual Basic
70/502
!in embargo si observamos la imagen del bucle mientras# podemos observar
como a di&erencia del bucle repite# la instruccin de control est' situada al inicio del
mismo.
sto implica "ue si al llegar al inicio del bucle# la condicin "ue epresamos en
ese momento no se cumple# el bucle no se eecutar'# no entraremos en el mismo# o si
lo "ueremos ver as,# el bucle est' protegido en su eecucin.
!i observamos las &lechas podemos observar como al acabar la ltima instruccin
del bucle se retorna al inicio del mismo# donde est' la instruccin de control# en ese
momento se anali-a la situacin $ se vuelve a eecutar una ve- m's el ciclo# o se
abandona el mismo# siguiendo a la siguiente instruccin.
!u sintais es la siguiente.
;0ile e+resi$n de condici$n
instrucci$n
""" / """
instrucci$n
End ;0ile
a$ una tercera opcin de bucle "ue es el Jor.
ste bucle se eecuta para un valor inicial# hasta un valor &inal# con un incremento
determinado# no dea de ser una variacin de un bucle mientras.
!or F = 8 to 8
instrucci$n
""" / """
instrucci$n%e+t
0o "ue con un bucle mientras# e"uivale a:
inicializaci$nG
;0ile F D8
instrucci$n
""" / """
5/20/2018 Visual Basic
71/502
instrucci$n
incre&ento
End ;0ile
iste la instruccin eit &or# eit do# dentro de los bucles# pero "ui-'s sea poco
did'ctico $ no sea mu$ adecuado su utili-acin en una primera &ase del lenguae# al
igual "ue el uso del &or# hasta "ue no se ha$a avan-ado m's en el dominio del mismo.
n los bucles# sean del tipo "ue sean# $ se utilicen para lo "ue sea# siempre ha$
"ue tener presente el valor de partida# el valor &inal# $ el momento en el "ue se reali-a el
incremento del contador# si es "ue se usa# o de la instruccin "ue provo"ue la
progresin en el mismo.
Por eemplo en la visuali-acin de los nmeros del C al F# utili-aremos una
variable del tipo entero.
0e daremos un valor inicial de cero# en el bucle la primera instruccin ser'
visuali-ar# $ la condicin del bucle ser' mientras "ue sea menor "ue die-.
l resultado ser' correcto.
odule odule6
#ub ain
2i& + as Integer = 8 ?0ile + 68
Console";riteline(+)
+ = + : 6
End ;0ile
End #ub
End odule
Pero si alteramos el orden de las instrucciones# el valor cero inicial# $a no ser'v'lido# pues el primer valor "ue se visuali-ar' ser' uno# $ perdemos la visuali-acin del
cero. 4dem's la condicin &inal tampoco ser' v'lida# pues acabaremos en die-# no en
nueve# "ue es de lo "ue se trata.
Prubelo.
Por lo tanto ha$ "ue tener siempre presente# el punto de partida# los valores
intermedios# el valor de la progresin# en "ue momento# $ cual es el ltimo valor "ue
debe procesarse en el bucle.
5/20/2018 Visual Basic
72/502
eniendo eso presente no debe haber nunca problemas en el maneo de los
bucles.
3 Estructuras secuenciales.
Sistas las dos anteriores# una estructura secuencial no es m's "ue una eecucin
lineal de un nmero indeterminado de instrucciones# sin "ue medie una estructura
alternativa o repetitiva# podr,a ser como eemplo el siguiente.
instrucci$n
instrucci$n
instrucci$n
=omo eemplo podr,amos poner:
Console"?riteln(+) // 9isualizar
datos or antalla
+ = + : 6 // Incre&ento
de un contador
s = s : + // Acu&ulador
1C.>. =onclusiones.emos visto como se inicia un programa en S@# las distintas estructuras "ue se
utili-an en programacin# como se escriben $ su uso dentro de los procedimientos# &alta
ver las &unciones.
emos de tener presente "ue en lo "ue podemos denominar programa principal#
"ue en muchas ocasiones es algo &icticio# o no mu$ primo a la realidad# no se escribe
casi cdigo# si no llamadas a procedimientos# o declaracin $ eecucin de los obetos
"ue se han declarado# $ donde realmente se escriben los programas es en losprocedimientos# $ &unciones "ue se convierten en mtodos en las clases.
Unidad 11. Junciones (I)
11.1. Obetivos del tema.Sisto $ nombrado los elementos de un programa $ sus estructuras# as, como la
&orma de representar las soluciones $ el uso de procedimientos# ahora hemos de
pro&undi-ar sobre el uso de las &unciones# el paso de par'metros $ sus caracter,sticas.
5/20/2018 Visual Basic
73/502
0as veremos desde el punto de vista genrico# sin entrar en lenguaes en
concreto.
11.%. Introduccin.Un programa es una estructura m's o menos complea# en &uncin del tama+o
del mismo.
Pero el cdigo "ue lo compone no puede estar todo en el 9ain del mismo# ser,a
di&,cil de entender $ de modi&icar# adem's de mu$ largo# por lo tanto conviene trocear.
!i recordamos el eercicio del primer tema# ese es el camino# pe"ue+os 6tro-os7
de programa# &'ciles de escribir $ de modi&icar.
L la solucin era el dividir el programa $ crear procedimientos.
4hora vamos a ver las &unciones# pero las &unciones a pesar de "ue en su interior
pueden albergar el mismo tipo de estructuras "ue un procedimiento# tienen un &indistinto dentro de un programa.
11.2. =reacin.a$ una m'ima "ue s, podr,a servir# $ es "ue en el momento en "ue en el
programa aparece cdigo repetido# $a podemos empe-ar a pensar en la creacin de
una &uncin o un procedimiento# segn corresponda.
ambin ha$ "ue tener en cuenta "ue la llamada a una &uncin o un
procedimiento consume recursos $ tiempo de eecucin# pero en la actualidad se piensa
poco en esos par'metros.
;esolver de &orma recursiva el &actorial de un nmero es 6bonito7# pero A$ si el
nmero es algo grandeB
=on un procedimiento resuelvo el programa $ vo$ creando la estructura del
mismo.
Una &uncin es un 6tro-o7 de cdigo especiali-ado en hacer algo en concreto# por
eemplo# el eercicio del 'rea de un triangulo o de una circun&erencia# se resolvi
mediante un procedimiento# pero su solucin correcta es la de una &uncin# Apor "uB#
pues normalmente el 'rea del triangulo es un dato "ue vo$ a calcular $ "ue puede
aparecer hasta en una epresin habitualmente.
!i utili-o procedimientos# la solucin puede ser algo as,:
Altura =
Base = 68
Area@riangulo(Base,Altura,Area)
Escribe El rea del triangulo es , Area
5/20/2018 Visual Basic
74/502
sta es la solucin con un procedimiento# eecutamos el procedimiento $ nos
devuelve un dato llamado 4rea# "ue lo usamos en el teto de in&orme al usuario.
Escribe El rea del triangulo es ,
Area@riangulo(Base,Altura)
=omo
podemos ver
con una
&uncin es
mucho m's
6elegante7 el
cdigo
resultante.
A=uando
escribir una &uncin o un procedimientoB# en el eemplo podemos ver un criterio.
Un procedimiento es una l,nea de mi programa# lo llamo $ se eecuta# resuelvo el
problema estructural del programa con ellos.
Una &uncin &orma parte de una instruccin# una &uncin siempre devuelve undato# un procedimiento no tiene por"ue hacerlo.
n el caso de una &uncin no nos sirve el criterio de "ue un procedimiento cre-ca
en demas,a# para crear una &uncin# ha$ una di&erencia de base entre un procedimiento
$ una &uncin# $ es "ue un procedimiento puede &ormar# o &orma parte# de la resolucin
lgica de un programa# parte de su estructura# pero una &uncin es una parte de nuestro
programa "ue est' especiali-ado en algo mu$ concreto $ "ue solo sabe resolver ese
tema# $ no &ormar' parte de la estructura del programa# colabora en su solucin.
videntemente "ue s, convierte en m's legible un programa# el uso de una
&uncin# pero no es la &orma de resolver un programa# por supuesto "ue su uso es
necesario en programacin# pero ha$ "ue ver ese mati- entre ambas herramientas de
programacin.
Un procedimiento# un mtodo# cuando crece se puede dividir en varios
procedimientos# pero no en varias &unciones.
5/20/2018 Visual Basic
75/502
n el dise+o de una &uncin# ha$ "ue mantener el criterio# de "ue solo se utilice
las variables "ue se de&inan en la misma# $ las "ue se reciban en la l,nea de entrada#
pero de &orma todav,a mucho m's taativa# una &uncin# por naturale-a# es una parte de
cdigo mucho m's reutili-able# normalmente# "ue un procedimiento# por lo tanto debe
ser todav,a mucho m's aislado# autnomo.
*e todos modos# ser' la eperiencia la "ue nos ira marcando cuando usar el
procedimiento $ cuando la &uncin.
11.8. AJunciones o Procedimientos.Bn el peor de los casos# todo lo "ue se puede escribir en un procedimiento se
puede resolver tambin con una &uncin# o al revs# \tcnicamente]# en la realidad no
debe abordarse as,# por"ue en algunas ocasiones para hacerlo# ha$ "ue cometeralguna incorreccin.
Una &uncin devuelve siempre un nico dato# un procedimiento puede devolver
uno o varios# o ninguno# pero es "ue si se usan adecuadamente las &unciones# con un
nico dato es su&iciente.
11.
5/20/2018 Visual Basic
76/502
Por lo tanto tendremos tantos tipos de &unciones como tipos de datos disponga el
lenguae "ue estamos utili-ando.
11.>. ^mbito de las &unciones.l 'mbito de una &uncin va ligado al punto en el cual se utili-a $ como se
declara# igual "ue con los procedimientos.
Pueden ser pblicas o privadas# $ pueden declararse en el programa actual o en
un mdulo disponible para toda la aplicacin# pro$ecto.
11.D. Paso de variables a las &unciones.l paso de variables a las &unciones cumple los mismos re"uisitos "ue el de los
procedimientos.
Para ellos ha$ "ue seguir unas normas# "ue son de lo m's sencillas $
absolutamente lgicas.
!i nosotros dise+amos un procedimiento# ste tendr' unas necesidades de datos.
sos datos ser'n propios o eternos# los propios no ha$ problema# pero los
eternos hemos de &acilit'rselos# para ello ha$ unas normas.
l env,o $ recepcin han de reali-arse en el mismo orden $ con el mismo tipo de datos.
!i vemos el eemplo# vemos "ue ambas coinciden en el color# digamos "ue sea el tipo#
son del mismo tama+o# digamos "ue sea el dato "ue se env,a.
l siguiente eemplo vemos "ue no coinciden ni color# tipo# ni tama+o dato# ni el
nmero de par'metros "ue se env,an $ reciben.
5/20/2018 Visual Basic
77/502
l nombre no tiene por"ue coincidir# pensemos "ue el mismo procedimiento
puede utili-arse en varios programas# no tienen por"ue coincidir los nombres de las
variables por eso# si no ser,a un problema bastante serio.
4ctualmente ha$ lenguaes "ue permiten "ue ha$a variables de uso opcional en
la l,nea de par'metros.
Pero eso es una ecepcin.
11.E. Jormas de pasode datos a las
&unciones.a$ dos &ormas de pasarlos datos a los procedimientos
$ &unciones# por valor $ por
re&erencia.
5/20/2018 Visual Basic
78/502
l paso de datos por re&erencia# es lo "ue nos permite "ue un procedimiento sea
independiente del programa "ue lo llama.
*e esa &orma podemos conseguir "ue un procedimiento o una &uncin# trabae
con los datos de otro procedimiento o programa sin necesidad de "ue las variables se
llamen igual.
l paso de datos por re&erencia a una &uncin# nos da la posibilidad de poder
modi&icar el valor de una variable pasada en la &uncin# $ "ue ste sea devuelto al
programa principal o al procedimiento "ue lo ha llamado.
Otro apartado# es "ue por
la de&inicin intr,nseca de lo "ue
debe ser una &uncin# no sea
correcto reali-ar ese tipo de
actuaciones# paso por re&erencia
en una &uncin# $a "ue eso en
realidad me permitir,a devolver
no un dato# si no varios en la
misma# uno en la &uncin $ otros
en la l,nea de par'metros en las
variables recibidas# lo "ue
contradice la &iloso&,a de lo "ue
debe ser una &uncin.
Pero hemos de saberlo $ comprobar "ue el lenguae lo permite o no# $ de esa
&orma si llega el momento 6utili-arlo7.
=uando se pasa un dato por valor el dato es recibido por el procedimiento o
&uncin# pero ste dato si se modi&ica en su interior no se recibe modi&icado en el lugar
en el "ue se reali-a la llamada a la &uncin.
l paso de datos por valor a un procedimiento o &uncin# nos da la posibilidad depoder enviar el dato de una variable $ "ue la variable no pueda ser modi&icada en su
5/20/2018 Visual Basic
79/502
contenido al &inali-ar la eecucin del procedimiento o &uncin# $ devolverse el control al
programa principal o al procedimiento "ue lo ha llamado.
11.F. structura de una &uncin.4l igual "ue en un procedimiento# podemos
utili-ar todas las estructuras "ue conocemos.
Pero hemos de a+adir algo "ue en un
procedimiento "ui-'s no es tan riguroso.
a$ "ue asegurarse "ue los datos "ue
vamos a utili-ar son v'lidos# por lo tanto debemos
comprobar su valide- antes de entrar en lo "ue es
el cuerpo de la &uncin.Por otro lado en &uncin del lenguae
utili-ado# podremos utili-ar o no el nombre de la
&uncin en la misma varias veces.
4s, "ue lo m's sencillo es declarar una
variable temporal a la "ue le asignamos un valor por de&ecto $ "ue despus cuando
&inalice la eecucin de la &uncin asignaremos al nombre de la misma.
a$ "ue pensar "ue tanto una &uncin como un procedimiento son mini
programas# pero en el caso de una &uncin an m's.
sta es una &orma de plantear una &uncin# pero el momento $ el estilo de cada
uno es personal e intrans&erible# por lo "ue a partir de ah, cada cual puede ir creando su
estilo.
1%.1. Obetivos del tema.Samos a ver en este tema las &unciones en el lenguae Sisual @asic %CC
5/20/2018 Visual Basic
80/502
l siguiente nivel es la clase $ por ltimo el programa.
0os procedimientos $ las &unciones# dependiendo de la estructura del lenguae
utili-ado# $ del estilo de programacin individual de cada uno# est'n bien en mdulos
independientes# de &orma "ue son pblicos para toda la aplicacin# o de &orma privada
en el interior de un programa# o una clase.
n S@# las &unciones son &unciones $ podr'n o no pertenecer a una clase $ ser un
mtodo# se albergar' en el interior de una clase# haciendo re&erencia al mismo mediante
el nombre de la clase $ a continuacin el de la &uncin# mtodo# o si est' en el mismo
nivel# con utili-ar la &uncin es su&iciente# como vemos en el eemplo.
Console";riteline(!actorial de es .2. =digo en las Junciones# Procedimientos.Para desarrollar una clase es necesario escribir un 6pe"ue+o programa7# $ ese
pe"ue+o programa se compone de una parte pblica "ue son los mtodos.
stos mtodos# podemos decir "ue son el punto de inicio de una accin# una
accin "ue inicia el programa cuando reclama su presencia# es decir podr,amos decir"ue una clase tiene un sin &in de puntos de inicio# cada uno de los mtodos# adem's del
principal "ue es el constructor# en S@ new K si descartamos el cdigo de las
propiedades K# por lo tanto# como deseamos crear un cdigo sencillo# estructurado $
ordenado# es necesario "ue el cdigo en el mtodo sea breve.
Para ello el cdigo de un mtodo se compone# o se puede componer# de
llamadas a procedimientos $ &unciones "ue se llaman desde el mismo.
4dem's de esa &orma un procedimiento puede compartirse por varios mtodos#
lo "ue reduce el volumen de cdigo de la clase.4s, "ue# en el interior de la clase escribiremos todos los procedimientos $
&unciones "ue se necesiten para poder desarrollar todas las acciones "ue sean
necesarias en los mtodos.
=omo esos procedimientos $ &unciones se "uedan en eso# no en mtodos# se
declararan como privadas# los mtodos son pblicos.
1>.8. =digo en los 9todos.n los mtodos# por"ue los procedimientos no se activan solos# $ de alguna
manera han de activarse# $ eso se consigue mediante la eecucin ordenada del cdigo
"ue ha$ en cada uno de los mtodos.
emos dicho "ue cada mtodo es como un punto de inicio de un programa# pues
en ese punto es donde empie-a la accin# $ ah, es donde a medida "ue se van
eecutando las l,neas de cdigo# se van escribiendo las llamadas a cada procedimiento.
n el eemplo de clase "ue sigue# se ha creado un mtodo "ue visuali-a los
nmeros primos entre dos valores determinados.
'ublic Class E.e&lo
5/20/2018 Visual Basic
116/502
'ublic #ub %u&eros'ri&os(B19al 2esde As Integer,
B19al asta As Integer)
2i& + As Integer = 2esde
;0ile + = asta
#elect Case 'ri&os(+)
Case @rue
Console";riteLine(
5/20/2018 Visual Basic
117/502
n ella vemos como en el mtodo se llama a la &uncin "ue devolver' cierto o
&also en &uncin de "ue el nmero sea primo o no.
'ublic #ub %u&eros'ri&os(B19al 2esde As Integer,
B19al asta As Integer)
2i& + As Integer = 2esde
;0ile + = asta
#elect Case 'ri&os(+)
Case @rue
Console";riteLine(
5/20/2018 Visual Basic
118/502
#ub ain()
2i& -b.eto As E.e&lo = %e? E.e&lo
-b.eto"%u&eros'ri&os(68, 8)
End #ub
End odule
L su aclaracin ?
2i& -b.eto As E.e&lo = %e? E.e&lo
*eclaramos el obeto $ se instancia.
-b.eto"%u&eros'ri&os(68, 8)
L eecutamos el mtodo con el rango "ue deseamos visuali-ar.
5ada "ue nos pueda parecer etra+o.
l nico cambio est' en el eterior.
'ublic Class E.e&lo
Yue esta declarado dentro de una clase "ue se llama emplo.
L despus en el programa principal.
#ub ain()
2i& -b.eto As E.e&lo = %e? E.e&lo
-b.eto"%u&eros'ri&os(68, 8)
End #ub
1>.
5/20/2018 Visual Basic
119/502
Case @rue
Console";riteLine(
5/20/2018 Visual Basic
120/502
End !unction
L as, en nuestro programa podremos escribir:
#ub ain()
2i& -b.eto As E.e&lo = %e? E.e&lo
2i& %u&ero As Integer
%u&ero = CInt(Console"eadLine)
#elect Case -b.eto"'ri&os(%u&ero)
Case @rue
Console";riteLine(
5/20/2018 Visual Basic
121/502
Pero en realidad# tendr,amos "ue decir "ue el punto de partida es 5ew $ "ue se
eecuta cada ve- "ue se crea una instancia de la clase# $a "ue despus podr,amos
decir "ue la clase# el obeto# "ueda a la espera de los mtodos "ue sean eecutados.
4+adamos tambin "ue en el interior de los mtodos# procedimientos# &unciones#
lo "ue tenemos escrito son las estructuras de programacin "ue vimos al inicio de
curso.
structuras lineales.
structuras alternativas# condicionales
structuras repetitivas.
0os mtodos# son programas pe"ue+os.
Unidad 1D. =iclo de vida de una clase (I)
1D.1. Obetivos del tema.*esarrollar $ comprender las distintas &ases por las "ue pasa un obeto desde
"ue se iniciali-a hasta "ue se borra o se elimina del programa.
1D.%. Introduccin.!abemos como crear cdigo en nuestra clase# en las dos caras del mismo# como
control de los datos "ue se asignan a la misma# $ como parte de los mtodos de la
misma.
Pero tambin tenemos "ue saber "ue la vida de una clase pasa por distintas
etapas# conocindolas podremos dise+ar meor $ obtener el meor rendimiento de la
misma.
a$ "ue tener presente "ue cuando se crea un obeto a partir de la clase "ue
hemos escrito# ese obeto va a pasar por varias &ases.
Iniciali-acin
ecucin
Jinali-acin.
L esas &ases conviene recordarlas a la hora de la eplotacin de la misma# pues
habr' algunas tareas "ue nos interesen se desarrollen eclusivamente en ese instante#
$ no posteriormente.
5/20/2018 Visual Basic
122/502
1D.2. Iniciar la clase# crear una instancia.=uando se crea un obeto a partir de una clase# el primer paso es instanciar ese
obeto# con una u otra sintais# se dispone de un constructor# un mtodo especiali-ado#
"ue se eecu
Top Related