Académique Documents
Professionnel Documents
Culture Documents
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
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.
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 .
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.
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';
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 (;).
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.
13
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.
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)
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
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)
Instalacin tpica: 76 MB
Instalacin mxima: 94 MB
Puede requerirse espacio adicional en el disco duro para los siguientes productos:
Windows NT Option Pack: 20 MB para Windows 95; 200 MB para Windows NT 4.0
Unidad de CD-ROM
Enterprise Edition
19
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)
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
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
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.
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).
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
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 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
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:
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.
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
'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.
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 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:
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
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
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.
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
}
Sentencias For
for(contador; final; incremento)
{
Codigo a Repetir;
}
48
Donde:
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:
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";
}
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.
50
3.
instancia
de
un
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.
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.
6.
Por ltimo, enve a la consola el contenido del ArrayList recin llenado mediante un bucle
"For Each".
7.
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();
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
54
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
58
}
}
}
printf("SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO PRESIONE OTRO NUMERO: ");
scanf("%d",&saliryesno);
if(saliryesno==1){
salir=1;
}
}
}
59
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
Constructores y destructores
Tipos de datos
Interfaces
Delegados
Miembros compartidos
Referencias
Espacios de nombres
Ensamblados
Atributos
Subprocesamiento mltiple
Operadores de desplazamiento
Ventajas y Desventajas
Ventajas
61
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.
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).
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
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
Byte
en VB.NET
Byte
Tipo de
dato en C#
Descripcin
Byte
Sbyte (No
Sbyte
nativo)
sbyte
Int16
Short
short
Int32
Integer
int
Int64
Long
long
UInt16 (No
Uint16
nativo)
ushort
uint
Uint32 (No
Uint32
nativo)
Uint64 (No
Uint64
nativo)
ulong
Single
Single
float
Double
Double
double
Boolean
Boolean
bool
Valor logico
Char
Char
char
Decimal
Decimal
63
nativo)
UintPtr (No
UintPtr
nativo)
--
String
String
string
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
Y su implementacin en VB.NET
01 If A > B Then
02 Console.WriteLine("A es mayor")
03 End If
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()
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.
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.
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
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
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