03 - ElLenguajeCSharp

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 48

INTRODUCCIÓN A LA

PROGRAMACIÓN EN C#

2
Preguntas detonadoras

¿Qué es el framework .NET? ¿Cómo está organizado? ¿Para


qué sirve?
¿Cuál es la herramienta de software necesaria para
implementar aplicaciones en la plataforma .NET?
¿Representa lo mismo la programación visual que la
programación orientada a objetos?
¿Se puede programar orientado a objetos en modo consola?
¿Por qué es importante utilizar nomenclaturas estándar
para identificar los componentes de una aplicación?
¿Cuáles son las recomendaciones de nomenclatura para
identificar los componentes de una aplicación?
3
Introducción a la programación en C#
.NET
Introducción a la plataforma Microsoft .NET
El framework .NET y sus componentes
Principales clases del framework .NET
Microsoft Visual Studio .NET
Compilación y ejecución de programas
El debugger
Breakpoints
Watches
Ejecutar paso a paso
Examinar variables en tiempo de ejecución

4
Introducción a la plataforma Microsoft
.Net

Visual
C++ C# Perl J# …
Basic
XML Web Services User Interface
ASP.NET

ADO.NET: Data and XML

.NET Framework Class Library

Common Language Runtime

COM+
Message
(Transactions, Partitions, IIS WMI
Queuing
Object Pooling)

Win32
5
Componentes del framework .Net

Common Language Runtime


Librerías de clases del Framework .NET
ADO.NET: Datos and XML
Formas Web y Servicios Web XML
Interfaces para Windows

6
Common Language Runtime (CLR)
Base Class Library Support

Thread Support COM Marshaler

Type Checker Exception Manager

Security Engine Debug Engine

MSIL to Native
Compilers Code Garbage
(MSIL=Microsoft
Intermediate Language) Manager Collector

Class Loader

7
Librerías de clases del framework .Net

System System.Security System.Runtime.


InteropServices
System.Net System.Text System.Globalization

System.Reflection System.Threading System.Configuration

System.IO System.Diagnostics System.Collections

8
Estructura jerárquica de una
aplicación en C#
Espacio de
nombres

Clases

Métodos

Sentencias

9
Proyecto de consola en C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ejercicio1 // Espacio de nombres (nombre del proyecto)


{
class Program // Clase del programa
{
static void Main(string[] args) // Método principal
{
}
}
}
10
Proyecto de formas en C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Ejercicio2 // Espacio de nombres (nombre del proyecto)


{
public partial class Form1 : Form // Clase
{
public Form1()
{
InitializeComponent();
}

// Método principal que se ejecuta al cargar el proyecto


private void Form1_Load(object sender, EventArgs e)
{

}
}
} 11
Compilación en C#

12
Herramientas de desarrollo
Descargar Microsoft Visual Studio
• https://visualstudio.microsoft.com/
es/downloads/
• Microsoft .NET Framework SDK
• msdn.microsoft.com/net/
Mas información
• http://www.microsoft.com/net/

13
Microsoft Visual Studio .NET

Crear proyecto 14
Crear un nuevo proyecto de
consola
Proyecto de consola

15
Nombre de nuevo proyecto de
consola

Nombre del
nuevo proyecto

16
Ejecutando una aplicación

Ejecuta el programa

17
Agregar clase al Proyecto (opción 1)

18
Agregar clase al Proyecto (opción 2)

19
Depurar la aplicación
Ejecutar paso a paso por procedimientos (F10)
Ejecutar paso a paso por instrucciones (F11)
Breakpoints (puntos de ruptura)
Visualización (monitorear) variables

20
21
Monitorear
Breakpoint variable

22
Tarea
Investigar las secuencias de escape en C#
¿Qué son?
¿Cuáles son?
¿Para qué sirven?
¿Cómo se usan?

Investigar el uso de …
Math.PI
Math.Pow()
Math.Sqrt()
Math.Sin()
Math.Cos()
Math.Tan() 23
Sentencias básicas en C#
Declaración y creación de un objeto

