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

imagen: Freepik.

com

UNIDAD 1:BUENAS PRÁCTICAS DE PROGRAMACIÓN ORIENTADA A OBJETO


Semana 1
Programación de Computadores III
ANYA M. BOLAÑO ARIAS
M.Sc. en ingeniería de Sistemas y Computación
Objetivos de Aprendizaje
Manejar el lenguaje y el entorno de desarrollo seleccionado para aplicar los conceptos
impartidos en clase durante el semestre y realizar el proyecto de Aula.
Temas a Desarrollar
1.1.1. Nociones del Lenguaje
1.1.2. Tipos de datos
1.1.3. Constantes, variables, arreglos
1.1.4. Operadores Aritméticos, Lógicos y Relaciónales
1.1.5. Operaciones de Asignación
1.1.6. Aplicación de Consola
1.1.7. Condicionales
1.1.8. Instrucciones repetitivas
1.1.9. Colección de Objeto
¿Qué es un lenguaje de programación?

• Un programa de software es un conjunto de sentencias o


instrucciones a la computadora. El proceso de escritura o
codificación de un programa se denomina programación y las
personas que se especializan en esta actividad se denominan
programadores. Joyanes Agular, L. (2008 p.32)

• Para realizar un programa recurrimos a un lenguaje de


programación que es un lenguaje formal diseñado para expresar
procesos que pueden ser llevados a cabo por máquinas como las
computadoras.

Ranking Lenguajes de Programación:


• https://octoverse.github.com/
• https://www.tiobe.com/tiobe-index/ imagen: Freepik.com

• https://insights.stackoverflow.com/survey/2020#technology-most-
loved-dreaded-and-wanted-web-frameworks-wanted2
Ambiente de Desarrollo Integrado o
Entorno de Desarrollo Interactivo
• En inglés Integrated Development Environment (IDE), es una aplicación informática que
proporciona servicios integrales para facilitarle al desarrollador o programador el
desarrollo de software.

• Normalmente, un IDE consiste de un editor de código


fuente, herramientas de construcción automáticas y
un depurador. La mayoría de los IDE tienen auto-
completado inteligente de código (IntelliSense).
Algunos IDE contienen un compilador, un intérprete, o
ambos

• Ejemplos: Eclipse, ActiveState Komodo, IntelliJ IDEA,


MyEclipse, Oracle JDeveloper, NetBeans, Codenvy y
imagen: Freepik.com
Microsoft Visual Studio. Xcode, Xojo y Delphi
IDE Seleccionado Microsoft Visual Studio

• Es un Entorno IDE de MicroSoft que ofrece conjunto de


herramientas de desarrollo para la generación de aplicaciones
web ASP.NET, Servicios Web XML, aplicaciones de escritorio y
aplicaciones móviles.

• Visual Basic, Visual C#y Visual C++ utilizan todos el mismo


entorno de desarrollo integrado (IDE), que habilita el uso imagen: Microsoft
compartido de herramientas y hace más sencilla la creación de
soluciones en varios lenguajes.

• Asimismo, dichos lenguajes utilizan las funciones de .NET


Framework, las cuales ofrecen acceso a tecnologías clave para
simplificar el desarrollo de aplicaciones.
¿ Qué es un Framework?

imagen: Freepik.com imagen: Freepik.com


imagen: Freepik.com

Framework Software
Programadores

Es un conjunto de elementos o piezas a utilizar para la construcción del


Producto. Son Piezas de Software que pueden ser reutilizadas para
construir otra pieza de Software.
Plataforma .Net

imagen: Campus MVP


Características del Framework a trabajar
.Net Framework
Es un Plataforma de Desarrollo que incorpora un entono de
ejecución Runtime, unas biblioteca de clases, que permite a
los programadores aprovechar el código sólido y confiable,
Lenguajes de Programación y Compiladores.

• Es Orientado a Objetos
• Multilenguaje
• Modelo de programación único para todo tipo de
aplicaciones y dispositivos de Hardware. Image:Microsofot

• Integración fácil con otras aplicaciones desarrolladas en


plataformas Microsoft o en otras plataformas.

MATERIAL DE REFERENCIA
https://docs.microsoft.com/es-es/dotnet/framework/get-started/?redirectedfrom=MSDN
ARQUITECTURA DE .NET FRAMEWORK

Piezas de Software que


pueden ser reutilizadas para
construir otra pieza de
Software.
Common Language Runtime(CLR)

Es un entorno en tiempo de ejecución que administra la ejecución


del código y proporciona servicios que simplifican el proceso de
desarrollo, Permitiendo:

• La integración entre lenguajes.


• El control de excepciones entre lenguajes.
• La compatibilidad con la implementación y las versiones.
• Mejoras en el rendimiento.
• Capacidad para utilizar fácilmente componentes desarrollados
en otros lenguajes.
• Capacidad para compilar una vez y ejecutar código en cualquier
CPU y sistema operativo que sea compatible con el motor en
tiempo de ejecución. imagen: Freepik.com

• Administración de memoria automática: Describe cómo asigna y


libera memoria el recolector de elementos no utilizados
Biblioteca de Clases Base
La biblioteca de clases de .NET Framework está
constituida por espacios de nombres
(namespace) Cada espacio de nombres
contiene tipos que se pueden utilizar en el
programa: clases, estructuras, enumeraciones,
delegados e interfaces.

Cuando se crea un proyecto en Visual Studio, se


sigue haciendo referencia a las DLL más
comunes de la clase base (ensamblados).

Si necesita usar un tipo incluido en una DLL a la


que aún no se hace referencia, deberá agregar la
referencia de esa DLL.
imagen: Campus MVP

MATERIAL DE REFERENCIA
https://docs.microsoft.com/es-es/previous-versions/visualstudio/visual-studio-
2008/f1yh62ef(v=vs.90)?redirectedfrom=MSDN
Acces Data Object -ADO.NET

ADO.NET es un conjunto de clases que exponen servicios de acceso


a datos para programadores de .NET Framework.

ADO.NET ofrece abundancia de componentes para la creación de


aplicaciones de uso compartido de datos distribuidas.

Satisface diversas necesidades de desarrollo, como la creación de


clientes de base de datos empresariales.
Windowns Forms

• Un formulario es, en última instancia, una pizarra


en blanco que el Desarrollador mejora con
controles para crear una interfaz de usuario y con
código para manipular datos.

• Con ese fin, Visual Studio le proporciona un


entorno de desarrollo integrado (IDE) para
ayudarlo a escribir código, así como manejar un
conjunto de controles de escrito con .NET
Framework.
Imagen: Mandón, D. (2020), Taller Más Salud Programación III.

• Al complementar la funcionalidad de estos


controles con su código, puede desarrollar fácil y
rápidamente las soluciones que necesita.
Common Language Specification
• Para poder interactuar completamente con otros
objetos, sea cual sea el lenguaje en que se hayan
implementado, los objetos deben exponer a los
llamadores sólo aquellas características que sean
comunes para todos los lenguajes con los que deben
interoperar.

• Es un especificación que estandariza una serie de


características soportadas por el CRL.

• Los componentes que cumplen las reglas de CLS y usan


sólo las características incluidas en CLS se conocen
como componentes compatibles con CLS.

MATERIAL DE REFERENCIA
https://docs.microsoft.com/es-es/previous-versions/dotnet/netframework-
1.1/aa735713(v=vs.71)?redirectedfrom=MSDN
1.1.2. Tipos de datos
Reserved Size
Word .NET Type Type (bits) Range (values)
Byte Byte Unsigned integer 8 0 to 255
sbyte SByte Signed integer 8 -128 to 127
short Int16 Signed integer 16 -32,768 to 32,767
ushort UInt16 Unsigned integer 16 0 to 65,535
int Int32 Signed integer 32 -2,147,483,648 to 2,147,483,647

uint UInt32 Unsigned integer 32 0 to 4294967295


long Int64 Signed integer 64 -9,223,372,036,854,775,808 to
9,223,372,036,854,775,807
ulong UInt64 Unsigned integer 64 0 to 18,446,744,073,709,551,615
float Single Single-precision floating point type 32 -3.402823e38 to 3.402823e38

double Double Double-precision floating point type 64 -1.79769313486232e308 to


1.79769313486232e308
decimal Decimal Precise fractional or integral type that 128 (+ or -)1.0 x 10e-28 to 7.9 x 10e28
can represent decimal numbers with 29
significant digits

char Char A single Unicode character 16 Unicode symbols used in text


bool Boolean Logical Boolean type 8 True or False
object Object Base type of all other types
string String A sequence of characters
DateTime DateTime Represents date and time 0:00:00am 1/1/01 to
Definición de Variables Explicitas

• Una variable representa un valor numérico o de cadena o un objeto de una


clase. El valor que la variable almacena puede cambiar, pero el nombre
sigue siendo el mismo. Una variable es un tipo de campo.

• Una variable puede ser declarada e inicializada más tarde o ser declarada e
inicializada al mismo tiempo.

double notaPrimerCorte;
string nombre;
decimal Salario;
int edad = 0;

//…

nombre = "Maria"; // inicializada más tarde


Tipo de valor y tipo de referencia.

Tipo de valor: Un tipo de datos es un tipo de valor si contiene un valor de datos dentro de
su propio espacio de memoria. Significa que las variables de estos tipos de datos contienen
valores directamente.

Cuando pasa una variable de tipo valor de un método a otro, el sistema crea una copia
separada de una variable en otro método. Si el valor se cambia en un método, no afectará a
la variable en otro método.

Tipos de datos por valor: bool, byte, char, decimal, double, enum, float, int, long, sbyte, short,
struct, uint, ulong, ushort

Asignación de memoria de variable de


tipo de valor. Tomado de
TutorialsTeacher.com

https://www.tutorialsteacher.com/csharp/csharp-value-type-and-reference-type
Tipo de valor y tipo de referencia.
Tipo de referencia: A diferencia de los tipos de valor, un tipo de referencia no almacena su valor
directamente. En cambio, almacena la dirección donde se almacena el valor. En otras palabras, un
tipo de referencia contiene un puntero a otra ubicación de memoria que contiene los datos.

Cuando pasa una variable de tipo de referencia de un método a otro, no crea una nueva copia; en su
lugar, pasa la dirección de la variable. Entonces, si cambiamos el valor de una variable en un método,
también se reflejará en el método de llamada.

Tipos de datos por valor: String, Arrays (incluso si sus elementos son tipos de valor), Clases, Delegate

Asignación de memoria de variable de


tipo de referencia. Tomado de
TutorialsTeacher.com

https://www.tutorialsteacher.com/csharp/csharp-value-type-and-reference-type
Tipo de valor y tipo de referencia.
Nulo
El valor predeterminado de una variable de tipo de referencia es null cuando no se inicializan. Null
significa no referirse a ningún objeto.

Tipo de referencia nulo Tomado de


TutorialsTeacher.com

Una variable de tipo de valor no puede ser nula porque contiene un valor, no una
dirección de memoria.

https://www.tutorialsteacher.com/csharp/csharp-value-type-and-reference-type
Definición de Variables Implícitas
Tipos de Datos anónimos

• El tipo anónimo, como su nombre indica, es un tipo que no tiene ningún nombre, C #
le permite crear un objeto con la palabra clave new sin definir su clase.

• Las variable implícitas var se usa para mantener la referencia de tipos anónimos. var
solo se puede definir en un método como una variable local, el compilador inferirá su
tipo basado en el valor a la derecha del operador "=“ las variables tipo var se deben
inicializar.
Tipo de Dato Dinámico

Un tipo dinámico cambia su tipo en tiempo de ejecución en función del valor de la


expresión a la derecha del operador "=". El siguiente ejemplo muestra cómo una
variable dinámica cambia su tipo en función de su valor:
static void Main(string[] args)
{
dynamic MyDynamicVar = 100;
Console.WriteLine("Value: {0}, Type: {1}", MyDynamicVar, MyDynamicVar.GetType());

MyDynamicVar = "Hello World!!";


Console.WriteLine("Value: {0}, Type: {1}", MyDynamicVar, MyDynamicVar.GetType());

MyDynamicVar = true;
Console.WriteLine("Value: {0}, Type: {1}", MyDynamicVar, MyDynamicVar.GetType());

MyDynamicVar = DateTime.Now;
Console.WriteLine("Value: {0}, Type: {1}", MyDynamicVar, MyDynamicVar.GetType());
}

MATERIAL DE REFERENCIA https://www.tutorialsteacher.com/csharp/csharp-dynamic-type


Arreglos

Una matriz es un tipo especial de tipo de datos que puede almacenar un


número fijo de valores de forma secuencial utilizando una sintaxis especial. La
siguiente imagen muestra cómo una matriz almacena valores secuencialmente.

int[] edades;
bool[] proposiciones;
string[] dias;
decimal[] salarios;
double[] notas;
Declaración, Instanciación e Inicializació de
arreglos bidimensionales

// Definiendo el array con tamaño 5, se adicionan los valores después


int[] arreglo2 = new int[5];

// Definiendo el array con tamaño 5, y al mismo tiempo se adicionan los valores


int[] arreglo3 = new int[5]{ 1,2,3,4,5};

// Definiendo el array con 5 elementos los cuales indica el tamaño del arreglo
int[] arreglo4 = { 1, 2, 3, 4, 5 };
Arreglos Bidimensionales

