Vous êtes sur la page 1sur 73

Direccin general de educacin superior tecnolgica

Instituto Tecnolgico De Acapulco

Ingeniera En Sistemas Computacionales


Materia: Fundamentos de Ingeniera de Software
Horario: 15:00 17:00
Aula: 705
Trabajo de Investigacin
Profesor: Jimnez Vzquez Mario
Alumno: Carbajal Saturnino Juan Luis
No. Control: 12320686

ndice
Lenguajes Orientados a Eventos.............................................................................................. 4
JavaScript............................................................................................................................. 4
Requerimientos para su instalacin........................................................................................ 4
Caractersticas.................................................................................................................... 4
Ventajas y Desventajas........................................................................................................ 6
Tipos de datos.................................................................................................................... 7
Instrucciones de control....................................................................................................... 8
Manejo de archivos........................................................................................................... 13
Ejemplo........................................................................................................................... 16
Visual Basic 6...................................................................................................................... 17
Requerimientos para su instalacin...................................................................................... 17
Caractersticas.................................................................................................................. 19
Ventajas y Desventajas...................................................................................................... 21
Tipos de datos.................................................................................................................. 22
Instrucciones de control..................................................................................................... 23
Manejo de archivos........................................................................................................... 24
Ejemplo........................................................................................................................... 27
Visual C#............................................................................................................................ 29
Requerimientos para su instalacin...................................................................................... 30
Caractersticas.................................................................................................................. 30
Ventajas y Desventajas...................................................................................................... 32
Tipos de datos.................................................................................................................. 33
Instrucciones de control..................................................................................................... 34
Manejo de archivos........................................................................................................... 35
Ejemplo........................................................................................................................... 38
Visual C++........................................................................................................................... 41
Requerimientos para su instalacin...................................................................................... 42
Caractersticas.................................................................................................................. 42
Ventajas y Desventajas...................................................................................................... 42
Tipos de datos.................................................................................................................. 44
Instrucciones de control..................................................................................................... 44
2

Manejo de archivos........................................................................................................... 47
Ejemplo........................................................................................................................... 49
Visual Basic .NET................................................................................................................. 53
Requerimientos para su instalacin...................................................................................... 53
Caractersticas.................................................................................................................. 53
Ventajas y Desventajas...................................................................................................... 54
Tipos de datos.................................................................................................................. 55
Instrucciones de control..................................................................................................... 56
Manejo de archivos........................................................................................................... 58
Ejemplo........................................................................................................................... 61
Bibliografa.......................................................................................................................... 65

Lenguajes Orientados a Eventos


La programacin dirigida por eventos es un paradigma de programacin en el que el flujo del
programa est determinado por eventos o mensajes desde otros programas o hilos de ejecucin.
Las aplicaciones desarrolladas con programacin dirigida por eventos implementan un bucle
principal o main loop donde se ejecutan las dos secciones principales de la aplicacin: El selector de
eventos y el manejador de eventos.

JavaScript
JavaScript es un lenguaje muy dinmico que nos ofrece un montn de maneras de trabajar con l,
incluso combinarlas. A m la que me parece en la actualidad la mejor manera es usar un framework
MVC, MVR, MV?, como son Backbone, EmberJS o Mozart. Por otro lado si hablamos de una web o
una aplicacin muy pequea y sencilla, como por ejemplo webs de 3 o 4 pginas de informacin y
poco ms, considero interesante plantear simplemente el uso del JavaScript Orientado a Eventos sin
mucho ms.

Requerimientos para su instalacin


Tcnicamente, JavaScript es un lenguaje de programacin interpretado, por lo que no es necesario
compilar los programas para ejecutarlos. En otras palabras, los programas escritos con JavaScript se
pueden probar directamente en cualquier navegador sin necesidad de procesos intermedios. Por lo
que no necesita la instalacin de algn programa en especfico.

Caractersticas
Las siguientes caractersticas son comunes a todas las implementaciones que se ajustan al estndar
ECMAScript, a menos que especifique explcitamente en caso contrario.

Imperativo y estructurado
JavaScript es compatible con gran parte de la estructura de programacin de C (por ejemplo,
sentencias if, bucles for, sentencias switch, etc.). Con una salvedad, en parte: en C, el mbito de las
variables alcanza al bloque en el cual fueron definidas; sin embargo JavaScript no es compatible con
esto, puesto que el mbito de las variables es el de la funcin en la cual fueron declaradas. Esto
cambia con la versin de JavaScript 1.7, ya que aade compatibilidad con block scoping por medio de
la palabra clave let. Como en C, JavaScript hace distincin entre expresiones y sentencias. Una
diferencia sintctica con respecto a C es la insercin automtica de punto y coma, es decir, en
JavaScript los puntos y coma que finalizan una sentencia pueden ser omitidos.

Dinmico
Tipado dinmico
Como en la mayora de lenguajes de scripting, el tipo est asociado al valor, no a la variable. Por
ejemplo, una variable x en un momento dado puede estar ligada a un nmero y ms adelante,
religada a una cadena. JavaScript es compatible con varias formas de comprobar el tipo de un objeto,
incluyendo duck typing. Una forma de saberlo es por medio de la palabra clave typeof.

Objetual
JavaScript est formado casi en su totalidad por objetos. Los objetos en JavaScript son arrays
asociativos, mejorados con la inclusin de prototipos (ver ms adelante). Los nombres de las
propiedades de los objetos son claves de tipo cadena: obj.x = 10 y obj['x'] = 10 son equivalentes,
siendo la notacin con punto azcar sintctico. Las propiedades y sus valores pueden ser creados,
cambiados o eliminados en tiempo de ejecucin. La mayora de propiedades de un objeto (y aquellas
que son incluidas por la cadena de la herencia prototpica) pueden ser enumeradas a por medio de la
instruccin de bucle for... in . JavaScript tiene un pequeo nmero de objetos predefinidos como
son Function y Date .

Evaluacin en tiempo de ejecucin


JavaScript incluye la funcin eval que permite evaluar expresiones como expresadas como cadenas
en tiempo de ejecucin. Por ello se recomienda que eval sea utilizado con precaucin y que se opte
por utilizar la funcin JSON.parse() en la medida de lo posible, pues resulta mucho ms segura.

Funcional
Funciones de primera clase
A las funciones se les suele llamar ciudadanos de primera clase; son objetos en s mismos. Como tal,
poseen propiedades y mtodos, como .call() y .bind() . Una funcin anidada es una funcin definida
dentro de otra. Esta es creada cada vez que la funcin externa es invocada. Adems, cada funcin
creada forma una clausura; es el resultado de evaluar un mbito conteniendo en una o ms variables
dependientes de otro mbito externo, incluyendo constantes, variables locales y argumentos de la
funcin externa llamante. El resultado de la evaluacin de dicha clausura forma parte del estado
interno de cada objeto funcin, incluso despus de que la funcin exterior concluya su evaluacin.

Prototpico
Prototipos
JavaScript usa prototipos en vez de clases para el uso de herencia. Es posible llegar a emular
muchas de las caractersticas que proporcionan las clases en lenguajes orientados a objetos
tradicionales por medio de prototipos en JavaScript.

Funciones como constructores de objetos


Las funciones tambin se comportan como constructores. Prefijar una llamada a la funcin con la
palabra clave new crear una nueva instancia de un prototipo, que heredan propiedades y mtodos
del constructor (incluidas las propiedades del prototipo de Object ). ECMAScript 5 ofrece el
mtodo Object.create , permitiendo la creacin explcita de una instancia sin tener que heredar
automticamente del prototipo de Object (en entornos antiguos puede aparecer el prototipo del objeto
creado como null ). La propiedad prototype del constructor determina el objeto usado para el prototipo
interno de los nuevos objetos creados. Se pueden aadir nuevos mtodos modificando el prototipo
del objeto usado como constructor. Constructores predefinidos en JavaScript, como Array u Object ,
tambin tienen prototipos que pueden ser modificados. Aunque esto sea posible se considera una
mala prctica modificar el prototipo de Object ya que la mayora de los objetos en Javascript heredan
los mtodos y propiedades del objeto prototype, objetos los cuales pueden esperar que estos no
hayan sido modificados.

Ventajas y Desventajas
Las ventajas
JavaScript es una excelente solucin para poner en prctica la validacin de datos de un formulario
en el lado del cliente. Si un usuario omite escribir su nombre en un formulario, una funcin de
validacin en JavaScript puede desplegar en pantalla un mensaje popup para hacerle saber al
usuario acerca de la omisin. Este tipo de funcionalidades son ms ventajosas que tener una rutina
de validacin del lado del servidor para controlar el error, dado que el servidor en ste caso no tiene
que hacer ningn tipo procesamiento de informacin adicional. Una rutina de ASP o PHP podra ser
escrita para lograr la misma tarea pero un formulario desarrollado en JavaScript no permitira que la
informacin se enviase a menos que se complete correctamente el formulario.
Una de las reas en la que sobresale radicalmente JavaScript es en la creacin de efectos dinmicos
tales como imgenes dinmicas y presentaciones de diapositivas, donde su uso se ha convertido algo
comn hoy en da. Debido a que JavaScript se ejecuta dentro del navegador de los clientes, se puede
utilizar para cambiar el aspecto de la pantalla en el dispositivo de los usuarios despus que la pgina
ha sido enviada por el servidor. Esto le permite al desarrollador web crear efectos dinmicos muy
impresionantes mejorando as la experiencia que recibe un usuario momento de entrar a un sitio web.

Las desventajas
La seguridad sigue siendo el talon de aquiles de Javascript. Los fragmentos de cdigo de JavaScript
una vez aadidos a las pginas web en los servidores, estos son descargados y ejecutados en el
navegador del cliente permitiendo as que cierto cdigo malicioso pueda ser ejecutado en la mquina
del cliente con el objetivo de explotar alguna vulnerabilidad de seguridad conocida en una de las
aplicaciones, navegadores o el mismo sistema operativo. Es verdad que hoy da existen estndares
de seguridad que restringen la ejecucin de cdigo por parte de los navegadores, pero aun as, se
puede ejecutar cdigo que dae, robe o destruya informacin del lado del cliente.
6

Otra desventaja de JavaScript es que este tiende a introducir una cantidad enorme de fragmentos de
cdigo en nuestros sitios web. Por suerte, el problema de grandes fragmentos de cdigo JavaScript
se resuelve fcilmente mediante el almacenamiento del cdigo JavaScript dentro de archivos
separados del cdigo HTML con la extensin. *.Js, dejando una pgina web mucho ms limpia y
legible de cara al desarrollador.
Debido a la tendencia de JavaScript de acrecentar el cdigo de las pginas web, se hace necesario
organizar el cdigo JavaScript en archivos separados al cdigo HTML para que los motores de
bsqueda (Google) puedan descifrar fcilmente la calidad del contenido de la pgina web y esta
pueda ser indexada correctamente en los resultados de las bsquedas.

