SESION 4 PROGRAMACIN SESION 3 OPERADORES 1 Comentarios

  • Slides: 29
Download presentation
SESION 4 PROGRAMACIÓN

SESION 4 PROGRAMACIÓN

SESION 3: OPERADORES 1 • Comentarios /* */ // /// La guía de estilo

SESION 3: OPERADORES 1 • Comentarios /* */ // /// La guía de estilo de UA determina que: • No se debe escribir comentario para cada línea de código o variable declarada. • Solo se escriben comentarios cuando hacen falta • Un código bien escrito y legible requiere de pocos comentarios =>> con nombres de variables y métodos legibles. • Un código complejo o extraño llevará suficientes comentarios. • Una inicialización de una variable numérica con un valor especial (dtto de 0, -1) necesita de una razón. • Cuida la ortografía, gramática y puntuación. Septiembre 2010

SESION 3: OPERADORES 2 • Identificadores • No pueden empezar con números • No

SESION 3: OPERADORES 2 • Identificadores • No pueden empezar con números • No deben llevar caracteres especiales (ñ, ç, ~, etc) La guía de estilo de UA determina que: • Los identificadores deben legibles y deben ser consecuentes con lo que identifica. Por ello se evitarán diminutivos del tipo id, var. Num, etc. Septiembre 2010

SESION 3: OPERADORES 3 Septiembre 2010

SESION 3: OPERADORES 3 Septiembre 2010

SESION 3: OPERADORES 4 Operaciones lógicas: "and" (&& y &), "or" (|| y |),

SESION 3: OPERADORES 4 Operaciones lógicas: "and" (&& y &), "or" (|| y |), "not" (!) y "xor" (^) Operaciones relacionales: igualdad (==), desigualdad (!=), "mayor que" (>), "menor que" (<), "mayor o igual que" (>=) y "menor o igual que" (<=) Operaciones de asignación: temperatura = temperatura + 1; temperatura += 1; temperatura++; Septiembre 2010

SESION 3: OPERADORES 5 Operaciones de asignación: temperatura = temperatura ++; temperatura = ++temperatura;

SESION 3: OPERADORES 5 Operaciones de asignación: temperatura = temperatura ++; temperatura = ++temperatura; Operador condicional b = (a>0)? a : 0; Operaciones de conversión (cast) i = (int) l; // Asignamos a i el resultado de convertir el valor de l a tipo int Septiembre 2010

SESION 3: OPERADORES 6 Operadores de string Evitar usar + String. Builder s. Sql

SESION 3: OPERADORES 6 Operadores de string Evitar usar + String. Builder s. Sql = new String. Builder("SELECT nombre, apellidos"); s. Sql. Append(" , (select cosas from cosas_importantes"); s. Sql. Append(" where cosas_importantes. dni = personas. dni) "); s. Sql. Append(" FROM personas "); Response. Write (s. Sql); Septiembre 2010

SESION 3: OPERADORES 7 Septiembre 2010

SESION 3: OPERADORES 7 Septiembre 2010

SESION 3: CONVERSIÓN TIPOS Tipo numérico Método decimal To. Decimal(String) float To. Single(String) double

SESION 3: CONVERSIÓN TIPOS Tipo numérico Método decimal To. Decimal(String) float To. Single(String) double To. Double(String) short To. Int 16(String) long To. Int 64(String) ushort To. UInt 16(String) uint To. UInt 32(String) ulong To. UInt 64(String) int num. Val = Convert. To. Int 32("29"); num. Val++; Console. Write. Line(num. Val); // Output: 30 Septiembre 2010

