You are on page 1of 21

Tecnologías de la Información y Comunicación

Contenido
Variables y Tipos de Dato .............................................................................................................. 1 Reglas para un identificador o nombre de variable ........................ ¡Error! Marcador no definido. Clase Console. ............................................................................................................................... 2 Método para Mostrar Dato en Pantalla ...................................................................................... 2 Mostrar un mensaje y el valor de las variables ........................................................................... 3 Leer datos del Teclado ............................................................................................................... 3 Clase Convert ................................................................................................................................ 4 Sentencias de Control .................................................................................................................... 5 Sentencia if ................................................................................................................................ 5 Opción Múltiple o Expresiones Multivaluadas: switch ................................................................ 5 Sentencia While ......................................................................................................................... 6 Sentencia Instrucción do...while ................................................................................................ 7 Sentencia for.............................................................................................................................. 8 Creación de Clases ......................................................................................................................... 8 Namespace ................................................................................................................................ 8 Clases......................................................................................................................................... 9 Campos ...................................................................................................................................... 9 Métodos .................................................................................................................................. 10 Objeto ......................................................................................................................................... 12 Método Main............................................................................................................................... 13 Comentarios ................................................................................................................................ 15

1

Tecnologías de la Información y Comunicación

IDENTIFICADORES Y TIPOS DE DATO
VARIABLES O IDENTIFICADORES
Una variable puede verse simplemente como un hueco en el que se puede almacenar un objeto de un determinado tipo al que se le da un cierto nombre. Para poderla utilizar sólo hay que definirla indicando cual será su nombre y cuál será el tipo de datos que podrá almacenar, lo que se hace siguiendo la sintaxis: Tipo_ de_ Dato nombre_de_variable; Al igual que en cualquier lenguaje de programación, en C# un identificador no es más que, como su propio nombre indica, un nombre con el que identificaremos algún elemento de nuestro código, ya sea una clase, una variable, un método, etc. Las reglas son las siguientes: 1. 2. 3. 4. 5. Es sensible a mayúsculas. El primer carácter debe de empezar con letra o con el carácter subrayado _. No debe de llevar espacios. No debe de llevar caracteres especiales. No usar palabras reservadas.

Ejemplos: A //valido a //valido la variable (a) es diferente a la variable (A) var1 //valido 1var //No valido inicia con número _1var // valido Var1 real //no valido contiene un espacio while //no valida es palabra reservada. 23+321 //no valida contiene un carácter especial (+).