Una matriz multidimensional es una serie bidimensional con filas y columnas

int[,] arr2d = new int[3,2]{


{1, 2},
{3, 4},
{5, 6}
};

// or int[,] arr2d = { {1, 2}, {3, 4}, {5, 6} }; Array de 2 dimensiones, Tomado de TutorialsTeacher.com

https://www.tutorialsteacher.com/csharp/csharp-multi-dimensional-array
Acceso a miembros de matrices

Matrices Unidimensionales

int[] numbers = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; // Declara e inicializa


numbers[4] = 5; // cambia el valor de la posición 4

Matrices Bidimensionales
int[,] numbers = { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 }, { 9, 10 } };
numbers[1, 0] = 3;
Acceso a miembros de matrices

Matrices Unidimensionales

int[] numbers = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; // Declara e inicializa


numbers[4] = 5; // cambia el valor de la posición 4

Matrices Bidimensionales
int[,] numbers = { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 }, { 9, 10 } };
numbers[1, 0] = 3;
Operadores Lógicos

Operador Nombre Ejemplo

y && x&& y
o || x||y
Or Exclusiva ^ x^y

• El operador &&. Cuando ambas expresiones se evalúan como True, & devuelve True.
• El operador || realiza la disyunción o inclusión lógicas de dos expresiones Boolean. Si una de las
expresiones o ambas se evalúan como True, devuelve True.
• El ^ Realiza la exclusión lógica de dos expresiones Boolean. Si exactamente una expresión, pero no
ambas, se evalúa como True , devuelve True.
Operadores Aritméticos

Operador Nombre Ejemplo


+ Suma z= x+ y
- Resta z= x-y
* Multiplicación z= x* y
/ División z= x/ y
% Módulo z= x %y
Operadores Relacionales

Operador Nombre Ejemplo


> Mayor que x> y
< Menor que x<y
<= Menor o Igual x<= y
>= Mayor o Igual x>= y
!= Diferente de x !=y
== Igual a X==Y

https://docs.microsoft.com/es-es/dotnet/csharp/language-reference/operators/
MATERIAL DE REFERENCIA
Aplicación de Consola
Leer un dato por Consola
Console.ReadLine()
Ejemplo
tipoCuenta = Console.ReadLine();
numeroCuenta =int.Parse(Console.ReadLine());
numeroCuenta =Convert.ToInt32(Console.ReadLine());

Mostrar un dato por Consola


Console.Write()
Console.WriteLine()

Ejemplo:
Console.Write("Digite el Tipo de Cuenta:");
Console.WriteLine("El numero de cuenta es {0} de tipo {1} con el saldo {2}", numeroCuenta,
tipoCuenta,saldoCuenta);
Console.WriteLine($"Cuenta:{tipoCuenta} Tipo: {numeroCuenta} Saldo:{saldoCuenta:c}");

MATERIAL DE REFERENCIA
https://docs.microsoft.com/es-es/dotnet/standard/base-types/standard-numeric-format-strings
using System;
namespace fundamentos
{
class Program
{
static void Main(string[] args)
{
string tipoCuenta;
int numeroCuenta;
double saldoCuenta;

Console.Write("Digite el Tipo de Cuenta:");


tipoCuenta =Console.ReadLine();

Console.Write("Digite el Número de la Cuenta:");


// Convert convierte el valor enviado en un tipo de Dato definido
numeroCuenta = Convert.ToInt32(Console.ReadLine());

Console.Write("Digite el Número Saldo:");


saldoCuenta = double.Parse(Console.ReadLine());

//Forma de visualizar cadenas con diferentes tipos de datos en la respuesta


//Forma 1
Console.WriteLine("El numero de cuenta es {0} de tipo {1} con el saldo {2} ",
numeroCuenta, tipoCuenta,saldoCuenta);

//Forma 2: Interpolación de String


Console.WriteLine($"Cuenta:{tipoCuenta} Tipo: {numeroCuenta} Saldo:{saldoCuenta:c}");
Console.ReadKey();
}
}
}
Condicionales
float notaPrimerCorte;
float notaSegundoCorte;

Console.Write("Digite la nota del Primer Corte:");


notaPrimerCorte = Single.Parse(Console.ReadLine());

Console.Write("Digite la nota del Segundo Corte:");


notaSegundoCorte = Single.Parse(Console.ReadLine());

