0% encontró este documento útil (0 votos)
35 vistas26 páginas

Fundamentos de Programación en C#

Este documento introduce la programación en C# y la plataforma .NET de Microsoft. Explica que .NET incluye un marco de trabajo común que contiene un entorno de ejecución común, bibliotecas de clases y herramientas. También describe cómo Visual Studio se puede usar para crear, compilar y depurar aplicaciones .NET.

Cargado por

Ismael Mendoza
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
35 vistas26 páginas

Fundamentos de Programación en C#

Este documento introduce la programación en C# y la plataforma .NET de Microsoft. Explica que .NET incluye un marco de trabajo común que contiene un entorno de ejecución común, bibliotecas de clases y herramientas. También describe cómo Visual Studio se puede usar para crear, compilar y depurar aplicaciones .NET.

Cargado por

Ismael Mendoza
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Fundamentos de Programación

INTRODUCCIÓN A LA
PROGRAMACIÓN EN C#

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 1
Fundamentos de Programación

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

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 2
Fundamentos de Programación

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

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 3
Fundamentos de Programación

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

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

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 4
Fundamentos de Programación

Estructura jerárquica de una


aplicación en C#
Espacio de
nombres

Clases

Métodos

Sentencias

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

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 5
Fundamentos de Programación

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

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 6
Fundamentos de Programación

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

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 7
Fundamentos de Programación

Crear un nuevo proyecto de


consola Proyecto de consola

Seleccione
estas
opciones

15

Nombre de nuevo proyecto de


consola

Nombre del
nuevo proyecto

16

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 8
Fundamentos de Programación

Ejecutando una aplicación

Ejecuta el programa

17

Agregar clase al Proyecto (opción 1)

18

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 9
Fundamentos de Programación

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

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 10
Fundamentos de Programación

21

Monitorear
Breakpoint variable

22

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 11
Fundamentos de Programación

Investigación
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

TAREA 2.4
Resolver la
Tarea 2.4.- Secuencias de escape y
funciones matemáticas
en MS Teams

Se contabilizará la tarea si se
obtiene calificación aprobatoria 24

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 12
Fundamentos de Programación

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()
25

Ejemplo
Suponga que define una clase con los datos de
estudiantes
Nombre
cadena
Semestre
Numérico entero
Grupo
caracter
Promedio
Numérico real
26

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 13
Fundamentos de Programación

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

27

Captura de datos de tipo string

Diagrama de flujo Codificación en C#

miEstudiante.Nombre = Console.ReadLine();

28

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 14
Fundamentos de Programación

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
29

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
30

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 15
Fundamentos de Programación

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
31

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
32

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 16
Fundamentos de Programación

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
33

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 34

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 17
Fundamentos de Programación

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; }
}
}
35

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());

...
...
36

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 18
Fundamentos de Programación

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

37

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)
38

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 19
Fundamentos de Programación

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.
39

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 40

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 20
Fundamentos de Programación

Análisis (cont.)

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

41

Diseño (diagrama de clase)

42

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 21
Fundamentos de Programación

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
43

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
44

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 22
Fundamentos de Programación

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
45

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()


{
}

46

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 23
Fundamentos de Programación

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()


{
}
}
47

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 );
}
48
}

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 24
Fundamentos de Programación

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();
}

49

CUESTIONARIO
Contestar el
Cuestionario 02.- Clases,
objetos e Introducción a la
Programación en C#
en la plataforma EaD IT Nuevo
Laredo - Synesi

50

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 25
Fundamentos de Programación

Otros títulos del autor


https://nlaredo.tecnm.mx/takeyas/Libro

[email protected] Bruno López Takeyas

Ing. Bruno López Takeyas, M.C.


https://nlaredo.tecnm.mx/takeyas 26

También podría gustarte