Tipos de datos
JavaScript permite trabajar con variables, como es habitual en los lenguajes de programacin.
Adems permite trabajar con objetos, un tipo de informacin ms compleja que una variable simple.
De forma general podramos referirnos a tipos de datos en JavaScript, y dentro de esos tipos de
datos tenemos dos grupos fundamentales: los tipos primitivos y los tipos objeto.
Los tipos de datos JavaScript se dividen en dos grupos: tipos primitivos y tipos objeto.
Los tipos primitivos incluyen: cadenas de texto (String), variables booleanas cuyo valor puede ser true
o false (Boolean) y nmeros (Number). Adems hay dos tipos primitivos especiales que
son Null y Undefined.

Instrucciones de control
La sentencia If evala una condicin, expresada entre parntesis ( ). Si esta se cumple, ejecuta el
bloque de instrucciones que tiene entre llaves { }.
if (condicin) {
bloque de instrucciones;
}

Tambin podemos indicar un bloque de instrucciones, con la palabra else, que se ejecutar si no se
cumple la instruccin.
if (condicin) {
bloque de instrucciones si se cumple;
} else {
bloque de instrucciones si nos e cumple;
}

Podemos poner varios else, con otras condiciones entre parntesis. Se irn evaluando todas las
condiciones hasta encontrar la primera cierta. Si una se cumple, se ejecutarn slo esas
instrucciones, aunque hubiesen otras condiciones ciertas. Si no se ha cumplido ninguna, se ejecutar
el ltimo else, si no tiene condicin.
if (condicin1) {
bloque de instrucciones si se cumple condicin1;
} else (condicin2) {
bloque de instrucciones si se cumple condicin2;
} else (condicin3) {
bloque de instrucciones si se cumple condicin3;
} else {
bloque de instrucciones si no se ha cumplido ninguna;
}

Por ejemplo:
if (nota >= 0 && nota < 5) {
return 'Suspenso';
} else (nota >= 5 && nota < 6) {
return 'Suficiente';

} else (nota >= 6 && nota < 7) {


return 'Bien';
} else (nota >= 7 && nota < 9) {
return 'Notable';
} else (nota >= 9 && nota <= 10) {
return 'Sobresaliente';
} else {
return 'La nota no es vlida. Tiene que estar entre 0 y 10';
}

Las sentencias If se pueden anidar, siempre que una quede completamente dentro de otra. Por
ejemplo:
if (condicin1) {
if (condicin2) {
si se cumple condicin 1 y condicin2;
} else {
si se cumple condicin 1 pero no condicin2;
}
} else {
si no se cumple condicin1
}

Cuando se emplea la sentencia If para asignar un valor a una variable, se suele utilizar la siguiente
estructura, ms compacta:
variable = (condicin) ? valor_si_se_cumple : valor_si_no;

Por ejemplo:
calificacion = (nota < 5) ? 'Suspenso' : 'Aprobado';

La sentencia SWITCH
De forma parecida al If se comporta la sentencia Switch. Se le asigna un valor o expresin, y se
compara con cada case. Ejecuta el cdigo de la primera coincidencia encontrada. Si no encuentra
ninguna, se ejecuta el cdigo de default.

switch(expresion) {
case valor1:
instrucciones si coincide;
break;
case valor2:
instrucciones si coincide;
break;
default:
instrucciones si no coincide ninguna;
}

Por ejemplo:
function paginaFlores(categoria){
switch(categoria) {
case "silvestres":
return "silvestres.html";
break;
case "ornamentales":
return "ornamentales.html";
break;
case "exticas":
return "exoticas.html";
break;
case "plantas":
return "palntas.html";
break;;
default:
alert('No existe esa categora');
return "index.html";
}
}

A la funcin anterior, se le pasa como parmetro el nombre de una categora, y busca en el Switch
una coincidencia con el parmetro para devolver la pgina de la categora. Si no encuentra ninguna
coincidencia, muestra un mensaje y devuelve la pgina de inicio.
10

El bucle WHILE
Los bucles son estructuras fundamentales en programacin, ya que permiten repetir una instruccin
un nmero determinado de veces, o hasta que se cumpla una determinada condicin (o deje de
cumplirse).
En bucle While, evala una condicin. Si se cumple, ejecuta su bloque de instrucciones, y vuelve a
evaluar la condicin. Si se cumple, vuelve a ejecutar las instrucciones, y as sucesivamente mientras
que la condicin se cumpla.
while (condicin) {
bloque de sentencias;
}

Por ejemplo, el siguiente bucle mostrara 5 mensajes. La variable i inicialmente vale 0. En cada vuelta
del bucle, se comprueba si es menor de 5. Si lo es, se incrementa en 1 en la primera instruccin
(recuerda que i++ equivale a i+=1, que equivale a i=i+1), se muestra el mensaje en la segunda, y
vuelve a comenzar el ciclo. Cuando i sea 5, mostrar el quinto mensaje, y en la siguiente
comprobacin, la condicin ser falsa.
var i = 0;
while (i < 5) {
i++;
alert('Mensaje nmero ' + i);
}

El bucle While se puede expresar al revs, para que primero ejecute las instruciones, y despus
evale la condicin. Esto asegura que por lo menos se ejecuten las instrucciones una vez, y se
repitan mientras se cumpla la condicin. Su sintaxis es:
do {
bloque de sentencias;
} while (condicin)

El bucle FOR
El bucle FOR se emplea normalmente para contar, para realizar una repeticin un nmero
determinado de veces.

11

Se define con un valor inicial para la variable que acta como contador, la condicin que se ha de
cumplir para que el bucle se repita, y la actualizacin de la variable (normalmente un incremento).
Estros tres parmetros, se separan por punto y coma (;).

for (valor_inicial; condicin; actualizacin) {


bloque de sentencias;
}

El orden de ejecucin sera: asignar el valor inicial, evaluar la condicin, si se cumple, ejecutar las
sentencias, actualizar la variable, evaluar la condcin, si se cumple ejecutar las sentencias, actualizar
la variable, etc...
El mismo ejemplo que hemos utilizado con el bucle While para mostrar 5 mensajes, lo podemos
expresar con un For como:
for (i=1; i<=5; i++) {
alert('Mensaje nmero ' + i);
}

Una variante del For es la estructura For... In, que nos permite recorrer los elementos de un array o
un objeto.
for (variable in objeto) {
bloque de sentencias;
}

Si lo utilizamos con un array, lo que har el bucle, es que para cada vuelta, variable tomar el valor de
un elemento del array, comenzando por el primero, y se repetir una vez para cada uno.
Por ejemplo:
function datosAlumno() {
alumno = new Array('Juan', 25, 8.5);
datos = 'Datos del alumno:';
for (dato in alumno) {
datos = datos + ' ' + dato;
}
return datos;
}

12

El bucle del ejemplo se repetir tres veces, una para cada elemento. La funcin devolver 'Datos del
alumno: Juan 25 8.5'.

Manejo de archivos
A continuacin se indican las interfaces que ofrece la especificacin para acceder a archivos desde
un sistema de archivos "local".
1.

File: representa un archivo individual que proporciona informacin de solo lectura (por
ejemplo, el nombre, el tamao del archivo, el tipo MIME y una referencia al control del archivo).

2.

FileList: representa una secuencia de conjunto de objetos File (tanto la secuencia <input
type="file" multiple> como arrastrar un directorio de archivos desde el escritorio se consideran
ejemplos de esta interfaz).

3.

Blob: permite fragmentar un archivo en intervalos de bytes.


Cuando se utiliza junto con las estructuras de datos anteriores, la interfaz deFileReader se puede
utilizar para leer un archivo de forma asncrona mediante el control de eventos de JavaScript. Por lo
tanto, se puede controlar el progreso de una lectura, detectar si se han producido errores y
determinar si ha finalizado una carga. El modelo de evento de XMLHttpRequest guarda muchas
semejanzas con las API.

Uso de entradas de formulario para seleccionar archivos


La forma ms sencilla de cargar un archivo es utilizar un elemento <input type="file"> estndar.
JavaScript devuelve la lista de objetos Fileseleccionados como una secuencia FileList. A
continuacin, se muestra un ejemplo en el que se utiliza el atributo "multiple" para permitir la
seleccin simultnea de varios archivos:

13

Uso de la accin de arrastrar y soltar para seleccionar archivos


Otra tcnica de carga de archivos consiste en arrastrar archivos nativos desde el escritorio y soltarlos
en el navegador. Podemos modificar ligeramente el ejemplo anterior para incluir esta tcnica.

Cmo leer archivos


14

Despus de obtener una referencia de File, crea instancias de un objetoFileReader para leer su
contenido en memoria. Cuando finaliza la carga, se activa el evento onload del lector y se puede
utilizar su atributo result para acceder a los datos del archivo.
A continuacin se indican las cuatro opciones de lectura asncrona de archivo que incluye FileReader.
FileReader.readAsBinaryString(Blob|File): la propiedad result contendr los datos del archivo/objeto
BLOB en forma de cadena binaria. Cada byte se representa con un nmero entero comprendido entre
0 y 0,255, ambos incluidos.
FileReader.readAsText(Blob|File, opt_encoding): la propiedad result contendr los datos del
archivo/objeto BLOB en forma de cadena de texto. De forma predeterminada, la cadena se decodifica
con el formato "UTF-8". Utiliza el parmetro de codificacin opcional para especificar un formato
diferente.
FileReader.readAsDataURL(Blob|File): la propiedad result contendr los datos del archivo/objeto
BLOB codificados como una URL de datos.
FileReader.readAsArrayBuffer(Blob|File): la propiedad result contendr los datos del archivo/objeto
BLOB como un objeto ArrayBuffer.
Una vez que se ha activado uno de estos mtodos de lectura en el objetoFileReader, se pueden
utilizar los eventos onloadstart, onprogress, onload, onabort, onerror y onloadend para realizar un
seguimiento de su progreso.
En el ejemplo que se muestra a continuacin, se excluyen las imgenes de los elementos
seleccionados por el usuario, se activa reader.readAsDataURL() en el archivo y se muestra una
miniatura estableciendo una URL de datos como valor del atributo "src".

15

Fragmentacin de archivos
En algunos casos, leer el archivo completo en la memoria no es la mejor opcin. Supongamos, por
ejemplo, que quieres crear una herramienta de subida de archivos asncrona. Para acelerar la subida,
se podra leer y enviar el archivo en diferentes fragmentos de intervalos de bytes. El componente del
servidor se encargara de reconstruir el contenido del archivo en el orden correcto.
Afortunadamente, la interfaz File es compatible con un mtodo de fragmentacin. El mtodo utiliza un
byte de inicio como primer argumento, un byte de finalizacin como segundo argumento y una
cadena de introduccin de contenido de opcin como tercer argumento. La semntica de este mtodo
ha cambiado recientemente, as que en este fragmento se incluyen prefijos del proveedor:

16

Ejemplo
El siguiente cdigo muestra varias caractersticas de JavaScript.

17

El siguiente ejemplo muestra la salida que debera ser mostrada en la ventana de un navegador.

Visual Basic 6
Visual Basic es un lenguaje de programacin visual, tambin llamado lenguaje de4ta. Generacin.
Esto quiere decir que un gran nmero de tareas se realizan sin escribir cdigo, simplemente con
operaciones grficas realizadas con el ratn sobre la pantalla.

Requerimientos para su instalacin


Este artculo describe los requisitos de instalacin mnimos necesarios para poder ejecutar cada
edicin de Microsoft Visual Basic 6.0.

REQUISITOS MNIMOS DEL SISTEMA


Edicin de aprendizaje

PC multimedia con un procesador 486DX/66 MHz o superior (procesador Pentium o superior


recomendado)

Microsoft Windows 95 o posterior sistema operativo o Windows NT versin 4.0 con Service
Pack 3 o posterior (se incluye el Service Pack 3)

16 MB de RAM para Windows 95; 24 MB para Windows NT 4.0

Microsoft Internet Explorer 4.01 Service Pack 1 (incluido)


18

Espacio en disco duro:

Instalacin tpica: 52 MB

Instalacin mxima: 65 MB

1. Unidad de CD-ROM
2. Monitor VGA o de mayor resolucin; Se recomienda Super VGA
3. Microsoft Mouse o dispositivo sealador compatible

Professional Edition

PC con procesador 486DX/66 MHz o superior (procesador Pentium o superior recomendado)

Microsoft Windows 95 o posterior sistema operativo o Windows NT versin 4.0 con Service
Pack 3 o posterior (se incluye el Service Pack 3)

16 MB de RAM para Windows 95 (se recomienda 32 MB); 24 MB para Windows NT 4.0 (se
recomienda 32 MB)

Microsoft Internet Explorer 4.01 Service Pack 1 (incluido)

Espacio en disco duro:

Instalacin tpica: 76 MB

Instalacin mxima: 94 MB
Puede requerirse espacio adicional en el disco duro para los siguientes productos:

Internet Explorer: 43 MB tpica, 59 MB mximo

MSDN: 57 MB tpica, 493 MB mximo

Windows NT Option Pack: 20 MB para Windows 95; 200 MB para Windows NT 4.0

Unidad de CD-ROM

Monitor VGA o de mayor resolucin; Se recomienda Super VGA

Microsoft Mouse o dispositivo sealador compatible

Enterprise Edition
19

PC con procesador Pentium; Pentium 90 o superior recomendado

Microsoft Windows 95 o posterior sistema operativo o Windows NT versin 4.0 con Service
Pack 3 o posterior (se incluye el Service Pack 3)

24 MB de RAM para Windows 95 (se recomienda 32 MB); 24 MB para Windows NT 4.0 (se
recomienda 32 MB)

Microsoft Internet Explorer 4.01 Service Pack 1 (incluido)

Espacio en disco duro:

Instalacin tpica: 116 MB

Instalacin mxima: 135 MB


Puede requerirse espacio adicional en el disco duro para los siguientes productos:

Internet Explorer: 43 MB tpica, 59 MB mximo

MSDN: 57 MB tpica, 493 MB mximo

Windows NT Option Pack: 20 MB para Windows 95; 200 MB para Windows NT 4.0

Ejecutar slo en Windows NT 4.0 de Microsoft SQL Server 6.5 y necesitan el siguiente espacio
adicional en disco duro: SQL Server: 80 MB tpica, 95MB mximo

Unidad de CD-ROM

Monitor VGA o de mayor resolucin; Se recomienda Super VGA

Microsoft Mouse o dispositivo sealador compatible

