Toma de Contacto Con C#: 1.1 Escribir Un Texto en C#
Toma de Contacto Con C#: 1.1 Escribir Un Texto en C#
Toma de Contacto Con C#: 1.1 Escribir Un Texto en C#
Se trata de un lenguaje creado por Microsoft para crear programas para su plataforma
.NET, pero estandarizado posteriormente por ECMA y por ISO, y del que existe una
implementación alternativa de "código abierto", el "proyecto Mono", que está disponible
para Windows, Linux, Mac OS X y otros sistemas operativos.
Nosotros comenzaremos por usar Mono como plataforma de desarrollo durante los
primeros temas. Cuando los conceptos básicos estén asentados, pasaremos a emplear
Visual C#, de Microsoft, que requiere un ordenador más potente pero a cambio incluye un
entorno de desarrollo muy avanzado, y está disponible también en una versión gratuita
(Visual Studio Express Edition).
La mayoría de los compiladores actuales permiten dar todos estos pasos desde un único
entorno, en el que escribimos nuestros programas, los compilamos, y los depuramos en
caso de que exista algún fallo.
Esto escribe "Hola" en la pantalla. Pero hay mucho alrededor de ese "Hola", y vamos a
comentarlo antes de proseguir, aunque muchos de los detalles se irán aclarando más
adelante. En este primer análisis, iremos de dentro hacia fuera:
Como se puede ver, mucha parte de este programa todavía es casi un "acto de fe" para
nosotros. Debemos creernos que "se debe hacer así". Poco a poco iremos detallando el
por qué de "public", de "static", de "void", de "class"... Por ahora nos limitaremos a
"rellenar" el cuerpo del programa para entender los conceptos básicos de programación.
Ejercicio propuesto (1.1.1): Crea un programa en C# que te salude por tu nombre (ej:
"Hola, Nacho").
http://www.mono-project.com/
En la parte superior derecha aparece el enlace para descargar ("download now"), que nos
lleva a una nueva página en la que debemos elegir la plataforma para la que queremos
nuestro Mono. Nosotros descargaremos la versión más reciente para Windows (la 2.10.5
en el momento de escribir este texto).
Se trata de un fichero de cerca de 90 Mb. Cuando termina la descarga, haremos doble clic
en el fichero recibido, aceptaremos el aviso de seguridad que posiblemente nos mostrará
Windows, y comenzará la instalación, en la que primero se nos muestra el mensaje de
bienvenida:
Después se nos muestra una ventana de información, en la que se nos avisa de que se va a
instalar Mono x.x.x (donde x.x.x es la versión actual, por ejemplo 2.10.5), junto con las
librerías Gtk# para creación de interfaces de usuario y XSP (eXtensible Server Pages, un
servidor web).
El siguiente paso es elegir qué componentes queremos instalar (Mono, Gtk#, XSP):
El siguiente paso es indicar en qué carpeta del menú de Inicio queremos que quede
accesible:
Mono está listo para usar. En nuestro menú de Inicio deberíamos tener una nueva carpeta
llamada "Mono x.x.x for Windows", y dentro de ella un acceso a "Mono-x.x.x Command
Prompt":
Quizá se nos lleve a una carpeta que esté dentro de "Documents and settings" o quizá
incluso a alguna en la que no tengamos permiso para escribir, como "Windows\System32".
Si queremos cambiar la carpeta de arranque de Mono, lo podemos hacer pulsando el
botón derecho sobre la opción "Mono-x.x.x Command Prompt" del menú de inicio y
escogiendo "Propiedades".
Para crear un programa, el primero paso será teclear el "fuente". Para ello podemos usar
cualquier editor de texto. En este primer fuente, usaremos simplemente el "Bloc de notas"
de Windows. Para ello tecleamos:
notepad ejemplo01.cs
Aparecerá la pantalla del "Bloc de notas", junto con un aviso que nos indica que no existe
ese fichero, y que nos pregunta si deseamos crearlo. Respondemos que sí y podemos
empezar a teclear el ejemplo que habíamos visto anteriormente:
Guardamos los cambios, salimos del "Bloc de notas" y nos volvemos a encontrar en la
pantalla negra del símbolo del sistema. Nuestro fuente ya está escrito. El siguiente paso es
compilarlo. Para eso, tecleamos
gmcs ejemplo01.cs
Si no se nos responde nada, quiere decir que no ha habido errores. Si todo va bien, se
acaba de crear un fichero "ejemplo01.exe". En ese caso, podríamos lanzar el programa
tecleando
mono ejemplo01.exe
Si en nuestro ordenador está instalado el "Dot Net Framework" (algo que debería ser cierto
en las últimas versiones de Windows, y que no ocurrirá en Linux ni Mac OsX), no debería
hacer falta decir que queremos que sea Mono quien lance nuestro programa, y podremos
ejecutarlo directamente con su nombre:
ejemplo01
Si quieres un editor más potente que el Bloc de notas de Windows, puedes probar
Notepad++, que es gratuito (realmente más que eso: es de "código abierto") y podrás
localizar fácilmente en Internet. Geany también es un alternativa muy interesante,
disponible para muchos sistemas operativos.
Si prefieres un entorno desde el que puedas teclear, compilar y probar tus programas,
incluso los de gran tamaño que estén formados por varios ficheros, en el apartado 6.13
hablaremos de SharpDevelop (para Windows), y de MonoDevelop (para Windows, Linux y
Mac). Si quieres saber cosas sobre el entorno "oficial" de desarrollo, llamado Visual Studio,
lo tienes en el Apartado 6.8.
Hay un posible problema que se debe tener en cuenta: algunos de estos entornos de
desarrollo muestran el resultado de nuestro programa y luego regresan al editor tan
rápido que no da tiempo a ver los resultados. Una solución provisional puede ser añadir
"System.Console.ReadLine()" al final del programa, de modo que se quede parado hasta
que pulsemos Intro:
public
public class Ejemplo01suma
{
public static void Main()
()
{
System.
.Console.
.WriteLine(
(3+
+4);
);
}
}
Ejercicios propuestos:
• (1.3.1) Crea un programa que diga el resultado de sumar 118 y 56.
• (1.3.2) Crea un programa que diga el resultado de sumar 12345 y 67890.
Operador Operación
+ Suma
- Resta, negación
* Multiplicación
/ División
% Resto de la división ("módulo")
Ejercicios propuestos:
El primer ejemplo nos permitía escribir "Hola". El segundo nos permitía sumar dos
números que habíamos prefijado en nuestro programa. Pero esto tampoco es "lo
habitual", sino que esos números dependerán de valores que haya tecleado el usuario o de
cálculos anteriores.
Por eso necesitaremos usar variables, zonas de memoria en las que guardemos los datos
con los que vamos a trabajar y también los resultados temporales. Como primer ejemplo,
vamos a ver lo que haríamos para sumar dos números enteros que fijásemos en el
programa.
El primer tipo de datos que usaremos serán números enteros (sin decimales), que se
indican con "int" (abreviatura del inglés "integer"). Después de esta palabra se indica el
nombre que tendrá la variable:
int primerNumero;
;
Esa orden reserva espacio para almacenar un número entero, que podrá tomar distintos
valores, y al que nos referiremos con el nombre "primerNumero".
primerNumero = 234;
;
(esta línea reserva espacio para dos variables, que usaremos para almacenar números
enteros; una de ellas se llama primerNumero y tiene como valor inicial 234 y la otra se
llama segundoNumero y tiene como valor inicial 567).
Después ya podemos hacer operaciones con las variables, igual que las hacíamos con los
números:
Una vez que sabemos cómo mostrar un número en pantalla, es sencillo mostrar el valor de
una variable. Para un número hacíamos cosas como
System.
.Console.
.WriteLine(
(3+
+4);
);
System.
.Console.
.WriteLine(
(suma);
);
O bien, si queremos mostrar un texto además del valor de la variable, podemos indicar el
texto entre comillas, detallando con {0} en qué parte del texto queremos que aparezca el
valor de la variable, de la siguiente forma:
System.
.Console.
.WriteLine(
("La suma es {0}",
, suma);
);
Si se trata de más de una variable, indicaremos todas ellas tras el texto, y detallaremos
dónde debe aparecer cada una de ellas, usando {0}, {1} y así sucesivamente:
System.
.Console.
.WriteLine(
("La suma de {0} y {1} es {2}",
,
primerNumero,
, segundoNumero,
, suma);
);
Ya sabemos todo lo suficiente para crear nuestro programa que sume dos números
usando variables:
primerNumero = 234;
;
segundoNumero = 567;;
suma = primerNumero + segundoNumero;
;
System.
.Console.
.WriteLine(
("La suma de {0} y {1} es {2}",
,
primerNumero,
, segundoNumero,
, suma);
);
}
}
Ejercicios propuestos:
• (1.5.3.1) Crea un programa que calcule el producto de los números 121 y 132,
usando variables.
• (1.5.3.2) Crea un programa que calcule la suma de 285 y 1396, usando variables.
• (1.5.3.3) Crea un programa que calcule el resto de dividir 3784 entre 16, usando
variables.
1.6. Identificadores
Estos nombres de variable (lo que se conoce como "identificadores") pueden estar
formados por letras, números o el símbolo de subrayado (_) y deben comenzar por letra o
subrayado. No deben tener espacios entre medias, y hay que recordar que las vocales
acentuadas y la eñe son problemáticas, porque no son letras "estándar" en todos los
idiomas.
Tampoco podremos usar como identificadores las palabras reservadas de C#. Por
ejemplo, la palabra "int" se refiere a que cierta variable guardará un número entero, así
que esa palabra "int" no la podremos usar tampoco como nombre de variable (pero no
vamos a incluir ahora una lista de palabras reservadas de C#, ya nos iremos encontrando
con ellas).
De momento, intentaremos usar nombres de variables que a nosotros nos resulten claros,
y que no parezca que puedan ser alguna orden de C#.
PrimerNumero = 0;
primernumero = 0;
o cualquier variación similar, el compilador protestará y nos dirá que no conoce esa
variable, porque la habíamos declarado como
int primerNumero;
1.7. Comentarios
Podemos escribir comentarios, que el compilador ignora, pero que pueden servir para
aclararnos cosas a nosotros. Existe dos formas de indicar comentarios. En su forma más
general, los escribiremos entre /* y */:
/* Esto
es un comentario que
ocupa más de una línea
*/
También es posible declarar otro tipo de comentarios, que comienzan con doble barra y
terminan cuando se acaba la línea (estos comentarios, claramente, no podrán ocupar más
de una línea). Son los "comentarios al estilo de C++":
texto = System.
.Console.
.ReadLine();
();
pero eso ocurrirá en el próximo tema, cuando veamos cómo manejar textos. De momento,
nosotros sólo sabemos manipular números enteros, así que deberemos convertir ese dato
a un número entero, usando Convert.ToInt32:
primerNumero = System.Convert.
.ToInt32(
( System.
.Console.
.ReadLine()
() );
Un ejemplo de programa que sume dos números tecleados por el usuario sería:
System.
.Console.
.WriteLine(
("Introduce el primer número");
);
primerNumero = System.
.Convert.
.ToInt32(
(
System.
.Console.
.ReadLine());
());
System.
.Console.
.WriteLine(
("Introduce el segundo número");
);
segundoNumero = System.
.Convert.
.ToInt32((
System.
.Console.
.ReadLine());
());
suma = primerNumero + segundoNumero;
;
System.
.Console.
.WriteLine(
("La suma de {0} y {1} es {2}",
,
primerNumero,
, segundoNumero,
, suma);
);
}
}
Ejercicios propuestos:
• (1.8.1) Crea un programa que calcule el producto de dos números introducidos por
el usuario.
• (1.8.2) Crea un programa que calcule la división de dos números introducidos por
el usuario, así como el resto de esa división.
using System;
;
Console.
.WriteLine(
("Introduce el primer número");
);
primerNumero = Convert.
.ToInt32(
(Console.
.ReadLine());
());
Console.
.WriteLine(
("Introduce el segundo número");
);
segundoNumero = Convert.
.ToInt32(
(Console.
.ReadLine());
());
suma = primerNumero + segundoNumero;
;
Console.
.WriteLine(
("La suma de {0} y {1} es {2}",
,
primerNumero,
, segundoNumero,
, suma);
);
}
}
Podemos declarar varias variables a la vez, si van a almacenar datos del mismo tipo. Para
hacerlo, tras el tipo de datos indicaríamos todos sus nombres, separados por comas:
using System;
;
Console.
.WriteLine(
("Introduce el primer número");
);
primerNumero = Convert.
.ToInt32(
(Console.
.ReadLine());
());
Console.
.WriteLine(
("Introduce el segundo número");
);
segundoNumero = Convert.
.ToInt32(
(Console.
.ReadLine());
());
suma = primerNumero + segundoNumero;
;
Console.
.WriteLine(
("La suma de {0} y {1} es {2}",
,
primerNumero,
, segundoNumero,
, suma);
);
}
}
Y podemos escribir sin avanzar a la línea siguiente de pantalla, si usamos "Write" en vez de
"WriteLine":
using System;
;
Console.
.Write(
("Introduce el primer número");
);
primerNumero = Convert.
.ToInt32(
(Console.
.ReadLine());
());
Console.
.Write(
("Introduce el segundo número");
);
segundoNumero = Convert.
.ToInt32(
(Console.
.ReadLine());
());
suma = primerNumero + segundoNumero;
;
Console.
.WriteLine(
("La suma de {0} y {1} es {2}",
,
primerNumero,
, segundoNumero,
, suma);
);
}
}
Y ahora que conocemos los fundamentos, puede ser el momento de pasar a un editor de
texto un poco más avanzado. Por ejemplo, en Windows podemos usar Notepad++, que es
gratuito, destaca la sintaxis en colores, muestra la línea y columna en la que nos
encontramos, ayuda a encontrar las llaves emparejadas, realza la línea en la que nos
encontramos, tiene soporte para múltiples ventanas, etc.: