Fundamentos de programación

Yhoan Galeano

 

Web Developer

Programación Orientada a objetos

Es un paradigma de programación que permite desarrollar soluciones a través de software basándose en los objetos del mundo real.

TODO es un objeto

Objeto

  • Nombre
  • Color
  • Precio
  • Edad

Comportamiento

Estado

Identidad

Conjunto de atributos que tiene el objeto.

Todo lo que el objeto puede hacer.

Representa la agrupación de aquellos objetos que presentan características similares.

  • Caminar
  • Maullar
  • Ronronear
  • Dejar caer cosas solo por diversión

Clase Gato

Ejemplo de clase

Nombre
Color
Precio
Edad
Caminar()
Maullar()
Ronronear()
DejarCaerCosas()
Funciones o métodos
Atributos
Gato

clase Gato

cadena nombre

cadena color

real precio

entero edad

// Atributos

// Funciones o métodos

funcion maullar()

finfuncion

escribir("Meowww")

funcion ronronear()

finfuncion

escribir("rrrrrrrrrrrrr")

finclase

Principios

Abstracción

Encapsulamiento

Herencia

Polimorfismo

Introducción a C#

Historia

Caracteristicas

  • Lenguaje de programación
  • Orientado a objetos
  • Basado en C y C++
  • Seguridad de tipos
  • Case Sensitive
  • Lenguaje de alto nivel(Compilado)
  • Incluido en el .NET Framework

Framework de .NET

Porqué C#?

  • Web
  • Consola
  • Backend(REST API, Soap Services)
  • Desktop
    • Windows
    • Linux
    • OSX
  • Servicios
  • Mobile Apps
    • Android
    • iOS
    • Windows Phone
  • iOT
  • Drivers
  • Video Juegos(Unity3D)

En el mercado...

  • Agencias digitales
  • Banca
  • Gobierno
  • Seguros
  • Fábricas de Software

Productos hechos con C#

Entornos de desarrollo

  • Visual Studio Code
  • Visual Studio
  • Sublime Text
  • Notepad++
  • MonoSharp
  • Bloc de Notas

Sintaxis

A excepción de las estructuras de control, absolutamente todas las sentencias deben llevar un punto y coma al final.

Variables

Inicio

         leer(dividendo)

Fin

         leer(divisor)

        funcion dividir(dividendo, divisor)

finfuncion

        si divisor = 0 entonces

        finsi

        sino

        escribir("El divisor no puede ser cero")

resultado<-dividendo / divisor

        escribir(mensaje,r)

        real resultado

residuo<-dividendo MOD divisor

        escribir("El resíduo es ",r)

        cadena mensaje <- "El resultado es "

Ámbito y acceso

Por clase

Por función o método

Por bloque

{Tipo Dato} {Nombre Variable} = {Valor};

Estructura

int edad = 18;

Tipos de datos

int Entero
double Decimal
decimal Decimal
char Caracter
string Cadena
bool Lógico
int edad = 18;
double estatura = 1.70;
decimal resultado = 9.95M;
char x = 'a';
string saludo = "Hola clase";
bool EstaLLoviendo = true;

Algunos como:

entre otros...

Aritméticos + - * / %
Lógicos ! && ||
Concatenación +
Relacional == != < > <= >=

Puedes operar variables con...

entre otros...

Estructuras de control

Cada estructura de control debe abrirse con "{" y cerrarse con "}"

si monedas > 0 entonces

ComprarDulces()

sino

if (monedas > 0){

ComprarDulces();

}

Pseudocódigo

C#

if

bool EsMayorDeEdad;
if (edad >= 18) {
   EsMayorDeEdad = true;
}
else {
   EsMayorDeEdad = false;
}

if

(Simple)

(Multiple)

string ColorSemaforo;
if (ColorSemaforo == "Rojo") {
   DetenerAuto();
}
else if (ColorSemaforo == "Amarillo"){
   DisminuirVelocidad();
}
else {
   POnerEnMarchaAuto();
}

Condicionales

switch

switch (ColorSemaforo) {
    case "Rojo":
        DetenerAuto();
        break;
    case "Amarillo":
        DisminuirVelocidad();
        break;
    case "Verde":
        POnerEnMarchaAuto();
        break;
    default:
        AvanzarConPrecuacion();
        break;
}

for

while

//Escribe del 1 al 10
for (int i = 0; i < 10; i++) {
    escribir(i);
}
//Escribe 1 al 10
int i = 0;
while (i < 10) {
    escribir(i);
    i++;
}

foreach

foreach (int i in vectorNumeros) {
    escribir(i);
}

Ciclos

public int sumar(int numero1, int numero2){
    int resultado = numero1 + numero2;
    return resultado;
}

Modificador de

acceso

Objeto

retorno

Nombre

método

 

Parámetros

de entrada

 

Objeto de retorno

Funciones

Modificadores de acceso

  • Public
  • Private
  • Static

Definen que nivel de acceso tendrá una clase, atributo y/o método.

Entre otros...

Manejo de errores

try{
    /*
    **    Aquí va el código susceptible a errores, 
    **    algo que pueda fallar en algún momento
    */
}
catch(Exception error){
    /*
    **    Aquí se especifica qué hacer en caso
    **    de que algo falle, es un plan de contingencia.
    */
}
finally{
    /*
    **    Aquí va la lógica que se ejecutará 
    **    independientemente si funciona o 
    **    falla el "try"
    */
}

Objetos

Son copias o instancias de clases.

Gato pelusa = new Gato();

Nombre de la clase

Nombre del objeto o variable

Nombre del objeto o variable

pelusa.color = "Negro";
pelusa.Maullar();

Y para acceder a sus funciones y propiedades:

Arreglos

Conjunto finito de elementos de un mismo tipo.

(Arrays)

Estructura

Unidimensionales

//Ambas opciones funcionan
string[] frutas = new string[3];
string[] frutas = {"Manzana", "Pera", "Coco"};

Acceso

Creación

string manzana = frutas[0];
//O si se desea cambiar algún valor en el arreglo.
frutas[0] = "Manzana Verde";

donde 0 es el índice o posición del elemento.

Multidimensionales

// Ambas opciones funcionan
string[,] alumnos= new string[2, 2];
string[,] alumnos= new string[2, 2] {{"Pedro","Perez"},
                                      {"Sara","Lopez"} };

Acceso

Creación

string nombrePedro = alumnos[0,1];
/* O si se desea cambiar algún valor
** en el arreglo.
*/
alumnos[0,1] = "Pedro Alberto";

donde 0 es el índice de la fila y 1 es el índice de la columna.

Escalonados

int[][] arregloEscalonado= new int[3][];

Acceso

Creación

arregloEscalonado[0] = new int[5];
arregloEscalonado[1] = new int[4];
arregloEscalonado[2] = new int[2];

(Arreglos de arreglos)

ArrayList

ArrayList arregloUsuarios = new ArrayList();

Acceso

Creación

Usuario objetoRecuperado = arrUsuarios[0];

Arreglos sin longitud preestablecida

Usuario objUsuario = new Usuario();
arregloUsuarios.Add(objUsuario);

Agregar elementos

Fundamentos de programación - Clase 3

By Yhoan Andres Galeano Urrea