c#2

¿Qué es programar?

  • Es hacer que la computadora obedezca una serie de instrucciones bien detalladas, usando un lenguaje de programación. Indicamos a la computadora qué tiene que suceder en cada momento, y cómo tiene que reaccionar ante la interacción del usuario.
  • Se conoce como programación de computadoras a la implementacion de un algoritmo a un determinado lenguaje de programacion, conformando un programa.
Programa

Concepto desarrollado por Von Neuman en 1946.
Unión de una secuencia de instrucciones que una computadora puede interpretar y ejecutar, que almacenan una información independiente de dicha secuencia maneja. Para ello se usa un lenguaje de programación que sirven para programar la secuencia de instrucciones requerida. Un programa esta formado por algoritmos y estructura de datos

Lenguaje de programación

Tiene un número limitado de símbolos y un número limitado de palabras. Constituido por un conjunto de reglas sintácticas y semánticas.

Sintacticas: se refiere a la especificación de la instrucción de instrucciones válidas
Semanticas: especifican el significado de estas instrucciones. La escritura o codificación del programa puede resultar una tarea sencilla si conocemos las reglas sintácticas y semánticas que constituyen el lenguaje de programación.

Antecedentes de C#

Desde los 70s hasta las fecha actual

La historia de C parte de un lenguaje anterior, el lenguaje B, escrito por Ken Thompson en 1970 con el objetivo de recodificar el sistema operativo UNIX, que hasta el momento se había programado en ensamblador. La pega del ensamblador era que lo ligaba a una serie de máquinas concretas, por lo que conseguir un lenguaje abstraído de cada máquina conseguiría una portabilidad del sistema muchísimo mayor. A su vez B fue inspirado en el BCPL de Martin Richard, diseñado tres años antes.

En 1972 es Dennis Ritchie (de los Laboratorios Bell de AT&T) quien diseña finalmente C a partir del B de Thompson, aportando un diseño de tipos y estructuras de datos que consiguen una claridad y eficacia en el lenguaje muy superior. Es un lenguaje que permite realizar una programación estructurada economizando las expresiones, con abundancia de operadores y tipos de datos (aunque los básicos sean pocos), codificando en alto y bajo nivel simultáneamente, reemplazando ventajosamente la programación en ensamblador y permitiendo una utilización natural de las funciones primitivas del sistema.

Durante muchos años no existen reglas estándar para el lenguaje, pero en 1983 se decide formar un comité con el objetivo de crear el estándar ANSI (Instituto Nacional Americano de Estándares). El proceso dura seis años y a principios de los 90 el estándar es reconocido por la ISO (Organización Internacional de Estándares) y comienza a comercializarse con el nombre ANSI C.
Paralelamente, en 1980 surge C++ de la mano de Bjarne Stroustrup (también de Laboratorios Bell de AT&T). Diseña este lenguaje con el objetivo de añadir a C nuevas características: clases y funciones virtuales (de SIMULA67), tipos genéricos y expresiones (de ADA), la posibilidad de declarar variables en cualquier punto del programa (de ALGOL68), y sobre todo, un auténtico motor de objetos con herencia múltiple que permite combinar la programación imperativa de C con la programación orientada a objetos. Estas nuevas características mantienen siempre la esencia del lenguaje C: otorgan el control absoluto de la aplicación al programador, consiguiendo una velocidad muy superior a la ofrecida por otros lenguajes.

El siguiente hecho fundamental en la evolución de C++ es sin duda la incorporación de la librería STL años más tarde, obra de Alexander Stepanov y Adrew Koening. Esta librería de clases con contenedores y algoritmos genéricos proporciona a C++ una potencia única entre los lenguajes de alto nivel.
Debido al éxito del lenguaje, en 1990 se reúnen las organizaciones ANSI e ISO para definir un estándar que formalice el lenguaje. El proceso culmina en 1998 con la aprobación del ANSI C++.

La última variante que ha surgido de C es el moderno C#. En el año 2000, Microsoft presenta su plataforma .NET junto con un nuevo lenguaje, C# (diseñado por Anders Hejlsberg), que servirá de lenguaje principal de la plataforma. C# es un híbrido de C++ y Java que fusiona, principalmente, la capacidad de combinar operadores propia del primero (no incorpora la herencia múltiple) con la plena orientación a objetos del segundo. La orientación a objetos es tal que el propio programa está encapsulado en una clase.

Actualmente C# se encuentra entre los 10 lenguajes más utilizados. A pesar de su corta historia, ha recibido la aprobación del estándar de dos organizaciones: en el 2001 se aprueba el ECMA y en el 2003 el ISO.

Elementos léxicos de un programa

  • Comentarios: Anotaciones para documentar el programa. Se utilizan de la siguiente forma.
// para comentar sobre un renglón
/*…*/ para comentar párrafos

  • Palabras Reservadas: Palabras que tienen un determinado significado para el compilador.
  • Identificadores: Nombres que los programadores dan a los diferentes elementos del programa. Las características que debe contener son las siguientes:
  1. Secuencia de letras, dígitos y caracteres.
  2. No deben coincidir con una palabra reservada.
  3. No deben empezar con un dígito.
  4. Son sensibles a mayúsculas y minúsculas.
  5. Se acostumbra a poner nombres significativos y que la primera letra de la palabra sea en mayúsculas.
  • Operadores y punteros: Los operadores indican las operaciones que se van a realizar y los punteros agrupan o separan. operadores + – * / % punteros { }
  • Literales: Valores constantes escritos directamente en el programa.
  • Directivas del preprocesador: Son instrucciones al compilador, comienzan con #

Sentencias y bloques

  • Sentencia: Representación de una acción o secuencia de acciones ejecutables (+ – * / ) o no ejecutables (declaraciones).
  • Bloque: Grupo de sentencias delimitadas por llaves { }

Método Main Es un punto de entrada al programa y la ejecución siempre inicia en el método main; debe tener las siguientes características:

  1. Declarado static en una clase o estructura
  2. Regresar void o int.
  3. Debe ser escrito con mayúscula la primera letra y minúscula lo demás.
  4. Puede no tener parámetros o recibir un arreglo de strings.

Using System;
namespace ConsoleApplication1
{
class Class1

{

Static void Main (string[]args)

{

//TODO: Se agrega código para la aplicación

}

}
}

Espacio de Nombres

Clasificación especial para usar un conjunto de clases y estructuras relacionadas, también se ocupa para aislar ese grupo de nombres en conjuntos de tipos de datos separados y distintos.
Es imposible tener dos clases con el mismo nombnre en un espacio de nompres diferentes. Los espacios de nombres puedes ser predefinidos o definidos por el usuario.
El .net tiene clases en espacio de nombre predefinido, por ejemplo system Para definir un espacio de nombre se utiliza:

Namespace NombreEspacio
{

Clases del espacio de nombre

}

Clase:
Unidad básica de la programación orientada a objetos, todo programa en C# se organiza en clases que encapsulan datos y comportamientos.

Una clase se construye con la palabra class seguida del nombre de la clase y el símbolo de inicio y fin de un bloque para delimitar la codificación de sus miembros.

class NombreClase
{

Codificación de los miembros de la clase

}

Clase: Mesa (Conceptos generales) Se generan Objetos de esta clase (Características particulares de la clase) De la clse podemos tener subclases (Hervíboros)

Métodos para escribir datos

Un método es reconocido por tener paréntesis y por los parámetros que puede contener.
Los métodos usados para escribir datos en pantalla son:
1. Write escribe sin añadir el caracter de fin de línea de la cadena

2. WriteLine añade el caracter de fin de linea a la cadena de modo que lo siguiente que se escribe se colocará en la siguiente linea.

Console. write(“Hola”)

Console.WriteLine(“Pepe”)
Console.Write(“¿Cómo estás, “)

Console.WriteLine(” ¿bien?”)

Resultado

HolaPepe

¿Cómo estás, ¿bien?


Palabras reservadas

abstract, as, base, bool, break, byte, case, catch, char, checked, class, const, continue, decimal, default, delegate, do, double, else, enum, event, explicit, extern, false, finally, fixed, float, for, foreach, goto, if, implicit, in, int, interface, internal, lock, is, long, namespace, new, null, object, operator, out, override, params, private, protected, public, readonly, ref, return, sbyte, sealed, short, sizeof, stackalloc, static, string, struct, switch, this, throw, true, try, typeof, uint, ulong, unchecked, unsafe, ushort, using, virtual, void, while.

