You are on page 1of 35

2014

Manual de Visual C# Sharp

Yonathan Sinay, Irvin


Cervantes, Abner Lopez,
Heidy Garcia, Anglica
Chavarra y Astrid Pixtum.
Instituto Profesional De Computacin
Villa Nueva, Guatemala.
15/08/2014

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

n3 es mayor

N2>n3

n2 es mayor

es mayor

Fin

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

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

Menor= num2

Mayor = num2

Menor = num2

I=1; menor<=mayor

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.

inicio

Num1

Num2

I= num1

I = i +1;

I <=
num2

FIN

Cdigo
C.W(ingrese num1);

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 + 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).
Representacin Grfica
Vector:
0

1
2
3
Matriz:
0,0 0,2
1,1 1,2
2,1 2,2
3,1 3,2

0,3
1,3
2,3
3,3

0,4
1,4
2,4
3,4

Declaracin de Vector en C#
Int [] a = new int[5];

Numero de casillas que va a tener el vector.


Declaracin de Matriz en C#
Int [,] matriz = new int [5,5];
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:

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

Matrices
Arreglo de dos dimensiones.
Puedo representarse grficamente como una tabla.

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++)
{

if (a[i, j] % 2 == 0)

Console.Write("0");

else

Console.Write(a[i, j]);

Console.Write(" ");
}
Console.WriteLine();
}
Console.ReadKey();
}

Procedimientos o Parmetros
PARAMETROS

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;

mostrarDoble(ref original);
Console.WriteLine(Original: {0}, original);
}
static void mostrarDoble(ref int valorAMostrar)
{
valorAMostrar *=2;
Console.WriteLine(Doble: {0}, valorAMostrar);
}
En pantalla imprimira esto:
Doble: 200
Original: 200
Parmetros array

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

You might also like