Visual Basic

download Visual Basic

of 502

Transcript of Visual Basic

  • 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