Cervantes, Abner Lopez, Heidy Garcia, Anglica Chavarra y Astrid Pixtum. Instituto Profesional De Computacin Villa Nueva, Guatemala. 15/08/2014 Manual de Visual C# Sharp
Introduccin Objetivo Principal Investigar e impartir todo el conocimiento posible sobre lo que es programar en visual C# Sharp.
Objetivos especficos A) Investigar todo lo relacionado a lo que es C# Sharp. B) Tratar de saber como funciona un programa en este lenguaje y todo lo que se puede llegar a programar. C) Indagar la forma de trabajar en este lenguaje y tratar de mostrar el funcionamiento lo mejor posible.
Hiptesis 1. C# Sharp es una til herramienta que nos ayuda a interactuar con lo que es programar. 2. Es uno de los mejores lenguajes de programacin. 3. Fcil, prctico para poder trabajar con este lenguaje.
Justificacin El ayudar a todos los futuros programadores de esta generacin a poder interactuar con el tema de la programacin y que mejor que con este lenguaje que es C# Sharp.
Contenido
1. Diagrama de flujo
2. Smbolos de un diagrama de flujo
3. Estructuras de Seleccin
3.1 If simple
3.2 If compuesto
3.3 If anidado
4. Declaracin de variables en C Sharp
5. Estructuras Repetitivas
5.1 ciclo for
5.2 repeat-until
5.3 while
5.4 do.while
6. Arreglos
7. Vectores
8. Ordenamientos en c Sharp
9. Ordenamiento burbuja
10. Ordenamiento de seleccin
11. Matrices
12. Procedimientos o parmetros
13. Funciones
Diagrama de Flujo
Es un modelo que representa de forma visual el flujo de un programa, es decir representa el orden en que se ejecuta las instrucciones de un algoritmo o programa.
Un algoritmo es un conjunto de pasos que solucionan un problema seleccionado.
Smbolos de un Diagrama de Flujo
Direccin de Flujo.
Entrada o Salida de Datos.
Procesos.
Bifurcaciones o Condiciones.
Conector.
Ejemplo.
Realizar un diagrama de flujo que represente un programa en que se soliciten 2 nmeros y que muestra la suma entre los mismos.
Inicio Escribir ( ingrese el primer nmero) Leer (num1) Escribir ( ingrese el segundo nmero) Leer (num2) Suma = num1 + num2 Escribir ( la suma es + Suma) Fin
Inicio
Inicio ingrese primer numero num1 ingrese segundo numero num2 Suma = num1 + num2 Suma FIN
Estructuras de Seleccin
Una estructura de seleccin permite realizar una bifurcacin en el flujo de un programa. Entre las estructuras de seleccin estn: If - Simple - Compuesto - Anidado
Ejemplo en Diagrama de Flujo If Simple
Si
No
If Compuesto
If Anidado
Si Si No No
Si
No
Ejemplos: Realizar un diagrama de flujo que solicite tres nmeros y que indique cual es el mayor de ellos.
Inicio N1 n2 n3 N1 > n2 N1> n3 n3 es mayor
Cdigo en C# Sharp If (n1 > n2) { If (n1 > n3) { C.W (n1 es el mayor); } Else { C.W (n3 es el mayor); } } else { If (n2 > n3) { C.W (n2 es el mayor); } Else { C.W (n3 es el mayor); } n3 es mayor N2>n3 n2 es mayor es mayor Fin
Declaracin de Variables en c#
Static Void Main (String[] args) { Tipo de variable + variable Int a; Bool a; String a; Char a; Double a; Imprimir en Consola Console.WriteLine (mensaje); Console.WriteLine (<nombre de la variable>); <nombre> = int.Parse(Console.ReadLine());
Ejemplo:
Class program { Static void Main(String[] args) {
Declaracin de las Variables
Cuerpo del Programa
} }
Estructuras Repetitivas
Una estructura repetitiva es aquella que permite iterar ciertas instrucciones en el flujo de un programa o algoritmo.
Estas estructuras conocidas como bucles poseen comnmente una variable centinela que permite controlar la cantidad de interacciones.
Las estructuras repetitivas son:
- For - While - Do..while - Repeat..Until
El Ciclo For
Diagrama de Flujo:
I = 0; i < vf; i++ instrucciones
Estructura en C# For ( int I = 1; condicin ; aumento i) { Instrucciones } Ejemplo: Realizar una aplicacion en C# con diagram de flujo en la que se solicitan dos nmeros, luego debe mostrar todos los nmeros del menor al mayor.
Diagrama de flujo:
inicio ingrese num 1 Num1 N1>n2 Mayor=num1 Mayor = num2 Menor= num2 Menor = num2 I=1; menor<=mayor i
Cdigo C# C.W (ingrese numero 1); Num1 = int.Parse(Console.ReadLine()); C.W (ingrese Segundo numero); Num2 = int.Parse(Console.ReadLine()); If (n1>n2) { Mayor = num1; Menor = num2; }else{ Mayor = num2; Menor = num1; }
Repeat El repetir comprueba la condicin de finalizacin al final del cuerpo del bucle, y si esta es cierta continuar con el resto del programa, a veces esto resulta mas adecuado.
Ejemplo:
Repeat
Until (condicin) = hasta
Instruccin While y Do..While
While: Esta estructura repetitiva controlada por una condicin . La condicin se eleva al inicio de cada interaccin.
Representacin Diagrama de Flujo While:
DoWhile Estructura repetitiva controlada por una condicin. La condicin se evalua al inicio de cada interaccin.
Representacin en Diagrama de Flujo:
si
no
While Cdigo en C#
While (condicin) { Instrucciones }
DoWhile Codigo en c#
Do { Instrucciones }
While (Condicin);
Ejemplo del ciclo DoWhile Realizar un programa en el que se ingresan 2 nmeros y debe imprimir los nmeros del mayor al menor. Con diagrama de flujo.
Cdigo C.W(ingrese num1); inicio Num1 Num2 I= num1 i I = i +1; I <= num2 FIN
Num1 = int.Parse(C.R()); C.W(ingrese num1); Num2 = int.Parse(C.R()); I= num1 ; Do { c.w(i)< I = i+1; } While ( I <= num2); C.ReadKey();
Ejemplo : Realizaremos el mismo programa solo que ahora con la instruccin While. Diagrama de flujo:
inicio N1 N2 I = n1 I<=n2 i I = i + 1; FIN
Cdigo en c Sharp
C.W (ingrese el numero 1); N1 = int.Parse(C.R()); C.W (ingrese el numero 2); N2 = int.Parse(C.R()); I= n1; While ( i <= n2) { C.W (i); I = i + 1; } Console.Readkey();
Arreglos Estructura de datos de tipo homogneo ( de un solo tipo).
Pueden ser de una o mas dimensiones.
Los mas conocidos son: Vectores (una dimensin). Matrices (dos dimensiones).
Nmero de filas y de columnas que va a tener la matriz.
Ejemplo Vector:
Realizar un programa en el que se ingresan nmeros a 2 vectores de tamao de 5, para luego sumarse y mostrarse en un tercer Vector.
Int [] a,b,c = new int [5];
For (int I = 0; I < 5; i++) {
C.W (ingrese numero para el vector a); A[i] = int.Parse(C.R()); }
For (int I = 0; I < 5; i++) {
C.W(ingrese numero para el vector b); B[i] = int.Parse(C.R()); }
For (int I = 0; I < 5; i++) {
c[i] = a[i] + b[i]; }
For (int I = 0; I < 5; i++) {
C.W ( c[ I ] ); }
Algoritmos de Ordenamientos
Conjunto de instrucciones que permiten el ordenamiento ascendente o descendente de una lista ( vector / matriz ) de nmeros.
Existen algoritmos de ordenamiento. Los mas conocidos son:
- Burbuja - Seleccin - Quicksort
Ordenamiento Burbuja
Traslada el nmero de mayor valor hacia el costado derecho.
Ejemplo:
7 3 4 2 3
3 7 4 2 3
3 4 7 2 3
3 4 2 7 3
3 4 2 3 7
3 2 4 3 7
3 2 4 3 7
3 2 3 4 * 7 *
3 2 3 4 7
2 3 3 4 7
Ordenamiento Seleccin Elige el elemento que se encuentra mas a la izquierda que no se ha seleccionado y lo intercambia con el elemento de menor valor que se encuentre a su derecha.
Ejemplo Cdigo de burbuja en C#
Int [ ] a = new int [ 5 ]; Int aux; For (int I = 0; I < tam-1; i ) { For (int j = 0; I < tam-1; j ) { If (a[ I ] > a[ j ]) { Aux = a[ I ]; A[ I ] = a[ j ]; A[ j ] = aux; } } }
Metodo Burbuaj Cdigo Int [ ] a = new int [ 5 ]; Int aux; For (int I = 0; I < tam-1; i ) { For (int j = 0; I < tam-1; j ) { If (a[ I ] > a[ j ]) { Aux = a[ I ]; A[ I ] = a[ j ]; A[ j ] = aux; } } }
Diagrama de Flujo
Matrices Arreglo de dos dimensiones. Puedo representarse grficamente como una tabla. INICIO I = 0; i<tam-1; i++ j = 0; i<tam; j++
A[i]> a [j] Aux = a[ I ]; A[ I ] = a[ j ]; A[j] = aux; FIN
Para acceder a un elemento se utilizan dos ndices; rl primer ndice indica la fila y el segundo la columna.
Declaracin en C# Sahrp Int [ ] a = new int [ filas, columnas]; Ejemplo: Realizar un programa en el que se ingresan nmeros para una matriz de 3x3, solo debe de aceptar nmeros positivos y si es negativo que muestre un mensaje de numero invalido y vuelva a pedir el numero y que que muestre la matriz en forma de tabla. Cdigo: using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace ConsoleApplication2 { class Program { static void Main(string[] args)
{ int[,] a = new int[3, 3]; Console.WriteLine(" el llenado de matriz"); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { Console.WriteLine("ingrese numero para a([0],[1])" + i, j); a[i, j] = int.Parse(Console.ReadLine()); if (a[i, j] < 0) Console.WriteLine("numero invalido");
} } Console.WriteLine("para la matriz completa, Presione Enter"); Console.ReadKey(); Console.Clear(); Console.WriteLine("mostrar matriz"); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) {
En C# Sharp un parmetro es una variable que puede pasar su valor a un procedimiento desde el principal o desde otro procedimiento. Existen ocasiones en que es necesario mandar al procedimiento ciertos valores para que los use en algn proceso.
Estos valores que se pasan del cuerpo principal del programa o de un procedimiento a otros procedimientos se llaman parmetros. Entonces en c# net la declaracin completa de un procedimiento es : Void Nom_Proc (lista de parmetros)
{ cuerpo de instrucciones;};
En C#, los argumentos se pueden pasar a parmetros por valor o por referencia. El paso de parmetros por referencia permite a los miembros de funciones, mtodos, propiedades, indizadores, operadores y constructores cambiar el valor de los parmetros y hacer que ese cambio persista en el entorno que procede de la llamada. Para pasar un parmetro por referencia, utilice una de las palabras clave ref o out. En los ejemplos de este tema, para simplificar, slo se utiliza la palabra clave ref. Para obtener ms informacin sobre la diferencia entre ref y out, vea ref (Referencia de C#)
Tipos de parmetros en C#
Parmetros Valor Es el caso ms habitual, un mtodo acepta parmetros y devuelve un nico valor. Los parmetros se conocen como parmetros valor, pues cuando se llama al mtodo se enva una copia de su valor. Cualquier cambio que sufra el parmetro dentro del mtodo no afectar al valor original. Ejemplo: [csharp] static void Main(string[] args)
{ int original = 100; mostrarDoble(original); Console.WriteLine(Original: {0}, original); } static void mostrarDoble(int valorAMostrar) { valorAMostrar *=2; Console.WriteLine(Doble: {0}, valorAMostrar); } [/csharp] Como vemos, el parmetro valorAMostrar sufre una modificacin dentro del mtodo pero ello no afecta a la variable original, pues es una copia de sta ltima.
Parmetros de salida
A pesar de que el caso anterior es el ms comn, hay ciertas ocasiones en las que es til (o incluso necesario) devolver ms de un valor desde un mtodo. En este caso, un valor puede ser devuelto usando el comando normal return y los valores adicionales usando los parmetros de salida. Un parmetro de salida se declara usando la palabra clave out antes del tipo y el nombre de dicho parmetro. Para devolver un valor usando este parmetro, simplemente se le debe asignar un valor, que ser accesible desde el cdigo que llama al mtodo. La palabra clave out tambin debe incluirse en la llamada al mtodo. Ejemplo:
[csharp]
static void Main(string[] args) { int area; int perimetro; area = CalculaRectangulo(5, 10, out perimetro); Console.WriteLine(Area: {0}, area); Console.WriteLine(Perimetro: {0}, perimetro); } static int CalculaRectangulo(int ancho, int altura, out int perimetro) { perimetro = (ancho * 2) + (altura * 2); return ancho * altura; } Parmetros por referencia Cuando se pasa un objeto basado en alguna clase como parmetro, se hace por referencia. Esto significa que cualquier cambio en alguna propiedad del objeto dentro del mtodo se reflejar tambin fuera de dicho mtodo. Esto se debe a que ambos objetos son en realidad el mismo, o ms bien sus punteros apuntan al mismo rea de memoria. Es posible emular este comportamiento en tipos valor declarando el parmetro como parmetro referencia. Se hace, de forma semejante a los parmetros de salida, con la palabra clave ref. Ejemplo:
[csharp]
static void Main(string[] args) { int original = 100;
El ltimo tipo de parmetros de los mtodos es el parmetro array. Este tipo debe ser el ltimo en la definicin del mtodo, e indica que la funcin acepta cualquier nmero de parmetros del tipo establecido. Cada valor se combina en un array estndar que puede ser procesado dentro del mtodo.
De nuevo, se hace necesario el uso de una palabra clave, en esta ocasin params. Se declara como un array unidimensional aadiendo un par de corchetes al tipo del parmetro en la definicin del mtodo.
Ejemplo claro de un complicado programa con procedimientos.
Funciones en C# Sharp Conjunto de instrucciones que ejecutan un proceso especfico y que adems devuelven un valor de retorno.
Un procedimiento que define un tipo de dato retorno. Estructura en Visual C# Sharp
Public tipo-retorno nombre funcin (parmetros) { Instrucciones
Return valor-retorno
}
Ejemplo: Realizar un programa en el que se ingresa un nmero que va a ser la base, y se ingresa otro nmero que va a ser el exponente. Luego realizar una funcin en la que se eleva la base sobre el exponente ingresando utilizando una estructura repetitiva.
Prvate int base, exp = 0; Prvate int resultado = 0; Public Static void Main (String [] args) { C.W (ingrese base); Base = int.Parse(C.R()); C.W (ingrese el exponente); exp = int.Parse(C.R()); resultado = elevar (bas,exp);
C.W (Resultado de elevacin); C.W(resultado); } Public int elevar (int b, int e) { Int res = b; For (int I = 1; I < e; i++) { Res = res*b; } Return res; }
Ejemplo 2: Cdigo:
Realizar un programa que muestre la seeri Ulam de un nmero por medio de funcin.
using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace ConsoleApplication1
{ class Program { static int N; static void Main(string[] args) {
Console.WriteLine("Ingrese nmero : "); N = int.Parse(Console.ReadLine()); N = ULAM(N); if (N > 0) {
} else {
Console.Write("N tiene que ser un entero positivo"); } Console.ReadKey();
}
static int ULAM(int serie) { while (N != 1) { if (N % 2 == 0) {
N = N /= 2; } else {
N = N * 3 + 1; } Console.WriteLine(N); } return N; } } }