2-resumen del lenguaje

36
 Programación Visual I Programación Visual I Ingeniería en Telemática Ing. Julio César González Moreno Ing. Julio César González Moreno [email protected] Universidad Nacional Autónoma de Nicaragua León, Nicaragua Pre-requisito: Programación Orientada a Objetos Créditos: 4 Semestre: 6to Tema 2: Resumen del lenguaje

Upload: omaraly-sanchez-macareno

Post on 15-Dec-2015

221 views

Category:

Documents


1 download

DESCRIPTION

lenguaje

TRANSCRIPT

Page 1: 2-Resumen Del Lenguaje

  

Programación Visual IProgramación Visual IIngeniería en Telemática

Ing. Julio César González MorenoIng. Julio César González [email protected]

Universidad Nacional Autónoma de NicaraguaLeón, Nicaragua

Pre-requisito: Programación Orientada a ObjetosCréditos: 4Semestre: 6to

Tema 2: Resumen del lenguaje

Page 2: 2-Resumen Del Lenguaje

  

Contenidos

Comentarios

Tipos

Conversión entre tipos

Identificadores

Palabras reservadas

Declaración de constantes simbólicas

Declaración de variables

Sentencias

Arreglos o arrays

Caracteres y cadenas

Sentencias de control

Estructura de un programa C#

Bibliografía

2 / 36Programación Visual IIngeniería en Telemática

Page 3: 2-Resumen Del Lenguaje

  

Comentarios

Tipos de comentarios:

De una solo línea (como en C), no se realiza acción alguna con una línea de este tipo

Ejemplo:

//Esto es un comentario

De una o más líneas

Ejemplo:

/*Estas líneas de código también son consideradas como comentarios*/

3 / 36Programación Visual IIngeniería en Telemática

Page 4: 2-Resumen Del Lenguaje

  

Tipos (I)

Tipos en C# se clasifican en:

Tipos valor

Almacena directamente un valor (un dato)

Ejemplo: int suma = 0;

Tipos referencia

Almacena una referencia a un objeto (posición de memoria donde está el objeto)

Ejemplo: string cadena = null;

Todos los tipos de datos derivan de System.Object

Cualquier tipo puede ser tratado como un objeto

4 / 36Programación Visual IIngeniería en Telemática

Page 5: 2-Resumen Del Lenguaje

  

Tipos (II)

Tipos en C# se clasifican en:

Tipos valor

Pueden ser inicializados al declararse

Ejemplo: bool bRetorno = true;

Tipos referencia

Los valores de referencia son creados con la palabra reservada new

Ejemplo: frmMensaje = new frmMensaje(this);

5 / 36Programación Visual IIngeniería en Telemática

Page 6: 2-Resumen Del Lenguaje

  

Tipos (III)

6 / 36Programación Visual IIngeniería en Telemática

Page 7: 2-Resumen Del Lenguaje

  

Conversión entre tipos

Conversión implícita

Es automática

Es siempre exitosa

No se pierde información en la conversión

Conversión explícita

Obliga a la realización de un conversión cast

Puede no tener éxito

Puede perderse información en la conversión

Ejemplos:

int iValor = 123;

long lValor = iValor; //Implícita de int a long

IntValor = (int) lValor; //Explícita de long a int

7 / 36Programación Visual IIngeniería en Telemática

Page 8: 2-Resumen Del Lenguaje

  

Identificadores

Se usan para dar nombres a los elementos de un programa como variables, constantes, clases, interfaces, métodos, espacios de nombres, etc.

La sintaxis para formar un identificador es la siguiente:

{letra|_}[{letra|digito|_}]...

Hay diferencia entre mayúsculas y minúsculas

Pueden estar formados hasta por 1023 caracteres

8 / 36Programación Visual IIngeniería en Telemática

Page 9: 2-Resumen Del Lenguaje

  

Palabras reservadas

Conjunto de identificadores predefinidos que tienen un significado especial para el compilador

Las palabras reservadas deben escribirse siempre en minúsculas

Palabras reservadas: public, null, static, string, void, new, while, etc.

Un identificador definido por el programador no debe tener el mismo nombre de un identificador predefinido (palabra reservada)

Ejemplo: int public = 0; //Error

Para definir un identificador con el mismo nombre de un identificador predefinido (palabra reservada) se debe usar el carácter @ como carácter de escape

Ejemplo: int @public = 0; //@ previene el conflicto con public

9 / 36Programación Visual IIngeniería en Telemática

Page 10: 2-Resumen Del Lenguaje

  

Declaración de constantes simbólicas

Declarar una constante simbólica significa decirle al compilador el nombre de la constante y su valor

Esto se hace utilizando la palabra reservada const

Sintaxis:

const tipo <identificador> = <valor>