Caractersticas
Los compiladores de Visual Basic generan cdigo que requiere una o ms libreras de enlace
dinmico para que funcione, conocidas comnmente como DLL (sigla en ingls de dynamic-link
library ); en algunos casos reside en el archivo llamado MSVBVMxy.DLL (siglas de "MicroSoft Visual
Basic Virtual Machine x.y", donde x.y es la versin) y en otros en VBRUNXXX.DLL ("Visual Basic
Runtime X.XX"). Estas bibliotecas DLL proveen las funciones bsicas implementadas en el lenguaje,
conteniendo rutinas en cdigo ejecutable que son cargadas bajo demanda en tiempo de ejecucin.
Adems de las esenciales, existe un gran nmero de bibliotecas del tipo DLL con variedad de
funciones, tales como las que facilitan el acceso a la mayora de las funciones del sistema operativo o
las que proveen medios para la integracin con otras aplicaciones.

20

Dentro del mismo Entorno de desarrollo integrado (IDE) de Visual Basic se puede ejecutar el
programa que est desarrollndose, es decir en modo intrprete (en realidad pseudo-compila el
programa muy rpidamente y luego lo ejecuta, simulando la funcin de un intrprete puro). Desde ese
entorno tambin se puede generar el archivo en cdigo ejecutable (exe); ese programa as generado
en disco puede luego ser ejecutado sin requerir del ambiente de programacin (incluso en
modo stand alone), aunque s ser necesario que las libreras DLL requeridas por la aplicacin
desarrollada se encuentren tambin instaladas en el sistema para posibilitar su ejecucin.
El propio Visual Basic provee soporte para empaquetado y distribucin; es decir, permite generar
un mdulo instalador que contiene al programa ejecutable y las bibliotecas DLL necesarias para su
ejecucin. Con ese mdulo la aplicacin desarrollada se distribuye y puede ser instalada en cualquier
equipo (que tenga un sistema operativo compatible).
As como bibliotecas DLL, hay numerosas aplicaciones desarrolladas por terceros que permiten
disponer de variadas y mltiples funciones, incluso mejoras para el propio Visual Basic; las hay
tambin para el empaquetado y distribucin, y hasta para otorgar mayor funcionalidad al entorno de
programacin (IDE).
Entorno de desarrollo
Existe un nico entorno de desarrollo para Visual Basic, desarrollado por Microsoft: Microsoft Visual
Basic x.0, correspondientes a versiones desde la 2.0 hasta la 20.0, (con respectivas diferencias entre
versiones del lenguaje).
El entorno de desarrollo es muy similar al de otros lenguajes. Realizando una instalacin tpica del
producto, las caractersticas bsicas se presentan de la siguiente forma:
En la parte superior aparecen tres elementos, en este orden: la barra de ttulo donde figura el nombre
del proyecto en curso y su estado (diseo o ejecucin); la barra de men con 13 opciones
desplegables y una barra de herramientas; esta ltima se puede personalizar, posibilitando la
inclusin de prcticamente la totalidad de los comandos del IDE.
En la parte central, cubriendo la franja de mayor rea, se encuentra el espacio de trabajo. ste
incluye y muestra las ventanas del proyecto, las vistas del cdigo fuente de los mdulos, los objetos y
los controles que contienen las ventanas de la aplicacin y el panel de controles.
El panel de controles, que aunque es mvil normalmente est ubicado a la derecha, por defecto
cuenta con los siguientes controles:
Adems de los listados, se pueden agregar todo tipo de controles de terceros, y hay una gran
cantidad de ellos que se proveen con el propio Visual Basic 6.0. Los controles vienen embebidos
dentro de archivos con extensin OCX.
Las ventanas de proyecto, aunque mviles, se encuentran en el panel lateral derecho y contienen dos
vistas principales:
21

El Explorador de proyectos, que muestra todos los elementos que componen el proyecto o grupos
de proyectos (formularios, interfaz de controles, mdulos de cdigo, mdulos de clase, etc.)
El Panel de propiedades, donde se muestran todos los atributos de los objetos, controles,
formularios, informacin de mdulos clase, entre muchos otros.
La Ventana inmediato, por defecto se encuentra en la parte inferior, aunque puede no estar visible
(se presionan las teclas Ctrl+G, en ese caso, para mostrar la ventana). Esta ventana resulta una
herramienta muy til a la hora de depurar el programa o bien para realizar pruebas rpidas, ya que
permite imprimir mensajes de texto desde el cdigo y ejecutar sentencias y comandos simples
inmediatamente (slo sentencias que se puedan escribir en una sola lnea).

Ventajas y Desventajas
Ventajas

Posee una curva de aprendizaje muy rpida.

Integra el diseo e implementacin de formularios de Windows.

Permite usar con facilidad la plataforma de los sistemas Windows, dado que tiene acceso
prcticamente total a la API de Windows, incluidas libreras actuales.

Es uno de los lenguajes de uso ms extendido, por lo que resulta fcil encontrar informacin,
documentacin y fuentes para los proyectos.

Fcilmente extensible mediante libreras DLL y componentes ActiveX de otros lenguajes.

Posibilita aadir soporte para ejecucin de scripts, VBScript o JScript, en las aplicaciones
mediante Microsoft Script Control.

Tiene acceso a la API multimedia de DirectX (versiones 7 y 8). Tambin est disponible, de
forma no oficial, un componente para trabajar con OpenGL 1.1.

Existe una versin, VBA, integrada en las aplicaciones de Microsoft Office, tanto Windows
como Mac, que permite programar macros para extender y automatizar funcionalidades en
documentos, hojas de clculo y bases de datos (Access).

Si bien permite desarrollar grandes y complejas aplicaciones, tambin provee un entorno


adecuado para realizar pequeos prototipos rpidos.

Desventajas
Las crticas hechas en las ediciones de Visual Basic anteriores a VB.NET son variadas; se citan entre
ellas:
22

Problema de versionado asociado con varias libreras runtime DLL, conocido como DLL Hell

Soporte pobre para programacin orientada a objetos

Incapacidad para crear aplicaciones multihilo, sin tener que recurrir a llamadas de la API de
Windows.
Dependencia de complejas y frgiles entradas de registro COM
La capacidad de utilizar controles en un slo formulario es muy limitada en comparacin a
otras herramientas. DLL Hell DB, Libro Programando en Visual Basic,2002

Tipos de datos

23

Instrucciones de control

24

25

Manejo de archivos
Una parte muy importante al trabajar con programas es el guardar el trabajo realizado en un archivo
para su posterior recuperacin, edicin, etc.
Visual Basic 6.0 permite guardar los archivos en un disco. Los archivos podrn ser de tres tipos:

Secuenciales

De Acceso Aleatorio

Binarios

Los archivos secuenciales son aquellos en los que se tiene acceso comenzando desde el principio.
No se puede tener acceso a una parte sin haber pasado antes por las anteriores. Un ejemplo de este
tipo de archivo son los archivos de texto. Estn escritos en caracteres ASCII y se pueden leer con el
Block de Notas. Los archivos de Acceso Aleatorio graban los datos tal como estn escritos en la
memoria y no son legibles por el Block de Notas. Los datos se guardan en registros y se puede tener
acceso a cualquier registro directamente. Con este tipo de archivos se puede crear una base de datos
simple, sin embargo, tiene la limitacin de que los registros deben tener el mismo tamao. Los
archivos Binarios son iguales a los de Acceso Aleatorio con la diferencia de que el acceso no es por
registros sino por Bytes; es muy poco utilizado. Todos los archivos deben abrirse para trabajar con
ellos (y es aqu donde se define el tipo de archivo) y deben cerrarse luego de terminado el trabajo.

Archivos Secuenciales.
La sintaxis para abrir un archivo de tipo secuencial depender de lo que se desee hacer con l; si se
quiere leer o escribir. No se podr entonces leer un archivo abierto para escritura ni escribir en un
archivo abierto para lectura. Para abrir un archivo para lectura la sentencia ser la siguiente:
Open archivo For Input As #nFich
Donde archivo es una cadena de caracteres con la ruta y el nombre del archivo a abrir y nFich es un
nmero que identifica al fichero.
La sentencia para cerrar un archivo abierto, para cualquier tipo de archivo ser la misma:
Close #nFich
Si se escribe esta sentencia sin el argumento #nFich se cerrarn todos los archivos abiertos.
Lo siguiente es leer los caracteres de un archivo abierto y para ello se utilizan determinadas
funciones. La funcin Input lee determinada cantidad de caracteres, la cual tiene la siguiente sintaxis:
Input(caracteres,#nFich)
Donde caracteres es la cantidad de caracteres a leer. Una aclaracin con respecto a los caracteres.
Un salto de lnea est determinado por la sucesin de dos caracteres no imprimibles que en cdigo
ASCII tienen los cdigos 13 y 10, y la constante de Visual Basic para esta sucesin es vbCrLf; por
tanto, esta funcin tomar un salto de lnea como dos caracteres.

26

Si se quiere leer todo el contenido de un archivo se puede utilizar la funcin Input de la siguiente
forma:
Input(LOF(nFich),#nFich)
Otra funcin importante es la funcin Line Input, la cual lee toda una lnea (una lnea termina con un
salto de lnea, o sea, con vbCrLf). La sintaxis de esta funcin es:
Line Input #nFich, variable
Donde variable es una variable donde se almacenar la lnea leda.
Si se quiere leer todo un archivo utilizando esta funcin, la sentencia puede ser la siguiente:
While Not EOF(nFich)
Line Input #nFich, variable1
variable2=variable2 & variable1
Wend
Variable2 contendr todo el fichero al salir del bucle While. Tambin puede utilizarse en lugar de una
variable la propiedad Caption de una etiqueta o la propiedad Text de una caja de textp, por ejemplo.
Para escribir en un archivo secuencial se debe abrir el archivo para escritura y hay dos modos de
apertura; el primero es:
Open archivo For Output As #nFich
Este modo de apertura reemplaza con la nueva escritura toda la escritura anterior. La segunda forma
aade al final del archivo la nueva escritura, y la sentencia es:
Open archivo For Append As #nFich
Si el archivo existe se abre el archivo, si no existe se crea uno. Esto es vlido para ambos modos de
apertura y para los archivos de Acceso Aleatorio y Binario, pero si se intenta abrir un archivo que no
existe en modo de lectura (For Input) se generar un error en tiempo de ejecucin (Error 53).
Para escribir en archivos secuenciales se utiliza la instruccin Write, la cual separa los datos
mediante el carcter (,); su sintaxis es la siguiente:
Write #nFich, dato1; dato2; dato3...
Donde dato1, dato2, dato3... son datos o variables con los datos a escribir. Se puede leer luego el
fichero con la funcin Input.
Otra instruccin para la escritura en archivos es la instruccin Print, la cual tiene la siguiente sintaxis:
Print #nFich, Spc(n); texto

27

Donde Spc(n) es un argumento opcional que permite ingresar espacios antes de escribir y n el
nmero de espacios, texto es el texto que se desea escribir. Se puede leer normalmente con las
funciones Input y Line Input.

Archivos de Acceso Aleatorio.


Este tipo de archivos no son legibles por el Block de Notas, a diferencia de los secuenciales ya que
no contienen caracteres ASCII.
Se abren de la misma forma tanto para lectura como para escritura y si no existen se crean. La
sintaxis para la apertura de este tipo es:
Open archivo For Random As #nFich Len=tamao
Este modo de apertura tiene un argumento: Len. En l se especifica el tamao de cada registro. Un
registro consiste en una serie de datos los cuales se pueden almacenar en una variable y aqu se
puede aprovechar las estructuras o tipos definidos por el usuario para crear una base de datos.
Supngase una estructura declarada de la siguiente forma en un mdulo estndar:
Public Type persona
apellido as String*10
documento as Long
End Type
Cada registro almacenar una variable de tipo persona; una variable de este tipo ocupar 18 bytes
(4+10 bytes + 4 bytes), por tanto la sentencia sera:
Open archivo For Random As #nFich Len=18
Tambin puede emplearse alternativamente otra expresin. Supngase declarada la variable Gabriel
de tipo persona, la sentencia puede ser tambin:
Open archivo For Random As #nFich Len=Len(Gabriel)
Las funciones para leer y escribir en este tipo de archivos son las funciones Get y Put.
La funcin Get lee un registro y guarda lo ledo en una variable. La sintaxis de esta funcin es la
siguiente:
Get #nFich, registro, variable
Donde registro es el nmero del registro a leer y variable es la variable donde se almacenar el
registro ledo.
La funcin Put escribe un registro, si el registro existe lo reemplaza. Su sintaxis es la siguiente:
Put #nFich, registro, variable
Donde registro es el nmero del registro que se escribir (o reemplazar) y variable es la variable que
contiene el dato a escribir en el registro.
28

Archivos Binarios.
Se trabajan de la misma forma que los archivos de Acceso Aleatorio y se leen y escriben con las
funciones Get y Put, pero en vez de acceder a los datos por registros se accede por bytes. Este
sistema de trabajo no es usual.
La sintaxis para abrir un archivo de este tipo es:
Open archivo For Binary As #nFich Len=tamao
Funciones de trabajo con archivos.
Hay varias funciones para trabajar con archivos. Algunas se han utilizado y se explican a continuacin
junto con otras no vistas.
o

LOF: devuelve el tamao de un archivo abierto (en bytes). Devuelve un entero de tipo Long.
Su sintaxis es:
LOF(nFich)

FileLen: devuelve un entero de tipo Long con el tamao en bytes de un archivo no abierto. Su
sintaxis es:
FileLen(archivo)

EOF: devuelve un valor booleano que indica si se lleg al final de un archivo (True) o no
(False). Su sintaxis es:
EOF(nFich)

LOC: devuelve un entero de tipo Long con la posicin en un archivo abierto. Si es secuencial,
la ubicacin del ltimo carcter ledo y si es de Acceso Aleatorio, el ltimo registro ledo. Su
sintaxis es:
LOC(nFich)

FileCopy: este procedimiento permite copiar archivos. Tiene por argumentos origen y destino,
los cuales son el archivo a copiar (y su ruta) y el archivo de destino (y su ruta). Su sintaxis es:
FileCopy origen destino

Kill: este procedimiento elimina archivos. archivo es una cadena de caracteres con la ruta y el
nombre del archivo a eliminar.
Kill archivo

MkDir: crea un directorio o subdirectorio. Su sintaxis es:


MkDir directorio

RmDir: elimina un directorio o subdirectorio. Su sintaxis es:


RmDir carpeta

FileDateTime: devuelve un valor de tipo Variant (Date) con la fecha y hora en que un archivo
fue creado o modificado por ltima vez. Su sintaxis es:
FileDateTime(archivo)
29

Ejemplo
Calculadora
Crear un formulario nuevo con los siguientes objetos (por defecto, al crear un nuevo proyecto, ya
viene el Form1):

Label (3)

Button (5)

TextBox (3)
Nota: Cambia la propiedad "(Name)" de los TextBox a "Numero1", "Numero2" y "Resultado"
respectivamente.
Distribuido de esta forma:

*Distribucin de los objetos.

Cdigo:
Para escribir cdigo de un botn u otro objeto, doble clic sobre el botn (o algn otro objeto).
Aparecer algo as:
Private Sub [...] 'Esto lo pone el mismo programa.
'Aqu escribes el cdigo de lo que va a hacer ese botn o objeto.
End Sub 'Esto tambin lo pone el programa.

*Los comentarios en cdigo se ponen con una '


30

En el botn "Salir":
Private Sub [...]
End 'El comando End, cierra todos los formularios y el programa.
End Sub

Sobre el Botn "+":


Private Sub [...]
Resultado.Text = (CDbl(Numero1.Text) + CDbl(Numero2.Text)) 'Resultado = Numero1 +
Numero2
End Sub

Sobre el botn "-":


Private Sub [...]
Resultado.Text = (CDbl(Numero1.Text) - CDbl(Numero2.Text)) 'Resultado = Numero1 Numero2
End Sub

Sobre el botn "x":


Private Sub [...]
Resultado.Text = (CDbl(Numero1.Text) * CDbl(Numero2.Text)) 'Resultado = Numero1 x
Numero2
'El * indica multiplicar, aunque en el botn se haya puesto una x
End Sub

Sobre el botn":":
Private Sub [...]
Resultado.Text = (CDbl(Numero1.Text) / CDbl(Numero2.Text)) 'Resultado = Numero1 :
Numero2
'Aunque en el botn pongamos :, para dividir se usa una /
End Sub

Opcional: Se puede poner un sexto botn que ponga AC o Nuevo clculo con el siguiente cdigo:
Private Sub[...]
Numero1.Text = "" 'El TextBox del nmero1 se queda en blanco.
Numero2.Text = "" 'El TextBox del nmero2 se queda en blanco.
Resultado.Text = "0" 'El TextBox del resultado se queda a "0".
End Sub

Visual C#
C#1 (pronunciado si
sharp en
ingls)
es
un lenguaje
de
programacin orientado
a
objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que despus

31

fue aprobado como un estndar por la ECMA (ECMA-334) e ISO (ISO/IEC 23270). C# es uno de los
lenguajes de programacin diseados para la infraestructura de lenguaje comn.
Su sintaxis bsica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET, similar al
de Java, aunque incluye mejoras derivadas de otros lenguajes.
El nombre C Sharp fue inspirado por la notacin musical, donde '#' (sostenido, en ingls sharp) indica
que la nota (C es la nota do en ingls) es un semitono ms alta, sugiriendo que C# es superior a
C/C++. Adems, el signo '#' se compone de cuatro signos '+' pegados.2
Aunque C# forma parte de la plataforma .NET, sta es una API, mientras que C# es un lenguaje de
programacin independiente diseado para generar programas sobre dicha plataforma. Ya existe
un compilador implementado que provee el marco Mono - DotGNU, el cual genera programas para
distintas plataformas como Windows, Unix, Android, iOS, Windows Phone, Mac OS y GNU/Linux.

Requerimientos para su instalacin

Caractersticas
A continuacin enumeramos las principales caractersticas que definen al lenguaje de programacin
C#. Algunas de estas caractersticas no son propias del lenguaje, sino de la plataforma .NET, aunque
se listan aqu ya que tienen una implicacin directa en el lenguaje.

Sencillez de uso
C# elimina muchos elementos aadidos por otros lenguajes y que facilitan su uso y compresin,
como por ejemplo ficheros de cabecera, o ficheros fuentes IDL1 .12. Es por ello que se dice que C# es
auto contenido. Adems, no se incorporan al lenguaje elementos poco tiles, como por ejemplo

32

macros, herencia mltiple u operadores diferentes al operador de acceso a mtodos (operador punto)
para acceder a miembros de espacios de nombres.

Modernidad
Al ser C# un lenguaje de ltima generacin, incorpora elementos que se ha demostrado a lo largo del
tiempo que son muy tiles para el programador, como tipos decimales o booleano, un tipo bsico
string ,as como una instruccin que permita recorrer colecciones con facilidad(instruccin foreach).
Estos elementos hay que simularlos en otros lenguajes como C++ o Java.

Orientado a objetos
C# como lenguaje de ltima generacin, y de propsito general, es orientado a objetos. C# no
permite la inclusin de funciones ni variables globales que no estn incluidos en una definicin de
tipos, por lo que la orientacin a objetos es ms pura y clara que en otros lenguajes como C++.
Adems, C# soporta todas las caractersticas del paradigma de la programacin orientada a objetos,
como son la encapsulacin, la herencia y el polimorfismo.

Orientado a componentes
La propia sintaxis de C# incluye elementos propios del diseo de componentes que otros lenguajes
tienen que simular. La sintaxis de C# incluye por ejemplo formas de definir propiedades, eventos o
atributos.

Recoleccin de basura
Como ya se coment, todo lenguaje incluido en la plataforma .NET tiene a su disposicin el
recolector de basura del CLR. Esto implica que no es necesario incluir instrucciones de destruccin
de objetos en el lenguaje.

Seguridad de tipos
C# incluye mecanismos de control de acceso a tipos de datos, lo que garantiza que no se produzcan
errores difciles de detectar como un acceso a memoria de ningn objeto, por ejemplo. Para ello, el
lenguaje provee de una serie de normas de sintaxis, como por ejemplo no realizar conversiones entre
tipos que no sean compatibles. Adems, no se pueden usar variables no inicializadas previamente, y
en el acceso atablas se hace una comprobacin de rangos para que no se excedan ninguno de los
ndices de la misma. Se puede controlar as mismo los desbordamientos en operaciones aritmticas,
producindose excepciones cuando se produzcan.

Instrucciones seguras
Para evitar errores comunes como se producan programando en otros lenguajes, en C# se han
impuesto una serie de restricciones en el uso de instrucciones de control ms comunes. Por ejemplo,
la evaluacin de toda condicin ha de ser una expresin condicional y no aritmtica, como ocurra por
ejemplo en C o en C++. As se evitan errores por confusin del operador igualdad con el de
asignacin. Otra restriccin que se impone en la instruccin de seleccin switch, imponiendo que
toda selectora de la instruccin finalice con una instruccin break o goto que indique cul es la
siguiente accin a realizar.

33

Unificacin de tipos
En C# todos los tipos derivan de una superclase comn llamada System.Object, por lo que
automticamente heredarn todos los miembros definidos en esta clase. Es decir, son objetos. A
diferencia de Java, en C# esta caracterstica tambin se aplica para los tipos bsicos.

Extensin de los operadores bsicos


Para facilitar la legibilidad de cdigo y conseguir que los nuevos tipos de datos que se definan a
travs de las estructuras estn al mismo nivel que los elementos predefinidos en el lenguaje, al igual
que C++ pero a diferencia de Java, C# permite redefinir el significado de la mayora delos operadores
(incluidos el de la conversin) cuando se apliquen a diferentes tipos de objetos.
Las redefiniciones de operadores se hacen de manera inteligente, de modo que a partir de una nica
definicin de los operadores ++ y - el compilador puede deducir automticamente cmo ejecutarlos
de manera prefija y postfija. Definiendo operadores simples como la suma, el compilador deduce
como aplicar la versin de asignacin compuesta (+=). Adems, para asegurar la consistencia, el
compilador exige que los operadores con opuesto (como por ejemplo el operador igualdad == y su
opuesto!=) siempre se redefinan por parejas.

Extensin de modificadores
C# ofrece, a travs de los atributos, la posibilidad de aadir a los metadatos del mdulo resultante de
la compilacin de cualquier fuente informacin adicional a la generada por el compilador que luego
podr ser consultada en tiempo de ejecucin a travs de la biblioteca de reflexin de .NET.

Eficiente
En C#, todo el cdigo incluye numerosas restricciones para garantizar su seguridad, no permitiendo
el uso de punteros. Sin embargo, y a diferencia de Java, existen modificadores para saltarse
esta restriccin, pudiendo manipular objetos a travs de punteros. Para ello basta identificar regiones
de cdigo con el identificador unsafe, y podrn usarse en ellas punteros de forma similar a como se
hace en C++. Esta caracterstica puede resultar de utilidad en situaciones en las que se necesite gran
velocidad de procesamiento.

Compatible
Para facilitar la migracin de programadores de C++ o Java a C#, no slo se mantiene una sintaxis
muy similar a la de los dos anteriores lenguajes, sino que el CLR tambin ofrece la posibilidad de
acceder a cdigo nativo escrito como funciones sueltas no orientadas a objetos, tales como las DLLs
de la API de Win32.

Ventajas y Desventajas
Ventajas
Las ventajas que ofrece C# frente a otros leguajes de programacin son:

Declaraciones en el espacio de nombres: al empezar a programar algo, se puede definir una o


ms clases dentro de un mismo espacio de nombres.

34

Tipos de datos: en C# existe un rango ms amplio y definido de tipos de datos que los que se
encuentran en C, C++ o Java.
Atributos: cada miembro de una clase tiene un atributo de acceso del tipo pblico, protegido,
interno, interno protegido y privado.
Pase de parmetros: aqu se puede declarar a los mtodos para que acepten un nmero
variable de parmetros. De forma predeterminada, el pase de parmetros es por valor, a
menos que se use la palabra reservada ref, la cual indica que el pase es por referencia.
Mtodos virtuales y redefiniciones: antes de que un mtodo pueda ser redefinido en una clase
base, debe declararse como virtual. El mtodo redefinido en la subclase debe ser declarado
con la palabra override.
Propiedades: un objeto tiene intrnsecamente propiedades, y debido a que las clases en C#
pueden ser utilizadas como objetos, C# permite la declaracin de propiedades dentro de
cualquier clase.
Inicializador: un inicializador es como una propiedad, con la diferencia de que en lugar de un
nombre de propiedad, un valor de ndice entre corchetes se utiliza en forma annima para
hacer referencia al miembro de una clase.
Control de versiones: C# permite mantener mltiples versiones de clases en forma binaria,
colocndolas en diferentes espacios de nombres. Esto permite que versiones nuevas y
anteriores de software puedan ejecutarse en forma simultnea.

Desventajas

Las desventajas que se derivan del uso de este lenguaje de programacin son que en primer
lugar se tiene que conseguir una versin reciente de Visual Studio .NET, por otra parte se
tiene que tener algunos requerimientos mnimos del sistema para poder trabajar
adecuadamente tales como contar con Windows NT 4 o superior, tener alrededor de 4 gigas
de espacio libre para la pura instalacin, etc.
Adems para quien no est familiarizado con ningn lenguaje de programacin, le costar
ms trabajo iniciarse en su uso, y si se quiere consultar algn tutorial ms explcito sobre la
programacin en C# se tendra que contar adems con una conexin a Internet.

Tipos de datos

35

36

Instrucciones de control
Instruccin if
La instruccin if selecciona una instruccin para ejecucin en base al valor de una expresin Boolean.
Sintaxis

Instruccin While
La instruccin while ejecuta una instruccin o un bloque de instrucciones repetidamente hasta que
una expresin especificada se evala como false.
Sintaxis

Instruccin Do While
Su diferencia bsica con el ciclo while es que la prueba de condicin es hecha al finalizar el ciclo, es
decir las instrucciones se ejecutan cuando menos una vez porque primero ejecuta las instrucciones y
al final evala la condicin.
Sintaxis

Instruccin Switch
37

La instruccin switch es una instruccin de control que controla mltiples selecciones y


enumeraciones pasando el control a una de las instrucciones case de su cuerpo.
Sintaxis

Manejo de archivos
Crear el directorio
Para comenzar a utilizar archivos es necesario tener un lugar en donde sern almacenados, esto es,
el directorio. Un directorio se crea de la siguiente manera:
Directory.CreateDirectory(C://Directorio);
Otra opcin es crear una variable de tipo String que almacene el nombre del directorio, por ejemplo:
String path = C://Directorio;
Directory.CreateDirectory(path);
Una vez creado el directorio se procede a decirle a C# que se requiere trabajar en ese directorio, para
ello implementamos el siguiente mtodo:
Directory.SetCurrentDirectory(path); o bien Directory.SetCurrentDirectory(C://Directorio);

Crear el archivo
Para crear un archivo se crea un flujo de archivo en cual se establece qu es lo que quieres hacer
con el archivo, ya sea crearlo, leerlo o escribir sobre l.
El flujo se puede iniciar de la siguiente manera:

38

FileStream archivo = new FileStream(Nombre_de_Archivo, FileMode.OpenOrCreate);


archivo es el nombre de la variable.
Las siguientes son opciones de cmo se puede abrir un archivo, esto depende de que quieres hacer
con el archivo:

Para leerlo: FileStream archivo = new FileStream(Nombre_de_Archivo,


FileMode.OpenOrCreate, FileAccess.Read);

Para escribir: FileStream archivo = new FileStream(Nombre_de_Archivo,


FileMode.OpenOrCreate, File Acces.Wirte);

Para escribir en la siguiente linea: FileStream archivo = new


FileStream(Nombre_de_Archivo, FileMode.Append, FileAccess.Write);
Es importante mencionar que al abrir el archivo este no se muestra automticamente, para ello es
necesario crear un flujo de lectura.
Cuando ya no se utiliza el archivo se debe cerrar el flujo:
archivo.Close();

Flujos de lectura y escritura


Si lo que deseas es escribir sobre el archivo, lo que necesitas es un flujo de escritura:
StreamWriter flujoEscritura = new StreamWriter(archivo);
En donde flujoEscritura es la variable y archivo es flujo de archivo el cual debi haber sido creado
anteriormente.
Para escribir una lnea sobre el archivo se emplea el siguiente mtodo:
flujoEscritura.WriteLine(nueva lnea del archivo);
Si quieres escribir varias cadenas en una sola lnea, los datos de una persona por ejemplo, se deben
separa las cadenas por algn carcter (puede ser cualquier carcter), en este caso se us |:
flujoEscritura.WriteLine(Nombre + | + Direccin + | + Telfono);
Para leer un archivo necesitas de un flujo de lectura:
StreamReader flujoLectura = new StreamReader(archivo);
39

Si quieres leer una lnea se emplea el siguiente mtodo:


flujoLectura.ReadLine();
O bien, si tu archivo tiene varios valores separados por un carcter, para leerlo se necesita crear una
matriz unidimensional en la que se almacenaran los valores de la lnea:
String registro = leer.ReadLine();
String nombre, direccin, telfono;
if (registro != null)
{
//Si existe algn registro, mostrarlo
String[] campos = registro.Split(|); //Separa campos con |
nombre = campos[0];
direccin = campos[1];
telfono = campos[2];
}

40

Ejemplo
Crear una aplicacin de Consola:
Para esto, deberemos ir a File->New->Project si usas Visual Studio, pero con cualquier otro IDE debe
ser algo parecido. Entonces se mostrar una nueva ventana como la de la figura, seleccionamos C#
en el men izquierdo y luego como tipo de proyecto marcamos Console Apliccation, le ponemos un
nombre al proyecto y le damos Ok. Ya estaremos listos para empezar con el cdigo.

41

42

43

Visual C++
Visual C++ (tambin conocido como MSVC++, Microsoft Visual C++) es un entorno de desarrollo
integrado (IDE) para lenguajes de programacin C, C++ y C++/CLI.
Visual C++ engloba el desarrollo de aplicaciones hechas en C, C++ y C++/CLI en el
entorno Windows. Visual C++ incluye adems las bibliotecas de Windows (WinApi), las
bibliotecas MFC y el entorno de desarrollo para .NET Framework. Visual C++ cuenta con su propio
compilador (de igual nombre) y otras herramientas como IntelliSense, TeamFoundation Server,
Debug,... Adems provee de bibliotecas propias de cada versin del sistema operativo y sockets.
Como otros compiladores, se le pueden aadir nuevas bibliotecas como DirectX, wxWidgets o SDL.
Cuenta con una versin Express, llamada Microsoft Visual C++ Express Edition, la cual es gratuita y
se puede descargar desde el sitio de Microsoft.
El lenguaje de programacin utilizado por esta herramienta, de igual nombre, est basado en C++ y
es compatible en la mayor parte de su cdigo con este lenguaje, a la vez que su sintaxis es

44

exactamente igual. En algunas ocasiones esta incompatibilidad impide que otros compiladores, sobre
todo en otros sistemas operativos, funcionen bien con cdigo desarrollado en este lenguaje.

Requerimientos para su instalacin

Caractersticas
Visual C++ hace uso extensivo del framework Microsoft Foundation Classes (o simplemente MFC), el
cual es un conjunto de clases C++para el desarrollo de aplicaciones en Windows.
El IDE cuenta con herramientas como el IntelliSense, RemoteDebuging, Editar y Continuar, y Texto
Resaltado.
Cuenta con una versin Express, llamada Microsoft Visual C++ Express Edition, la cual es gratuita y
se puede descargar desde el sitio de Microsoft.
El lenguaje de programacin utilizado por esta herramienta, de igual nombre, est basado en C++ y
es compatible en la mayor parte de su cdigo con este lenguaje, a la vez que su sintaxis es
exactamente igual. En algunas ocasiones esta incompatibilidad impide que otros compiladores, sobre
todo en otros sistemas operativos, funcionen bien con cdigo desarrollado en este lenguaje.
Algunas de las nuevas implementaciones es que el llamado cdigo administrado (managed code),
hace uso de una de las mejores herramientas dentro de.NET, el recolector de basura (garbage
collector).

Ventajas y Desventajas
Ventajas
- Lenguaje de programacin orientado a objetos.

45

- Lenguaje muy didctico, gracias a este lenguaje puedes aprender muchos otros lenguajes con gran
facilidad, como C#, Java, Visual Basic, Javascript, PHP, entre otros.
- Es muy potente en lo que se refiere a creacin de sistemas complejos, un lenguaje muy robusto.
- Permite elaborar aplicaciones sencillas como un "Hello World!" hasta sistemas operativos y mucho
ms, todo eso dependiendo del manejo del lenguaje.
- Actualmente, puede compilar y ejecutar cdigo de C, ya viene con libreras para realizar esta labor.
- Es un lenguaje muy empleado, existen muchos tutoriales en lnea, libros, cdigos fuentes abiertos...
hay material de sobra y basta para aprender lo necesario y mucho ms con este lenguaje.
- Existen muchos algoritmos cuyo pseudocdigo se encuentra ya desarrollado en C++, de manera
que puedes tomarlo y amoldarlo a tu solucin (porque el que veas un fragmento de cdigo no
asegura que sea correcto al 100%).

Desventajas
- Uso de DLLs (libreras dinmicas) muy complejo. Java y .Net han evolucionado estos conceptos
manipulando las DLLs mediante los frameworks que proveen. En cambio, en C++ el desarrollador
debe encargarse de cargar y liberar de memoria estas libreras, y correr los riesgos por el manejo de
esta memoria.
- Elaborar un sistema en C++ es como construir un rascacielos: tiene buen soporte y es robusto, pero
si existen errores en los pisos inferiores toda la parte superior se viene abajo terriblemente.
- Manejo de punteros y memoria respecto a ello. Claro, esta tambin es una gran ventaja porque
permite un mejor control de la memoria y una buena administracin de recursos de computadora,
pero la inexperiencia de los desarrolladores o la prdida de costumbre con este tipo de variables
(sobre todo cuando son dobles o triples punteros, inclusive de mayor orden) los lleva al desastre.
- No es recomendable para desarrollo de pginas Web.
- Existen muchos entornos de programacin para C++. No existen estndares para ello. De manera
que puedes encontrar C++ para Unix/Linux, C++ para Windows, C++ para MacOS, y as
indistintamente. Adems, en cada SO encuentras diferentes IDEs de desarrollo, y tambin encuentras
IDEs para desarrollo de aplicaciones grficas como Anjuta, Qt para Unix/Linux, Borland C++ Builder y
Visual Studio C++ para Windows.

46

Tipos de datos

Instrucciones de control
Sentencia if
La instruccin if es, por excelencia, la ms utilizada para construir estructuras de control de flujo.
Primera Forma
Ahora bien, la sintaxis utilizada en la programacin de C++ es la siguiente:

Siendo "condicin" el lugar donde se pondr la condicin que se tiene que cumplir para que sea
verdadera la sentencia y as proceder a realizar el "set de instrucciones" o cdigo contenido dentro de
la sentencia.
Sentencia switch
Switch es otra de las instrucciones que permiten la construccin de estructuras de control. A
diferencia de if, para controlar el flujo por medio de una sentencia switch se debe de combinar con el
uso de las sentencias case y break.
Notas: cualquier nmero de casos a evaluar por switch as como la sentencia default son opcionales.
La sentencia switch es muy til en los casos de presentacin de mens.
47

switch (condicin)
{
case primer_caso:
bloque de instrucciones 1
break;
case segundo_caso:
bloque de instrucciones 2
break;
case caso_n:
bloque de instrucciones n
break;
default: bloque de instrucciones por defecto
}

Operador condicional ternario ?


En C/C++, existe el operador condicional ( ?: ) el cual es conocido por su estructura como ternario. El
comportamiento de dicho operador es el mismo que una estructura if - then - else del
lenguaje BASIC (y de la funcin If de Visual Basic). El operador condicional ?: es til para evaluar
situaciones tales como:
Si se cumple tal condicin entonces haz esto, de lo contrario haz esto otro.
Sintaxis:

( (condicion) ? proceso1 : proceso2 )


En donde, condicin es la expresin que se evala, proceso1 es la tarea a realizar en el caso de que
la evaluacin resulte verdadera, y proceso2 es la tarea a realizar en el caso de que la evaluacin
resulte falsa.
Sentencias de iteracin

Sentencias For
for(contador; final; incremento)
{
Codigo a Repetir;
}

48

Donde:

contador es una variable numrica


final es la condicin que se evala para finalizar el ciclo (puede ser independiente del
contador)
incremento es el valor que se suma o resta al contador

Hay que tener en cuenta que el "for" evala la condicin de finalizacin igual que el while, es decir,
mientras esta se cumpla continuaran las repeticiones.

Sentencia while
while(condicion)
{
cdigo a Repetir
}

Donde:

condicin es la expresin a evaluar

Sentencia do - while
La sentencia do es usada generalmente en cooperacin con while para garantizar que una o ms
instrucciones se ejecuten al menos una vez. Por ejemplo, en la siguiente construccin no se ejecuta
nada dentro del ciclo while, el hecho es que el contador inicialmente vale cero y la condicin para que
se ejecute lo que est dentro del while es "mientras el contador sea mayor que diez". Es evidente que
a la primera evaluacin hecha por while la condicin deja de cumplirse.
int contador = 0;
while(contador > 10)
{
contador ++;
cout<<"Hola Mundo";
}

Al modificar el segmento de cdigo anterior usando do tenemos:


49

int contador = 0;
do
{
contador ++;
cout<<"Hola Mundo";
}
while(contador > 10);

Observe cmo en el caso de do la condicin es evaluada al final en lugar de al principio del bloque de
instrucciones y, por lo tanto, el cdigo que le sigue al do se ejecuta al menos la primera vez.

Manejo de archivos
Leer archivos de texto en Visual C++
La apertura y lectura de archivos para acceso de lectura es una parte importante de la funcionalidad
de entrada y salida (E/S), incluso si no necesita escribir en el archivo en cuestin En este ejemplo se
abre un archivo para lectura. Esto es til para leer archivos de texto pero no funciona para archivos
binarios. En este ejemplo se utiliza uno de los diversos mtodos disponibles para abrir el archivo.
Aunque existen muchas estructuras de datos para almacenar informacin recuperada del archivo,
ArrayList es la ms fcil de utilizar. Para abrir y leer del archivo se utilizan objetos del espacio de
nombres System.IO, en concreto la clase System.IO.StreamReader.
Para intentar cargar y leer un archivo de texto desde Visual C++, siga estos pasos:
1.

Inicie Visual Studio .NET o Visual Studio 2005 y cree una nueva aplicacin de C++
administrado. Visual Studio crear una aplicacin "Hola a todos" sencilla.

2.

Asegrese de que el proyecto hace referencia al menos al espacio de nombres System.


Utilice
la
instruccin using
namespace de
los
espacios
de
nombres System, System.IO y System.Data.Collections para que no tenga que calificar las
declaraciones de estos espacios de nombres ms adelante en el cdigo. Debe utilizar estas
instrucciones antes que cualquier otra declaracin.

using namespace System; using namespace System::IO; using namespace System::Collections;

50

3.

Para abrir un archivo para lectura, puede crear una nueva


objeto StreamReader y pasar la ruta de acceso del archivo en el constructor.

instancia

de

un

StreamReader* objReader = new StreamReader("c:\\test.txt");

4.

Necesitar una variable de cadena para almacenar cada lnea del archivo a medida que lo
procesa y, como va a agregar estas lneas a un ArrayList, debe declarar y crear tambin un objeto de
ese tipo.

String *sLine = ""; ArrayList *arrText = new ArrayList();

5.

Hay varias opciones para leer el archivo, incluyendo un mtodo denominado ReadToEnd que
lee todo el archivo de una vez, pero para este ejemplo puede utilizar el mtodo ReadLine para
mostrar el archivo de lnea en lnea. Al llegar al final del archivo este mtodo devuelve un valor nulo,
lo que permite terminar el bucle. A medida que lee cada lnea del archivo puede insertarla en el
objeto ArrayList mediante el mtodo Add de ArrayList.

sLine = objReader->ReadLine(); while (sLine != 0) { arrText->Add(sLine); sLine = objReader>ReadLine();<BR/>


} objReader->Close()

6.

Por ltimo, enve a la consola el contenido del ArrayList recin llenado mediante un bucle
"For Each".

for(int i = 0; i<arrText->Count; i++) Console::WriteLine(arrText->Item[i]->ToString());


Console::ReadLine();

7.

Guarde y ejecute el cdigo, que mostrar el contenido del archivo en la consola.


Listado de cdigo completo

51

#using <mscorlib.dll> using namespace System; using namespace System::IO; using namespace
System::Collections;
#ifdef _UNICODE int wmain(void) #else int main(void) #endif { StreamReader* objReader = new
StreamReader("c:\\test.txt"); String *sLine = ""; ArrayList *arrText = new ArrayList();

sLine = objReader->ReadLine(); while (sLine != 0) { arrText->Add(sLine); sLine =


objReader->ReadLine(); } objReader->Close();

//Escribir el ArrayList en la consola. for(int i = 0; i<arrText->Count; i++)


Console::WriteLine(arrText->Item[i]->ToString()); Console::ReadLine(); return 0;

Ejemplo
(Con if totalmente)
/*Este programa muestra el signo zodiacal de una persona. Para ello el usuario debe introducir
nicamente el da y el mes de nacimiento y el programa determinar inmediatamente el signo
zodiacal de la persona.*/
//muestra el signo zodiacal
#include <STdio.h>
#include <math.h>
#include <windows.h>
void clrscr()/*Creando funcin para limpiar pantalla.*/
{
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
COORD coord = {0, 0};
DWORD count;
CONSOLE_SCREEN_BUFFER_INFO csbi;
52

GetConsoleScreenBufferInfo(hStdOut, &csbi);
FillConsoleOutputCharacter(hStdOut, ' ', csbi.dwSize.X * csbi.dwSize.Y, coord, &count);
SetConsoleCursorPosition(hStdOut, coord);
}
void main()
{
int salir,saliryesno;
salir=0;
while(salir==0){
clrscr();/*Llamando la funcin para limpiar pantalla.*/
short unsigned int m,d = 0;
printf("Introduzca su mes de nacimiento: ");
scanf("%d",&m,"\n");
while ((m > 12) || (m < 1)){
printf("Introduzca su mes de nacimiento(DE 1 A 12): ");
scanf("%d",&m,"\n");
}
if (m==1){
printf("Introduzca su da de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>31) || (d != (d)) ){//!= esta sentencia es diferente de{
printf("Introduzca da (ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}

53

(d<=20) ? printf("\nSu signo es CAPRICORNIO.\n\n"):printf("\nSu signo es ACUARIO.\n\n");


}
else{
if(m==2){
printf("Introduzca su da de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>29) || (d != (d)) ){
printf("Introduzca da(ENTRE 1 Y 29): ");
scanf("%d",&d,"\n");
}
(d<=19) ? printf("\nSu signo es ACUARIO.\n\n"):printf("\nSu signo es PISCIS.\n\n");
}
else{
if(m==3){
printf("Introduzca su da de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>31) || (d != (d)) ){
printf("Introduzca da(ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}
(d<=20) ? printf("\nSu signo es PISCIS.\n\n"):printf("\nSu signo es ARIES.\n\n");
}
else{
if(m==4){

54

printf("Introduzca su da de nacimiento: ");


scanf("%d",&d,"\n");
while ( (d>30) || (d!=(d)) ){
printf("Introduzca da(ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}
(d<=20) ? printf("\nSu signo es ARIES.\n\n"):printf("\nSu signo es TAURO.\n\n");
}
else{
if(m==5){
printf("Introduzca su da de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>31) || (d != (d)) ){
printf("Introduzca da(ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}
(d<=21) ? printf("\nSu signo es TAURO.\n\n"):printf("\nSu signo es GEMINIS.\n\n");
}
else{
if(m==6){
printf("Introduzca su da de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>30) || (d!=(d)) ){
printf("Introduzca da(ENTRE 1 Y 31): ");

55

scanf("%d",&d,"\n");
}
(d<=21) ? printf("\nSu signo es GEMINIS.\n\n"):printf("\nSu signo es CANCER.\n\n");
}
else{
if(m==7){
printf("Introduzca su da de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>31) || (d != (d)) ){
printf("Introduzca da(ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}
(d<=23) ? printf("\nSu signo es CANCER.\n\n"):printf("\nSu signo es LEO.\n\n");
}
else{
if(m==8){
printf("Introduzca su da de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>31) || (d != (d)) ){
printf("Introduzca da(ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}
(d<=23) ? printf("\nSu signo es LEO.\n\n"):printf("\nSu signo es VIRGO.\n\n");
}

56

else{
if(m==9){
printf("Introduzca su da de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>30) || (d!=(d)) ){
printf("Introduzca da(ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}
(d<=23) ? printf("\nSu signo es LEO.\n\n"):printf("\nSu signo es LIBRA.\n\n");
}
else{
if(m==10){
printf("Introduzca su da de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>31) || (d != (d)) ){
printf("Introduzca da(ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}
(d<=23) ? printf("\nSu signo es LIBRA.\n\n") : printf("\nSu signo es ESCORPION.\n\n");
}
else{
if(m==11){
printf("Introduzca su da de nacimiento: ");
scanf("%d",&d,"\n");

57

while ( (d>30) || (d!=(d)) ){


printf("Introduzca da(ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}
(d<=22) ? printf("\nSu signo es ESCORPION.\n\n"):printf("\nSu signo es SAGITARIO.\n\n");
}
else{
if(m==12){
printf("Introduzca su da de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>31) || (d !=(d)) ){
printf("Introduzca da(ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}
(d<=21) ? printf("\nSu signo es SAGITARIO.\n\n"):printf("\nSu signo es CAPRICORNIO.\n\n");
}
}
}
}
}
}
}
}
}

58

}
}
}
printf("SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO PRESIONE OTRO NUMERO: ");
scanf("%d",&saliryesno);
if(saliryesno==1){
salir=1;
}
}
}

59

Visual Basic .NET


Visual Basic .NET (VB.NET) es un lenguaje de programacin orientado a objetos que se puede
considerar una evolucin de Visual Basic implementada sobre el framework .NET. Su introduccin
result muy controvertida, ya que debido a cambios significativos en el lenguaje VB.NET no es retro
compatible con Visual Basic, pero el manejo de las instrucciones es similar a versiones anteriores de
Visual Basic, facilitando as el desarrollo de aplicaciones ms avanzadas con herramientas modernas.
Para mantener eficacia en el desarrollo de las aplicaciones. La gran mayora de programadores de
VB.NET utilizan el entorno de desarrollo integrado Microsoft Visual Studio en alguna de sus versiones
(desde el primer Visual Studio .NET hasta Visual Studio .NET 2015, que es la ltima versin de Visual
Studio para la plataforma .NET), aunque existen otras alternativas, como SharpDevelop (que adems
es libre).
Al igual que con todos los lenguajes de programacin basados en .NET, los programas escritos en VB
.NET requieren el Framework .NET o Mono para ejecutarse.

Requerimientos para su instalacin

Caractersticas
Visual Basic .NET 2002
Visual Basic .NET 2003 incluye tambin las siguientes caractersticas, que se presentaron en Visual
Basic .NET 2002.

60

Herencia

Control de excepciones

Sobrecarga

Reemplazar propiedades y mtodos

Constructores y destructores

Tipos de datos

Interfaces

Delegados

Miembros compartidos

Referencias

Espacios de nombres

Ensamblados

Atributos

Subprocesamiento mltiple

Visual Basic .NET 2003


Visual Basic .NET 2003 tiene nuevas funciones que simplifican la manipulacin de bits y la
declaracin de variables de bucle.

Operadores de desplazamiento

Declaracin de variables de bucle

Ventajas y Desventajas
Ventajas
61

Posee una curva de aprendizaje muy rpida.

Integra el diseo e implementacin de formularios de Windows.

Permite usar con facilidad la plataforma de los sistemas Windows, dado que tiene acceso
prcticamente total a la API de Windows, incluidas libreras actuales.

Es uno de los lenguajes de uso ms extendido, por lo que resulta fcil encontrar informacin,
documentacin y fuentes para los proyectos.

Fcilmente extensible mediante libreras DLL y componentes ActiveX de otros lenguajes.

Posibilita aadir soporte para ejecucin de scripts, VBScript o JScript, en las aplicaciones
mediante Microsoft Script Control.

Tiene acceso a la API multimedia de DirectX (versiones 7 y 8). Tambin est disponible, de
forma no oficial, un componente para trabajar con OpenGL 1.1.

Existe una versin, VBA, integrada en las aplicaciones de Microsoft Office, tanto Windows
como Mac, que permite programar macros para extender y automatizar funcionalidades en
documentos, hojas de clculo y bases de datos (Access).

Si bien permite desarrollar grandes y complejas aplicaciones, tambin provee un entorno


adecuado para realizar pequeos prototipos rpidos.

Desventajas
Las crticas hechas en las ediciones de Visual Basic anteriores a VB.NET son variadas; se citan entre
ellas:

Problema de versionado asociado con varias libreras runtime DLL, conocido como DLL Hell

Soporte pobre para programacin orientada a objetos

Incapacidad para crear aplicaciones multihilo, sin tener que recurrir a llamadas de la API de
Windows.
Dependencia de complejas y frgiles entradas de registro COM
La capacidad de utilizar controles en un slo formulario es muy limitada en comparacin a
otras herramientas. DLL Hell DB, Libro Programando en Visual Basic,2002

Tipos de datos

62

Nombre de Tipo de dato


la clase

Byte

en VB.NET

Byte

Tipo de
dato en C#

Descripcin

Byte

Entero sin signo de 8 bit.

Sbyte (No
Sbyte

nativo)

sbyte

Entero sin signo de 8bit (Tipo no acorde con el CLS)

Int16

Short

short

Entero con signo de 16 bit.

Int32

Integer

int

Entero con signo de 32 bit.

Int64

Long

long

Entero con signo de 64 bit.

UInt16 (No
Uint16

nativo)

ushort

Entero sin signo de 16 bit. (Tipo no acorde con el CLS)

uint

Entero sin signo de 32 bit. (Tipo no acorde con el CLS)

Uint32 (No
Uint32

nativo)
Uint64 (No

Uint64

nativo)

ulong

Entero sin signo de 64 bit. (Tipo no acorde con el CLS)

Single

Single

float

Numero con coma flotante de precisin simple, de 32 bit.

Double

Double

double

Numero con coma flotante de precisin doble, de 64 bit.

Boolean

Boolean

bool

Valor logico

Char

Char

char

Carcter unicode de 16 bit.

Decimal

Decimal

decimal Valor decimal de 96 bit.

63

Entero con signo cuyo tamao depende de la plataforma:


IntPtr (No
IntPtr

nativo)

32 bit en plataformas de 32 bit y 64 bit en plataformas de


--

64 bit. (Tipo no acorde con el CLS)


Entero sin signo cuyo tamao depende de la plataforma:

UintPtr (No

32 bit en plataformas de 32 bit y 64 bit en plataformas de

UintPtr

nativo)

--

String

String

string

64 bit. (Tipo no acorde con el CLS)


Cadena de caracteres.

Instrucciones de control
Las estructuras de control lgicas nos permiten encontrar una solucin en casi todo tipo de
problemas, se utilizan cuando en el desarrollo de un problema debemos tomar una decisin para
establecer qu camino seguir en su solucin.
Para este tutorial, se utilizaran las variables A, B, C de tipo Integer.

64

ESTRUCTURA "IF THEN"


La estructura de control SI ENTONCES permite que el flujo del programa siga un camino especifico si
se cumple una CONDICION o CONJUNTO DE CONDICIONES, si la condicin no se cumple, no
realiza este paso
El seudocdigo es:
01 SI [condicin] ENTONCES
02 HACER OPERACION
03 FIN DE SI

Y su implementacin en VB.NET
01 If A > B Then
02 Console.WriteLine("A es mayor")
03 End If

ESTRUCTURA "IF THEN ELSE"


La estructura selectiva SI ENTONCES/SINO permite que el flujo del programa se bifurque por dos
caminos distintos dependiendo si la CONDICION se cumple o no, si la condicin resulta verdadera,
desarrollara ciertas operaciones y sino, desarrollara otras operaciones, cuando se termine las
operaciones, el ciclo del programa vuelve a la secuencia normal.
El seudocdigo es:
01 SI [Condicion] ENTONCES
02 HACER OPERACION 1
03 SINO
04 HACER OPERACION 2
05 FIN DE SI

Y el cdigo en Visual Basic.net


01 If A > B Then
02 Console.WriteLine("A es mayor")
03 Else
04 Console.WriteLine("B es mayor")
05 End If

LA ESTRUCTURA "IF THEN" ANIDADO


La mayora de los programas no cuentan con una sola estructura de seleccin, sino que estn
compuestas de varias estructuras una despus de la otra, estas son las estructuras de seleccin
anidadas.
Seudocdigo:
01 SI [condicin 1] ENTONCES

65

02 HACER OPERACION 1
03 SINO SI [condicin 2] ENTONCES
04 HACER OPERACION 2
05 SINO
06 HACER OPERACION 3
07 FIN DE SI

En VB.net
01
02
03
04
05
06
07

If A > B Then
Console.WriteLine("A es mayor que B")
ElseIf A > C Then
Console.WriteLine("A es menor que B pero mayor que C")
Else
Console.WriteLine("A es menor que B y C")
End If

Manejo de archivos
Leer y escribir en ficheros de texto es lo ms sencillo del mundo, ya que lo podemos hacer usando
un par de lneas de cdigo.
Veamos un ejemplo de cmo guardar en un fichero el contenido de una cadena de texto:
Const fic As String = "E:\tmp\Prueba.txt"
Dim texto As String = "rase una vez una vieja con un moo..."
Dim sw As New System.IO.StreamWriter(fic)
sw.WriteLine(texto)
sw.Close()

Como puedes comprobar, lo nico que necesitamos es crear un objeto del


tipo StreamWriter (definido en el espacio de nombres System.IO), pasarle al constructor el nombre
del fichero en el que queremos guardar y usar el mtodo WriteLine al que le indicamos como
argumento la cadena que queremos guardar.
Ahora vamos a leer de un fichero y asignaremos el contenido del mismo a una variable.
El cdigo para Visual Basic y C# sera el siguiente:
Const fic As String = "E:\tmp\Prueba.txt"
Dim texto As String
Dim sr As New System.IO.StreamReader(fic)

66

texto = sr.ReadToEnd()
sr.Close()
Console.WriteLine(texto)

En este caso tambin es muy simple, ya que solo necesitamos usar un objeto del
tipo StreamReader, (tambin definido en el espacio de nombres System.IO) al que le indicamos de
que fichero queremos leer y por medio del mtodo ReadToEnd leemos todo el contenido, el cual
asignamos a la variable que usemos en la asignacin.

En estos dos ejemplos al no indicar lo contrario estamos usando la codificacin predeterminada, es


decir, UTF-8, por tanto, si escribimos primero en ese fichero y despus lo leemos, el texto se
mostrar correctamente, a pesar de que en el primer ejemplo hayamos usado vocales acentuadas y
ees.
Adems de que al usar la clase StreamWriter de esa forma, si haba un fichero con ese mismo
nombre, se eliminar y se quedar el que acabamos de escribir, es decir, se sustituye el contenido
del fichero.

Anexar contenido a un fichero existente


Antes de ver otras cosas, veamos cmo agregar contenido a un fichero, es decir, si ese fichero
existe, lo que haremos es aadir ms contenido, de forma que despus de escribir, lo que tendr
ser lo que antes hubiere ms lo que ahora escribamos.
Para conseguir esto lo nico que tenemos que hacer es indicar en el constructor de la
clase StreamWriter un
segundo
argumento
con
un
valor
verdadero.
De esa forma, si el fichero existe, se aadir el texto al final de lo que ya tuviera. Si el fichero no
existe, simplemente se crear y se guardar el texto actual, pero no dar error de que no existe.
Veamos el cdigo para aadir texto a un fichero existente (o crearlo si no existe):
Const fic As String = "E:\tmp\Prueba.txt"
Dim texto As String = "Pablito tena una moto con un pito."
Dim sw As New System.IO.StreamWriter(fic, True)
sw.WriteLine(texto)
sw.Close()

Como ves lo nico que hay que hacer es indicar como segundo argumento del constructor de la
claseStreamWriter un valor verdadero, y de esa forma le indicamos que queremos agregar el texto
al
fichero.
67

Si en vez de usar un valor verdadero, indicas un valor falso (false) el comportamiento ser como el
del primer ejemplo, es decir, se sobrescribir el fichero eliminando lo que antes hubiera.

Usar una codificacin especfica


Como te he comentado antes, si no indicamos lo contrario, los ficheros se leern y se guardarn
usando la codificacin UTF-8. Pero si queremos usar una distinta, debemos indicarlo de forma
expresa.
Por ejemplo, si queremos leer ficheros escritos por otros programas que usan la codificacin
estndar de Windows, por ejemplo los ficheros creados con Visual Basic 6.0, debemos indicar que
NO queremos usar el formato predeterminado, esto lo haremos de la siguiente forma:
Const fic As String = "E:\tmp\Prueba2.txt"
Dim texto As String
Dim sr As New System.IO.StreamReader(fic, System.Text.Encoding.Default)
texto = sr.ReadToEnd()
sr.Close()
Console.WriteLine(texto)

En este caso lo nico que debemos hacer es indicar en el constructor de la clase StreamReader un
segundo
argumento
que
es
la
codificacin
que
queremos
usar,
en
este
caso System.Text.Encoding.Default.
Para escribir en esa codificacin (o en cualquier otra) tendremos que indicar la codificacin a usar en
el tercer argumento del constructor de la clase StreamWriter, ya que en el segundo debemos indicar
si queremos agregar el texto a lo que ya tuviera o bien crear el fichero usando solo el contenido que
queremos
guardar.
En caso de que queramos crear un fichero con el contenido que tenemos en una variable, usaremos
el siguiente cdigo:
Const fic As String = "E:\tmp\Prueba2.txt"
Dim texto As String = "rase una vez una vieja con un moo..."
Dim sw As New System.IO.StreamWriter(fic, False, System.Text.Encoding.Default)
sw.WriteLine(texto)
sw.Close()

68

Ejemplo
PASO 1
Instale Visual Basic .Net 2010 o el paquete Visual Studio 2010 en su computadora.
PASO 2
Despus de instalar el programa debe seleccionar la primera vez que inicie la aplicacin la opcin
Configuracin de Desarrollo de Visual Basic.

PAS 3
Tendremos acceso al panel principal del programa.

69

PAS 4
Crear un directorio llamado Programacion1 dentro del directorio establecido para los proyectos de
Visual Studio 2010 o en el directorio raz.
PAS 5
Creamos un nuevo proyecto desde Archivo Nuevo Proyecto
Seleccionamos el lenguaje: Visual Basic
Tipo de aplicacin: Windows
Tipo de proyecto: Aplicacin de consola

Ponemos un nombre al proyecto y lo almacenamos en un directorio donde tengamos permiso de


acceso.

Inicialmente tenemos solo un archivo con extensin .vb (Generalmente llamado Module1.vb), pero
podemos agregar ms programas si vamos al men Proyecto y luego Agregar nuevo o elemento

70

Clic en la opcin Agregar nuevo elemento

Seleccionar la opcin Mdulo.

En el editor para nuevo programa agregar el siguiente cdigo.


71

EJEMPLO 1 operaciones.vb

72

Bibliografa

http://www.microsoft-visualstudio.com/2011/07/entorno-de-desarrollo-y-primerejemplo_6536.html
http://www.lawebdelprogramador.com/codigo/Visual-Basic.NET/index1.html
https://msdn.microsoft.com/es-MX/library/aa984063(v=vs.71).aspx
http://www.elguille.info/NET/dotnet/leer_escribir_ficheros_texto.htm
http://www.lawebdelprogramador.com/foros/Visual-Basic.NET/966862-manejo-dearchivos-en-visual.net.html
http://www.lawebdelprogramador.com/foros/Visual-Basic.NET/1348016-Manejo-dearchivos-en-listview.html
https://msdn.microsoft.com/es-mx/library/cc436723(v=vs.71).aspx
https://www.scribd.com/doc/8982653/Estructuras-de-Control-Visual-Basic
https://msdn.microsoft.com/es-MX/library/8y82wx12.aspx
http://www.desarrolloweb.com/articulos/1388.php
http://www.elguille.info/colabora/NET2005/Percynet_Historia_Visual_Basic_NET.htm
http://es.slideshare.net/DavidPaLMundo/visual-basic-net-4772730
http://www.programacionfacil.com/visual_cpp/tipos_de_datos.html
https://prezi.com/kgeoxvs9huuk/tipos-de-datos-usados-en-c-y-visual-basic/
https://www.scribd.com/doc/2551829/Tipos-de-datos-en-C
https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B
%2B/Iteraciones_y_decisiones

73

Vous aimerez peut-être aussi