Estudiante miEstudiante = new Estudiante();

Captura de datos desde el teclado


Console.ReadLine()
Impresión de mensajes y datos en la pantalla
Console.Write()
Console.WriteLine()
24
Ejemplo
Suponga que define una clase con los datos de
estudiantes
Nombre
cadena
Semestre
Numérico entero
Grupo
caracter
Promedio
Numérico real
25
Capturar datos de la consola en C#
Si el dato es de tipo string …
Se captura directamente con el método
ReadLine() de la consola

Si el dato es diferente a string …


Se usa el método Parse() para convertir lo
capturado con el método ReadLine() de la
consola
Recuerde crear el
objeto antes de
capturar sus datos

26
Captura de datos de tipo string

Diagrama de flujo Codificación en C#

miEstudiante.Nombre = Console.ReadLine();

27
Captura de datos de tipo int
Diagrama de flujo Codificación en C#

miEstudiante.Semestre =
miEstudiante.Semestre int.Parse(Console.ReadLine());

La consola captura el dato de tipo string y el método Parse() lo


convierte a int
28
Captura de datos de tipo char
Diagrama de flujo Codificación en C#

miEstudiante.Grupo =
miEstudiante.Grupo char.Parse(Console.ReadLine());

La consola captura el dato de tipo string y el método Parse() lo


convierte a char
29
Captura de datos de tipo double
Diagrama de flujo Codificación en C#

miEstudiante.Promedio =
miEstudiante.Promedio double.Parse(Console.ReadLine());

La consola captura el dato de tipo string y el método Parse() lo


convierte a double
30
Imprimir un mensaje en la pantalla

Diagrama de flujo Codificación en C#

“Datos del
Console.WriteLine(“Datos del estudiante”);
estudiante”

La diferencia entre los métodos Write() y WriteLine() es que éste


último hace un salto de línea después de desplegar el dato
31
Imprimir un mensaje y datos en la
pantalla

Diagrama de flujo Codificación en C#

“Semestre = ”+ Console.WriteLine(“Semestre = ” +
miEstudiante.Semestre miEstudiante.Semestre);

La diferencia entre los métodos Write() y WriteLine() es que éste


último hace un salto de línea después de desplegar el dato
32
Codificación de un proyecto
Codificar NO significa solamente teclear
instrucciones sin sentido
Codificar significa traducir el diseño a
instrucciones de un lenguaje de programación
Traducir el diagrama de clases
Traducir los diagramas de flujo
Durante la traducción se debe respetar:
Nomenclaturas (Pascal, camello, húngara, etc.)
Nombres de variables y componentes
Organización y estructura 33
Codificación de la clase
class Estudiante
{
private string _strNombre;

public string Nombre


{
get { return _strNombre; }
set { _strNombre = value; }
}

private int _intSemestre;

public int Semestre


{
get { return _intSemestre; }
set { _intSemestre = value; }
}

private char _chrGrupo;

public char Grupo


{
get { return _chrGrupo; }
set { _chrGrupo = value; }
}

private double _dblPromedio;

public double Promedio


{
get { return _dblPromedio; }
set { _dblPromedio = value; }
}
}
34
Codificación del método principal Main()
static void Main(string[] args)
{
Estudiante miEstudiante = new Estudiante();

Console.Write("Teclee el nombre del estudiante");


miEstudiante.Nombre = Console.ReadLine();

Console.Write("Teclee el semestre del estudiante");


miEstudiante.Semestre= int.Parse(Console.ReadLine());

Console.Write("Teclee el grupo del estudiante");


miEstudiante.Grupo = char.Parse(Console.ReadLine());

Console.Write("Teclee el promedio del estudiante");

miEstudiante.Promedio=double.Parse(Console.ReadLine());

...
...
35
Codificación del método principal Main() (cont)
1 ….
….

“Nombre = “ + miEstudiante.Nombre
Console.Write(“Nombre = “+ miEstudiante.Nombre);

“Semestre = “ + Console.Write(“Semestre = “+ miEstudiante.Semestre);


miEstudiante.Semestre

“Grupo = “ + miEstudiante.Grupo Console.Write(“Grupo = “+ miEstudiante.Grupo);

“Promedio = “ +
miEstudiante.Promedio Console.Write(“Promedio = “+ miEstudiante.Promedio);

}
FIN