Ejemplo:

const double PI = 3.141592;

10 / 36Programación Visual IIngeniería en Telemática

Page 11: 2-Resumen Del Lenguaje

  

Declaración de variables (I)

public class cElementos

{

private int dia, mes, anyo = 2011;

public void Test(string strNombre)

{

int contador = 0;

string nombre = “”, apellidos = “”;

dia = 20;

apellidos = “Morales”;

nombre = strNombre;

}

}

Dependiendo de donde se declare, su uso estará limitado a la clase o al método

El espacio del programa al que queda limitado una variable se denomina ámbito de esa variable

11 / 36Programación Visual IIngeniería en Telemática

Declaración de variable a nivel de clase (atributo)

Declaración de variable a nivel de método

Page 12: 2-Resumen Del Lenguaje

  

Declaración de variables (II)

La visibilidad de una variable fuera de su ámbito se puede modificar anteponiendo el especificador de acceso public o private en la declaración

Las variables declaradas a nivel de clase

Existen en todos los ámbitos dentro de la clase (variables globales)

Por defecto son iniciadas por el compilador

Variables numéricas a 0, caracteres a '\0', referencias a null

También pueden ser iniciadas explícitamente

Las variables declaradas a nivel de método

Existen únicamente dentro del ámbito del propio método

No son iniciadas por el compilador

Es nuestra obligación iniciarlas

12 / 36Programación Visual IIngeniería en Telemática

Page 13: 2-Resumen Del Lenguaje

  

Sentencias

Pueden formarse a partir de:

Una palabra reservada (for, while, if, etc.)

Expresiones

Declaraciones

Llamadas a métodos

Para escribirlas hay que tener en cuenta las siguientes consideraciones:

Toda sentencia simple termina con punto y coma (;)

Dos o más sentencias pueden aparecer sobre una misma línea, separadas una de la otra por un punto y coma

Una sentencia nula empieza y termina con un punto y coma

13 / 36Programación Visual IIngeniería en Telemática

Page 14: 2-Resumen Del Lenguaje

  

Arreglos o arrays (I)

Los arrays son tipos por referencia

Sus índices comienzan en 0

Derivados de System.Array

Ejemplo: string[] a;

El tipo de datos viene dado por string[], el nombre del array es una referencia al array

Para crear espacio para los elementos es necesario usar:

string[] a = new string[100];

Los arrays se pueden inicializar directamente:

string[] animales = {"gato", "perro", "caballo"};

int[] a2 = {1, 2, 3};

14 / 36Programación Visual IIngeniería en Telemática

Page 15: 2-Resumen Del Lenguaje

  

Arreglos o arrays (II)

Información sobre un array:

Dimensiones: Rank

Número de elementos: GetLength()

Saber si es un array:

if (a is Array)

System.Console.WriteLine(“Array”);

Recorrer los elementos de un array sin conocer sus índices:

string[] animales = {"gato", "perro", "caballo"};

foreach (string a in animales)

System.Console.WriteLine(a);

15 / 36Programación Visual IIngeniería en Telemática

Page 16: 2-Resumen Del Lenguaje

  

Caracteres y cadenas

Existen dos tipos para manipular caracteres: char y string

char puede contener cualquier carácter Unicode (16 bits)

Manipulación de caracteres: IsDigit(), IsLetter(), IsPunctuation(), ToUpper(), ToLower(), ToString(), etc.

Una variable de tipo string es una referencia al lugar donde se guarda la cadena

Cada vez que se modifica el valor de la cadena se asigna un nuevo bloque de memoria y se libera el anterior

Concatenación: operador + o usar el método Concat()

string a, b;

a = "Visual";

b = " studio";

Console.WriteLine(“Concatenación con +: ", a + b);

Console.WriteLine("Concatenación con Concat(): ", string.Concat(a, b));

16 / 36Programación Visual IIngeniería en Telemática

Page 17: 2-Resumen Del Lenguaje

  

Sentencias de control (I)

Permiten tomar decisiones y realizar un proceso repetidas veces

C# dispone de las siguientes sentencias de control:

if ... else

switch

while

do ... while

for

foreach

try ... catch

17 / 36Programación Visual IIngeniería en Telemática

Page 18: 2-Resumen Del Lenguaje

  

if (<condición>)

<sentenciasCondTrue>

if (<condición>)

{

<sentenciasCondTrue>

[else

{

<sentenciasCondFalse>

}]

18 / 36Programación Visual IIngeniería en Telemática

Ejemplo:

if (a>b)Mayor=a;

if (a>b){

Mayor=a;Menor=b;

}else{

Mayor=b;Menor=a;

}

Sentencias de control (II)Sentencia if

Page 19: 2-Resumen Del Lenguaje

  

switch (<expressión>)

{

case Opc1 :

[<sentencias-1>]

break;

[case Opc2 :

[<sentencias-2>]

break;

...

default:

<sentencias-def>

break;]

}

19 / 36Programación Visual IIngeniería en Telemática

Ejemplo:

switch(B)

{

case 5:

Console.WriteLine(“B es óptimo);

A=10;

break;

case 1:

case 2:

case 3:

case 4:

Console.WriteLine(“B debajo del valor óptimo);

A=3;

break;

default:

Console.WriteLine(“B no es válido);

break;

}

Sentencias de control (III)Sentencia switch

Page 20: 2-Resumen Del Lenguaje

  

while ejecuta instrucciones en función de un valor booleano

Evalúa la expresión booleana al principio del bucle

20 / 36Programación Visual IIngeniería en Telemática

while (true){

//...}

int i = 10;

while (i > 5){

//...i--;

}int i = 0;

while (i < 10){

Console.WriteLine(i);i++;

}

Sentencias de control (IV)Sentencia while

Page 21: 2-Resumen Del Lenguaje

  

do ejecuta instrucciones en función de un valor booleano

Evalúa la expresión booleana al final del bucle

21 / 36Programación Visual IIngeniería en Telemática

do {//...

} while (true);

int i = 10;

do {//...i--;

} while (i > 5);

int i = 0;

do {Console.WriteLine(i);i++;

} while (i <= 10);

Sentencias de control (V)Sentencia do ... while

Page 22: 2-Resumen Del Lenguaje

  

for (int i = 0; i < 5; i++) { //Variable i declarada dentro del bucle

System.Console.WriteLine(i);

}

//Bucle infinito

for (;;) {

//...

}

for (int i = 1, j = 2; i <= 5; i++, j += 2) { //Múltiples expresiones

System.Console.WriteLine("i = " + i + ", j = " + j);

}

22 / 36Programación Visual IIngeniería en Telemática

Sentencias de control (VI)Sentencia for

Page 23: 2-Resumen Del Lenguaje

  

Ejecuta instrucciones para cada elemento de una colección

public void mostrarColores(string[] colores)

{

foreach (string s in colores)

{

//Muestra los elementos de la colección colores una por una

System.Console.WriteLine(s);

}

}

23 / 36Programación Visual IIngeniería en Telemática

Sentencias de control (VII)Sentencia foreach

Page 24: 2-Resumen Del Lenguaje

  

Se utilizan para manejar las excepciones que se producen durante la ejecución del programa

Las excepciones son un mecanismo que permite controlar situaciones de error

Todas las excepciones derivan de la clase System.Exception

24 / 36Programación Visual IIngeniería en Telemática

Sentencias de control (VIII)Sentencias try ... catch (I)

Page 25: 2-Resumen Del Lenguaje

  

Tratamiento de excepciones:

try {

// bloque normal de código

//...

}

catch {

// bloque que controla la excepción

//...

}

[ finally

{

// bloque de finalización que siempre se ejecuta

//...

}]

25 / 36Programación Visual IIngeniería en Telemática

Ejemplo:

try {Console.WriteLine("Escriba un número");int i = int.Parse(Console.ReadLine());

}catch (OverflowException capturada){

Console.WriteLine(capturada);}

Sentencias de control (IX)Sentencias try ... catch (II)

Page 26: 2-Resumen Del Lenguaje

  

Estructura de un programa C# (I)

Un programa C# se compone solamente de objetos

Un programa en C# contiene:

Uno o más ficheros que contienen:

Uno o más espacios de nombres que contienen:

– Tipos de datos: clases, estructuras, interfaces, enumeraciones y delegados

Si no se declara un namespace se asume el global por defecto

Para acceder a un tipo podemos usar un camino absoluto:

System.Console.WriteLine(“Hola mundo”);

o relativo:

using System;

Console.WriteLine(“Hola mundo”);

26 / 36Programación Visual IIngeniería en Telemática

Page 27: 2-Resumen Del Lenguaje

  

Estructura de un programa C# (II)Esqueleto mínimo aplicación gráfica C#

27 / 36Programación Visual IIngeniería en Telemática

using System;using System.Drawing;using System.Windows.Forms;

public class frmAcercaDe : Form {private PictureBox logoPictureBox;private Label labelProductName;private Button okButton;

public frmAcercaDe() {InitializeComponent();

}

public string labelProductName {get {

return this.labelProductName.Text;}set {

labelProductName.Text = value;}

}

private void okButton_Click(object sender, EventArgs e) {

MessageBox.Show(“Programación Visual I”);}

}

Espacios de nombre

Declaración de la clase, derivada de Form

Atributos miembros de la clase

Constructor de la clase

Métodos

Propiedades

Page 28: 2-Resumen Del Lenguaje

  

Una clase (class) es la representación simbólica de un objeto

Visto desde el lenguaje:

Se trata de un nuevo tipo de objetos definido por el programador (tipo referencia)

Visto desde el código fuente:

Se trata de un módulo de código escrito en C# almacenado en un fichero .cs

Sintaxis:

[internal | public | private | protected]

class <nombre_clase>

{

//Atributos, propiedades y métodos de la clase

}

28 / 36Programación Visual IIngeniería en Telemática

Estructura de un programa C# (III)Clases (I)

Page 29: 2-Resumen Del Lenguaje

  

Las palabras reservadas internal, public, private y protected definen el nivel de protección de una clase

Determinan la relación que guarda esa clase con otras de otros proyectos

Una clase declarada con el nivel de protección:

internal: solo puede ser utilizada por clases de un mismo proyecto (nivel por default)

public: puede ser utilizada por cualquier otra clase de otro proyecto

private: es accesible solamente desde dentro de su contexto de declaración

protected: es accesible solamente desde dentro de su propia declaración o desde una clase derivada

29 / 36Programación Visual IIngeniería en Telemática

Estructura de un programa C# (IV)Clases (II)

Page 30: 2-Resumen Del Lenguaje

  

Definen un ámbito

Proporciona una forma de crear tipos globalmente únicos

Permiten agrupar las clases en tipos, denominados genéricamente espacios de nombres, en función de la labor que desempeñen

Algunos espacios de nombre:

30 / 36Programación Visual IIngeniería en Telemática

Estructura de un programa C# (V)Espacios de nombre

IO predeterminado

Windows UI Otros espacios

Forms Net

Web

System

Page 31: 2-Resumen Del Lenguaje

  

Para crear un espacio de nombre se utiliza la palabra reservada namespace

Ejemplo:

Creación del espacio de nombres System que empaqueta las clases A y B y el espacio de nombres Windows, que a su vez empaqueta al espacio Forms que incluye las clases C y D

31 / 36Programación Visual IIngeniería en Telemática

Estructura de un programa C# (VI)Crear un espacio de nombre

namespace System{

class A { }class B { }namespace Windows{

namespace Forms{

class C { }class D { }

}}

}

Page 32: 2-Resumen Del Lenguaje

  

Acceso a una clase dentro de un espacio de nombres:

Utilizando su nombre completo

System.Console

– Referencia a la clase Console del espacio de nombres System

System.Windows.Forms.Button

– Referencia a la clase Button del espacio de nombres System.Windows.Forms

Indicando el espacio de nombres donde está la clase (explícitamente)

Se utiliza la palabra reservada using al principio del código

Para referirse a la clase únicamente se emplea su nombre

using System;

public class CapGrados

{

//...

Console.WriteLine(“Probando...”);

//...

}

32 / 36Programación Visual IIngeniería en Telemática

Estructura de un programa C# (VII)Acceder a un espacio de nombre

Page 33: 2-Resumen Del Lenguaje

  

public class hogar

{

//...

public int gastoComida(double dPrecioComida)

{

//...

return <valorEntero>;

}

//...

}

Colección de sentencias que ejecutan una tara específica

Siempre pertenecen a una clase

La definición de un método no puede contener la definición de otro método

No se permiten métodos anidados

33 / 36Programación Visual IIngeniería en Telemática

Estructura de un programa C# (VIII)Métodos (I)

Page 34: 2-Resumen Del Lenguaje

  

Los métodos, por defecto, son privados (private)

Ejemplo:

using System;

public class EjemploClase

{

void EjemploMetodo( )

{

Console.WriteLine("Este es un ejemplo de un método");

}

}

34 / 36Programación Visual IIngeniería en Telemática

Estructura de un programa C# (IX)Métodos (II)

Page 35: 2-Resumen Del Lenguaje

  

Una vez que se ha definido un método, se puede:

Llamar al método desde la misma clase en la que fue declarado

Se usa el nombre del método seguido de una lista de parámetros entre paréntesis

Llamar a un método que está en una clase diferente

Determinar la clase que contiene el método

Crear un objeto de dicha clase (cuando sea necesario)

Invocar al método por su nombre seguido de una lista de parámetros entre paréntesis

El método llamado se debe declarar con el especificador de acceso public o protected

35 / 36Programación Visual IIngeniería en Telemática

Estructura de un programa C# (X)Métodos (III)

Page 36: 2-Resumen Del Lenguaje

  

Bibliografía

C#. Curso de Programación

Fco. Javier Ceballos Sierra

RA-MA

Enciclopedia de Microsoft Visual C#, 2da edición

Fco. Javier Ceballos Sierra

RA-MA

Capítulo 3, página 38

36 / 36Programación Visual IIngeniería en Telemática