TIPOS DE DATOS
Los tipos de datos se puede decir que son como contenedores donde tú colocas valores, si tú deseas guardar caracteres (“ABC!”#”), no lo puedes guardar en un contenedor de números, tiene que ser en uno de caracteres. Pero si quieres guardar caracteres que son números (“45”), si podrás guardarlo en un contendor de numero pero antes tienes que hacer un conversión, esto lo veremos más adelante. 1

Esta es una de las clases principales en aplicaciones de Consola. num=53. Salida: Este es la primera parte Este es la segunda parte 2 .0×10-324 . Console. Contiene 3 de los principales Métodos: • • • Console. // Guarda un verdadero CLASE CONSOLE. ‘\uFFFF’] [5. // Guardar números con punto decimal carac='6'.483.483. Console.147. Console.Write(). false [‘\u0000’. char carac.648 .647] [1. bool log.34.3. Guardar datos en una variable: cad="aquí se guarda una cadena". float flotante.Tecnologías de la Información y Comunicación En seguida se muestra una tabla con los tipos de datos más comunes: Tipo de Dato string int float bool char double Bits Variable 32 32 1 16 64 Rango de Valores El permitido por la memoria [-2. MÉTODO PARA MOSTRAR DATO EN PANTALLA Console.Write("Este es la segunda parte").5×10-45 .147.1.ReadLine(). Console.WriteLine(Mensaje).Write( Mensaje). // Guardar un Carácter log=true. //Muestra un mensaje en pantalla y no salta de línea.Write("Este es la primera parte"). int num.7×10308] Ejemplos de declaración de variables: string cad. //Guardar números Enteros flotante =14. 2.4×1038] true.

WriteLine("Este es la segunda parte"). Console.WriteLine("El dato Entero es :"+ent). dato=12. // Este método devuelve una cadena 3 . Salida: El dato Flotante es: 12. Console. Salida: Este es la primera parte Este es la segunda parte MOSTRAR UN MENSAJE Y EL VALOR DE LAS VARIABLES float dato. Console.WriteLine("El dato Flotante es :"+dato). /* {0} = dato {1} = ent {2} = 65/23 */ Salida: El dato Flotante es: 12. Console. dato.34 El dato Entero es: 44 float dato. ent. ent=44.WriteLine("Este es la primera parte").34. int ent.ReadLine().WriteLine (“El dato Flotante es :{0} Dato Entero es:{1} Dato de no variable:{2}". y pulse la tecla ENTER. ent=44. Console. Console.34 Dato Entero es: 44 Dato de no variable: 2.34. dato=12.WriteLine(). que espera a que el usuario teclee algo.82 LEER DATOS DEL TECLADO Para ello utilizaremos el método ReadLine() de la clase Console.Tecnologías de la Información y Comunicación Console.65/23). //Muestra un mensaje en pantalla y salta de línea. int ent.

ToBool(variable) // Convierte a Boleano Convert. // Variable contiene el 45 num = Convert.ToInt32(variable) // Convierte a Entero de 32 bits Convert.ToDouble(variable) // Convierte a Double (flotante de 64 bits) Convert.ToChar(variable) // Convierte a Char Convert. Como son diferentes tipos se tiene que hacer los siguientes pasos: // num fue previamente declarado como un atributo entero string variable. // Convierte variable (string) en num (int) Otra forma de hacer esto sería la siguiente: // num fue previamente declarado como un atributo entero num = Convert. int entero.ToInt32(variable). Ahora queremos guardarlo el valor “45” en una Variable (Entera). Console.ToSingle(variable) // Convierte a float Convert. // Convierte variable (string) en num (int) CLASE CONVERT Esta clase sirve para convertir un tipo de dato a otro tipo de dato.ReadLine(). // Se ejecuta el método ReadLine() y regresa el valor “45” que se guarda en una variable. como son del mismo tipo no es necesario convertilo a ningún tipo. // Declaración de variable variable = Console.ReadLine().ToString(variable) // Convierte a Cadena Ejemplo: string st.ReadLine(). Mandamos llamar el método ReadlLine () para leer el Dato. st="45".ToInt32(Console. 4 .Tecnologías de la Información y Comunicación Ejemplo: Si queremos leer el dato “45” introducido por teclado. Por ejemplo una cadena a un entero en seguida se muestra algunos de los principales metodos: Convert.ReadLine()). todos estos metodos regresan el valor de tipo que se indique en el método. // Declaración de variable variable = Console. // este método lee el “45” pero no se guarda en ningún lado Ahora si queremos guardarlo el valor string (“45”) en una Variable string variable.

Tecnologías de la Información y Comunicación entero=Convert. } Ejemplo: int a=10. Sintaxis: If(<condición>) { <Sentencias1>. 5 .ToInt32(st). si no ejecuta las sentecias2. } else { <Sentencias2>. } Salida: 10 es Mayor a 5 OPCIÓN MÚLTIPLE O EXPRESIONES MULTIVALUADAS: SWITCH Nos permite decidir entre diferentes opciones (bloques de sentencias) a ejecutar según el valor de una expresión.WriteLine(a+" es Menor a "+b). //también puede ser de la siguiente forma entero=Convert. } else { Console. Si es verdadero ejecuta las sentencias1.ToInt32("45"). b=5.WriteLine(a+" es Mayor a "+b). SENTENCIAS DE CONTROL SENTENCIA IF El if evalua una expresión booleana (condición) y regresa un valor (verdadero o falso). if(a>b) { Console.

default: Console. . break. case <valor 2>: <Sentencias>. break. break.WriteLine("Opción 3"). break. case 2: Console. break. .WriteLine("Opción 2"). . Su sintaxis de uso es: while (<condición>) { <sentencias> } 6 . case 3: Console. break. switch (a) { case 1: Console.WriteLine("Opción 1"). default: <Sentencias>. } Salida: Opción 3 SENTENCIA WHILE La instrucción while permite ejecutar un bloque de sentencias mientras sea verdadera la condición. break. break. case <valor n>: <Sentencias>. a = 3.WriteLine("No seleccionaste ninguna"). } // El break se utiliza para terminar con el switch Ejemplo: int a.Tecnologías de la Información y Comunicación Sintaxis: switch ( <expresión> ) { case <valor 1>: <Sentencias>.