36
Ejercicio resuelto
Definir una clase para calcular el área y el
perímetro de una circunferencia, cuyo dato es:
Valor numérico del radio
Defina el atributo y propiedad de
acuerdo al dato de la
circunferencia, declare y cree un
objeto, capture el valor de su
radio e invoque los métodos para
imprimir los resultados (área y
perímetro)
37
Análisis
a) Investigación preliminar
Investigar el tipo de dato necesario para administrar el radio
de la circunferencia y las fórmulas para calcular el área y el
perímetro:
P 2

b) Definición del problema


Diseñar una clase que tenga como atributo privado el radio
de una circunferencia
Declarar y crear un objeto de dicha clase.
Solicitar al usuario que teclee el valor del radio del objeto.
Una vez capturado el radio del objeto, se deben invocar los
métodos que calculan el área y el perímetro y mostrar los
resultados.
38
Análisis (cont.)
c) Datos de entrada
Valor numérico del radio de la circunferencia
Atributo: _dblRadio : double
Propiedad: Radio : double

d) Información de salida
Valor del área de la circunferencia
Método: Circunferencia.CalcularArea():
double
Valor del perímetro de la circunferencia
Método:
Circunferencia.CalcularPerimetro():
double 39
Análisis (cont.)

e) Variables auxiliares
Clase que define la circunferencia
(Circunferencia)
Objeto de dicha clase (miCircunferencia :
Circunferencia)

40
Diseño (diagrama de clase)

41
Diseño (diagrama de flujo del
método que calcula el área)
Nombre del
método

Nombre de Tipo de dato


la clase del valor
devuelto
42
Diseño (diagrama de flujo del
método que calcula el perímetro)
Nombre del
método

Nombre de Tipo de dato


la clase del valor
devuelto
43
Diseño (diagrama de flujo del método
principal Main)

Declaración y
creación del
objeto
Capturar el
valor del radio

Ejecuta el
Ejecuta el
método que
método que
calcula el
calcula el área
perímetro e
e imprime el
imprime el
resultado
resultado
44
Codificación de la clase
class Circunferencia
{
private double _dblRadio;

public double Radio


{
get { return _dblRadio; }
set { _dblRadio = value; }
}

public double CalcularArea()


{
}

public double CalcularPerimetro()


{
}

45
Codificación del método CalcularArea()

class Circunferencia
{
private double _dblRadio;

public double Radio


{
get { return _dblRadio; }
set { _dblRadio = value; }
}

public double CalcularArea()


{
return( Math.PI * Math.Pow(Radio, 2) );
}

public double CalcularPerimetro()


{
}
}
46
Codificación del método CalcularPerimetro()

class Circunferencia
{
private double _dblRadio;

public double Radio


{
get { return _dblRadio; }
set { _dblRadio = value; }
}

public double CalcularArea()


{
return( Math.PI * Math.Pow(Radio, 2) );
}

public double CalcularPerimetro()


{
return( 2 * Math.PI * Radio );
}
47
}
Codificación del método principal Main()
static void Main(string[] args)
{
Circunferencia miCircunferencia = new Circunferencia();

Console.Write("Teclee el radio de la circunferencia");


miCircunferencia.Radio = double.Parse(Console.ReadLine());

Console.WriteLine(“Área= “+miCircunferencia.CalcularArea());

Console.WriteLine(“Perímetro = “+miCircunferencia.CalcularPerimetro());

Console.ReadKey();
}

48
Otros títulos del autor
http://www.itnuevolaredo.edu.mx/Takeyas/Libro

bruno.lt@nlaredo.tecnm.mx Bruno López Takeyas

También podría gustarte