if (notaPrimerCorte> notaSegundoCorte)
{
Console.Write("La nota del Primer Corte es mayor");
}
else if (notaPrimerCorte == notaSegundoCorte)
{
Console.Write("Las notas son iguales");
}
else
{ Condicionales tomado de http://diwo.bq.com/
Console.Write("La nota del Segundo Corte es mayor");
}

Console.ReadKey();
BUCLES
// An array of integers
int[] array1 = { 0, 1, 2, 3, 4, 5 };
for (int i = 0; i < array1.Length; i++)
{
System.Console.WriteLine(array1[i].ToString());
}

// An array of strings
string[] array2 = { "hello", "world" };
foreach (string s in array2)
{
System.Console.WriteLine(s);
}
Console.ReadKey();

https://docs.microsoft.com/es-es/previous-versions/visualstudio/visual-studio-2008/f0e10e56(v=vs.90)?redirectedfrom=MSDN
MATERIAL DE REFERENCIA
CICLOS

do {

} while (true);

while (true)
{

}
https://docs.microsoft.com/es-es/previous-versions/visualstudio/visual-studio-2008/f0e10e56(v=vs.90)?redirectedfrom=MSDN
MATERIAL DE REFERENCIA
Convenios de Nombres
Convenios de Nombres
Mayúsculas /Minúsculas
Estilo PasCal: La Primera letra de cada palabra debe ser en mayúscula Ejemplo:
NombreLibro

Estilo caMel: La Primera letra de cada palabra debe ser en mayúscula exceptuando
la primera Ejemplo: nombreLibro

Mayúscula: Toda la palabra va en letra mayúscula. Se


recomienda utilizar para nombre que representan
abreviaturas de 1 o 2 caracteres. Ejemplo PI, E
Directivas por Asignación de Nombres

• Un nombre debe describir la función semántica del elemento, es decir que hace
o que valor representa.

• La notación Húngara añade sufijos o prefijos a los nombres de variables para


indicar su tipo. Sin embargo, esto sólo se recomienda para el código de
Interfaces Graficas de usuario (GUI), en el cual se añade su tipo como sufijo sin
abreviar, ejemplo:

• NombreTexto
• ApellidoTexto
• TxtApellido
• TxtNombre
• CmbSexo
Directivas por Asignación de Nombres

Tipo Características Estilos Notas


Clase/Estructura Utilizar sustantivo o frases en PasCal No añadir prefijos de clases
función del sustantivos.
Interface Utilizar sustantivo o frases en PasCal Añadir Prefijo I, manteniendo la
función del sustantivos o primera letra del Nombre en
adjetivos que describan su mayúscula
comportamiento.
Enumeraciones Utilizar nombre en singular PasCal No añadir prefijos/Sufijos al nombre
nombres/Valores para enumeraciones que del tipo
obligan a escoger un valor en
caso contrario en plural.
Clases de PasCal Finaliza con Excepetion
Excepción
Variables Utilizar i,j,k,l,m, etc para caMel No añadir prefijos/Sufijos al nombre
contadores locales utilizados del tipo
en bucles triviales.
Métodos Usar verbos o frases Verbales PasCal No añadir prefijos/Sufijos al nombre
del tipo
Directivas por Asignación de Nombres
Tipo Características Estilos Notas
Nombres de Espacio PasCal No añadir prefijos/Sufijos
al nombre del tipo
Propiedades Utilizar sustantivo o PasCal No añadir prefijos/Sufijos
frases en función del al nombre del tipo
sustantivos.
Atributos o campos Utilizar sustantivo o caMel No añadir prefijos/Sufijos
protegidos o privados frases en función del al nombre del tipo
sustantivos.
parámetros Utilizar sustantivo o caMel No añadir prefijos/Sufijos
frases en función del al nombre del tipo
sustantivos o adjetivos
que describan su
comportamiento.
Constantes Utilizar sustantivo o Mayúscul No añadir prefijos/Sufijos
frases en función del a al nombre del tipo
sustantivos o adjetivos
que describan su
comportamiento.
REFERENCIAS
• Joyanes-Agular, L., (2008) FUNDAMENTOS DE PROGRAMACIÓN. Algoritmos, estructura de datos y
objetos. Cuarta edición. p.32 McGRAW-HILL, Madrid – España.
• TutorialsTeacher.com, (18 de Agosto de 2020). Tutoriales de C #.
https://www.tutorialsteacher.com/csharp/csharp-tutorials
• Microsoft, (18 de agosto de 2020)Visual Studio tutorials | C#. Visual Studio documentation
https://docs.microsoft.com/en-us/visualstudio/get-started/csharp/?view=vs-2019

También podría gustarte