En realidad <sentencias> puede ser una única instrucción o un bloque de sentencias. Si es cierta (valor lógico true) se ejecutan las <sentencias> y se repite el proceso de evaluación de <condición> y ejecución de <sentencias> hasta que deje de serlo.while es una variante del while. // incrementa c de 1 en 1. i++.. } while (i < 5). while (c < 10) { Console.. con la única diferencia de que Do. } Salida: 0 1 2 3 4 5 6 7 8 9 SENTENCIA INSTRUCCIÓN DO. que ha de producir un valor lógico..while primero ejecuta las <sentencias> y luego mira la <condición> para ver si se ha de repetir la ejecución de las mismas. do.Tecnologías de la Información y Comunicación Su significado es el siguiente: Se evalúa la <condición> indicada. Salida: 0 1 2 3 4 7 . Ejemplo: int i = 0...Write(i + " "). Sintaxis: do { <sentencias> } while(<condición>).WHILE La instrucción do.. do { Console.. Cuando sea falsa (false) se pasará a ejecutar la instrucción siguiente al while.while respecto al de while es que en vez de evaluar primero la condición y ejecutar <sentencias> sólo si es cierta. c++. int c = 0..Write(c + " ").. La única diferencia del significado de do.while por lo menos se ejecuta una sola vez.

