Professional Documents
Culture Documents
PROGRAMACIN II
M.C.C. GLORIA EKATERINE PERALTA PEUURI
Actividades de Aprendizaje
Discusin guiada referente al uso de los lenguajes de programacin en la solucin de problemas mediante la computadora. Exploracin de campo que permita identificar los principales lenguajes de programacin utilizados por las compaas desarrolladoras de software en el Estado. Exploracin web y documental sobre la sintaxis y estructuras del lenguaje de programacin. Problemas propuestos para aplicar la sintaxis y estructuras de programacin mediante el lenguaje seleccionado.
Tipos de eventos
Cules tipos de eventos conocen?
Interface grafica de usuario GUI. Eventos entre interfaces software. Eventos entre interfaces software-hardware.
Ejemplos de eventos?
Paradigmas de Programacin
Hay para todos los gustos
Estructurados (C, Pascal, Basic, etc.) Funcionales (CAML) Declarativos (Prolog) Orientados a Objetos (C#, VB.NET, Smalltalk, Java) Orientados a Aspectos Hbridos (Lisp, Visual Basic) ....
Cada enfoque tiene sus ventajas y desventajas Cada uno es ms apropiado para ciertas cosas
Clases y Objetos
Qu es un Objeto?
Un objeto posee estado Un objeto posee comportamiento Un objeto posee identidad
Qu es una Clase?
Objetos y Clases Ejemplo de una Clase
Qu es un Objeto?
Informalmente, un objeto representa una entidad del mundo real Entidades Fsicas
(Ej.: Vehculo, Casa, Producto)
Entidades Conceptuales
(Ej.: Proceso Qumico, Transaccin Bancaria)
Entidades de Software
(Ej.: Lista Enlazada, Interfaz Grfica)
Qu es un Objeto?
Definicin Formal (Rumbaugh):
Un objeto es un concepto, abstraccin o cosa con un significado y lmites claros en el problema en cuestin
Qu es una Clase?
Una clase es una descripcin de un grupo de objetos con:
Propiedades en comn (atributos) Comportamiento similar (operaciones) La misma forma de relacionarse con otros objetos (relaciones) Una semntica en comn (significan lo mismo)
Objetos y Clases
Una clase es una definicin abstracta de un objeto
Define la estructura y el comportamiento compartidos por los objetos Sirve como modelo para la creacin de objetos
Comportamiento (Mtodos)
Agregar un Alumno Borrar un Alumno Entregar un Listado del Curso Determinar si se Certificaron
Puntos de Entrada
Versiones del Main:
static void Main() static int Main() static int Main(string[] args) static void Main(string[] args)
Comentarios
Comentarios de una Lnea
Los comentarios de una sola lnea se introducen con //
Comentarios Multilnea
Los comentarios multilnea inician con /* y terminan con */
Clases y Objetos
La clase es el concepto que representa a diversos objetos del mundo real (autos, casas, alumnos, materias, etc.). En las clases se define como se comportarn todos los automviles (por ejemplo) y que propiedades tendrn. Una instancia es una entidad que representa una clase, por ejemplo, un auto (en particular) es una instancia de la clase Automvil.
POO
La idea de la POO es crear nuevos tipos (conceptos o clases) que puedan ser rehusados. As no se necesita programar varios componentes con funciones similares, nicamente, se programa el concepto (clase) con sus mtodos y propiedades y posteriormente se crean instancias de estas para ser usadas.
Clases
Como se vio en el ejemplo previo, se inicia una clase con la palabra reservada class seguido del nombre de la clase, con todos los mtodos y propiedades encerradas entre , y -.
Mtodos
Los mtodos definen el comportamiento de los objetos, la sintaxis para declarar un mtodo es:
[mod acceso] <tipo> <identificador> ([tipo1 identificador1, ..]) { <implementacion> [return <valor de retorno>] }
Namespace
Los namespaces (espacios de nombres) existen para la organizacin lgica de las clases, es un concepto parecido a los packages de java (en UML es conocido tambin con este nombre), con la diferencia que C# no fuerza que la estructura lgica de los namespaces sea la misma que la estructura fsica de los fuentes. Para definir un espacio de nombres se utiliza la siguiente sintaxis:
namespace <nombreEspacio> { <tipos> }
Ejemplo de un namespace
namespace EspacioEjemplo { class ClaseEjemplo
{ }
Sentencia using
La sentencia using es la forma en que se pueden utilizar los espacios de nombres dentro de un programa en C#. Sintaxis: using <espacioNombres>; La sentencia using debe aparecer en la definicin de espacio de nombres antes que cualquier definicin de miembros de la misma.
Tarea: Buscar para que se usa el Namespace System en C#
Ejemplo de using
namespace EspacioEjemplo { class ClaseEjemplo {} } using EspacioEjemplo; class Principal { public static void Main () { // EspacioEjemplo. est implcito ClaseEjemplo c = new ClaseEjemplo(); } }
Palabras reservadas en C#
El problema de esta funcin es que regresa datos de tipo cadena de caracteres, por lo que es necesario hacer una conversin cuando se va a trabajar con tipos de datos numricos.
Clase Console en C#
La clase Console proporciona una compatibilidad bsica para las aplicaciones que leen y escriben caracteres en la consola.
public static void Main(string[] args) { Console.Write("Hola "); Console.WriteLine("Mundo!"); Console.WriteLine("What is your name: "); String name = Console.ReadLine(); Console.Write("Buenos Dias, "); Console.Write(name); Console.WriteLine("!"); }
Clase Convert
Convierte un tipo de datos base en otro tipo de datos base. Mtodos:
Primera Practica
Crear una clase Programa1 Pedir un nombre por pantalla Escribir el nombre en Maysculas y Minsculas
Practica 2
Practica 2: Escribir el programa Mayorde3
Crear una clase llamada Mayorde3 Pedir 3 nmeros Obtener cual de los 3 es el mayor, presentndolo por pantalla
using System; class Mayorde3 { public static void Main() { int num1,num2,num3,res,final; Console.Write("Dame el numero 1 "); num1=Convert.ToInt32(Console.ReadLine()); Console.Write("Dame el numero 2 "); num2=Convert.ToInt32(Console.ReadLine()); Console.Write("Dame el numero 3 "); num3=Convert.ToInt32(Console.ReadLine()); res=Math.Max(num1,num2); final=Math.Max(res,num3); Console.WriteLine("El mayor es "+final); } }
Mas Ejemplos
Hacer un programa que lea por teclado un numero (del 1 al 7 solamente) e imprimir a que da de la semana pertenece (Domingo=1, Lunes=2, Martes =3, etc.) A partir de la lectura de un numero, presentar su tabla de multiplicar (del 1 al 12). Pedir un numero del 1 al 12 por teclado, dependiendo del mes desplegar por pantalla la estacin del ao a la que pertenece, utilizar switch:
Para nmeros del 12,1,2 la estacin es Invierno Para nmeros del 3,4,5 la estacin es Primavera Para nmeros 6,7,8 la estacin es Verano Para nmeros 9,10,11 la estacin es Otoo
Operadores Lgicos
Operadores Relacinales
Operadores de Asignacin
Estructuras de control
Estructuras de control
Tanto la inicializacin, la condicin y el incremento son opcionales, por ejemplo se podra crear un bucle infinito con:
for (;;) { instrucciones; }
Estructuras de control
Donde la condicin tiene que ser un valor boleano. En el ciclo while la condicin se evala en cada iteracin, incluyendo la primera.
Estructuras de control
El do-while es sumamente parecido al while, la diferencia es que en el ciclo while no se evala la expresin en la primera iteracin.
Estructuras de control
El foreach es un ciclo sumamente til, que sirve para iterar por cada elemento de una coleccin. Esto puede ser arreglos o colecciones definidas por el usuario. Su sintaxis es:
foreach (Tipo identificador in Coleccion) { instrucciones; }
Programa de Ejemplo
Programa que lea dos nmeros por teclado y que haga lo siguiente:
Los sume y reste, presentando los resultados por pantalla Determine cual de los dos es mayor Ver clase DosNumeros
Practicas
1. Leer los datos de la base y la altura de dos tringulos, obtener su rea y determinar cual fue el rea mayor. 2. Programa que pida un numero inicial y un numero final, presente por pantalla los nmeros desde el numero inicial hasta el final (usa un ciclo for) 3. Pedir una cadena de caracteres e imprimir por pantalla las vocales que contiene (puede utilizarse un switch). Notas:
Crear una clase para cada problema Utilizar la clase Leer para pedir valores numricos
Uso de Arreglos en C#
Un Arreglo (Array) es una secuencia de elementos del mismo tipo. A los elementos de un arreglos se les puede acceder a travs de ndices de tipo entero.
Posicin cero(0)
Posicin 4
Declarando arreglos
Para declarar un arreglo hay que hacer lo siguiente:
1. Declarar el tipo del arreglo 2. El rango del arreglo 3. El nombre de la variable
Ejemplo
Esta sentencia declara un arreglo llamado c , de enteros de 12 posiciones (0-11), Declara el arreglo Establece una localidad de 12 Posiciones (enteras) Nota: Todos los arreglos en C# se inicializan segn el tipo que se declare, para tipos de arreglos numricos se inicializan en cero, para booleanos en false y para cadenas (string) en null.
Declarando arreglos
Inicializacin de arreglos:
Los arreglos pueden inicializarse de forma explcita:
Ejercicio
Suponga que se tiene un arreglo con las calificaciones de los alumnos de una materia:
private int[] y = { 32, 27, 64, 18, 95, 14, 90, 70, 60, 37 };
Determinar lo siguiente:
El promedio del grupo La calificacin mayor La calificacin menor
this
La palabra reservada this, es una referencia a la misma instancia donde se encuentra, es til para acceder a miembros inaccesibles por que algn parmetro lo ha ocultado.
Ejemplo this
using System; namespace THIS { class Persona { public string Nombre; public Persona (string Nombre) { /* * El miembro Nombre es inaccesible por que el * parametro Nombre lo oculta * Por eso nesesitamos el this * */ this.Nombre = Nombre; } static void Main(string[] args) { Persona p = new Persona ("Pancho Zacates"); Console.WriteLine (p.Nombre); } } }
Propiedad
Una propiedad es una mezcla de entre el concepto de campo (variable) y el concepto de mtodo. Externamente es accedida como si de un campo normal se tratase, pero internamente es posible asociar cdigo a ejecutar en cada asignacin (set) o lectura (get) de su valor. Una propiedad no almacena datos, sino slo se utiliza como si los almacenase. Una propiedad simula que se tiene un campo pblico sin los inconvenientes que estos presentan por no poderse controlar el acceso a ellos.
Definicin de Propiedades
Para definir una propiedad se usa la siguiente sintaxis: <tipoPropiedad> <nombrePropiedad> { set { <cdigoEscritura> } get { <cdigoLectura> } }
Definicin de Propiedades
Dentro del cdigo set se puede hacer referencia al valor que se solicita asignar a travs de un parmetro especial del mismo tipo de dato que la propiedad llamado value. Dentro del cdigo get se ha de devolver siempre un objeto del tipo de dato de la propiedad. No importa el orden en que aparezcan los mtodos dentro de la declaracin. Es posible que existan campos (variables) a las cuales solo se les asigne uno de los mtodos. Es decir puede ser que algunas variables solo deban leerse o solo escribirse.
Propiedad
Sintaxis <tipo> <Identificador> { get { codigo; } set { codigo; } }
Ejemplo de propiedad
class CtaCte { private int balance; public int Balance { get { return balance; } set { balance = value; } }
}
CtaCte cc = new CtaCte(); cc.Balance = 100; //Asignacin Mostrar(cc.Balance); //Obtencin
Console.Write(articulo.Clave); Console.Write(articulo.Descripcion);
Ejercicio
Declarar una clase llamada Persona Dentro de la clase declarar 2 atributos privados para almacenar el nombre de la persona y su edad Declarar propiedades para obtener y establecer el nombre de la persona y su edad. Declarar un mtodo que utilice las propiedades para desplegar los datos de la persona Crear dentro del main 2 objetos de tipo persona, asignar por medio de las propiedades su nombre y edades, llamar al mtodo para que despliegue los datos de cada objeto.
Modificadores de acceso
Arreglos de Objetos
As como es posible crear arreglos de tipos de datos primitivos, se pueden crear arreglos de clases. Ejemplo:
Alumno[] ArregloAlum = new Alumno[10];
Cada uno de los elementos del arreglo tendr todos los atributos y mtodos que se encuentren definidos en la clase Alumno. Para agregar un nuevo elemento al arreglo seria as:
ArregloAlum*pos+= new Alumno(002,JOSE HERNANDEZ,20,INFORMATICA)
Ejercicio
Crear una clase Alumno, con los datos de : Nombre, Numero de Control, Carrera, Semestre, Promedio. Crear propiedades para los atributos de Nombre, Carrera, Semestre, Promedio. Los atributos de Numero de Control y Carrera sern de solo lectura. Crear altas, consultas, bsqueda de alumnos, imprimir todos los alumnos de una carrera o semestre, cambios a alumnos.
Ejercicios
Crear una clase producto Crear un sistema para manejar los productos en un minisuper
Paradigmas de Programacin
Funcionalidad
Windows 3.0
MFC
Win16
1980 1990
COM Win32
2000
Qu es el .NET Framework?
Paquete de software fundamental de la plataforma .NET. Incluye:
Entorno de Ejecucin (Runtime) Bibliotecas de Funcionalidad (Class Library)
Visual Studio .NET 2003 .NET Framework 1.1 .NET Compact Framework J#
2000
2001
2002
2003
2004
2005
2006 y ms
Visual Studio .NET 2002 .NET Framework 1.0 Visual Basic .NET C#
Visual Studio 2005 (Whidbey) .NET Framework 2.0 (Whidbey) .NET Compact Framework 2.0 (Whidbey)
System.Windows.Forms
Design ComponentModel
System.Drawing
Drawing2D Imaging Printing Text
System.Data
OleDb Common Odbc SqlClient
System.Xml
XSLT XPath Serialization
System
Collections
Configuration Diagnostics Globalization
IO
Net Reflection Resources
Security
ServiceProcess Text Threading
Runtime InteropServices
Remoting Serialization
Ver video
Proyecto vaco
Ms Informacin
Crea aplicaciones autnomas tradicionales Windows o un frontend avanzado para una aplicacin web distribuida. La plantilla de proyecto Biblioteca de controles de Windows se utiliza para crear controles personalizados para usarlos en formularios Windows Forms. Las aplicaciones de servicio de Windows (antes denominados "servicios de NT") son aplicaciones de larga ejecucin que no tienen interfaz de usuario. Pueden supervisar elementos tales como el rendimiento del sistema.