Condicionales

También existen ocasiones o programas donde se exige evaluar muchas condiciones a la vez, en estos casos o se usa una condición compuesta muy grande o se debe intentar convertir el problema a uno que se pueda resolver usando la instrucción SWITCH.

VARIABLES
Esta instrucción es una instrucción de decisión múltiple donde el compilador prueba o busca el valor contenido en una variable ENTERA, CHARACTER, STRING contra una lista de constantes apropiadas, cuando el computador encuentra el valor de igualdad entre variable y constante entonces ejecuta el grupo de instrucciones asociados a dicha constante, si no encuentra el valor de igualdad entre variable y constante, entonces ejecuta un grupo de instrucciones asociados a un default, aunque este ultimo es opcional.
El formato de esta instrucción es el siguiente;

capturar o asignar variable de condición;
switch(var OPCION)
{
case const1: instrucción(es);
break;
case const2: instrucción(es);
break;
case const3: instrucción(es);
break; ………………
default: instrucción(es);break;
};

C# NET CICLO FOR
Instrucciones para ciclos resuelven el problema de repetir todo el programa o cierta parte del programa mas de una vez.
En C SHARP NET este ciclo es uno de los mas usados para repetir una secuencia de instrucciones sobre todo cuando se conoce la cantidad exacta de veces que se quiere que se ejecute una instrucción simple o compuesta.
Su formato general es:
for (inicialización; condición; incremento)
{ instrucción(es); };
En su forma simple la inicialización es una instrucción de asignación que carga una variable de control de ciclo con un valor inicial.

CICLO WHILE C# NET

En este ciclo el cuerpo de instrucciones se ejecuta mientras una condición permanezca como verdadera en el momento en que la condición se convierte en falsa el ciclo termina.

Su formato general es :

cargar o inicializar variable de condición;

while(condición)

{

grupo cierto de instrucciones;

instrucción(es) para salir del ciclo;

};

prog14.aspx:
</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>void EVENTO1 (Object sender, EventArgs e)</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>{</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>int reng=1;</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>LISTA.Items.Clear();</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>while(reng<=10)</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>{LISTA.Items.Add(reng.ToString()+” mama”);</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>reng++;};</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>}</span><br /><span style=”font-weight: bold; font-family:arial;”>CICLO DO WHILE C# NET</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>Su diferencia básica con el ciclo while es que la prueba de condición es hecha al finalizar el ciclo, es decir las instrucciones se ejecutan cuando menos una vez porque primero ejecuta las instrucciones y al final evalúa la condición;</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>También se le conoce por esta razón como ciclo de condición de salida.</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>Su formato general es :</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>—</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>cargar o inicializar variable de condición;</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>do {</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>grupo cierto de instrucción(es);</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>instrucción(es) de rompimiento de ciclo;</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>} while (condición);</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>—</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>prog15.aspx</span><br /><br /><br /><span style=”font-weight: bold; font-family:arial;”><html></span><br /><br /><span style=”font-weight: bold; font-family:arial;”><form runat=”SERVER”></span><br /><br /><span style=”font-weight: bold; font-family:arial;”><asp:listbox id=”LISTA” rows=”10″ runat=”SERVER”></ASP:LISTBOX></span><br /><br /><span style=”font-weight: bold; font-family:arial;”><asp:button text=”OK” onclick=”EVENTO1″ runat=”SERVER/”><br /></span><br /><br /><span style=”font-weight: bold; font-family:arial;”></form></html></span><br /><br /><span style=”font-weight: bold; font-family:arial;”><script language=”C#” runat=”SERVER”></span><br /><br /><span style=”font-weight: bold; font-family:arial;”>void EVENTO1 (Object sender, EventArgs e)</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>{</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>int reng=1;</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>LISTA.Items.Clear();</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>do</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>{LISTA.Items.Add(reng.ToString()+” mama”);</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>reng++; } while(reng<=10);</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>}</span><br /><br /><span style=”font-weight: bold; font-family:arial;”>

