Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Todo este proceso nos servirá en los capítulos siguientes, y en cualquier otro proyecto
que aborde con posterioridad, ya que en él conoceremos muchos conceptos, y algunos
de los elementos y opciones que nos ofrece esta herramienta.
Al iniciar Visual C# por primera vez nos encontramos con un entorno como el que
aparece en la figura 1.1 (página siguiente), con elementos habituales como un menú de
opciones, una barra de botones debajo y una serie de ventanas adosadas. La Página
de inicio aparece en primer plano, ofreciendo una lista de los proyectos en los que
hemos trabajado recientemente (vacía por ahora) y enlaces para abrir y crear otros
proyectos; debajo una lista de accesos directos a temas de la ayuda y a la derecha una
serie de hipervínculos a noticias relacionadas con el pro- ducto obtenidas a través de
Internet. Esta página estará vacía si no disponemos de una conexión a la red.
La parte derecha del entorno está ocupada por el Explorador de soluciones, una
ventana que nos servirá para gestionar los elementos que forman parte de cada
proyecto. Observe la parte superior de ese panel: en el extremo derecho, tras el título,
aparece una serie de iconos:
Como es fácil imaginar, este icono sirve para cerrar la ventana. Podemos
cerrar todas aquellas ventanas que no utilicemos con frecuencia, para liberar
El área central del entorno, donde ahora mismo se encuentra la Página de inicio, sirve
para ir mostrando las ventanas de los distintos editores y diseñadores con que cuenta
el producto. Por cada página abierta aparecerá una pestaña en la parte superior, de tal
forma que un simple clic nos llevará de una a otra.
La Vista de clases, para desplazarse por el código fuente según los tipos, no los
archivos.
Lista de errores aparece debajo de la ventana del editor/diseñador con una lista de
errores. Haga doble clic en un error para ir a la línea de código fuente que presenta el
problema. Presione F1 para consultar la documentación de Ayuda correspondiente al
error resaltado.
A medida que vayamos trabajando con él, cada vez nos sentiremos más cómodos
en el entorno de Visual C# 2005 y aprenderemos a adaptarlo a nuestras necesidades.
Por el momento ya sabemos cómo disponer las ventanas en la posición que más nos
guste y establecer la configuración para que permanezcan acopladas, flotantes o se
oculten automáticamente. Ahora vamos a proceder a crear nuestro primer proyecto.
En nombre del proyecto escogemos el nombre que deseamos escribir por lo general
Propiedades
El nodo Propiedades representa opciones de configuración que se aplican a la
totalidad del proyecto y se almacenan en el archivo .csproj de su carpeta de
soluciones. Esta configuración incluye opciones de compilación, seguridad e
implementación, entre muchas otras. Para modificar el proyecto, se utiliza el Diseñador
de proyectos, que es un conjunto de Páginas de propiedades a las que se tiene acceso
haciendo clic con el botón secundario del mouse en Propiedades, y seleccionando
Abrir.
Referencias
En el contexto de un proyecto, una referencia identifica simplemente un archivo
binario que la aplicación necesita para poder ejecutarse. Normalmente, una referencia
identifica un archivo DLL, como uno de los archivos de la biblioteca de clases de .NET
Framework. También puede hacer referencia a un ensamblado .NET (denominado
shim) que permite que la aplicación llame a los métodos de un objeto COM o de un
Recursos
Los recursos son datos que se incluyen con la aplicación pero que se pueden
almacenar de forma que pueden modificarse con independencia del resto del código
fuente. Por ejemplo, puede almacenar todas las cadenas como recursos en lugar de
codificarlas directamente en el código fuente. De esta forma, podrá traducir las
cadenas a distintos idiomas más adelante y agregarlas a la carpeta de la aplicación
que distribuye a los clientes sin necesidad de volver a compilar el ensamblado. Los
cinco tipos de recursos definidos por Visual C# son: cadenas, imágenes, iconos, audio
y archivos. Para agregar, quitar o modificar recursos, utilice el Diseñador de recursos,
al que se tiene acceso en la ficha Recursos del Diseñador de proyectos.
Formularios
Cuando se crea un proyecto de formularios Windows Forms, Visual C# agrega de
forma predeterminada un formulario al proyecto y lo llama Form1. Los dos archivos que
representan el formulario se llaman Form1.cs y Form1.designer.cs. El código se
escribe en Form1.cs. El Diseñador de Windows Forms escribe en el archivo
designer.cs el código que implementa todas las acciones que se realizaron al arrastrar
y colocar objetos desde el Cuadro de herramientas.
Los programas en C# pueden constar de uno o varios archivos. Cada archivo puede
contener cero o varios espacios de nombres. Un espacio de nombres puede contener
tipos como clases, estructuras, interfaces, enumeraciones y delegados, además de
otros espacios de nombres. A continuación, se muestra el esqueleto de un programa
en C# que contiene todos estos elementos.
// A esqueleto de un programa en C#
using System;
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
delegate int YourDelegate();
enum YourEnum
{
}
namespace YourNestedNamespace
{
struct YourStruct
{
}
}
class YourMainClass
{
static void Main(string[] args)
{
//Your program starts here...
}
}
}
El método Main es el punto de entrada del programa, donde crea objetos e invoca
otros métodos. En un programa de C#, sólo puede haber un punto de entrada
<tipoVariable> <nombreVariable>;
Una variable puede ser definida dentro de una definición de clase, en cuyo caso se
correspondería con el tipo de miembro que hasta ahora hemos denominado campo.
También puede definirse como un variable local a un método, que es una variable
definida dentro del código del método a la que sólo puede accederse desde dentro de
dicho código. Otra posibilidad es definirla como parámetro de un método, que son
variables que almacenan los valores de llamada al método y que, al igual que las
variables locales, sólo puede ser accedida desde código ubicado dentro del método.
class A
{
int x, z;
int y;
void F(string a, string b)
{
Persona p;
}
En este ejemplo las variables x, z e y son campos de tipo int, mientras que p es una
variable local de tipo Persona y a y b son parámetros de tipo string. Como se muestra
en el ejemplo, si un método toma varios parámetros las definiciones de éstos se
separan mediante comas (carácter,), y si queremos definir varios campos o variables
locales (no válido para parámetros) de un mismo tipo podemos incluirlos en una misma
Los tipos de datos básicos son ciertos tipos de datos tan comúnmente utilizados en
la escritura de aplicaciones que en C# se ha incluido una sintaxis especial para
tratarlos. Por ejemplo, para representar números enteros de 32 bits con signo se utiliza
el tipo de dato System.Int32 definido en la BCL, aunque a la hora de crear un objeto a
de este tipo que represente el valor 2 se usa la siguiente sintaxis:
System.Int32 a = 2;
Como se ve, no se utiliza el operador new para crear objeto System.Int32, sino que
directamente se indica el literal que representa el valor a crear, con lo que la sintaxis
necesaria para crear entero de este tipo se reduce considerablemente. Es más, dado
lo frecuente que es el uso de este tipo también se ha predefinido en C# el alias int para
int a = 2;
Pese a su sintaxis especial, en C# los tipos básicos son tipos del mismo nivel que
cualquier otro tipo del lenguaje. Es decir, heredan de System.Object y pueden ser
tratados como objetos de dicha clase por cualquier método que espere un
System.Object, lo que es muy útil para el diseño de rutinas genéricas que admitan
parámetros de cualquier tipo y es una ventaja importante de C# frente a lenguajes
similares como Java donde los tipos básicos no son considerados objetos.
El valor que por defecto se da a los campos de tipos básicos consiste en poner a cero
todo el área de memoria que ocupen. Esto se traduce en que los campos de tipos
básicos numéricos se inicializan por defecto con el valor 0, los de tipo bool lo hacen
con false, los de tipo char con „\u0000‟, y los de tipo string y object con null.
Los operadores sirven, como su propio nombre indica, para efectuar operaciones con
uno o más parámetros (sumar, restar, comparar...) y retornar un resultado. Se pueden
agrupar de varios modos, pero yo te los voy a agrupar por primarios, unitarios y
binarios. Aquí tienes una tabla con los operadores de C#, y luego te los explico
detalladamente:
Están puestos en orden de precedencia, es decir, en el caso de haber una expresión con
varios de ellos, se ejecutan por ese orden. Ya te explicaré esto con más detalles.
En el caso de “(expresión)”, los operadores son realmente los paréntesis. Sirven para
modificar la precedencia.
En array[índice], los operadores son los corchetes. Sirven para indicar el elemento de un
array o un indizador.
Los operadores de incremento (++) y decremento (--) sirven para incrementar o disminuir
el valor de una variable en una unidad. Por ejemplo:
hará que num incremente su valor en una unidad, es decir, si valía 10 ahora vale 11. Los
operadores de incremento y decremento se pueden poner delante (preincremento ó
predecremento) o bien detrás (postincremento ó postdecremento), teniendo
comportamientos distintos. Me explico: si hay un postincremento o postdecremento,
primero se toma el valor de la variable y después se incrementa o decrementa. En caso
contrario, si lo que hay es un preincremento o un predecremento, primero se incrementa
o decrementa la variable y después se toma el valor de la misma. En una línea como la
anterior esto no se ve claro, porque, además, el resultado sería el mismo que poniendo
++num. Sin embargo, veamos este otro ejemplo (num vale 10):
a = ++num;
b = a- -;
Después de ejecutar la primera línea, tanto a como num valdrían 11, ya que el
preincremento hace que primero se incremente num y después se tome su valor,
asignándolo así a la variable a. Ahora bien, después de ejecutar la segunda línea, b
valdrá 11, y a valdrá 10. ¿Por qué? Porque el postdecremento de a hace que primero se
asigne su valor actual a b y después se decremente el suyo propio.
“sizeof” devuelve el tamaño en bytes que ocupa un tipo determinado. Ahora bien,
solamente se puede utilizar sizeof con tipos valor y en contextos de código inseguro.
Aunque no vamos a explicar ahora este tipo de contexto, sí puedes ver cómo funciona en
ejemplo "OperadoresPrimarios", que se incluye con esta entrega.
byte i=253;
checked {i+=10;}
Console.WriteLine(i);
byte i=253;
unchecked {i+=10;}
Console.WriteLine(i);
En la primera fila están la lista de valores que acepta la variable, y en negrilla el valor que
contiene. Como ves, a continuación del último que acepta vuelve a estar el primero. Al
sumarle 10 (segunda fila) es como si se fueran contando valores posibles hacia adelante,
de modo que i ahora vale 7. Otro ejemplo usando el tipo sbyte (que acepta valores entre
128 y 127):
sbyte i=126;
unchecked {i+=10;}
Console.WriteLine(i);
int i=10;
int b=-i;
Console.WriteLine("Valor de i: {0} Valor de b: {1}", i, b);
La variable i valdría 10, y la variable b valdría -10. Por lo tanto, la salida en la consola
sería:
uint i=10;
Console.WriteLine("Valor de i: {0:X8} Valor de ~i: {1:X8}", i, ~i);
La salida en la consola sería la siguiente:
Valor de i: 0000000A Valor de ~i: FFFFFFF5
Como sabes, el número hexadecimal A equivale al 10 en base decimal, por eso escribe A
como valor de i. El número FFFFFFF5 es el complementario en hexadecimal de 10, y en
base decimal equivale a 4294967285. Veamos estos números en código binario (que es
como se almacenan en la memoria):
Los operadores * y / son, respectivamente, para multiplicar y dividir. Es muy sencillo. Si,
por ejemplo, tenemos la siguiente expresión: 4*6/2, el resultado sería el que se supone:
12.
Aplicación N° 01
Esta aplicación es fácil de hacer, pero la cosa es divertirse y aprender okis, el formulario
que vas a crear deberá tener el siguiente diseño. El Proyecto se Llamara Aplicacion01 y
el Formulario se llamará frmaplicacion01.
Si te habrás dado cuenta a la hora de utilizar la propiedad de TextAlign del control Label,
este te muestra una imagen en donde hay nuevo opciones de alinear el texto a
comparación de la versión anterior que solo te mostraba tres opciones.
Aplicación N° 02
Bueno seguiremos con las aplicaciones, todavía no vamos a tocar lo que es código,
primero tendremos que aprender lo que nos trae de nuevo esta nueva versión del visual
C# para el diseño de nuestros formularios. Siguiendo con los diseños, esta aplicación
diseñaremos un nuevo formulario, como les digo solo diseñaremos okis.
Características:
Aplicación N° 04
Bueno dirán ustedes, Cuando vamos a comenzar a codificar?, bueno la respuesta es que
en esta aplicación por fin podremos codificar, aunque sea un poco, pero algo es algo
dicen, para esto crearemos un nuevo proyecto llamado Aplicacion04 y un formulario
llamado frmaplicacion04, que tendrá el siguiente diseño, si se han dado cuenta el diseño
se parece al de la aplicación 02, así que pueden hacerlo en la misma ventana de la
aplicación 02, si les da flojera diseñar esta interfaz okis.
Bueno ya no les voy a decir las propiedades de cada control, solo les voy a indicar con
que nombre voy a trabajar por cada control y que a la propiedad CancelButton del
formulario le asignen el botón finalizar, para que a la hora de presionar la tecla Esc,
este ejecute el código de este botón okis.
txtnombre.Text = "";
txtdireccion.Text = "";
txttelefono.Text = "";
txtce.Text = "";
txtobservaciones.Text = "";
txtnombre.Focus();
This.Close();
Y visualizaras
Bueno ahora viene lo más interesante, que es la explicación, comencemos, por el código
de Focus(), que es la de devolver el foco al control indicado.
Aplicación Propuesta 2
Bueno ahora que seguro que ya tienen ganas de programar, al saber que casi no ha
cambiado el código a comparación de la versión anterior les dejare un aplicación para
que ustedes de luzcan poniendo todo su conocimiento en ello, solo les dejo la interfaz y
lo que pide esta aplicación.
Características
txtnombre.Text = ""
txtfecnac.Text = ""
txtdni.Text = ""
txtdomact.Text = ""
txtnombre.Focus()
Me.Close()
Con esta aplicación concluimos este Tercer capítulo, así que ahora tocaremos un poco
más de programación codificada en el siguiente capítulo.
Aplicación N° 06
Esta aplicación muestra la diferencia entre una variable declarada con int y double
dentro de un procedimiento.
Control Name
Label3 lbla
Label4 lblb
Button1 btnincrementa
· Paso N° 03: Escribir las instrucciones
public frmaplicacion06()
{
InitializeComponent();
}
Como usted observara que al dar clic en el botón “Incrementa a la Variable A y B”, la
variable “a” se incrementa en la unidad, a comparación de la variable “b”, que se
incrementa en 0.25, también hemos vistos las diferentes formas de asignar el valor de la
variable al control Lbla, y Lblb
Aplicación N° 07
Les diré ahora lo que nos pide esta aplicación, nos pide que al ingresar un nombre de un
trabajador, las horas normales que ha trabajado, las horas extras, el pago por cada hora
normal y extra. Al dar clic en el botón de calcular nos deberá mostrar lo siguiente: total del
pago por las horas normales y extras, el subtotal, su descuento del 10 % y el total a
pagarle (el subtotal menos el descuento).
1. Seleccione el objeto
2. En la ventana de propiedades de clic en el botón
Aplicación N° 08
Ahora con esta aplicación que se parece mucho a la aplicación N° 02 (en la interfaz) no
les voy a pedir mucho, solo que al presionar ENTER en cada caja de texto (TextBox),
este le pase el foco al siguiente TextBox, y al presionar la tecla ESC o dar clic en el botón
Finalizar, nos salga un mensaje de advertencia, así que comencemos.
· Paso N° 02: Asignar los nombres a los controles.
Paso N° 03: Escribir las instrucciones, bueno mejor dicho copien, y de ahí les explico
okis.
Bueno les diré que no soy tan bueno en las explicaciones así que tratare de serlo más
claro. Comencemos con la explicación, si se dan cuenta que en el procedimiento del
TextBox hay dos argumentos que se pasa, que es el “Sender” y el “e”, bueno les diré
Aplicación Propuesta 03
Aplicación N° 09
El siguiente programa permite ingresar los apellidos y nombres, fecha de ingreso, turno y
promedio de un alumno. Teniendo las siguientes características:
DESARROLLO
Paso N° 03: Escribir las instrucciones con mucha lógica, y sobre todo que
funcione. Bueno primero comencemos con crear funciones okis.
Función Limpiar
void limpiar()
{
txtapenom.Text = "";
txtfecing.Text = "";
txtturno.Text = "";
txtpromedio.Clear();//*solo para que to te olvides que esto es valido
btnnuevo.Enabled = false;
btnsalir.Enabled = false;
txtapenom.Focus();
}
Función Minúsculas
void minuscula(System.Windows.Forms.KeyPressEventArgs e)
{
if (e.KeyChar < 97 || e.KeyChar > 122)
if (e.KeyChar != 13 && e.KeyChar != 8 && e.KeyChar != 32)
e.Handled = true;
}
Función mayúsculas
void mayuscula(System.Windows.Forms.KeyPressEventArgs e)
{
if (e.KeyChar < 65 || e.KeyChar > 90)
if (e.KeyChar != 13 && e.KeyChar != 8 && e.KeyChar != 32)
e.Handled = true;
}
Función Número
void numeros(System.Windows.Forms.KeyPressEventArgs e)
{
Función Ingresados
void ingresados()
{
if (txtapenom.Text != "" && txtturno.Text != "" && txtpromedio.Text
!= "" && txtfecing.Text!="")
{
btnnuevo.Enabled = true;
btnsalir.Enabled = true;
}
else
{
btnnuevo.Enabled = false;
btnsalir.Enabled = false;
}
}
Función MAYÚSCULAS
void MAYUSCULA()
{
String CADENA;
CADENA = txtapenom.Text.Trim();
CADENA = CADENA.ToUpper();
txtapenom.Text = CADENA;
}
Paso N° 04: Después de escribir las instrucciones en las funciones, ahora nos toca
escribir las instrucciones en los eventos de cada control
Control Name
TextBox1 txtcliente
TextBox2 txtmonto
TextBox3 txtcdeposito
TextBox4 txtcretiro
TextBox5 txttdeposito
TextBox6 txttretiro
TextBox6 txtsaldo
Button1 Btnok
Button2 btndeposito
Button3 btnretiro
Button4 btnnuevo
Button5 btnsalir
Button6 btnotra
Función Números
/**************************************************************/
//funcion de Verification de Ingreso de valores numericos
/**************************************************************/
void numeros(System.Windows.Forms.KeyPressEventArgs e)
{
if (e.KeyChar < 48 || e.KeyChar > 58)
if (e.KeyChar != 13 && e.KeyChar != 8 && e.KeyChar != 46)
e.Handled = true;
}
Función Letras
/**************************************************************/
//funcion que permite Ingresar solo letras
/**************************************************************/
void Letras(System.Windows.Forms.KeyPressEventArgs e)
{
if (e.KeyChar < 65 || e.KeyChar > 90)
if (e.KeyChar != 13 && e.KeyChar != 8 && e.KeyChar != 32)
if(!char.IsLetter(e.KeyChar))
e.Handled = true;
}
Función Iniciar
void Iniciar()
{
td = 0;
cd = 0;
tr = 0;
cr = 0;
txtcliente.Text = "";
txtmonto.Text = "";
txtcdeposito.Text = "";
txtcretiro.Text = "";
txttdeposito.Text = "";
txttretiro.Text = "";
txtsaldo.Text = "";
btnok.Visible = true;
btndeposito.Enabled = false;
btnretiro.Enabled = false;
txtcliente.ReadOnly = false;
txtmonto.ReadOnly = true;
txtcliente.Focus();
}
Creo que no les había explicado sobre el código del MessageBox.show, bueno
ahora les diré en el formato que debes de escribir para mostrar un mensaje.
Aplicaciones Propuestas N° 04
Este formulario les pide ingresar el nombre del producto, precio anterior y precio actual,
luego deberá de calcular el alza en soles y el alza en porcentaje. El alza en porcentaje es
igual al alza en soles por 100 / precio anterior, ejemplo:
Precio Anterior = 50
Precio Actual = 80
Alza en Porcentaje = ((80-50) * 100)/50
Si ha trabajado más de 48 horas su pago por horas es de S/. 8.00 y S/. 7.00 en
caso contrario.
Por hora extra S/. 9.50.
Aplicación N° 11
Control Name…..
TextBox1 txtproducto
TextBox2 txtprecuni
TextBox3 txtcantcomp
TextBox4 txtsubtotal
TextBox5 txtdescP
TextBox6 txtdescS
TextBox7 txttotal
Button1 btncalcular
Button2 btnnuevo
Button3 btnsalir
Paso N° 03: Ahora nos toca hacer la codificación, si te ha estado saliendo todo bien hasta
ahora y haz entendido, no te será difícil. Así que comencemos:
Función Iniciar
void iniciar(Boolean activar)
{
txtproducto.Text = "";
txtproducto.ReadOnly = !activar;
txtprecuni.Text = "";
txtprecuni.ReadOnly = !activar;
txtcantcomp.Text = "";
txtcantcomp.ReadOnly = !activar;
txtsubtotal.Text = "";
txtdescP.Text = "";
txtdescS.Text = "";
txttotal.Text = "";
btncalcular.Enabled = activar;
btnnuevo.Enabled = !activar;
txtproducto.Focus();
}
Hemos utilizado en este ejemplo una función (Iniciar) con parámetros. La variable
activar es de tipo (boolean) y es la que recibe el (true o false).
También en el procedimiento calcular hemos utilizado string.Format, que permite
aplicar formato a los números. A continuación te explicamos los diferentes tipos de
formatos.
Tipo de
Especificador Ejemplo
Datos
Console.WriteLine(String.Format("{0:c}", 2.5));
c Currency
Decimal
d (Numero Console.WriteLine(String.Format("{0:d}", 200));
Entero)
Console.WriteLine(String.Format("{0:e}",
e Scientific
254325.22));
g General Console.WriteLine(String.Format("{0:g}",20.50));
Number
(Número
n con comas Console.WriteLine(String.Format("{0:n}",2548241.50))
para los
miles)
x Hexadecimal Console.WriteLine(String.Format("{0:x}",2548241);
Otro muy solicitado es el formato para indicar el número de dígitos decimales con el cual
será impreso un número:
Console.WriteLine(String.Format("{0:0.000}", 254.623645));
Console.WriteLine("Indicando número de decimales: {0:#.####}",
254.623645);
Console.WriteLine(String.Format("{0:0.0%}", 0.3));
Cuando hablamos de Fechas, podemos imprimir sólo el día, el mes, el año o cualquier otro
tipo de información sobre esta que nos interese.
Por último una aclaración con respecto a los ejemplos. En las líneas de código he
colocado siempre Console.Writeln, esto no quiere decir que String.Format, sólo trabaja
con una aplicación del tipo consola. String.Format, retorna una cadena, la cual puedes
asignarla a una variable, imprimirla, a un componente, etc, ya depende de ti el uso que le
des al resultado obtenido.
TextBox1 txtalumno
TextBox2 txtcurso
TextBox3 txtn1
TextBox4 txtn2
TextBox5 txtpromedio
TextBox6 txtobservacion
TextBox7 txtpuntos
Label12 lblcualidad
Button1 btnotro
Button2 btnpromedio
Button3 btnfinalizar
Paso N° 03: El paso más fácil de este formulario, la codificación, así que hagan todo su
esfuerzo de copiar bien como en el cole………..
0 y 12 Niño
13 y 17 Adolescente
18 y 30 Joven
31 y 70 Adulto
70 a mas Anciano
Solo les voy a dar una pequeña ayuda, existe dos funciones para saber la fecha
actual, una es la de Now, que te devuelve la fecha actual, con días, meses, años,
horas, minutos, y segundo, y existe otra función que te devuelve el año ingresado, es
Year, esta función te devuelve la fecha de una variable o de un argumento que se le
envié, siempre y cuando sea una fecha, mejor dicho para obtener el año actual del
sistema la codificación seria DateTime.Now.Year, bueno creo que mucha ayuda les
he dado, así que suerte. (ahora te toca consultar un poquito)
LastIndexOf Igual que IndexOf, pero comenzando desde el final del string.
LastIndexOfAny Igual que IndexOfAny, pero comenzando desde el final del string.
Replace Reemplaza todos los caracter4es de un substring indicado, por otro también
indicado.
Split Identifica los substrings en la instancia y los ordena por separado en un
arreglo de strings.
Aplicación N° 13
La siguiente aplicación es un ejemplo del uso de las funciones de cadena.
TextBox1 txtfrase
TextBox 2 txtlongitud
TextBox3 txtprimer
TextBox4 txtultimo
TextBox5 txtsegasexto
TextBox6 txtposA
TextBox7 txtminusculas
TextBox8 txtmayusculas
TextBox9 txttitulo
Button1 btnmuestra
Button2 btnnueva
Button3 btnsalir
Paso N° 03: Codificar, como siempre, lo bueno que con este ejemplo veremos o
mejor dicho recordaremos algunas funciones que de repente ya se han olvidado.
Funcion Limpiar ()
void limpiar (Boolean condicion)
{
txtfrase.Text = "";
txtlongitud.Text = "";
txtprimer.Text = "";
txtultimo.Text = "";
txtsegasexto.Text= "";
txtposA.Text = "";
txtminisculas.Text= "";
txtmayusculas.Text= "";
txttitulo.Text = "";
btnmuestra.Enabled = condicion;
btnnueva.Enabled = !condicion;
txtfrase.Focus();
}
Si se han dado cuenta he estado usando una función llamada Substring para
substraer caracteres de una cadena, esta función contiene dos parámetros como lo
es la posición inicial del carácter y el total de caracteres a substraer desde
la posición indicada.
TextBox1 txtnombre
TextBox2 txtfecnac
TextBox3 txtdiaing
TextBox4 txtmesing
TextBox5 txtañoing
TextBox6 txtdiasem
Label7 lblfecing
Label8 lblfecact
Button1 btnok
Button2 btnsalir
Paso N° 03: Crear el código, bueno usando más o menos el código de visual
Funcion (IsDate)
//funcion utilizada para verificar si la fecha dada
//esta correctamente ingresada en el textbox
public bool IsDate(string fecnacim)
{
DateTime aux;
return DateTime.TryParse(fecnacim, out aux);
}
Aplicación N° 15
Esta aplicación es un ejemplo de la utilidad de las funciones tipo numéricas.
Control Name
TextBox1 txtnum
TextBox2 txtpartent
TextBox3 txtpartdec
TextBox4 txtvalabs
TextBox5 txtraizcuad
TextBox6 txtsigno
TextBox7 txtvaloct
TextBox8 txtvalhex
Button1 btnmuestra
Button2 btnnueva
Button3 btnsalir
Paso N° 03: Crea o copiar el código, bueno si ya se sienten capaces de poder
resolver esta aplicación háganlo, para así saber que están aprendiendo.
Funcion (decAOctal)
//invertir la cadena
for (i = (Numero.Length - 1); i >= 0; i--)
{
NumOctal = NumOctal + Numero.Substring(i, 1);
}
return NumOctal;
}
Funcion (decAhexa)
//invertir la cadena
for (i = (Numero.Length - 1); i >= 0; i--)
{
NumHexa = NumHexa + Numero.Substring(i, 1);
}
Funcion IsNumero)
Funcion Limpiar
void limpiar()
{
txtnum.Text = "";
txtpartent.Text = "" ;
txtpartdec.Text = "" ;
txtvalabs.Text = "" ;
txtraizcuad.Text = "";
txtsigno.Text = "" ;
txtvaloct.Text = "";
txtvalhex.Text = "" ;
txtnum.Focus();
}
Aplicación N° 16
La siguiente aplicación permite ejecutar desde el Visual C# algunos
programas.
Aplicación N° 17
Esta aplicación nos pide ingresar un texto y luego se debe de mostrar letra por letra
del texto junto con su valor ASCII y su valor Binario; además, el valor binario se
debe de desplazar de izquierda a derecha por el formulario.
Control Name
TextBox1 txttexto
TextBox2 txtletra
TextBox3 txtascii
TextBox4 txtbinario
Label5 lblbinamove
Button1 btnok
Estas estructuras de datos son adecuadas para situaciones en las que el acceso a los
datos se realice de forma aleatoria e impredecible. Por ejemplo, cuando tenemos un
conjunto de números desordenados, y queremos saber si en el conjunto hay un número
en particular. Por el contrario, si los elementos pueden estar ordenados y se va a utilizar
acceso secuencial sería más adecuado utilizar una lista, mejor diseñada para estas
situaciones.
Declarar un Array
Para declarar un array de una dimensión, solamente debes especificar de qué tipo serán
los elementos de array, de esta forma:
int es para decir que son enteros lo que voy a almacenar, enteros es el nombre del array
y new es el operador que indica al compilador que cree un nuevo array con una
capacidad de 8 elementos.
Si quieres establecer los 8 números enteros desde un principio, deberás incluir entre
llaves, los elementos separados por coma:
int [ ] a = {6,1,5,6,4,8,6,9,7,4,14,26,14,12,10};
Para declarar un array n-dimensional solo hay que tener en cuenta que a medida que le
agreguemos una coma (,) a los corchetes, se crea una nueva dimensión, por lo que si
hacemos [,] estamos creando un array bidimensional, si agregamos otra coma ([,,]) sería
tridimensional.
Para acceder a un elemento en una posición dada del array hay que hacer algo como:
NombreArray [int posición];
NombreArray [n-1];
Esto se debe a que el elemento del array vendría siendo NombreArray [0];
Es un poco incómodo, pero con la práctica te acostumbras.
Ejemplos de arrays
Ahora veremos algunos ejemplos, para que se familiaricen con la sintaxis y vean cómo
usarlos en métodos y aplicaciones sencillas.
Aplicación N° 18
Esta Aplicación nos pide ingresar un número del 1 al 7 y se debe de visualizar
el día de semana al cual pertenece el número ingresado, para esta ocasión lo
vamos hacer usando un array.
TextBox1 txtnum
Label2 lbldia
Button1 btnok
Button2 btnsalir
Paso N° 03: Codificar, para esto primero declararemos variables a nivel del
formulario (ósea mejor dicho, después de donde dice código generado por el
diseñador de Windows Forms), y de ahí codificaremos en los diversos
eventos de cada control.
public partial class frmaplicacion18 : Form
{
public frmaplicacion18()
{
InitializeComponent();
}
string[] D = new string[7];
}
TextBox1 txtarray0
TextBox2 txtarray1
TextBox3 txtarray2
TextBox4 txtarray3
TextBox5 txtarray4
TextBox6 txtarray5
TextBox7 txtarray6
TextBox8 txtarray7
TextBox9 txtarray8
TextBox10 txtarray9
TextBox11 txtarray10
TextBox12 txtarray11
TextBox13 txtarray12
TextBox14 txtarray13
TextBox15 txtarray14
TextBox16 txtarray15
Button1 btnnuevo
Button2 btnordenar
Button3 btnrestaurar
Button4 btnllenar
Button5 btnsalir
Paso N° 03: Codificar, para estoy vamos a declarar arrays a nivel del
formulario y a crear funciones.
Función limpiar
Aplicación N° 20
Esta aplicación permite manejar los elementos de un array de 16 elementos, estos
elementos son valores numéricos de tipo entero con los cuales se realiza los siguientes
procesos: Sumar filas, columnas, diagonales, etc. Bueno en realidad si ustedes
desean lo pueden hacer con un array de 4 x 4, sino hagan como yo con un solo array
de 16 elementos.
Aplicación N° 21
La siguiente aplicación permite realizar operaciones con arrays como sumar dos
arrays, restar, multiplicar, etc.
void LimpiarControles()
{
txta0.Text = ""; txta1.Text = ""; txta2.Text = "";
txta3.Text = ""; txta4.Text = ""; txta5.Text = "";
txta6.Text = ""; txta7.Text = ""; txta8.Text = "";
txtb0.Text = ""; txtb1.Text = ""; txtb2.Text = "";
txtb3.Text = ""; txtb4.Text = ""; txtb5.Text = "";
txtb6.Text = ""; txtb7.Text = ""; txtb8.Text = "";
txtres0.Text = ""; txtres1.Text = ""; txtres2.Text = "";
txtres3.Text = ""; txtres4.Text = ""; txtres5.Text = "";
txtres6.Text = ""; txtres7.Text = ""; txtres8.Text = "";
}
Bueno señores, con esto acabo con la primera entrega, que es lo básico, me
despido esperando que este manual les sirva de mucho para iniciarse en C#.