SESION 3: CONVERSIÓN 2 int num. Val = Int 32. Parse("-105"); Console. Write. Line(num.

SESION 3: CONVERSIÓN 2 int num. Val = Int 32. Parse("-105"); Console. Write. Line(num. Val); // Output: -105 string input. String = "abc"; int num. Value; bool parsed = Int 32. Try. Parse(input. String, out num. Value); if (!parsed) Console. Write. Line(“error!!”); // Output: Error!! Septiembre 2010

SESION 3: EJERCICIO 1 Ejercicio 1: A partir de una caja de texto y

SESION 3: EJERCICIO 1 Ejercicio 1: A partir de una caja de texto y un botón de confirmar sacar un mensaje en pantalla que determine si el dato que se introdujo es: - Un número positivo o negativo - Un número par o impar - Un número con decimales o sin ellos. - Una fecha - Un texto Septiembre 2010

SESION 3: CLASES 1 class Persona { private string _nombre; // Campo de cada

SESION 3: CLASES 1 class Persona { private string _nombre; // Campo de cada objeto Persona almacena nombre private int _edad; // Campo de cada objeto Persona almacena edad //Método que incrementa en uno la edad del objeto Persona void Cumpleaños() { _edad++; } } Septiembre 2010

SESION 3: CLASES 2 Según la guía de estilo del CPD de UA se

SESION 3: CLASES 2 Según la guía de estilo del CPD de UA se requiere que el nombre de la clase siga una notación Pascal (ej: Hola. Mundo, Taxi). Para indentar se usa TAB y no los espacios. Las llaves deben estar en el mismo nivel que el código fuera de las llaves. Se debe usar una línea en blanco para separar los grupos lógicos de código. Septiembre 2010

SESION 3: CLASES 3 Según la se requiere que el nombre de las variables,

SESION 3: CLASES 3 Según la se requiere que el nombre de las variables, campos y parámetros siga una notación Camel (ej: hola. Mundo, taxi). Evitar los subrayados. Usar palabras significativas para nombrar las variables: * No usar abreviaciones * No usar nombres de un solo carácter Una excepción es el caso de las variables que se utilizan para bucles: for ( int i = 0; i < count; i++ ) Septiembre 2010

SESION 3: CLASES 4 Un campo debe ser privado si seguimos las buenas prácticas

SESION 3: CLASES 4 Un campo debe ser privado si seguimos las buenas prácticas de programación. En este caso: Notación Camel con un subrayado al principio del nombre private int _record. Id ; Septiembre 2010

SESION 3: CLASES 5 constructor class Persona { private string _nombre; // Campo de

SESION 3: CLASES 5 constructor class Persona { private string _nombre; // Campo de cada objeto Persona almacena nombre private int _edad; // Campo de cada objeto Persona almacena edad Persona per. Jose; // per. Jose= Constructor new Persona("José", 22); Public Persona (string nombre, int edad) { this. _nombre = nombre; this. _edad = edad; } // Incrementa en uno la edad del objeto Persona void Cumpleaños() { _edad++; } } Septiembre 2010

SESION 3: CLASES 6 Una misma clase pueden definirse varios métodos con el mismo

SESION 3: CLASES 6 Una misma clase pueden definirse varios métodos con el mismo nombre siempre y cuando tomen diferente número o tipo de parámetros. A esto se le conoce como sobrecargar de métodos Septiembre 2010

SESION 3: EJERCICIO 2 Septiembre 2010

SESION 3: EJERCICIO 2 Septiembre 2010

SESION 3: CLASES 7 Dentro del código de cualquier método de un objeto siempre

SESION 3: CLASES 7 Dentro del código de cualquier método de un objeto siempre es posible hacer referencia al propio objeto usando la palabra reservada this. private string _nombre; // almacena su nombre private int _edad; // almacena su edad Public Persona (string nombre, int edad) { this. _nombre = nombre; this. _edad = edad; } Septiembre 2010

SESION 3: CLASES 8 PROPIEDADES class Time. Period { private double _seconds; public double

SESION 3: CLASES 8 PROPIEDADES class Time. Period { private double _seconds; public double hours { get { return _seconds / 3600; } set { _seconds = value * 3600; } } } Septiembre 2010

SESION 3: EJERCICIO 3 A partir de 2 cajas de texto: nombre y fecha

SESION 3: EJERCICIO 3 A partir de 2 cajas de texto: nombre y fecha nacimiento, un botón de confirmación y una etiqueta resultado resuelve el siguiente problema: 1. Crea una clase que tenga 3 campos: Nombre, fecha nacimiento y que será tipo Label. salida 2. Crea 4 propiedades: a. Propiedad nombre. b. Propiedad fecha nacimiento. c. Propiedad. Valor por defecto -1. d. Propiedad label llamada salida. Será un control. 3. Crea un método que escriba en un control label de la página aspx este texto: El alumno NOMBRE tiene EDAD años. Septiembre 2010

SESION 3: ARRAYS 3 Tipos: Unidimensionales: <tipo. Datos>[] <nombre. Array>; int[] array = new

SESION 3: ARRAYS 3 Tipos: Unidimensionales: <tipo. Datos>[] <nombre. Array>; int[] array = new int[100]; int[] tabla = new int[] {5, 1, 4, 0}; int[] tabla = {5, 1, 4, 0}; Dentados: int[][] Array. Dentado = {new int[] {1, 2}, new int[] {3, 4, 5}}; Septiembre 2010

SESION 3: ARRAYS 2 3 Tipos: Multidimentsionales: int[, ] array. Multidimensional = new int[3,

SESION 3: ARRAYS 2 3 Tipos: Multidimentsionales: int[, ] array. Multidimensional = new int[3, 4] Septiembre 2010

SESION 3: PARÁMETROS Objeto. Parametro. Ref(in Valor); public void Parametro. Ref( in int Ref.

SESION 3: PARÁMETROS Objeto. Parametro. Ref(in Valor); public void Parametro. Ref( in int Ref. Parametro ){ }; Septiembre 2010

SESION 3: PARÁMETROS 2 Septiembre 2010

SESION 3: PARÁMETROS 2 Septiembre 2010

SESION 3: PARÁMETROS 3 Septiembre 2010

SESION 3: PARÁMETROS 3 Septiembre 2010

SESION 3: INSTRUCCIONES Condicionales: if (<condición>) <instrucciones. If> else <instrucciones. Else> switch (<expresión>) {

SESION 3: INSTRUCCIONES Condicionales: if (<condición>) <instrucciones. If> else <instrucciones. Else> switch (<expresión>) { goto case <valori>; goto default; break; case <valor 1>: <bloque 1><siguiente. Acción> case <valor 2>: <bloque 2><siguiente. Acción>. . . default: <bloque. Default> <siguiente. Acción> } Septiembre 2010

SESION 3: INSTRUCCIONES 2 Iterativas: while (<condición>) <instrucciones> do <instrucciones> while (<condición>); for (<inicialización>;

SESION 3: INSTRUCCIONES 2 Iterativas: while (<condición>) <instrucciones> do <instrucciones> while (<condición>); for (<inicialización>; <condición>; <modificación>) <instruc> break; Continue; foreach (<tipo. Element> <element> in <colección>) <instruc> Septiembre 2010

SESION 3: EJERCICIO 3 Saca por pantalla la relación de los controles que pones

SESION 3: EJERCICIO 3 Saca por pantalla la relación de los controles que pones en el formulario. Page. Find. Control("nombre. Formulario"). Controls De los controles que salen selecciona los que son “Label” con Skin. Id = Obl y concatena al final un “*”. Según el ejemplo sería “Nombre *”. De los controles que salen añade un “Required. Field. Validator” a los textbox marcados con Skin. Id = Obl. Septiembre 2010