La condición es una expresión relacional que evalúa la variable de control de ciclo contra un valor final o de parada que determina cuando debe acabar el ciclo.
El incremento define la manera en que la variable de control de ciclo debe cambiar cada vez que el computador repite un ciclo.
Se deben separar esos 3 argumentos con punto y coma (;)
El preprocesador no interpreta de ninguna manera el código fuente del fichero, sino que sólo interpreta de dicho fichero lo que se denominan directivas de preprocesado. Estas directivas son líneas de texto del fichero fuente que se caracterizan porque en ellas el primer carácter no blanco que aparece es una almohadilla (carácter #) Por ejemplo:

#define TEST
#error Ha habido un error fatal

No se preocupe ahora si no entiendo el significado de estas directivas, ya que se explicarán más adelante. Lo único debe saber es que el nombre que se indica tras el símbolo # es el nombre de la directiva, y el texto que se incluye tras él (no todas las directivas tienen porqué incluirlo) es el valor que se le da. Por tanto, la sintaxis de una directiva es:

#

Es posible incluir comentarios en la misma línea en que se declara una directiva, aunque estos sólo pueden ser comentarios de una línea que empiecen con // Por ejemplo, el siguiente comentario es válido:

#define TEST // Ha habido algún error durante el preprocesado

Pero este otro no, pues aunque ocupa una línea tiene la sintaxis de los comentarios que pueden ocupar varias líneas:

#define TEST /* Ha habido algún error durante el preprocesado */

Como se ha repetido varias veces a lo largo del tema, la principal utilidad del preprocesador en C# es la de permitir la compilación de código condicional, lo que consiste en sólo permitir que se compile determinadas regiones de código fuente si las variables de preprocesado definidas cumplen alguna condición determinada. Para conseguir esto se utiliza el siguiente juego de directivas:

#if

#elif


#else

#endif

El significado de una estructura como esta es que si se cumple entonces se pasa al compilador el , si no ocurre esto pero se cumple entonces lo que se pasaría al compilador sería , y así continuamente hasta que se llegue a una rama #elif cuya condición se cumpla. Si no se cumple ninguna pero hay una rama #else se pasará al compilador el , pero si dicha rama no existiese entonces no se le pasaría código alguno y se continuaría preprocesando el código siguiente al #endif en el fuente original.

Aunque las ramas #else y #endif son opcionales, hay que tener cuidado y no mezclarlas ya que la rama #else sólo puede aparecer como última rama del bloque #if…#endif.

Es posible anidar varias estructuras #if…#endif, como muestra el siguiente código:

#define PRUEBA

using System;

class A
{
public static void Main()
{
#if PRUEBA
Console.Write (“Esto es una prueba”);
#if TRAZA
Console.Write(“ con traza”);
#elif !TRAZA
Console.Write(“ sin traza”);
#endif
#endif
}
}

Como se ve en el ejemplo, las condiciones especificadas son nombres de identificadores de preprocesado, considerándose que cada condición sólo se cumple si el identificador que se indica en ella está definido. O lo que es lo mismo: un identificador de preprocesado vale cierto (true en C#) si está definido y falso (false en C#) si no.

El símbolo ! incluido en junto al valor de la directiva #elif es el símbolo de “no” lógico, y el #elif en el que se usa lo que nos permite es indicar que en caso de que no se encuentre definido el identificador de preprocesado TRAZA se han de pasar al compilador las instrucciones a continuación indicadas (o sea, el Console.Write(“sin traza”);)

El código fuente que el preprocesador pasará al compilador en caso de que compilemos sin especificar ninguna opción /d en la llamada al compilador será:

using System;

class A
{
public static void Main()
{
Console.Write(“Esto es una prueba”);
Console.Write(“ sin traza”);
}
}

Existen do métodos para leer datos, el primero sirve para leer solo un caracter, y el segundo lee una cadena completa de caracteres.

  1. variable=Console.Read();
  2. cadena= Console.Read();

Para guardar un dato dentro de una variable se ocupa la siguiente sintaxis:

tipo variable = tipo.Parse(Console.ReadLine());

  • Tipo: pueden ir int, char, float, Double.
  • Variable: nom 1,op
  • Pars: ayuda a transformar a estructura de datos

Estructuras de control: evaluan una o más alternativas y pueden ser bidireccional o multidireccional.

Instrucción inf (bidireccional) instruccional condicional más usada en los diversos lenguajes de programación, su sintaxis

if(condicional)   {      Grupo cierto de instrucciones;    }  else     {       grupo falso de instrucciones;      }

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: