You are on page 1of 86

Ingeniera en Tecnologas de la Informacin y Comunicaciones

PROGRAMACIN II
M.C.C. GLORIA EKATERINE PERALTA PEUURI

Instituto Tecnolgico de Culiacn

Semestre Agosto Diciembre 2012

Unidad I.- Fundamentos del Lenguaje


Identificar y observar la sintaxis y estructuras bsicas del lenguaje de programacin.

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.

1.1. Programacin Orientada a eventos


Es generada por actores externos. Soporta una suite amplia de acciones.

Utiliza interfaces o agentes listener para escuchar los eventos.


Generalmente los eventos se orientan a referencias (Clases Annimas, Punteros)

Programacin Orientada a Eventos


En este tipo de programacin permite trabajar con objetos y clases Standard previamente definidas por la aplicacin, las cuales manejan los conceptos de encapsulacin.

Diferencias entre tipos de Programacin


Programacin secuencial : o El programador define el flujo ejecucin del programa. o Se producen intervenciones que ocurrirn cuando el programador lo haya determinado. Programacin orientada de eventos : o El actor externo dirige el flujo de ejecucin del programa. o Se producen intervenciones que ocurrirn en cualquier momento.

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?

En la programacin orientada a eventos es necesario comprender y entender los siguientes conceptos:


Evento Propiedades Mas adelante se vern estos conceptos Mtodos

1.2. Objetos, controles y componentes


Paradigmas de Programacin Clases y Objetos Modificadores de Acceso Principios de la Orientacin a Objetos Conceptos del Diseo Orientado a Objetos
Repaso, debido a que estos temas ya se vieron en la materia de POO

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

El mundo color de Objetos


Todo el mundo est compuesto de entidades que se relacionan e interactan entre si. Qu es un Objeto?
Todo es un Objeto ~?!

Es lo mismo de siempre con otro nombre?


Pensar en Objetos .

No es el ltimo grito de la moda (1980s)


A diferencia del paradigma estructurado, que propone modelar a la realidad como una serie de procedimientos secuenciales, la orientacin a objetos propone representar todo lo que conocemos en trminos de entidades (objetos) que interactan y se relacionan entre s.

El mundo color de Objetos


Por qu Orientacin a Objetos (OO)?
Se parece ms al mundo real Permite representar modelos complejos Muy apropiada para aplicaciones de negocios Las empresas ahora s aceptan la OO Las nuevas plataformas de desarrollo la han adoptado (.NET /Java )

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

Un objeto posee (Booch):


Estado Comportamiento Identidad

Un objeto posee Estado


Lo que el objeto sabe El estado de un objeto es una de las posibles condiciones en que el objeto puede existir El estado normalmente cambia en el transcurso del tiempo El estado de un objeto es implementado por un conjunto de propiedades (atributos), adems de las conexiones que puede tener con otros objetos

Un objeto posee Comportamiento


Lo que el objeto puede hacer El comportamiento de un objeto determina cmo ste acta y reacciona frente a las peticiones de otros objetos Es modelado por un conjunto de mensajes a los que el objeto puede responder (operaciones que puede realizar) Se implementa mediante mtodos

Un objeto posee Identidad


Cada objeto tiene una identidad nica, incluso si su estado es idntico al de otro objeto

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)

Una clase es una abstraccin que:


Enfatiza las caractersticas relevantes Suprime otras caractersticas (simplificacin)

Un objeto es una instancia de una clase

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

Los objetos pueden ser agrupados en clases

Clase: Curso Estado (Atributos)

Ejemplo de una Clase

Nombre Ubicacin Das Ofrecidos Horario de Inicio Horario de Trmino

Comportamiento (Mtodos)
Agregar un Alumno Borrar un Alumno Entregar un Listado del Curso Determinar si se Certificaron

1.7.Estructura del Lenguaje C#


comentarios, constantes, tipos de datos, variables, operadores, sentencias, matrices, procedimientos y funciones, estructuras de control, controles bsicos.

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 */

Comentarios de documentacin XML


Estos se introducen con ///, son de una sola lnea y son tiles para herramientas de auto documentacin XML.

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
{ }

Incluyendo varios namespace