<condición>.Tecnologías de la Información y Comunicación SENTENCIA FOR La sentencia for es una variante de while que permite reducir el código necesario para escribir los tipos de bucles más comúnmente usados en programación. } El significado de esta instrucción es el siguiente: se ejecutan las sentencias de <inicialización>. Ejemplo: int c. } Salida: 0 1 2 3 4 5 6 7 8 9 CREACIÓN DE CLASES NAMESPACE Concepto de espacio de nombres del mismo modo que los ficheros se organizan en directorios.Write(c + " "). los tipos de datos se organizan en espacio de nombres. Por otro lado. los espacios de nombres también permiten poder usar en un mismo programa varias clases con igual nombre si pertenecen a espacios diferentes. mientras que si es cierta se ejecutan las <sentencias> indicadas. Sintaxis: for (<inicialización>. y si es falsa se continúa ejecutando por la instrucción siguiente al for.y luego se reevalúa <condición> repitiéndose el proceso hasta que ésta última deje de ser cierta. La idea es que cada fabricante defina sus tipos dentro de un espacio de nombres propio para que así no haya conflictos si varios fabricantes definen clases con el mismo nombre y se quieren usar a la vez en un mismo programa. c++) { Console. Se utiliza cuando se conoce el número de interacciones o cuando se requiere un contador. c < 10. for (c = 0. <modificación>) { <sentencias>. Luego se evalúa <condición>. namespace <nombreEspacio> 8 . luego se ejecutan las sentencias de <modificación> -que como su nombre indica suelen usarse para modificar los valores de variables que se usen en <sentencias>. que suelen usarse para definir e inicializar variables que luego se usarán en <sentencias>.

Por esta razón. Los campos de un objeto son a su vez objetos. class <nombreClase> { <atributos o campos> <métodos> } CAMPOS Un campo es un dato común a todos los objetos de una determinada clase. prívate y protected. Para definir cuáles son los campos de los que una clase dispone se usa la siguiente sintaxis dentro de la zona señalada como <atributos> en la definición de la misma: <encapsulamiento> <tipoDato> <nombreCampo>. private int edad. El nombre que demos al campo puede ser cualquier identificador que queramos siempre y cuando siga las reglas para la escritura de identificadores y no coincida con el nombre de ningún otro miembro previamente definido en la definición de clase. de cuáles son los datos y los métodos de los que van a disponer todos los objetos de ese tipo. Es decir. // métodos } 9 . y en <tipoDato> hemos de indicar cuál es el tipo de dato del objeto que vamos a crear. se suele decir que el tipo de dato de un objeto es la clase que define las características del mismo. protected char caracter. El <encapsulamiento> es el tipo de ocultamiento de los datos los principales son: public. Ejemplo: class datospersonales { // atributos o campos public string nombre.Tecnologías de la Información y Comunicación { <tipos o clases> } CLASES Una clase es la definición de las características concretas de un determinado tipo de objetos.

los métodos permiten manipular los datos almacenados en los objetos. siempre han de ser de los mismos tipos y han de seguir el orden establecido en <parametros>. por lo que como al principio del tema se indicó. Todo método puede devolver un objeto como resultado de la ejecución de las sentencias que lo forman. y el tipo de dato al que pertenece este objeto es lo que se indica en <tipoDatoDevuelto>. Ejemplos: <encapsulamiento> <tipoDatoDevuelto> <nombreMétodo> (<parametros>) public void mostraramigos (string nombreamigo. Aunque los objetos que puede recibir el método pueden ser diferentes cada vez que se solicite su ejecución.nombre=”Un Nombre”. Si no devuelve nada se indica void. Dentro de estas sentencias es posible acceder con total libertad a la información almacenada en los campos pertenecientes a la clase dentro de la que el método se ha definido. que indique qué objeto ha de devolverse.<campo> Ejemplo para un objeto llamado obj: obj. y si devuelve algo es obligatorio finalizar la ejecución de sus sentencias con alguna instrucción return <objeto>. prívate y protected. int edadamigo) class datospersonales { 10 .Tecnologías de la Información y Comunicación Para acceder a un campo de un determinado objeto se usa la sintaxis: <objeto>. La sintaxis que se usa en C# para definir los métodos es la siguiente: <encapsulamiento> <tipoDatoDevuelto> <nombreMétodo> (<parametros>) { <sentencias> } El <encapsulamiento> es el tipo de ocultamiento de los datos los principales son: public. En <parametros> se indica es cuáles son los tipos de dato de estos objetos y cuál es el nombre con el que harán referencia las instrucciones del método a cada uno de ellos. MÉTODOS Un método es un conjunto de sentencias a las que se les asocia un nombre de modo que si se desea ejecutarlas basta referenciarlas a través de dicho nombre en vez de tener que escribirlas.

private int edad. protected char caracter.Tecnologías de la Información y Comunicación //atributos o campos public string nombre. si el método no tomase parámetros se dejarían vacíos los parámetros en la llamada al mismo. Por ejemplo. // método que no regresa nada // este método regresa una cadena que se puede guardar en cualquier varible de tipo cadena 11 . O sea.Cumpleaños(). } // MEtodo que regresa un dato // método con parámetros de entrada public void mostraramigos(string nombreamigo. int edadamigo) { Console.WriteLine(nombreamigo + " de " + edadamigo + " años es amigo de " + nombre). para llamar al método Cumpleaños() de un objeto Persona llamado p se haría: p. } public string regresarnombre() { return nombre. sólo que ahora tras el nombre del método al que se desea llamar hay que indicar entre paréntesis cuáles son los valores que se desea dar a los parámetros del método al hacer la llamada. se escribe: <nombreobjeto>. // metodos public void Cumpleaños() // Incrementa en uno de la edad del clase { Edad++. } } La sintaxis usada para llamar a los métodos de un objeto es la misma que la usada para llamar a sus campos.<nombremétodo>(<parámetros>). Como es lógico.

Tecnologías de la Información y Comunicación string str. es decir tu puedes colocar o no el constructor. esto depende de las necesidades que tenga nuestra aplicación. Como new siempre devuelve una referencia a la dirección de memoria donde se cree el objeto y los constructores sólo pueden usarse como operandos de new. Salida: Joel de 20 años es amigo de Luis OBJETO Ahora que ya sabemos cómo definir las clases de objetos que podremos usar en nuestras aplicaciones ha llegado el momento de explicar cómo crear objetos de una determinada clase y la sintaxis es: <nombreClase> <nombreobjeto>= new <nombreClase>(<parametros>). str = p. pero si tu agregas un constructor con parámetros ya no podrás usar el constructor vacio al menos que lo agregues. no tiene sentido que un constructor devuelva objetos. devolviendo una referencia al objeto recién creado. Este operador crea un nuevo objeto del tipo cuyo nombre se le indica y llama durante su proceso de creación al constructor del mismo apropiado según los valores que se le pasen en <parametros>.regresanombre().20). El constructor de un objeto no es más que un método definido en la definición de su tipo que tiene el mismo nombre que la clase a la que pertenece el objeto y no tiene valor de retorno. sino una referencia a la dirección de memoria dinámica donde en realidad se ha creado. // este metodo regresa una cadena y la guarda en str // Este método tiene parámetros de entrada p.mostraramigo(“Joel”. por lo que no tiene sentido incluir en su definición un campo <tipoDevuelto> y el compilador considera erróneo hacerlo (aunque se indique void) Ejemplo utilizando la clase anterior: datospersonales dat = new datospersonales(). // Crear un objeto de la clase datos Una clase puede contener n constructores. Las clases toman como default un constructor vacio. Hay que resaltar el hecho de que new no devuelve el propio objeto creado. 12 .

Datospersonales ob=new Datospersonales(“Nombre”. 13 . Nota: Nunca Borrar este método. pero si puede tener parámetros de entrada. por tal motivo no se coloca ningún TipoDatoDevuelto como en los métodos. es el primer método que busca la aplicación para ejecutar solo puede existir uno en un proyecto. La sintaxis es la siguiente: static void Main(string[] args) { Sentencias.Tecnologías de la Información y Comunicación Un constructor no regresa ningún dato. además del método Main. MÉTODO MAIN Main es el método principal. int d2.23). Se puede crear una clase que solo contenga este método. objeto d3 ) // Constructor con parametros { } // métodos } Creamos un objeto que se llama ob: Datospersonales ob=new Datospersonales(). Sintaxis: class <nombreclase> { //atributos o campos public nombreclase () // Constructor Vacio { } public nombreclase (string d1. o puede estar dentro de una clase que contenga atributos y otros métodos.

Tecnologías de la Información y Comunicación } 14 .

public void Cumpleaños() // Incrementa en uno de la edad del clase { Edad++. } */ 15 . Ejemplo: // Este es un comentario sin código public nombreclase () // Constructor Vacio La otra forma es en bloques inicia con /* y termina con */ todo lo que coloquemos en estos símbolos serán comentarios.Tecnologías de la Información y Comunicación COMENTARIOS Para escribir comentarios en una aplicación existen dos formas un es para colocar comentarios en una línea y la otra forma es colocar comentarios en bloques. } public string regresarnombre() // MEtodo que regresa un dato { return nombre. es decir aunque tenga código si esta dentro de estos símbolos serán comentarios. Para colocar comentarios en una sola línea se utiliza // esto puede ir al inicio de una línea sin código o puede ir al final de una sentencia. /* Este es un bloque de comentario sin código Esta es otra línea con comentarios */ /* Es es un ejemplo de codigo como comentario la apliación no toma en cuenta este código.

Tenemos la clase Program.Para crear otro archivo con otra clase nos vamos al siguiente menú Proyecto-Agregar Clase y le damos un nombre a nuestra clase 16 .Creamos un proyecto de tipo Consola. aquí es donde inicia nuestra aplicación.. seleccionamos aplicación de consola y le damos un nombre al proyecto y seleccionamos la ubicación del proyecto dándole clic en el botón Examinar. 2.. Damos clic en el menú Archivo-Nuevo-Proyecto.Tecnologías de la Información y Comunicación Vamos a crear un ejemplo aplicando todo lo que se vio en este documento: 1. esta clase que contiene el método principal Main.

Escribimos el código en nuestra clase datos using System.Text.. namespace datospersonales { class datos { //atributos o campos public string nombre.Tecnologías de la Información y Comunicación Y aparece un archivo que contiene la nueva clase. 17 . using System.Generic. 3.Collections. using System.

namespace datospersonales { 18 . } public datos(string nom. nombre = Console.Text. using System. edad= Convert.Generic. } // Metodo que regresa un dato // Incrementa en uno de la edad del // método con parámetros de entrada public void mostraramigos(string nombreamigo. } } } 4. Console.WriteLine(nombre + " cumplio años ahora tiene " + edad + " años"). Console. } public void Cumpleaños() clase { edad++.int ed) { nombre = nom.ReadLine().Tecnologías de la Información y Comunicación private int edad.WriteLine(nombreamigo + " de " + edadamigo + " años es amigo de " + nombre).Collections.ToInt32( Console.Agregar el siguiente Código en la clase Program using System.. using System.Write("Dame tu Edad:"). edad = ed.ReadLine() ). // Constructores public datos() { edad = 1.Write("Dame tu nombre:"). } public string regresarnombre() { return nombre. int edadamigo) { Console. } // metodos // datos para leer datos public void leerdatos() clase { // Incrementa en uno de la edad del Console.

16).regresarnombre()).WriteLine(). // Mandamos llamar el metodo Cumpleaños /* Mandamos llamar el metodo mostraramigos el cual pide dos * parametros de entrada una cadena y un entero * */ dat. Console.WriteLine(). datos alin = new datos("alin".Tecnologías de la Información y Comunicación class Program { static void Main(string[] args) { datos dat = new datos().WriteLine("El metodo Regresarnombre Regreso: " + alin. // Mandar llamar el metodo leerdatos() // Mandamos llamar el metodo regresarnombre y dos devuelve un dat tipo cadena Console. Console.WriteLine().WriteLine(). Console.ReadLine().mostraramigos("Jesus". Console. alin. Console. 16).Cumpleaños().mostraramigos("Jesus".regresarnombre()). // Crear un objeto de la clase datos dat.Cumpleaños(). // Mandamos llamar el metodo Cumpleaños alin.leerdatos(). // Mandamos llamar el metodo Cumpleaños uriel. Console.mostraramigos("Jesus".WriteLine(). Console.Cumpleaños(). } } } Salida de la aplicación: 19 . datos uriel = new datos("Uriel".WriteLine(). 19). 19). 16). uriel.WriteLine("El metodo Regresarnombre Regreso: " + dat. dat. Console.

Tecnologías de la Información y Comunicación 20 .