Aparte de definiciones de tipo, tambin es posible incluir como miembros de un espacio de nombres a otros espacios de nombres. Es decir, como se muestra el siguiente ejemplo es posible anidar espacios de nombres:
namespace EspacioEjemplo {
namespace EspacioEjemplo2 {
class ClaseEjemplo {}

La ClaseEjemplo tendr EspacioEjemplo.EspacioEjemplo2.ClaseEjemplo como nombre completamente calificado.

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#

Sealar cuales palabras reservadas son concidas

Lectura de datos por teclado


La clase Console cuenta con una funcin para la lectura de datos por teclado:
Console.ReadLine();

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

Operador condicional o ternario

Se utiliza para asignar un valor dependiendo de una condicin

Ejemplo de operador condicional o ternario

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:

Programa utilizando arreglos


using System; namespace FOREACH { class FOREACH { static void Main(string[] args) { int[] FooBar = new int[10]; for (int i = 0; i < FooBar.Length; i++) FooBar[i] = i; foreach (int valAct in FooBar) Console.WriteLine (valAct); } } }
Escribir este programa

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

Ejercicios con arreglos


Declare un arreglo, que llene con datos numricos, obtenga el numero de elementos que son pares y desplieguelos por pantalla Hacer un programa calcula e imprima el promedio de 12 valores almacenados en un arreglo. Obtiene cuantos son mayores que el promedio y cuales son dichas calificaciones. Ejercicios de empleados que trabajan por horas pagadando horas extras y un bono (lo apuntaron en libreta).

Arreglos con Objetos


Se crearn diversas clase base (Auto, Empleado, Casa, Articulo, etc.) y se crearan arreglos de dichas clases: Auto[] arregloauto= new Auto[10];

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

Ejemplo de declaracin y uso de propiedades


class Articulo{ . private int clave; public static void Main() private string descripcion; { public int Clave{ Articulo articulo= new Articulo(); get{ Llama articulo.Clave=1102; return clave; Al mtodo set articulo.Descripcion=Abanicos; }
set{ Llama clave=value; Al mtodo get } public string Descripcion{ } get{ return descripcion; } set{ clave=value; } }

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)

Ver ejemplo de Productos

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

1.3. Tecnologa .NET


Plataforma de Desarrollo compuesta de
Entorno de Ejecucin (Runtime) Bibliotecas de Funcionalidad (Class Library) Lenguajes de Programacin Compiladores Herramientas de Desarrollo (IDE & Tools) Guas de Arquitectura

La evolucin de la plataforma COM

Paradigmas de Programacin
Funcionalidad

Windows 3.0

MFC

Win16
1980 1990

COM Win32
2000

Caractersticas de .NET (1/2)


Plataforma de ejecucin intermedia 100% Orientada a Objetos Multilenguaje Plataforma Empresarial de Misin Crtica

Caractersticas de .NET (2/2)


Modelo de Programacin nico para todo tipo de aplicaciones y dispositivos de hardware Se integra fcilmente con aplicaciones existentes desarrolladas en plataformas Microsoft Se integra fcilmente con aplicaciones desarrolladas en otras plataformas

Qu es el .NET Framework?
Paquete de software fundamental de la plataforma .NET. Incluye:
Entorno de Ejecucin (Runtime) Bibliotecas de Funcionalidad (Class Library)

Se distribuye en forma libre y gratuita Existen tres variantes principales:


.NET Framework Redistributable Package .NET Framework SDK

.NET Compact Framework

Lnea del tiempo de .NET


Visual Studio 6.0 Visual Basic VBA Visual FoxPro VBScript C++ J++ JScript ASP Visual Studio Orcas .NET Framework Orcas .NET Compact Framework Orcas

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)

Elementos de la plataforma .NET

.NET Framework Class Library


Conjunto de Tipos bsicos (clases, interfaces, etc.) que vienen includos en el .NET Framework Los tipos estn organizados en jerarquas lgicas de nombres, denominados NAMESPACES Los tipos son INDEPENDIENTES del lenguaje de desarrollo Es extensible y totalmente orientada a objetos

.NET Framework Class Library


El namespace raz es SYSTEM
System.Web
Services Description Discovery Protocols Caching Configuration Security SessionState UI HtmlControls WebControls

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

1.4. Entorno integrado de desarrollo


Utilizando Visual Studio
Mediante la siguiente liga veremos la forma de crear un proyecto sencillo en Visual Studio

Ver video

1.5. Tipos de Proyectos


Plantilla de proyecto Biblioteca de clases Aplicacin de consola Informacin Use la plantilla Biblioteca de clases para crear rpidamente clases y componentes reutilizables que pueden compartirse con otros proyectos.. Las aplicaciones de consola se disean habitualmente sin interfaz grfica de usuario (GUI) y se compilan en un archivo ejecutable. La plantilla Proyecto vaco puede utilizarse para crear un tipo propio de proyecto. La plantilla crea la estructura de archivos necesaria para almacenar la informacin sobre la aplicacin. Las referencias, archivos o componentes se deben agregar de forma manual.

Proyecto vaco

1.5. Tipos de Proyectos


Plantillas de proyectos
Aplicacin de Windows Forms Biblioteca de controles de Windows Forms Servicio de Windows

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.

1.6. Espacios de Nombres


Ya se vieron en Diapositiva

You might also like