Vous êtes sur la page 1sur 193

HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Contenido
Introducción a Visual Studio 2013 ........................................................................................7
Algoritmos en C# ...............................................................................................................7
Algoritmos en C# ......................................................................................................................7
Qué es un programa? ...........................................................................................................7
Algoritmo .............................................................................................................................7
Diagrama de flujo .................................................................................................................7
Lenguaje de Programación ...................................................................................................8
Pseudocódigo .......................................................................................................................9
Matrices en C# .................................................................................................................10
Matrices en C# .......................................................................................................................10
Declaración de una Matriz en C# ......................................................................................11
Ejercicios Resueltos de Matrices en C# ..............................................................................12
Ejemplo Básico en C# ..................................................................................................14
Ejemplo Básico en C# ..........................................................................................................14
Comentarios en C# ...........................................................................................................15
Método Principal ..............................................................................................................15
Crear un Proyecto en C# .............................................................................................16
Codificación del problema con el lenguaje C#. ..............................................................17
Consideraciones a tener en cuenta en cada proyecto. ....................................................17
Pasos a Seguir para crear un proyecto en C# .................................................................17
Ejercicios Resueltos de Estructura Secuencial en C# .........................................19
Ejercicios Resueltos de Estructura Secuencial en C# ........................................................19
Estructura Secuencial en C# ......................................................................................23
Estructura Secuencial en C#................................................................................................23
Ejercicios Resueltos de Estructura Secuencial en C# ....................................................23
Estructuras Condicionales en C# ..............................................................................24
Estructuras Condicionales en C# ........................................................................................24
Estructura Condicional if - else en c# .............................................................................25
Estructura condicional simple. ........................................................................................25
Ejemplos de Estructura Secuencial en c# ...............................................................26
Ejemplos de Estructura Secuencial en c# ...........................................................................26
Operadores Aritméticos en C# ......................................................................................28
Operadores Aritméticos en C# ...............................................................................................28

ING. VLADIMIR FLOREZ TINTA 1


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ejercicios Resueltos de Estructura Condicional Compuesta ...............................................29


Ejercicios Resueltos de Estructura Condicional en C# ..............................................30
Ejercicios Resueltos de Estructura Condicional en C# ............................................................30
Ejemplo de Promedio de Notas en C# .........................................................................32
Ejemplos de If - Else en C# ............................................................................................34
Ejemplos de If - Else en C# ......................................................................................................34
Ejercicios Resueltos de Estructura Condicional Anidada en C# ...............................37
Ejercicios Resueltos de Estructura condicional anidad en c# .............................................37
Estructura Condicional Anidada en C# .........................................................................40
Estructura Condicional Anidada en C# ...................................................................................40
Ejercicios Resueltos de Estructura condicional anidada en c#............................................41
Estructura condicional compuesto en c# ......................................................................43
Estructura condicional compuesto en c# ...............................................................................43
Operador || en C# ..............................................................................................................43
operador && en C# ............................................................................................................43
Operador ? en C# ...............................................................................................................43
Ejemplos de Estructura Anidadas en C# ......................................................................44
Ejemplos de Estructura Anidadas en C# .................................................................................44
Ejercicios Resueltos de Estructura While en C# .........................................................47
Ejercicios Resueltos de Estructura While en C# ......................................................................47
Estructura Repetitiva While en C# ................................................................................50
Estructura Repetitiva While en C# ..........................................................................................50
Ejemplos de Estructura While en C# ............................................................................51
Ejemplos de Estructura While en C# ......................................................................................51
Problemas de Estructura While en C# ..........................................................................53
Problemas de Estructura While en C# ....................................................................................53
Estructura repetitiva For en C# ......................................................................................56
Estructura repetitiva For en C# ..............................................................................................56
Factorial de un Numero en C# .......................................................................................58
Ejemplos del Bucle For en C# .......................................................................................59
Ejemplos del Bucle For en C# .................................................................................................59
Ejercicios Resueltos de Estructura Repetitiva For en C# ..........................................62
Ejercicios Resueltos de Estructura Repetitiva For en C# .........................................................62
Estructura repetitiva Do While en C# ............................................................................65
Estructura repetitiva Do While en C# .....................................................................................65

ING. VLADIMIR FLOREZ TINTA 2


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Do en C# .............................................................................................................................65
Tabla de Multiplicar en C# ..............................................................................................66
Tabla de Multiplicar en C# ......................................................................................................66
Ejemplo de Do While en C# ...........................................................................................67
Ejemplo de Do While en C# ....................................................................................................67
Ejercicios de la Estructura Do While en C# .................................................................69
Ejercicios Resueltos de Estructura Repetitiva Do While en C# ...............................................69
Ejercicios con Cadena de Caracteres en C# ...............................................................71
Ejercicios con Cadena de Caracteres en C# ............................................................................71
Cadena de Caracteres en C# ........................................................................................73
Cadena de Caracteres en C# ...................................................................................................73
Ejercicios Resueltos de Cadena de Caracteres en C# ..........................................................75
Ejercicios Resueltos de Clases en C# ..........................................................................76
Ejercicios Resueltos de Clases en C# ......................................................................................76
Clases en C# ....................................................................................................................81
Clase en C# .............................................................................................................................81
Definición de un Método en C# ..............................................................................................82
Estructura de una Clase en C# ................................................................................................82
Objetos en C# ..................................................................................................................82
Declaración de Objetos en C# ................................................................................................82
Declaración de una clase y un Objeto ....................................................................................82
Declaración de varios Objetos dentro de un Clase .................................................................83
Ejemplos de Clases en C# .............................................................................................85
Ejemplos de Clases en C# .......................................................................................................85
Arreglos en C# .................................................................................................................89
Arreglos en C# ........................................................................................................................89
Como Declarar e Inicializar un Arreglo en C# .........................................................................89
Declaración de un Arreglo de tipo Vector en C# ....................................................................89
Ejercicios con Objetos en C# .........................................................................................90
Ejercicios Resueltos de Objetos en C# ....................................................................................90
Ejercicios Resueltos de Arreglos en C# .......................................................................94
Ejercicios Resueltos de Arreglos en C# ...................................................................................94
Arreglos Multi-dimensionales en C# .............................................................................98
Arreglos Multi-dimensionales ................................................................................................98
Ejercicios de Arreglos Multi-dimensionales en C# ......................................................99

ING. VLADIMIR FLOREZ TINTA 3


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ejercicios de Arreglos Multi-dimensionales en C# ..................................................................99


Ejercicios Resueltos de Vectores en C# ....................................................................101
Ejercicios Resueltos de Vectores en C# ................................................................................101
Suma de vectores en C# ..............................................................................................103
Suma de vectores en C# .......................................................................................................103
Ejercicios con Vectores en C# .....................................................................................106
Ejercicios con Vectores en C# ...............................................................................................106
Matrices en C#..............................................................................................................111
Matrices en C# ....................................................................................................................111
Declaración de Matrices en C# ......................................................................................111
Resta de Vectores en C# ...........................................................................................112
Resta de Vectores en C# .....................................................................................................112
Ejemplo de Matrices en C# ..........................................................................................113
Ejemplo de Matrices en C# ...................................................................................................113
Ejercicios Resueltos de Matrices en C# .....................................................................115
Ejercicios Resueltos de Matrices en C# ................................................................................116
Vectores y Matrices en C#.........................................................................................119
Vectores y Matrices en C# .................................................................................................119
Vectores en C# ....................................................................................................................120
Matrices en C# ....................................................................................................................120
Suma de Matrices en C# ............................................................................................120
Suma de Matrices en C# ....................................................................................................120
Ejemplo de Vectores y Matrices en C#...................................................................122
Ejemplo de Vectores y Matrices en C# .............................................................................122
Ejercicios De Vectores y Matrices en C# ...............................................................124
Ejercicios De Vectores y Matrices en C# ..........................................................................124
Ordenamiento por Inserción Directa en C# ...............................................................126
Método de Ordenamiento por Inserción directa en C# .......................................................126
Métodos de Ordenamiento en C# ...............................................................................129
Métodos de Ordenamiento en C# ........................................................................................129
Ejemplo ............................................................................................................................129
Ordenamiento por Shell Sort en C# ............................................................................131
Método de Ordenamiento Shell Sort en C# .....................................................................131
Ordenamiento por Inserción Binaria en C# ................................................................133
Método de Ordenamiento por Inserción Binaria en C# .......................................................134

ING. VLADIMIR FLOREZ TINTA 4


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ordenamiento por Burbuja en C# ...............................................................................135


Método de Ordenamiento Burbuja en C# ............................................................................135
Ordenamiento por Quick Sort en C# ...........................................................................137
Método de Ordenamiento Quick Sort en C# ........................................................................137
Ordenamiento por Merge Sort en C#..........................................................................139
Método de Ordenamiento Merge Sort en C# ......................................................................140
Ordenamiento por Shaker Sort en C# ........................................................................143
Método de Ordenamiento Shaker Sort en C# ......................................................................143
Ejercicios Resueltos de Arrays en C# ........................................................................144
Ejercicios Resueltos de Arrays en C# ....................................................................................144
Ordenar Vectores en C# ...............................................................................................149
Ordenar Vectores en C# .......................................................................................................149
Ejercicios de Ordenamiento en C# .......................................................................................149
Método de Ordenamiento de Inserción Binaria en C# .............................................151
Método de Ordenamiento de Inserción Binaria en C# .........................................................151
Ejemplo del Código Implementado ..................................................................................153
Un ejemplo de método de inserción binaria en C# ..........................................................154
Método de Ordenamiento de Inserción Directa en C# .............................................155
Método de Ordenamiento de Inserción Directa en C# .........................................................155
Ejemplo del Método de Ordenamiento Inserción Directa en c# .....................................156
Método de Ordenamiento Quick Sort en C# .........................................................158
Método de Ordenamiento Quick Sort en C# ....................................................................159
Ejemplo del Método de Ordenamiento Quick Sort en C# ...........................................161
Método de Ordenamiento Shell Sort en C# ...........................................................163
Ejemplo del Método de Ordenamiento Shell Sort en C# .............................................165
Método de Ordenamiento Merge Sort en C#.........................................................166
Método de Ordenamiento Merge Sort en C# ...................................................................166
Estrategia de Merge Sort ...................................................................................................167
Pseudocódigo del Método de Ordenamiento Merge Sort ................................................167
Ejemplo del Método de Ordenamiento Merge Sort en C# ..............................................168
Método de Ordenamiento Burbuja en C# ..............................................................170
Método de Ordenamiento Burbuja en C# ........................................................................170
Ejemplo del Método de Ordenamiento Burbuja en C# ...............................................172
Ejercicios Resueltos de Matrices en C# .....................................................................174
Ejercicios Resueltos de Matrices en C# ................................................................................174

ING. VLADIMIR FLOREZ TINTA 5


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Matrices en C Sharp......................................................................................................178
Declaración de una Matriz en C# .........................................................................................179
Constructores en C# .....................................................................................................180
Constructores en C# .............................................................................................................180
Búsqueda Binaria en C# ...............................................................................................182
Búsqueda Binaria en C# ........................................................................................................182
Búsqueda Binaria en C# ....................................................................................................183
Ejercicios con Clases en C# ........................................................................................186
Ejercicios con Clases en C# ...................................................................................................186
Ejercicios Resueltos de Constructores en C# ...........................................................189
Ejercicios Resueltos de Constructores en C# ........................................................................189

ING. VLADIMIR FLOREZ TINTA 6


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Introducción a Visual Studio 2013


Visual Studio es un conjunto completo 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
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 web ASP y Servicios Web XML.

Algoritmos en C#
Algoritmos en C#
Qué es un programa?
Programa: Conjunto de instrucciones que entiende un ordenador para realizar
una actividad.
Todo programa tiene un objetivo bien definido: un procesador de texto es un
programa que permite cargar, modificar e imprimir textos, un programa de
ajedrez permite jugar al ajedrez contra el ordenador u otro contrincante humano.
La actividad fundamental del programador es resolver problemas empleando el
ordenador como herramienta fundamental.
Para la resolución de un problema hay que plantear un algoritmo.

Algoritmo
un algoritmo, es un conjunto preescrito de instrucciones o reglas bien definidas,
ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos
que no generen dudas a quien deba realizar dicha actividad. Dados un estado
inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se
obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.

Diagrama de flujo
Un diagrama de flujo es la representación gráfica de un ALGORITMO.
Los símbolos gráficos a utilizar para el planteo de diagramas de flujo son:

ING. VLADIMIR FLOREZ TINTA 7


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Estos son los elementos esenciales que intervienen en el desarrollo de un


diagrama de flujo.

Lenguaje de Programación
Un lenguaje de programación es un idioma artificial diseñado para expresar
procesos que pueden ser llevados a cabo por máquinas como las computadoras.
Pueden usarse para crear programas que controlen el comportamiento físico y
lógico de una máquina, para expresar algoritmos con precisión, o como modo de
comunicación humana.1
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que
definen su estructura y el significado de sus elementos y expresiones. Al proceso
por el cual se escribe, se prueba, se depura, se compila (de ser necesario) y se
mantiene el código fuente de un programa informático se le llama programación.
También la palabra programación se define como el proceso de creación de un
programa de computadora, mediante la aplicación de procedimientos lógicos, a
través de los siguientes pasos:
El desarrollo lógico del programa para resolver un problema en particular.

ING. VLADIMIR FLOREZ TINTA 8


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Escritura de la lógica del programa empleando un lenguaje de programación


específico (codificación del programa).
Ensamblaje o compilación del programa hasta convertirlo en lenguaje de
máquina.
Prueba y depuración del programa.
Desarrollo de la documentación.

Pseudocódigo
En ciencias de la computación, y análisis numérico el pseudocódigo (o falso
lenguaje) es una descripción informal1 de alto nivel de un algoritmo informático
de programación, compacto e informal, que utiliza las convenciones estructurales
de un lenguaje de programación verdadero2 , pero que está diseñado para la
lectura humana en lugar de la lectura mediante máquina, y con independencia
de cualquier otro lenguaje de programación. Normalmente, el pseudocódigo
omite detalles que no son esenciales para la comprensión humana del algoritmo,
tales como declaraciones de variables, código específico del sistema y algunas
subrutinas. El lenguaje de programación se complementa, donde sea
conveniente, con descripciones detalladas en lenguaje natural, o con notación
matemática compacta. Se utiliza pseudocódigo pues este es más fácil de entender
para las personas que el código de lenguaje de programación convencional, ya
que es una descripción eficiente y con un entorno independiente de los principios
fundamentales de un algoritmo. Se utiliza comúnmente en los libros de texto y
publicaciones científicas que se documentan varios algoritmos, y también en la
planificación del desarrollo de programas informáticos, para esbozar la estructura
del programa antes de realizar la efectiva codificación. No existe una sintaxis
estándar para el pseudocódigo, aunque los ocho IDE's que manejan
pseudocódigo tengan su sintaxis propia. Aunque sea parecido, el pseudocódigo
no debe confundirse con los programas esqueleto que incluyen código ficticio,
que pueden ser compilados sin errores. Los diagramas de flujo y UML pueden ser
considerados como una alternativa gráfica al pseudocódigo, aunque sean más
amplios en papel.

ING. VLADIMIR FLOREZ TINTA 9


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Publicado por Yhonatan Robles Vega 2 comentarios:


Etiquetas: algoritmo, C#, c# paso a paso, c# ya, ejemplos c#, Ejercicios C#, introduccion a c#

Matrices en C#
Matrices en C#
Una matriz es una estructura de datos que permite almacenar un conjunto de datos
del mismo tipo.

Con un único nombre se define la matriz y por medio de DOS sub índices hacemos
referencia a cada elemento de la misma (componente)

ING. VLADIMIR FLOREZ TINTA 10


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Hemos graficado una matriz de 3 filas y 5 columnas. Para hacer referencia a cada
elemento debemos indicar primero la fila y luego la columna, por ejemplo en la
componente 1,4 se almacena el valor 97.

En este ejemplo almacenamos valores enteros. Todos los elementos de la matriz


deben ser del mismo tipo (int, float, string etc.)

Las filas y columnas comienzan a numerarse a partir de cero, similar a los vectores.

Declaración de una Matriz en C#


 Matrices multidimensionales:
 Matrices de matrices (escalonadas):
 Matrices multidimensionales:
 Matrices de matrices (escalonadas):

Matrices unidimensionales:
int[] numbers;

string[,] names;

byte[][] scores;

La declaración de matrices (como se muestra arriba) no crea realmente las


matrices. En C#, las matrices son objetos (se explica más adelante en este tutorial)
cuyas instancias deben crearse. Los siguientes ejemplos muestran cómo crear
matrices:

Matrices unidimensionales:
int[] numbers = new int[5];

string[,] names = new string[5,4];

byte[][] scores = new byte[5][];


for (int x = 0; x < scores.Length; x++)
{

ING. VLADIMIR FLOREZ TINTA 11


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

scores[x] = new byte[4];


}

También se pueden utilizar matrices más grandes. Por ejemplo, se puede utilizar
una matriz rectangular de tres dimensiones:

int[,,] buttons = new int[4,5,3];

Incluso, se pueden combinar matrices rectangulares y escalonadas. Por ejemplo, el


siguiente código declara una matriz unidimensional que contiene matrices
tridimensionales de matrices bidimensionales de tipo int:

int[][,,][,] numbers;

Ejercicios Resueltos de Matrices en C#

Crear una matriz de 3 filas por 4 columnas con elementos de tipo int, ingresar sus
posiciones y luego imprimirlas.
C# admite matrices de una dimensión, matrices multidimensionales (matrices
rectangulares) y matrices de matrices (matrices escalonadas). El siguiente ejemplo
muestra cómo declarar diferentes tipos de matrices:

Ejemplo 1

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

ING. VLADIMIR FLOREZ TINTA 12


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

namespace Matriz

class Matriz

private int[,] mat;

public void Ingresar()

mat = new int[3, 4];

for (int f = 0; f < 3; f++)

for (int c = 0; c < 4; c++)

Console.Write("Ingrese posicion ["+(f+1)+","+(c+1)+"]: ");

string linea;

linea = Console.ReadLine();

mat[f, c] = int.Parse(linea);

public void Imprimir()

for (int f = 0; f < 3; f++)

for (int c = 0; c < 4; c++)

Console.Write(mat[f, c] + " ");

ING. VLADIMIR FLOREZ TINTA 13


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Console.WriteLine();

Console.ReadKey();

static void Main(string[] args)

Matriz ma = new Matriz();

ma.Ingresar();

ma.Imprimir();

Al ejecutar el código muestra el siguiente resultado:

Ejemplo Básico en C#
Ejemplo Básico en C#
El procedimiento siguiente crea una versión de C# del programa tradicional de
“Hola Mundo”. El programa muestra la cadena Hola Mundo!

ING. VLADIMIR FLOREZ TINTA 14


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

El siguiente ejercicio muestra la solución del ejercicio "Hola Mundo!"

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Primer_Proyecto
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hola Mundo!");
// continuar al presonar una tecla
Console.WriteLine("Presione Enter para salir");
Console.ReadKey();
}
}
}

Elija la tecla F5 para ejecutar el proyecto. Aparecerá una ventana del símbolo del
sistema con la línea Hola Mundo!

Comentarios en C#
La primera línea contiene un comentario. Los caracteres // convierten el resto de
la línea en un comentario.
// comentarios en c#

Un bloque de texto también se puede convertir en comentario si se incluye entre


los caracteres /* y */. El ejemplo siguiente muestra esta opción.
/* "Hola Mundo! " programa en C#.
este es el primer programa echo en C# "Hola Mundo!" */
Método Principal
Una aplicación de consola en C# debe contener un método Main, en el cual se
inicia y se termina el control. Este método es donde se crean objetos y se ejecutan
otros métodos. El método Main es un metido static (Referencia de C#) que recide
dentro de una clase o un struct. En el ejemplo anterior vimos "Hola Mundo", recide

ING. VLADIMIR FLOREZ TINTA 15


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

en una clase Main, Puede declararse el método Main de una de las maneras
siguientes:

 Puede devolver void.

static void Main()


{
//...
}

 También puede devolver un entero.

static int Main()


{
//...
return 0;
}

 Puede utilizar argumentos con cualquiera de los tipos devueltos.

static void Main(string[] args)


{
//...
}

El parámetro del método Main, args, es una matriz de tipo string que contiene los argumentos de la línea
de comandos utilizados para llamar al programa. A diferencia de C++, la matriz no incluye el nombre del
archivo ejecutable (exe). Para obtener más información sobre cómo utilizar argumentos de la línea de
comandos, vea los ejemplos de Main() y argumentos de línea de comandos (Guía de programación de C#)
y Cómo: Crear y utilizar ensamblados desde la línea de comandos (C# y Visual Basic). La llamada a
ReadKey al final del método Main impide que la ventana de la consola se cierre antes de que pueda leer el
resultado al ejecutar el programa en modo de depuración presionando F5.

Publicado por Yhonatan Robles Vega No hay comentarios:


Etiquetas: algoritmo, C#, c# paso a paso, c# ya, ejemplos c#, Ejercicios C#, introduccion a
c#,vectores en c#, Visual Studio

Crear un Proyecto en C#

ING. VLADIMIR FLOREZ TINTA 16


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Cuando esté listo para empezar a programar, el primer paso es preparar un


proyecto. El proyecto contiene todo el material necesario para la aplicación.
Además de los archivos de código fuente, incluye los archivos de recursos, como
iconos, las referencias a archivos externos de los que depende la aplicación y los
datos de configuración, como los valores del compilador. Cuando se genera un
proyecto, Visual C# invoca al compilador de C# y otras herramientas internas para
crear un ensamblado ejecutable con los archivos del proyecto.

Codificación del problema con el lenguaje C#.

No debemos perder de vista que el fin último es realizar un programa de


computación que permita automatizar una actividad para que muchos procesos
sean desarrollados por la computadora.
El diagrama de flujo es un paso intermedio para poder ser interpretado por la
computadora.
El paso siguiente es la codificación del diagrama de flujo en un lenguaje de
computación, en nuestro caso emplearemos el lenguaje C#.

Lenguaje de computación: Conjunto de instrucciones que son interpretadas por


una computadora para realizar operaciones, mostrar datos por pantalla, sacar
listados por impresora, entrar datos por teclado, etc.

Consideraciones a tener en cuenta en cada proyecto.


Hay que tener en cuenta que el entorno de programación "Microsoft Visual C#
Express" o el "Visual Studio .Net Profesional" no han sido desarrollados pensando
en un principiante de la programación. Lo mismo ocurre con el propio lenguaje
C#, es decir su origen no tiene como objetivo el aprendizaje de la programación.
Debido a estos dos puntos veremos que a medida que avanzamos con el tutorial
muchos conceptos que iremos dejando pendientes se irán aclarando.
Veremos los pasos para la creación de un proyecto en C#.

Pasos a Seguir para crear un proyecto en C#

1. Abrimos Visual Studio 2010 Ultimate

ING. VLADIMIR FLOREZ TINTA 17


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

2. Creamos un nuevo proyecto en Visual Studio 2010 Ultimate

3. En el siguiente cuadro nuevo proyecto elegimos Visual C# y luego elegimos


"Aplicación de consola" y le ponemos un Nuevo nombre al proyecto.

ING. VLADIMIR FLOREZ TINTA 18


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

4. Podemos ver que el entorno nos generó automáticamente el esqueleto de


nuestro programa:

Como se ve en las imágenes ya tenemos nuestro primer proyecto creado en


Visual Studio 2010 Ultimate en el lenguaje de programacion Visual C#

Ejercicios Resueltos de Estructura Secuencial en C#


Ejercicios Resueltos de Estructura Secuencial en C#
Ejemplo 1

Realizar la carga del lado de un cuadrado, mostrar por pantalla el perímetro del
mismo (El perímetro de un cuadrado se calcula multiplicando el valor del lado
por cuatro)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PerimetroCuadrado
{
class Program
{
static void Main(string[] args)
{
int lado, perimetro;
string linea;
Console.Write("Ingrese el lado del cuadrado:");
linea = Console.ReadLine();
lado = int.Parse(linea);
perimetro = lado * 4;
Console.Write("El perímetro del cuadrado es:");
Console.Write(perimetro);
Console.ReadKey();

ING. VLADIMIR FLOREZ TINTA 19


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

}
}
}

Al ejecutar el código muestra el siguiente resultado

Ejemplo 2

Escribir un programa en el cual se ingresen cuatro números, calcular e informar


la suma de los dos primeros y el producto del tercero y el cuarto.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SumaProductos4Numeros
{
class Program
{
static void Main(string[] args)
{
int num1, num2, num3, num4, suma, producto;
string linea;
Console.Write("Ingrese primer valor:");
linea = Console.ReadLine();
num1 = int.Parse(linea);
Console.Write("Ingrese segundo valor:");
linea = Console.ReadLine();
num2 = int.Parse(linea);
Console.Write("Ingrese tercer valor:");
linea = Console.ReadLine();
num3 = int.Parse(linea);
Console.Write("Ingrese cuarto valor:");
linea = Console.ReadLine();
num4 = int.Parse(linea);
suma = num1 + num2;
producto = num3 * num4;
Console.Write("La suma de los dos primero valores es:");
Console.WriteLine(suma);
Console.Write("El producto del tercer y cuarto valor es:");
Console.Write(producto);
Console.ReadKey();

ING. VLADIMIR FLOREZ TINTA 20


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

}
}
}

Al ejecutar el código muestra el siguiente resultado

Ejemplo 3

Realizar un programa que lea cuatro valores numéricos e informar su suma y


promedio.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SumaPromedio
{
class Program
{
static void Main(string[] args)
{
int num1, num2, num3, num4, suma, promedio;
string linea;
Console.Write("Ingrese primer valor:");
linea = Console.ReadLine();
num1 = int.Parse(linea);
Console.Write("Ingrese segundo valor:");
linea = Console.ReadLine();
num2 = int.Parse(linea);
Console.Write("Ingrese tercer valor:");
linea = Console.ReadLine();
num3 = int.Parse(linea);
Console.Write("Ingrese cuarto valor:");
linea = Console.ReadLine();
num4 = int.Parse(linea);
suma = num1 + num2 + num3 + num4;
promedio = suma / 4;
Console.Write("La suma de los cuatro valores es:");
Console.WriteLine(suma);
Console.Write("El promedio es:");
Console.Write(promedio);
Console.ReadKey();
}
}

ING. VLADIMIR FLOREZ TINTA 21


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Al ejecutar el código muestra el siguiente resultado

Ejemplo 4

Se debe desarrollar un programa que pida el ingreso del precio de un artículo y la


cantidad que lleva el cliente. Mostrar lo que debe abonar el comprador.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CostoCompra
{
class Program
{
static void Main(string[] args)
{
int cantidad;
float precio, importe;
string linea;
Console.Write("Ingrese la cantidad de artículos a llevar:");
linea = Console.ReadLine();
cantidad = int.Parse(linea);
Console.Write("Ingrese el valor unitario del producto:");
linea = Console.ReadLine();
precio = float.Parse(linea);
importe = precio * cantidad;
Console.Write("El importe total a pagar es:");
Console.Write(importe);
Console.ReadKey();
}
}
}

Al ejecutar el código muestra el siguiente resultado

ING. VLADIMIR FLOREZ TINTA 22


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Publicado por Yhonatan Robles Vega 1 comentario:


Etiquetas: arreglos en c#, C#, c# paso a paso, c# ya, condiciones en c#, ejemplos c#, Ejercicios
C#,if else en c#, introduccion a c#

Estructura Secuencial en C#
Estructura Secuencial en C#
Cuando en un problema sólo participan operaciones, entradas y salidas se la
denomina una estructura secuencial.

Los problemas diagramados y codificados previamente emplean solo estructuras


secuenciales.
La programación requiere una práctica ininterrumpida de diagramación y
codificación de problemas.

Ejercicios Resueltos de Estructura Secuencial en C#


Ejemplo 1

Realizar la carga de dos números enteros por teclado e imprimir su suma y su


producto.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SumaProductoNumeros
{
class Program
{
static void Main(string[] args)

ING. VLADIMIR FLOREZ TINTA 23


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

{
int num1, num2, suma, producto;
string linea;
Console.Write("Ingrese primer valor:");
linea = Console.ReadLine();
num1 = int.Parse(linea);
Console.Write("Ingrese segundo valor:");
linea = Console.ReadLine();
num2 = int.Parse(linea);
suma = num1 + num2;
producto = num1 * num2;
Console.Write("La suma de los dos valores es:");
Console.WriteLine(suma);
Console.Write("El producto de los dos valores es:");
Console.WriteLine(producto);
Console.ReadKey();
}
}
}

Al ejecutar el código muestra el siguiente resultado

Recordemos que tenemos que seguir todos los pasos vistos para la creación de un
proyecto.
Algunas cosas nuevas que podemos notar:
 Podemos definir varias variables en la misma línea: int num1, num2,
suma, producto;
 Si llamamos a la función WriteLine en lugar de Write, la impresión
siguiente se efectuará en la próxima línea: Console.WriteLine(suma);

Estructuras Condicionales en C#
Estructuras Condicionales en C#
Hemos visto hasta ahora que los programas van ejecutando las líneas de código
con orden. Sin embargo, hay muchas situaciones en las que es preciso alterar ese
orden, o bien puede ocurrir que sea necesario que se efectúen una serie de
operaciones que pueden ser distintas en otras circunstancias. Por ejemplo, si el
programa pide una clave de acceso, deberá continuar con la ejecución normal en
caso de que la clave introducida por el usuario sea correcta, y deberá salir del
mismo en caso contrario. Pues bien: para todas estas cuestiones que, por otra parte,
son muy frecuentes, tenemos las estructuras de control de flujo.
En C# contamos con varias de estas estructuras, así que las iremos explicando con
calma una a una, empezando en esta entrega con las estructuras condicionales. De
ING. VLADIMIR FLOREZ TINTA 24
HERRAMIENTAS DE DESARROLLO DE SOFTWARE

nuevo he de avisar a los programadores de C/C++: el comportamiento de algunas


de estas estructuras cambia ligeramente en C#, así que leed esta entrega
atentamente, pues de lo contrario podéis encontraros con varios problemas a la
hora de usarlas.
Por supuesto que en un problema se combinan estructuras secuenciales y
condicionales.
Estructura Condicional if - else en c#
Es la instrucción condicional mas usada en los diversos lenguajes de
programación, su formato completo y de trabajo en C Sharp es:
cargar o asignar la variable de condición;
if (condición)
{ grupo cierto de instrucciones;}
else
{ grupo falso de instrucciones; };
Tenemos 2 casos de estructuras condicionales y son:

1. estructuras condicionales simples


2. estructuras condicionales compuesta
Estructura condicional simple.
Cuando se presenta la elección tenemos la opción de realizar una actividad o no
realizar ninguna.
Representación gráfica:

ING. VLADIMIR FLOREZ TINTA 25


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Podemos observar: El rombo representa la condición. Hay dos opciones que se


pueden tomar. Si la condición da verdadera se sigue el camino del verdadero, o sea
el de la derecha, si la condición da falsa se sigue el camino de la izquierda.
Se trata de una estructura condicional simple porque por el camino del verdadero
hay actividades y por el camino del falso no hay actividades.
Por el camino del verdadero pueden existir varias operaciones, entradas y salidas,
inclusive ya veremos que puede haber otras estructuras condicionales.
Publicado por Yhonatan Robles Vega No hay comentarios:
Etiquetas: algoritmo en c#, arreglos en c#, c# paso a paso, c# ya, condiciones en c#, Ejercicios
C#,ejercicios de matrices en C#, if else en c#

Ejemplos de Estructura Secuencial en c#


Ejemplos de Estructura Secuencial en c#
Ejemplo 1

Realizar un programa que lea cuatro valores numéricos e informar su suma y


promedio.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SumaPromedio
{
class Program
{

ING. VLADIMIR FLOREZ TINTA 26


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

static void Main(string[] args)


{
int num1, num2, num3, num4, suma, promedio;
string linea;
Console.Write("Ingrese primer valor:");
linea = Console.ReadLine();
num1 = int.Parse(linea);
Console.Write("Ingrese segundo valor:");
linea = Console.ReadLine();
num2 = int.Parse(linea);
Console.Write("Ingrese tercer valor:");
linea = Console.ReadLine();
num3 = int.Parse(linea);
Console.Write("Ingrese cuarto valor:");
linea = Console.ReadLine();
num4 = int.Parse(linea);
suma = num1 + num2 + num3 + num4;
promedio = suma / 4;
Console.Write("La suma de los cuatro valores es:");
Console.WriteLine(suma);
Console.Write("El promedio es:");
Console.Write(promedio);
Console.ReadKey();
}
}
}

Al ejecutar el código muestra el siguiente resultado

Ejemplo 2

Se debe desarrollar un programa que pida el ingreso del precio de un artículo y la


cantidad que lleva el cliente. Mostrar lo que debe abonar el comprador.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CostoCompra
{
class Program
{
static void Main(string[] args)
{
int cantidad;

ING. VLADIMIR FLOREZ TINTA 27


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

float precio, importe;


string linea;
Console.Write("Ingrese la cantidad de artículos a llevar:");
linea = Console.ReadLine();
cantidad = int.Parse(linea);
Console.Write("Ingrese el valor unitario del producto:");
linea = Console.ReadLine();
precio = float.Parse(linea);
importe = precio * cantidad;
Console.Write("El importe total a pagar es:");
Console.Write(importe);
Console.ReadKey();
}
}
}

Al ejecutar el código muestra el siguiente resultado

Operadores Aritméticos en C#
Operadores Aritméticos en C#
En una condición deben disponerse únicamente variables, valores constantes y
operadores relacionales.
 Operadores Relacionales:
> (mayor)
< (menor)
>= (mayor o igual)
<= (menor o igual)
== (igual)
!= (distinto)
 Operadores Matemáticos
+ (más)
- (menos)
* (producto)
/ (división)
% (resto de una división) Ej.: x=13%5; {se guarda 3}

Hay que tener en cuenta que al disponer una condición debemos seleccionar que
operador relacional se adapta a la pregunta.

Ejemplos:
Se ingresa un número multiplicarlo por 10 si es distinto a 0. (!=)
Se ingresan dos números mostrar una advertencia si son iguales. (==)

Los problemas que se pueden presentar son infinitos y la correcta elección del
operador sólo se alcanza con la práctica intensiva en la resolución de problemas.

ING. VLADIMIR FLOREZ TINTA 28


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ejercicios Resueltos de Estructura Condicional Compuesta

Ejemplo 1

Realizar un programa que solicite ingresar dos números distintos y muestre por
pantalla el mayor de ellos.

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraCondicionalCompuesta1

class Program

static void Main(string[] args)

int num1, num2;

string linea;

Console.Write("Ingrese primer valor:");

linea = Console.ReadLine();

num1 = int.Parse(linea);

Console.Write("Ingrese segundo valor:");

linea = Console.ReadLine();

num2 = int.Parse(linea);

if (num1 > num2)

Console.Write(num1);

else

Console.Write(num2);

Console.ReadKey();

ING. VLADIMIR FLOREZ TINTA 29


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Al ejecutar el código muestra el siguiente resultado

Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: c# paso a paso, ejemplos c#, ejemplos con operadores en c#, Ejercicios C#, if else en
c#,operadores aritmeticos en c#, operadores en c#

Ejercicios Resueltos de Estructura Condicional en C#


Ejercicios Resueltos de Estructura Condicional en C#
Ejemplo 1
Realizar un programa que solicite ingresar dos números distintos y muestre por
pantalla el mayor de ellos.

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraCondicionalCompuesta1

class Program

static void Main(string[] args)

int num1, num2;

string linea;

Console.Write("Ingrese primer valor:");

linea = Console.ReadLine();

num1 = int.Parse(linea);

Console.Write("Ingrese segundo valor:");

linea = Console.ReadLine();

num2 = int.Parse(linea);

ING. VLADIMIR FLOREZ TINTA 30


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

if (num1 > num2)

Console.Write(num1);

else

Console.Write(num2);

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Ejemplo 2

Realizar un programa que solicite ingresar dos números distintos y muestre por
pantalla el mayor de ellos.

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraCondicionalCompuesta1

class Program

static void Main(string[] args)

ING. VLADIMIR FLOREZ TINTA 31


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

int num1, num2;

string linea;

Console.Write("Ingrese primer valor:");

linea = Console.ReadLine();

num1 = int.Parse(linea);

Console.Write("Ingrese segundo valor:");

linea = Console.ReadLine();

num2 = int.Parse(linea);

if (num1 > num2)

Console.Write(num1);

else

Console.Write(num2);

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Ejemplo de Promedio de Notas en C#


Se ingresan tres notas de un alumno, si el promedio es mayor o igual a siete
mostrar un mensaje "Promocionado".

using System;

using System.Collections.Generic;

using System.Linq;

ING. VLADIMIR FLOREZ TINTA 32


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

using System.Text;

namespace EstructuraCondicionalSimple2

class Program

static void Main(string[] args)

int nota1, nota2, nota3;

string linea;

Console.Write("Ingrese primer nota:");

linea = Console.ReadLine();

nota1 = int.Parse(linea);

Console.Write("Ingrese segunda nota:");

linea = Console.ReadLine();

nota2 = int.Parse(linea);

Console.Write("Ingrese tercer nota:");

linea = Console.ReadLine();

nota3 = int.Parse(linea);

int promedio;

promedio = (nota1 + nota2 + nota3) / 3;

if (promedio >= 7)

Console.Write("Promocionado");

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

ING. VLADIMIR FLOREZ TINTA 33


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: c# paso a paso, condiciones en c#, ejemplos con operadores en c#introduccion a


c#, if else en c#, operadores aritmeticos en c#, operadores en c#

Ejemplos de If - Else en C#
Ejemplos de If - Else en C#
Ejemplo 1

Realizar un programa que lea por teclado dos números, si el primero es mayor al
segundo informar su suma y diferencia, en caso contrario informar el producto y
la división del primero respecto al segundo.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraCondicionalCompuesta2

class Program

static void Main(string[] args)

int num1, num2;

string linea;

Console.Write("Ingrese primer valor:");

linea = Console.ReadLine();

num1 = int.Parse(linea);

Console.Write("Ingrese segundo valor:");

linea = Console.ReadLine();

num2 = int.Parse(linea);

if (num1 > num2)

int suma, diferencia;

ING. VLADIMIR FLOREZ TINTA 34


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

suma = num1 + num2;

diferencia = num1 - num2;

Console.Write("La suma de los dos valores es:");

Console.WriteLine(suma);

Console.Write("La diferencia de los dos valores es:");

Console.WriteLine(diferencia);

else

int producto, division;

producto = num1 * num2;

division = num1 / num2;

Console.Write("El producto de los dos valores es:");

Console.WriteLine(producto);

Console.Write("La división de los dos valores es:");

Console.WriteLine(division);

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Ejemplo 2

ING. VLADIMIR FLOREZ TINTA 35


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Se ingresa por teclado un número positivo de uno o dos dígitos (1..99) mostrar
un mensaje indicando si el número tiene uno o dos dígitos.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraCondicionalCompuesta3

class Program

static void Main(string[] args)

int num;

string linea;

Console.Write("Ingrese un valor entero de 1 o 2 dígitos:");

linea = Console.ReadLine();

num = int.Parse(linea);

if (num < 10)

Console.Write("Tiene un dígito");

else

Console.Write("Tiene dos dígitos");

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

ING. VLADIMIR FLOREZ TINTA 36


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ejercicios Resueltos de Estructura Condicional


Anidada en C#
Ejercicios Resueltos de Estructura condicional anidad en c#
Ejemplo 1

Realizar un programa que pida tres notas de un alumno, calcule el promedio e


imprima lo siguiente:
Si el promedio es >10 mostrar "Aprobado".
Si el promedio es >7 y <=10 mostrar "Desaprobado".
Si el promedio es <7 mostrar "Reprobado".

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraCondicionalAnidada1

class Program

static void Main(string[] args)

int nota1, nota2, nota3;

string linea;

Console.Write("Ingrese la primera nota:");

linea = Console.ReadLine();

nota1 = int.Parse(linea);

Console.Write("Ingrese la segunda nota:");

linea = Console.ReadLine();

nota2 = int.Parse(linea);

Console.Write("Ingrese la tercera nota:");

linea = Console.ReadLine();

ING. VLADIMIR FLOREZ TINTA 37


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

nota3 = int.Parse(linea);

int promedio = (nota1 + nota2 + nota3) / 3;

if (promedio > 10)

Console.Write("Aprobado");

else

if (promedio > 7)

Console.Write("Desaprobado");

else

Console.Write("Reprobado");

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Ejemplo 2

ING. VLADIMIR FLOREZ TINTA 38


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Realizar un programa que me muestre de tres números ingresados por el


teclado el mayor numero

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraCondicionalAnidada2

class Program

static void Main(string[] args)

int num1, num2, num3;

string linea;

Console.Write("Ingrese primer numero:");

linea = Console.ReadLine();

num1 = int.Parse(linea);

Console.Write("Ingrese segunda numero:");

linea = Console.ReadLine();

num2 = int.Parse(linea);

Console.Write("Ingrese tercer numero:");

linea = Console.ReadLine();

num3 = int.Parse(linea);

if (num1 > num2)

if (num1 > num3)

Console.Write("El mayor es: "+num1);

else

Console.Write("El mayor es: " + num3);

ING. VLADIMIR FLOREZ TINTA 39


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

else

if (num2 > num3)

Console.Write("El mayor es: " + num2);

else

Console.Write("El mayor es: " + num3);

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: c# básico, c# paso a paso, condiciones en c#, ejemplos con operadores en


c#introduccion a c#, ejemplos de estructura anidada en c#, Ejercicios C#, estructura anidada en
c#, operadores en c#, vectores en c#

Estructura Condicional Anidada en C#


Estructura Condicional Anidada en C#
En ocasiones dentro de una estructura if pueda existir otras estructuras if. A esa
estructura if combinada se le denomina if anidada.

ING. VLADIMIR FLOREZ TINTA 40


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

El diagrama de flujo que se presenta contiene dos estructuras condicionales.


Ejercicios Resueltos de Estructura condicional anidada en c#
Ejemplo 1

Realizar un programa que pida tres notas de un alumno, calcule el promedio e


imprima lo siguiente:
Si el promedio es >10 mostrar "Aprobado".
Si el promedio es >7 y <=10 mostrar "Desaprobado".
Si el promedio es <7 mostrar "Reprobado".

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraCondicionalAnidada1

class Program

static void Main(string[] args)

int nota1, nota2, nota3;

string linea;

ING. VLADIMIR FLOREZ TINTA 41


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Console.Write("Ingrese la primera nota:");

linea = Console.ReadLine();

nota1 = int.Parse(linea);

Console.Write("Ingrese la segunda nota:");

linea = Console.ReadLine();

nota2 = int.Parse(linea);

Console.Write("Ingrese la tercera nota:");

linea = Console.ReadLine();

nota3 = int.Parse(linea);

int promedio = (nota1 + nota2 + nota3) / 3;

if (promedio > 10)

Console.Write("Aprobado");

else

if (promedio > 7)

Console.Write("Desaprobado");

else

Console.Write("Reprobado");

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

ING. VLADIMIR FLOREZ TINTA 42


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Estructura condicional compuesto en c#


Estructura condicional compuesto en c#
En este capítulo se revisan los distintos métodos con los que C # controla el flujo
lógico de un programa.
Como se revisó en el capítulo anterior, los operadores relaciones binarios que se
usan son:

==, !=, <, <=, > y >=

además los operadores lógicos binarios:

||, &&, ?

y el operador lógico unario de negación !, que sólo toma un argumento.


Operador || en C#
Traducido se lo lee como “O”. Si la condición 1 es Verdadera O la condición 2 es
Verdadera, luego ejecutar la rama del Verdadero.
Cuando vinculamos dos o más condiciones con el operador “Or", con que una de
las dos condiciones sea Verdadera alcanza para que el resultado de la condición
compuesta sea Verdadero.
operador && en C#
Traducido se lo lee como “Y”. Si la Condición 1 es verdadera Y la condición 2 es
verdadera luego ejecutar la rama del verdadero.
Cuando vinculamos dos o más condiciones con el operador “&&”, las dos
condiciones deben ser verdaderas para que el resultado de la condición
compuesta de Verdadero y continúe por la rama del verdadero de la estructura
condicional.
La utilización de operadores lógicos permiten en muchos casos plantear
algoritmos más cortos y comprensibles.
Operador ? en C#

ING. VLADIMIR FLOREZ TINTA 43


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

El operador ternario condicional ? es más eficiente que la sentencia if. El


operador ? tiene el siguiente formato:

expresion1 ? expresion 2 : expresion3;

Que es equivalente a la siguiente expresión:

if (expresion1) then expresion2 else expresion3;

Por ejemplo, para asignar el máximo de a y b a la variable z, usando ?,


tendríamos:

z = (a>b) ? a : b;

que es lo mismo que:

if (a > b)
z = a;
else
z = b;

El uso del operador ? para reemplazar las sentencias if ... else no se restringe sólo
a asignaciones, como en el ejemplo anterior. Se pueden ejecutar una o más
llamadas de función usando el operador ? poniéndolas en las expresiones que
forman los operandos.
Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: c# básico, condiciones en c#, ejemplos con operadores en c#, ejemplos de


estructura anidada en c#, operadores en c#

Ejemplos de Estructura Anidadas en C#


Ejemplos de Estructura Anidadas en C#
Ejemplo 1

Realizar un programa que permita ingresar un número entero positivo por el


teclado y cuente cuantas cifras tiene.

ING. VLADIMIR FLOREZ TINTA 44


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraCondicionalAnidada4

class Program

static void Main(string[] args)

int num;

string linea;

Console.Write("Ingrese un numero positivo: ");

linea = Console.ReadLine();

num = int.Parse(linea);

if (num < 10)

Console.Write("El numero tiene un dígito");

else

if (num < 100)

Console.Write("El numero tiene dos dígitos");

else

if (num < 1000)

Console.Write("el numero tiene tres dígitos");

else

Console.Write("El numero tiene mas de tres digitos");

ING. VLADIMIR FLOREZ TINTA 45


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Ejemplo 2

Realizar un programa que pida ingresar por el teclado un numero entero, y que
indique si el número es positivo, nulo o negativo.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraCondicionalAnidada3

class Program

static void Main(string[] args)

int num;

string linea;

ING. VLADIMIR FLOREZ TINTA 46


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Console.Write("Ingrese un numero:");

linea = Console.ReadLine();

num = int.Parse(linea);

if (num == 0)

Console.Write("El numero es cero");

else

if (num > 0)

Console.Write("El numero es positivo");

else

Console.Write("El numero es negativo negativo");

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Ejercicios Resueltos de Estructura While en C#


Ejercicios Resueltos de Estructura While en C#
Ejemplo 1

Realizar un programa que imprima en pantalla los números del 1 al 50.

using System;

ING. VLADIMIR FLOREZ TINTA 47


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraRepetitivaWhile

class Program

static void Main(string[] args)

int x;

x = 1;

while (x <= 50)

Console.Write(x);

Console.Write(" , ");

x = x + 1;

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Ejemplo 2

ING. VLADIMIR FLOREZ TINTA 48


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Realizar un programa que dado un numero n entero, imprima


consecutivamente asta n

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraRepetitivaWhile

class Program

static void Main(string[] args)

int n, x;

string linea;

Console.Write("Ingrese el valor de n:");

linea = Console.ReadLine();

n = int.Parse(linea);

x = 1;

while (x <= n)

Console.Write(x);

Console.Write(" , ");

x = x + 1;

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

ING. VLADIMIR FLOREZ TINTA 49


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: bucles en c#, C#, c# básico, ejercicios resueltos de c#, ejercicios while en
c#, Estructura repetitiva while en c#, problemas while en c#, while en c#

Estructura Repetitiva While en C#


Estructura Repetitiva While en C#
Hasta en momento hemos visto estructuras secuenciales y condicionales, ahora
estudiaremos las estructuras repetitivas en c#.

Una estructura repetitiva permite ejecutar una instrucción o un conjunto de


instrucciones varias veces, según la condición establecida en dicho bucle.
Veamos una gráfica de la estructura while en diagramas de flujo.

Nota: Podemos observar que el bloque repetitivo puede no ejecutarse ninguna


vez si la condición retorna falso la primera vez.

ING. VLADIMIR FLOREZ TINTA 50


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

La variable x debe estar inicializada con algún valor antes que se ejecute la
operación x=x + 1 en caso de no estar inicializada aparece un error de
compilación.

La sintaxis en pseudocódigo es la siguiente:

mientras condición hacer


instrucción
fin mientras

Ejemplos de Estructura While en C#


Ejemplos de Estructura While en C#
Ejemplo 1

Desarrollar un programa que imprima los múltiplos de 3 del 1 al 200

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraRepetitivaWhile

class Program

static void Main(string[] args)

int mult;

mult = 3;

while (mult <= 200)

Console.Write(mult);

Console.Write(", ");

ING. VLADIMIR FLOREZ TINTA 51


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

mult = mult + 3;

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Ejemplo 2

Realizar un programa que nos imprima la factorial de un numero dado desde el


teclado

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraRepetitivaWhile

class Program

static void Main(string[] args)

int fac=1,x,n;

ING. VLADIMIR FLOREZ TINTA 52


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

string linea;

x = 1;

Console.Write("Ingrese un numero entero: ");

linea = Console.ReadLine();

n = int.Parse(linea);

while (x <= n)

fac = fac * x;

x = x + 1;

Console.Write("La factorial es: "+fac);

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: bucles en c#, C#, ejemplos c#, ejercicios resueltos de c#, Estructura repetitiva while
en c#, Estructura While en C#, problemas while en c#, while en c#

Problemas de Estructura While en C#


Problemas de Estructura While en C#
Ejemplo 1

Realizar un programa que permita ingresar 8 números y nos muestre la suma y


el promedio de dichos números

using System;

ING. VLADIMIR FLOREZ TINTA 53


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraRepetitivaWhile

class Program

static void Main(string[] args)

int x, suma, valor, promedio;

string linea;

x = 1;

suma = 0;

while (x <= 8)

Console.Write("Ingrese valor "+x+":");

linea = Console.ReadLine();

valor = int.Parse(linea);

suma = suma + valor;

x = x + 1;

promedio = suma / 8;

Console.Write("La suma es:");

Console.WriteLine(suma);

Console.Write("El promedio es:");

Console.Write(promedio);

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

ING. VLADIMIR FLOREZ TINTA 54


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ejemplo 2

Desarrollar un programa que permita ingresar n números enteros y luego nos


imprima cuántos valores fueron pares y cuántos impares.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraRepetitivaWhile

class Program

static void Main(string[] args)

int n, x, valor, pares, impares;

string linea;

x = 1;

pares = 0;

impares = 0;

Console.Write("Cuantos el valor de n:");

linea = Console.ReadLine();

n = int.Parse(linea);

ING. VLADIMIR FLOREZ TINTA 55


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

while (x <= n)

Console.Write("Ingrese el valor "+x+": ");

linea = Console.ReadLine();

valor = int.Parse(linea); ;

if (valor % 2 == 0)

pares = pares + 1;

else

impares = impares + 1;

x = x + 1;

Console.Write("Cantidad de pares:");

Console.WriteLine(pares);

Console.Write("Cantidad de impares:");

Console.Write(impares);

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Estructura repetitiva For en C#


Estructura repetitiva For en C#
ING. VLADIMIR FLOREZ TINTA 56
HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Anteriormente vimos la estructura repetitiva while con la que se puede resolver


cualquier tipo de problemas que tengan que ver con estructuras repetitivas,
ahora veremos la estructura repetitiva for que es un bucle muy fácil de utilizar.
En general, la estructura for se usa en aquellas situaciones en las cuales
conocemos la cantidad de veces que queremos que se ejecute el bloque de
instrucciones.

En su forma más típica y básica, esta estructura requiere una variable entera que
cumple la función de un contador de vueltas. En la sección indicada como
"inicialización contador", se suele colocar el nombre de la variable que hará de
contador, asignándole a dicha variable un valor inicial. En la sección de
"condición" se coloca la condición que deberá ser verdadera para que el ciclo
continúe (en caso de un falso, el ciclo se detendrá). Y finalmente, en la sección de
"incremento contador" se coloca una instrucción que permite modificar el valor
de la variable que hace de contador (para permitir que alguna vez la condición
sea falsa)
Las variables a utilizar en el bucle for pueden ser cualquiera.

Veamos un ejemplo del bucle for en diagramas de flujo.

ING. VLADIMIR FLOREZ TINTA 57


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ahora para entender mas sobre las estructuras repetitivas for vamos a ver
algunos ejemplos que nos ayudaran a entender mejor el tema.
Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: algoritmo en c#, bucle for en c#, bucles en c#, C#, c# paso a paso, ejercicios for en
c#,ejercicios resueltos de c#, Estructura repetitiva For en C#, For en C#

Factorial de un Numero en C#
Realizar un programa que nos imprima la factorial de un numero dado desde el
teclado

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraRepetitivaWhile

class Program

static void Main(string[] args)

int fac=1,x,n;

string linea;

x = 1;

Console.Write("Ingrese un numero entero: ");

linea = Console.ReadLine();

n = int.Parse(linea);

while (x <= n)

fac = fac * x;

x = x + 1;

Console.Write("La factorial es: "+fac);

Console.ReadKey();

ING. VLADIMIR FLOREZ TINTA 58


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Al ejecutar el código muestra el siguiente resultado

Ejemplos del Bucle For en C#


Ejemplos del Bucle For en C#
Ejemplo 1

Desarrollar un programa que muestre la tabla de multiplicar de un numero


ingresado por el teclado del 1 al 15

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraRepetitivaWhile

class Program

static void Main(string[] args)

int n;

string linea;

Console.Write("Ingrese multiplicador: ");

linea = Console.ReadLine();

n = int.Parse(linea);

for(int i=1; i<=15; i++ ) {

Console.Write(i+" x "+n+" = "+i*n+"\n");

ING. VLADIMIR FLOREZ TINTA 59


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Ejemplo 2

Realizar un programa que permita ingresar n números enteros por el teclado y


se desea conocer:
a) La cantidad de números positivos.
b) La cantidad de números negativos.
c) La cantidad de números pares.
d)La cantidad de números impares
using System;

using System.Collections.Generic;

using System.Linq;

ING. VLADIMIR FLOREZ TINTA 60


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

using System.Text;

namespace EstructuraRepetitivaWhile

class Program

static void Main(string[] args)

int n,valor,positivos,negativos,pares,impares;

positivos = 0;

negativos = 0;

pares = 0;

impares = 0;

string linea;

Console.Write("Ingrese valor de n: ");

linea = Console.ReadLine();

n = int.Parse(linea);

for(int i=1; i<=n; i++ ) {

Console.Write("Ingrese numero "+i+": ");

linea = Console.ReadLine();

valor = int.Parse(linea);

if (valor > 0)

positivos++;

else

if (valor < 0)

negativos++;

if (valor % 2 == 0)

pares++;

ING. VLADIMIR FLOREZ TINTA 61


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

else

if (valor % 2 != 0)

impares++;

Console.WriteLine("Cantidad de numeros negativos: "+negativos);

Console.WriteLine("Cantidad de numeros positivos: "+positivos);

Console.WriteLine("Cantidad de numeros pares: "+pares);

Console.WriteLine("Cantidad de numeros impares: "+impares);

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: algoritmo en c#, bucle for en c#, bucles en c#, ejemplos c#, Ejercicios C#, ejercicios
for en c#, Estructura repetitiva For en C#, For en C#, introducción a c#

Ejercicios Resueltos de Estructura Repetitiva For en


C#
Ejercicios Resueltos de Estructura Repetitiva For en C#
Ejemplo 1

Realizar un programa que permita obtener la factorial de un numero entero

ING. VLADIMIR FLOREZ TINTA 62


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

ingresado por el teclado

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraRepetitivaWhile

class Program

static void Main(string[] args)

int fac=1,n;

string linea;

Console.Write("Ingrese un numero entero: ");

linea = Console.ReadLine();

n = int.Parse(linea);

for(int i=1; i<=n; i++ ) {

fac = fac * i;

Console.Write("La factorial es: "+fac);

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

ING. VLADIMIR FLOREZ TINTA 63


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ejemplo 2

Realizar un programa que permita imprimir por pantalla los números múltiplos
de 5, establecer el rango por el teclado

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraRepetitivaWhile

class Program

static void Main(string[] args)

int n;

string linea;

Console.Write("Ingrese un numero entero: ");

linea = Console.ReadLine();

n = int.Parse(linea);

Console.Write("Los multiplos de 5 son: ");

Console.Write("\n");

for(int i=1; i<=n; i++ ) {

if (i % 5 == 0)

Console.Write(i+", ");

Console.ReadKey();

ING. VLADIMIR FLOREZ TINTA 64


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Al ejecutar el código muestra el siguiente resultado

Estructura repetitiva Do While en C#


Estructura repetitiva Do While en C#
La estructura do while es otra estructura repetitiva, la cual ejecuta al menos una
vez su bloque repetitivo, a diferencia del while o del for que podían no ejecutar
el bloque.
Esta estructura repetitiva se utiliza cuando conocemos de antemano que por lo
menos una vez se ejecutará el bloque repetitivo.
La condición de la estructura está abajo del bloque a repetir, a diferencia del while
o del for que está en la parte superior.

Do en C#
La instrucción do ejecuta una instrucción o un bloque de instrucciones entre {}
repetidamente hasta que una expresión especificada se evalúe como false.
ING. VLADIMIR FLOREZ TINTA 65
HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: bucle do while en c#, bucles en c#, c sharp, C#, do while en c#, ejercicios de do while
en c#, ejercicios de estructuras condicionales en c#, ejercicios resueltos de c#

Tabla de Multiplicar en C#
Tabla de Multiplicar en C#
Desarrollar un programa que muestre la tabla de multiplicar de un numero
ingresado por el teclado del 1 al 15

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraRepetitivaWhile

class Program

static void Main(string[] args)

int n;

string linea;

Console.Write("Ingrese multiplicador: ");

linea = Console.ReadLine();

n = int.Parse(linea);

for(int i=1; i<=15; i++ ) {

Console.Write(i+" x "+n+" = "+i*n+"\n");

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

ING. VLADIMIR FLOREZ TINTA 66


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ejemplo de Do While en C#
Ejemplo de Do While en C#
En un banco se procesan datos de las cuentas corrientes de sus clientes. De cada
cuenta corriente se conoce: número de cuenta y saldo actual. El ingreso de datos
debe finalizar al ingresar un valor negativo en el número de cuenta.
Se pide realizar un programa que lea los datos de las cuentas corrientes e
informe:
a)De cada cuenta: número de cuenta y estado de la cuenta según su saldo,
sabiendo que:
Estado de la cuenta 'Acreedor' si el saldo es >0.
'Deudor' si el saldo es <0.
'Nulo' si el saldo es =0.
b) La suma total de los saldos acreedores.

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraRepetitivaDoWhile

class Program

static void Main(string[] args)

int cuenta;

ING. VLADIMIR FLOREZ TINTA 67


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

float saldo, suma;

string linea;

suma = 0;

do

Console.Write("Ingrese número de cuenta:");

linea = Console.ReadLine();

cuenta = int.Parse(linea);

if (cuenta >= 0)

Console.Write("Ingrese saldo:");

linea = Console.ReadLine();

saldo = float.Parse(linea);

if (saldo > 0)

Console.WriteLine("Saldo Acreedor.");

suma = suma + saldo;

else

if (saldo < 0)

Console.WriteLine("Saldo Deudor.");

else

Console.WriteLine("Saldo Nulo.");

} while (cuenta >= 0);

Console.Write("Total de saldos Acreedores:");

Console.Write(suma);

Console.ReadKey();

ING. VLADIMIR FLOREZ TINTA 68


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Al ejecutar el código muestra el siguiente resultado

Publicado por Yhonatan Robles Vega 2 comentarios:

Etiquetas: bucle do while en c#, bucles en c#, c sharp, C#, do while en c#, ejercicios de do while
en c#, ejercicios de estructuras condicionales en c#, ejercicios resueltos de c#

Ejercicios de la Estructura Do While en C#


Ejercicios Resueltos de Estructura
Repetitiva Do While en C#
Realizar un programa que pida una serie de números y al finalizar que saque el
promedio de dichos números (0 para finalizar)
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EstructuraRepetitivaDoWhile

class Program

static void Main(string[] args)

int suma, cant, valor, promedio;

ING. VLADIMIR FLOREZ TINTA 69


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

string linea;

suma = 0;

cant = 0;

do

Console.Write("Ingrese un nimero (0 para finalizar):");

linea = Console.ReadLine();

valor = int.Parse(linea);

if (valor != 0)

suma = suma + valor;

cant++;

} while (valor != 0);

if (cant != 0)

promedio = suma / cant;

Console.Write("El promedio de los valores ingresados es:");

Console.Write(promedio);

else

Console.Write("No se ingresaron valores ");

Console.ReadLine();

Al ejecutar el código muestra el siguiente resultado

ING. VLADIMIR FLOREZ TINTA 70


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ejercicios con Cadena de Caracteres en C#


Ejercicios con Cadena de Caracteres en
C#
Ejemplo 1
Realizar un programa que permita el ingreso del nombre y edad de dos personas.
Mostrar el nombre de la persona con mayor edad.

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace CadenaDeCaracteres

class Program

static void Main(string[] args)

String nombre1, nombre2;

int edad1, edad2;

String linea;

Console.Write("Ingrese el nombre 1:");

nombre1 = Console.ReadLine();

Console.Write("Ingrese edad 1:");

linea = Console.ReadLine();

edad1 = int.Parse(linea);

Console.Write("Ingrese el nombre 2:");

nombre2 = Console.ReadLine();

Console.Write("Ingrese edad 2:");

linea = Console.ReadLine();

edad2 = int.Parse(linea);

if (edad1 > edad2)

Console.Write("La persona de mayor edad es:"+nombre1);

ING. VLADIMIR FLOREZ TINTA 71


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

else

Console.Write("La persona de mayor edad es:"+nombre2);

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Ejemplo 2
Realizar un programa que permita el ingreso del apellido, nombre y edad de dos
personas. Mostrar el nombre de la persona con mayor edad.

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace CadenaDeCaracteres

class Program

static void Main(string[] args)

string apenom1, apenom2;

int edad1, edad2;

string linea;

Console.Write("Ingrese apellido y nombre 1:");

ING. VLADIMIR FLOREZ TINTA 72


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

apenom1 = Console.ReadLine();

Console.Write("Ingrese edad 1:");

linea = Console.ReadLine();

edad1 = int.Parse(linea);

Console.Write("Ingrese apellido y nombre 2:");

apenom2 = Console.ReadLine();

Console.Write("Ingrese edad 2:");

linea = Console.ReadLine();

edad2 = int.Parse(linea);

Console.Write("La persona de mayor edad es:");

if (edad1 > edad2)

Console.Write(apenom1);

else

Console.Write(apenom2);

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: c# ejercicios resueltos, cadena de caracteres en c#, cadenas en c#, caracteres en


c#,ejemplos en c#, ejercicios con cadena de caracteres en c#, operadores en c#, vectores en c#

Cadena de Caracteres en C#
Cadena de Caracteres en C#
ING. VLADIMIR FLOREZ TINTA 73
HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Una cadena de C# es una matriz de caracteres que se declara utilizando la


palabra clave string. Un literal de cadena se declara utilizando las comillas, como
se muestra en el siguiente ejemplo:

string s = "Hola, Mundo!";


Puede extraer subcadenas y concatenar cadenas de la siguiente manera:

string s1 = "orange";

string s2 = "red";

s1 += s2;

System.Console.WriteLine(s1); // outputs "orangered"

s1 = s1.Substring(2, 5);

System.Console.WriteLine(s1); // outputs "anger"

Los objetos de cadena son inmutables, lo que significa que no se pueden cambiar
una vez creados. Los métodos que actúan sobre las cadenas, devuelven los
nuevos objetos de cadena. En el ejemplo anterior, cuando el contenido de s1 y s2
se concatenan para formar una sola cadena, las dos cadenas que contienen
"orange" y "red" no se modifican.
El operador += crea una nueva cadena que contiene el contenido combinado.
Como resultado, s1 ahora hace referencia a una cadena totalmente diferente.
Todavía existe una cadena que sólo contiene "orange" , pero deja de hacerse
referencia a ella cuando se concatena s1.
Tenga cuidado cuando cree referencias a cadenas. Si crea una referencia a una
cadena y después "modifica" la cadena, la referencia seguirá señalando al objeto
original y no al nuevo objeto que se creó cuando se modificó la cadena.

Carácter de escape
Los caracteres de escape como "\n" y (nueva línea) y "\t" (tabulador) se pueden
incluir en cadenas. La línea:
string hello = "Hola\nMundo!";

equivale a:
Hola
Mundo!

ToString()

ING. VLADIMIR FLOREZ TINTA 74


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Al igual que todos los objetos derivados de Object, las cadenas proporcionan el
método ToString, que convierte un valor en una cadena. Este método se puede
utilizar para convertir valores numéricos en cadenas de la siguiente manera:

int year = 1999;


string msg = "Eve was born in " + year.ToString();

System.Console.WriteLine(msg); // outputs "Eve was born in 1999"

por ahora solo nos interesa la mecánica para trabajar con cadenas de caracteres.
Para ello veremos algunos ejemplos para el uso de cadena de caracteres

Ejercicios Resueltos de Cadena de Caracteres en C#


Ejemplo 1
Realizar un programa que nos pida dos nombres por el teclado y que los compare
si son iguales o no
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace CadenaDeCaracteres

class Program

static void Main(string[] args)

string nombre1, nombre2;

Console.Write("Ingrese primer nombre:");

nombre1 = Console.ReadLine();

Console.Write("Ingrese segundo nombre:");

nombre2 = Console.ReadLine();

if (nombre1 == nombre2)

Console.Write("Los nombres son iguales");

else

ING. VLADIMIR FLOREZ TINTA 75


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Console.Write("Los nombres son distintos");

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Ejercicios Resueltos de Clases en C#


Ejercicios Resueltos de Clases en C#
Ejemplo 1
Desarrollar un programa que permita ingresar los lados de un triángulo e
implemente los siguientes métodos: inicializar los atributos, imprimir el valor del
lado mayor y otro método que muestre si es equilátero o no.

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace PruebaClase

class Triangulo

private int lado1, lado2, lado3;

//Metodo inicializar

public void Inicializar()

string linea;

Console.Write("Ingrese lado 1:");

linea = Console.ReadLine();

lado1 = int.Parse(linea);

ING. VLADIMIR FLOREZ TINTA 76


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Console.Write("Ingrese lado 2:");

linea = Console.ReadLine();

lado2 = int.Parse(linea);

Console.Write("Ingrese lado 3:");

linea = Console.ReadLine();

lado3 = int.Parse(linea);

//Metodo lado mayor

public void LadoMayor()

Console.Write("Lado mayor:");

if (lado1 > lado2 && lado1 > lado3)

Console.WriteLine(lado1);

else

if (lado2 > lado3)

Console.WriteLine(lado2);

else

Console.WriteLine(lado3);

//Metodo es equilatero

public void EsEquilatero()

if (lado1 == lado2 && lado1 == lado3)

Console.Write("Es un triángulo equilátero");

ING. VLADIMIR FLOREZ TINTA 77


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

else

Console.Write("No es un triángulo equilátero");

static void Main(string[] args)

Triangulo triangulo1 = new Triangulo();

triangulo1.Inicializar();

triangulo1.LadoMayor();

triangulo1.EsEquilatero();

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Este problema requiere definir tres atributos de tipo entero donde almacenamos
los valores de los lados del triángulo:

private int lado1, lado2, lado3;

El primer método que deberá llamarse desde la main es el Inicializar donde


cargamos los tres atributos por teclado:
public void Inicializar() {}

ING. VLADIMIR FLOREZ TINTA 78


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

El método LadoMayor muestra el valor mayor de los tres enteros ingresados:


public void LadoMayor() {}

Como podemos observar cuando un problema se vuelve más complejo es más


fácil y ordenado separar los distintos algoritmos en varios métodos y no codificar
todo en la main.
El último método de esta clase verifica si los tres enteros ingresados son iguales:
public void EsEquilatero() {}

En la main creamos un objeto de la clase Triangulo y llamamos los métodos


respectivos:
static void Main(string[] args)

Triangulo triangulo1 = new Triangulo();

triangulo1.Inicializar(); //llamando al método inicializar()

triangulo1.LadoMayor(); //llamando al método LadoMayor()

triangulo1.EsEquilatero(); //llamando al método EsEquilatero()

Console.ReadKey();

Ejemplo 2

Realizar un programa que tenga una clase que permita ingresar el nombre y la
edad de una persona. Mostrar los datos ingresados. Imprimir un mensaje si es
mayor de edad (edad>=18)

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace PruebaClase

class Persona

private string nombre;

ING. VLADIMIR FLOREZ TINTA 79


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

private int edad;

//Método Inicializar()

public void Inicializar()

Console.Write("Ingrese nombre:");

nombre = Console.ReadLine();

string linea;

Console.Write("Ingrese edad:");

linea = Console.ReadLine();

edad = int.Parse(linea);

//Método Imprimir()

public void Imprimir()

Console.Write("Nombre:");

Console.WriteLine(nombre);

Console.Write("Edad:");

Console.WriteLine(edad);

//Método es EsMayorEdad()

public void EsMayorEdad()

if (edad >= 18)

Console.Write("Es mayor de edad");

else

Console.Write("No es mayor de edad");

Console.ReadKey();

// Main principal del programa

static void Main(string[] args)

ING. VLADIMIR FLOREZ TINTA 80


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Persona per1 = new Persona();

per1.Inicializar(); //Llamando al método Inicializar();

per1.Imprimir(); //Llamando al método Imprimir();

per1.EsMayorEdad(); //Llamando al método EsMayorEdad

Al ejecutar el código muestra el siguiente resultado

Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: algoritmo, c# completo clases, c# ejercicios resueltos, c# ejercicios resueltos de


clases,c# ya, clases en c#, declaración de clases en c#, ejercicios con clases en c#, métodos en
c#, Visual Studio

Clases en C#
La programación orientada a objetos se basa en la programación de clases; a
diferencia de la programación estructurada, que está centrada en las funciones.

Clase en C#
Una clase es un molde del que luego se pueden crear múltiples objetos, con
similares características.
Una clase es una plantilla (molde), que define atributos (variables) y métodos
(funciones)
La clase define los atributos y métodos comunes a los objetos de ese tipo, pero
luego, cada objeto tendrá sus propios valores y compartirán las mismas
funciones.

ING. VLADIMIR FLOREZ TINTA 81


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Debemos crear una clase antes de poder crear objetos (instancias) de esa clase.
Al crear un objeto de una clase, se dice que se crea una instancia de la clase o un
objeto propiamente dicho.

La sintaxis de una clase en c# es:


class [nombre de la clase] {
[atributos o variables de la clase]
[métodos o funciones de la clase]
[main]
}

Definición de un Método en C#
Un método es un conjunto de instrucciones a las que se les asocia un nombre de
modo que si se desea ejecutarlas basta referenciarlas a través de dicho nombre en
vez de tener que escribirlas. Dentro de estas instrucciones es posible acceder con
total libertad a la información almacenada en los campos pertenecientes a la clase
dentro de la que el método se ha definido, los métodos permiten manipular los
datos almacenados en los objetos.

Estructura de una Clase en C#


Los componentes principales de una clase, que a partir de ahora llamaremos
miembros, son:
Atributos, que determinan una estructura de almacenamiento para cada objeto
de la clase.
Métodos, que no son mas que operaciones aplicables sobre los objetos.

Objetos en C#
Declaración de Objetos en C#
Cuando uno plantea una clase en lugar de especificar todo el algoritmo en un
único método (lo que hicimos en los primeros pasos de este tutorial) es dividir
todas las responsabilidades de las clase en un conjunto de métodos.

Declaración de una clase y un Objeto

ING. VLADIMIR FLOREZ TINTA 82


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Declaración de varios Objetos dentro de un Clase

ING. VLADIMIR FLOREZ TINTA 83


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ejemplo:

Definir tres clases llamada tren, avión y barco, luego definir una clase llamada
transporte y en ella definir los objetos de las clases anteriores.

Otra forma de declarar objetos definidos como arreglos de objetos

ING. VLADIMIR FLOREZ TINTA 84


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: c# ejercicios resueltos, declaración de objetos en c# clases y objetos en


C#, definición de un objeto en c#, ejemplos de objetos en c#, ejercicios con objetos en c#

Ejemplos de Clases en C#
Ejemplos de Clases en C#
Ejemplo 1

Desarrollar un programa que tenga una clase que represente un Cuadrado y


tenga los siguientes métodos: ingresar valor a su lado, imprimir su perímetro y
su superficie.

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace PruebaClase

class Cuadrado

private int lado;

//método Inicializar()

public void Inicializar()

Console.Write("Ingrese valor del lado:");

string linea;

ING. VLADIMIR FLOREZ TINTA 85


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

linea = Console.ReadLine();

lado = int.Parse(linea);

//Método ImprimirPerimetro()

public void ImprimirPerimetro()

int perimetro;

perimetro = lado * 4;

Console.WriteLine("El perímetro es:" + perimetro);

//Método ImprimirSuperficie()

public void ImprimirSuperficie()

int superficie;

superficie = lado * lado;

Console.WriteLine("La superficie es:" + superficie);

//Main() principal del programa

static void Main(string[] args)

Cuadrado cuadrado1 = new Cuadrado();

cuadrado1.Inicializar(); //Llamando al método Inicializar();

cuadrado1.ImprimirPerimetro(); //Llamando
al método ImprimirPerimetro();

cuadrado1.ImprimirSuperficie(); //Llamando
al método ImprimirSuperficie();

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

ING. VLADIMIR FLOREZ TINTA 86


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ejemplo 2

Implementar la clase operaciones. Se deben ingresar los dos valores enteros,


calcular su suma, resta, multiplicación y división, cada una en un método, e
imprimir dichos resultados.

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace PruebaClase

class Operaciones

private int valor1, valor2;

// Método Inicializar()

public void Inicializar()

string linea;

Console.Write("Ingrese primer numero:");

linea = Console.ReadLine();

valor1 = int.Parse(linea);

Console.Write("Ingrese segundo numero:");

linea = Console.ReadLine();

valor2 = int.Parse(linea);

// Método Sumar()

public void Sumar()

ING. VLADIMIR FLOREZ TINTA 87


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

int suma;

suma = valor1 + valor2;

Console.WriteLine("La suma es:" + suma);

//Método Restar()

public void Restar()

int resta;

resta = valor1 - valor2;

Console.WriteLine("La resta es:" + resta);

// Método Multiplicar()

public void Multiplicar()

int multiplicacion;

multiplicacion = valor1 * valor2;

Console.WriteLine("La multiplicación es:" + multiplicacion);

//Método Dividir()

public void Dividir()

int division;

division = valor1 / valor2;

Console.WriteLine("La división es:" + division);

// Main() principal del programa

static void Main(string[] args)

Operaciones operacion1 = new Operaciones();

operacion1.Inicializar(); // Llamando al método Inicializar();

operacion1.Sumar(); // Llamando al método Sumar();

operacion1.Restar(); // Llamando al método Restar();

operacion1.Multiplicar(); // Llamando al método Multiplicar();

ING. VLADIMIR FLOREZ TINTA 88


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

operacion1.Dividir(); // Llamando al método Dividir();

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Arreglos en C#
Arreglos en C#
Los arreglos en C# (también conocidos como Arrays) al igual que en C/C++, son
indexados iniciando en cero (0). La forma de trabajo es muy similar a la mayoría
de lenguajes pero hay lagunas diferencias que notarán.

Como Declarar e Inicializar un Arreglo en C#


Cuando vayamos a declarar un arreglo en debemos colocar los corchetes después
de tipo de dato. En C/C++ se estila poner los corchetes después del identificador,
eso causa un error de compilación en C#-

Declaración de un Arreglo de tipo Vector en C#


//Declaración erronea

int valores[];

//Declaración valida

int[] valores;

En C# podemos indicar el tamaño del arreglo luego de la declaración. Esto nos


permite decidir que tamaño va a tener el arreglo según lo que necesitemos.

ING. VLADIMIR FLOREZ TINTA 89


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

int[] valores; //valores sin inicializar

valores = new int[100]; //100 elementos

valores = new int[20]; //ahora contiene 20 elementos

Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: algoritmo en c#, arreglos en c#, arreglos y vectores en c#, declaración de un vector
en c#, ejercicios con vectores en c#, ejercicios resueltos de vectores en c#, vectores en c#

Ejercicios con Objetos en C#


Ejercicios Resueltos de Objetos en C#
Ejemplo 1

Desarrollar una clase que permita ingresar tres valores por teclado. Luego
mostrar el mayor y el menor.

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EspacioMayorMenor

class MayorMenor

public void cargarValores()

string linea;

Console.Write("Ingrese primer numero:");

linea = Console.ReadLine();

int valor1 = int.Parse(linea);

Console.Write("Ingrese segundo numero:");

linea = Console.ReadLine();

int valor2 = int.Parse(linea);

Console.Write("Ingrese tercer numero:");

linea = Console.ReadLine();

int valor3 = int.Parse(linea);

int mayor, menor;

mayor = CalcularMayor(valor1, valor2, valor3);

ING. VLADIMIR FLOREZ TINTA 90


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

menor = CalcularMenor(valor1, valor2, valor3);

Console.WriteLine("El valor mayor es:" + mayor);

Console.WriteLine("El valor menor es:" + menor);

public int CalcularMayor(int v1, int v2, int v3)

int m;

if (v1 > v2 && v1 > v3)

m = v1;

else

if (v2 > v3)

m = v2;

else

m = v3;

return m;

public int CalcularMenor(int v1, int v2, int v3)

int m;

if (v1 < v2 && v1 < v3)

m = v1;

else

if (v2 < v3)

ING. VLADIMIR FLOREZ TINTA 91


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

m = v2;

else

m = v3;

return m;

static void Main(string[] args)

MayorMenor mm = new MayorMenor();

mm.cargarValores();

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Ejemplo 2

En el ejemplo siguiente, Persona es el tipo y persona1 y persona2 son instancias,


u objetos, de ese tipo.

using System;

ING. VLADIMIR FLOREZ TINTA 92


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace clases

class MayorMenor

public class Person

public string Name { get; set; }

public int Age { get; set; }

public Person(string name, int age)

Name = name;

Age = age;

class Program

static void Main()

Person person1 = new Person("Yhonas", 6);

Console.WriteLine("Nombre persona1 = {0} Edad = {1}",


person1.Name, person1.Age);

// Declarar persona nueva, asigne persona1 a ella.

Person person2 = person1;

//Cambiar el nombre de persona2 y persona1 también cambia.

person2.Name = "Elisa";

person2.Age = 16;

Console.WriteLine("Nombre persona2 = {0} Edad = {1}",


person2.Name, person2.Age);

Console.WriteLine("Nombre persona1 = {0} Edad = {1}",


person1.Name, person1.Age);

// Mantenga la consola abierta en modo de depuración.

Console.WriteLine("Presione enter para continuar");

ING. VLADIMIR FLOREZ TINTA 93


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Ejercicios Resueltos de Arreglos en C#


Ejercicios Resueltos de Arreglos en C#
Ejemplo 1

Realizar un programa que guardar los sueldos de 5 operarios en un arreglo de


tipo vector

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace PruebaVector1

class PruebaVector1

private int[] sueldos; //Declaramos un vector

public void Cargar()

sueldos = new int[6]; //Inicializamos el vector en 5

ING. VLADIMIR FLOREZ TINTA 94


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

for (int f = 1; f< = 5; f++)

Console.Write("Ingrese sueldo del operario "+f+": ");

String linea;

linea = Console.ReadLine();

sueldos[f] = int.Parse(linea); //Asignamos los 5 sueldos al


vector

//Muestra los sueldos de los operarios en el vector sueldos[f]

public void Imprimir()

Console.Write("Los 5 sueldos de los aperarios \n");

for (int f = 1; f< = 5; f++)

Console.Write("["+sueldos[f]+"] ");

Console.ReadKey();

//main principal

static void Main(string[] args)

PruebaVector1 pv = new PruebaVector1();

pv.Cargar();

pv.Imprimir();

Al ejecutar el código muestra el siguiente resultado

ING. VLADIMIR FLOREZ TINTA 95


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Para la declaración de un vector le antecedemos al nombre los corchetes


abiertos y cerrados:

private int[] sueldos;

Lo definimos como atributo de la clase ya que lo utilizaremos en los dos métodos.


En el método de Cargar lo primero que hacemos es crear el vector (en C# los
vectores son objetos por lo que es necesario proceder a su creación mediante el
operador new):
sueldos = new int[6];

Ejemplo 2
Una empresa tiene dos turnos (mañana y tarde) en los que trabajan 8 empleados
(4 por la mañana y 4 por la tarde)
Desarrollar un programa que permita almacenar los sueldos de los empleados
agrupados por turno.
Imprimir los gastos en sueldos de cada turno.

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace PruebaVector

class PruebaVector3

private float[] turnoM; //Declaramos un vector para el turno mañana

ING. VLADIMIR FLOREZ TINTA 96


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

private float[] turnoT; //Declaramos un vector para el turno tarde

public void Cargar()

string linea;

turnoM = new float[4]; //Asignamos al vector una de longitud 4

turnoT = new float[4]; //Asignamos al vector una de longitud 4

Console.WriteLine("Sueldos de empleados del turno de la mañana.");

for (int f = 0; f< 4; f++)

Console.Write("Ingrese sueldo "+(f+1)+": ");

linea = Console.ReadLine();

turnoM[f] = float.Parse(linea); //Asignamos valores al vector


turno mañana

Console.WriteLine("Sueldos de empleados del turno de la tarde.");

for (int f = 0; f< 4; f++)

Console.Write("Ingrese sueldo "+(f+1)+": ");

linea = Console.ReadLine();

turnoT[f] = float.Parse(linea); //Asignamos valores al vector


turno tarde

public void CalcularGastos()

float man = 0;

float tar = 0;

for (int f = 0; f< 4; f++)

man = man + turnoM[f]; //Realizamos la suna de los valores del


vector turno Mañana

tar = tar + turnoT[f]; //Realizamos la suna de los valores del


vector turno Tarde

Console.WriteLine("Total de gastos del turno de la mañana:" + man);

Console.WriteLine("Total de gastos del turno de la tarde:" + tar);

ING. VLADIMIR FLOREZ TINTA 97


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Console.ReadKey();

static void Main(string[] args)

PruebaVector3 pv = new PruebaVector3();

pv.Cargar();

pv.CalcularGastos();

Al ejecutar el código muestra el siguiente resultado

Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: arreglos en c#, arreglos y vectores en c#, declaración de un vector en c#, ejercicios
con vectores en c#, ejercicios resueltos de vectores en c#, vectores en c#, Visual Studio

Arreglos Multi-dimensionales en C#
Arreglos Multi-dimensionales
En C# también podemos declarar arreglos multi-dimensionales, aquí unos
ejemplos:

//Arreglos unidimensionales o de dimensión simple


int[] valores1; //sin inicializar

int[] valores2 = new int[50];

//Arreglos multidimensionales

int[,] valores1; //sin inicializar

int[,] valores2 = new int[3,7];

int[,,] valores3 = new int[3,4,2]; //Arreglo de tres dimensiones

//Arreglo de arreglos

ING. VLADIMIR FLOREZ TINTA 98


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

int[][] matriz; //sin inicializar

//Los arreglos de arreglos se inicializan de manera diferente

int[][] matriz = new int[3][];

for (int i = 0; i < matriz.Length; i++)

matriz[i] = new int[4];

Ejercicios de Arreglos Multi-dimensionales en C#


Ejercicios de Arreglos Multi-
dimensionales en C#
Realizar un programa que defina un vector de 5 componentes de tipo float que
representen las alturas de 5 personas.
Obtener el promedio de las mismas. Contar cuántas personas son más altas que
el promedio y cuántas más bajas.

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace PruebaVector2

class PruebaVector2

private float[] alturas;

private float promedio;

public void Cargar()

alturas = new float[5];

for (int f = 0; f< 5; f++)

Console.Write("Ingrese la altura de la persona: "+(f+1)+": ");

string linea = Console.ReadLine();

alturas[f] = float.Parse(linea);

ING. VLADIMIR FLOREZ TINTA 99


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

public void CalcularPromedio()

float suma;

suma = 0;

for (int f = 0; f< 5; f++)

suma = suma + alturas[f];

promedio = suma / 5;

Console.WriteLine("Promedio de alturas es:" + promedio);

public void MayoresMenores()

int may, men;

may = 0;

men = 0;

for (int f = 0; f< 5; f++)

if (alturas[f] > promedio)

may++;

else

if (alturas[f] < promedio)

men++;

Console.WriteLine("Cantidad de personas mayores al promedio:" + may);

Console.WriteLine("Cantidad de personas menores al promedio:" + men);

Console.ReadKey();

ING. VLADIMIR FLOREZ TINTA 100


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

static void Main(string[] args)

PruebaVector2 pv2 = new PruebaVector2();

pv2.Cargar();

pv2.CalcularPromedio();

pv2.MayoresMenores();

Al ejecutar el código muestra el siguiente resultado

Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: arreglos en c#, arreglos y vectores en c#, declaración de un vector en c#, ejercicios
con vectores en c#, ejercicios resueltos de vectores en c#, vectores en c#, while en c#

Ejercicios Resueltos de Vectores en C#


Ejercicios Resueltos de Vectores en C#
Se tienen las notas del primer parcial de los alumnos de dos cursos, Matemática
y el Física, cada curso cuenta con 5 alumnos.
Realizar un programa que muestre el curso que obtuvo el mayor promedio
general.

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace PruebaVector6

class PruebaVector6

ING. VLADIMIR FLOREZ TINTA 101


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

private int[] quimica; //Declaramos un vector para el curso Química

private int[] fisica; //Declaramos un vector para el curso Física

private int[] vecSuma;//Declaramos un vector para la suma

public void Cargar()

quimica = new int[5]; //Asignamos una longitud de 5 al vector química

fisica = new int[5]; //Asignamos una longitud de 5 al vector Física

Console.WriteLine("Ingrese notas del curso Quimica");

for (int f = 0; f< 5; f++)

Console.Write("Ingrese nota "+(f+1)+": ");

string linea;

linea = Console.ReadLine();

quimica[f] = int.Parse(linea);

Console.WriteLine("Ingrese notas del Fisica");

for (int f = 0; f< 5; f++)

Console.Write("Ingrese nota "+(f+1)+": ");

string linea;

linea = Console.ReadLine();

fisica[f] = int.Parse(linea);

public void CalcularPromedios()

int suma1 = 0;

int suma2 = 0;

for (int f = 0; f< 5; f++)

suma1 = suma1 + quimica[f];

suma2 = suma2 + fisica[f];

ING. VLADIMIR FLOREZ TINTA 102


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

int promedioa = suma1 / 5;

int promediob = suma2 / 5;

if (promedioa > promediob)

Console.WriteLine("El curso de Quimica tiene un promedio


mayor.");

else

Console.WriteLine("El curso de Fisica tiene un promedio mayor.");

Console.ReadKey();

static void Main(string[] args)

PruebaVector6 pv = new PruebaVector6();

pv.Cargar();

pv.CalcularPromedios();

Al ejecutar el código muestra el siguiente resultado

Suma de vectores en C#
Suma de vectores en C#
Realizar un programa que sume dos vectores y los almacene en un tercer
vector

ING. VLADIMIR FLOREZ TINTA 103


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace PruebaVector

class PruebaVector

private int[] A;//Declaramos un vector A

private int[] B;//Declaramos un vector B

private int[] C;//Declaramos un vector C

public void Cargar()

Console.Write("Ingrese la longitud de los vectores a sumar: ");

string linea;

linea = Console.ReadLine();

int n = int.Parse(linea);

A = new int[n];

B = new int[n];

C = new int[n];

Console.WriteLine("Ingresando valores al vector A");

for (int i = 0; i< A.Length; i++)

Console.Write("Ingrese componente [" + ( i + 1 ) +"]: ");

linea = Console.ReadLine();

A[i] = int.Parse(linea);

Console.WriteLine("Ingresando valores al vector B");

for (int j = 0; j< B.Length; j++)

Console.Write("Ingrese componente [" + (j + 1) + "]: ");

linea = Console.ReadLine();

B[j] = int.Parse(linea);

ING. VLADIMIR FLOREZ TINTA 104


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

for (int i = 0; i< A.Length; i++)

C[i]=A[i]+B[i];

public void Visualizar()

Console.WriteLine("La suma de los vecores es: ");

for (int i = 0; i< A.Length; i++)

Console.Write("["+C[i]+"] ");

Console.ReadLine();

static void Main(string[] args)

PruebaVector pv = new PruebaVector();

pv.Cargar();

pv.Visualizar();

Al ejecutar el código muestra el siguiente resultado

ING. VLADIMIR FLOREZ TINTA 105


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Publicado por Yhonatan Robles Vega 1 comentario:

Etiquetas: arreglos y vectores en c#, ejemplos c#, Ejercicios C#, ejercicios con vectores en
c#,ejercicios resueltos de vectores en c#, suma en c#, sumar dos vectores en c#, vectores en c#

Ejercicios con Vectores en C#


Ejercicios con Vectores en C#
Veamos algunos ejercicios con vectores en c#, que nos ayudaran a entender
mejor el tema acerca de los vectores en c#.

Empezaremos con la búsqueda del mayor y menor elemento de un vector, lo


mismo que su posición.

En la siguiente gráfica se muestra un ejemplo de como un vector almacena datos:

Ejemplo 1

Realizar un programa que permita ingresar los nombres de 5 operarios y sus


sueldos respectivos. Mostrar el sueldo mayor y el nombre del operario.

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace PruebaVector

class PruebaVector

private string[] nombres; //Declaramos un vector de tipo estring para los


nombres

ING. VLADIMIR FLOREZ TINTA 106


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

private float[] sueldos; //Declaramos un vector de tipo float para los


sueldos

public void Cargar()

nombres = new string[5];

sueldos = new float[5];

for (int f = 0; f< nombres.Length; f++)

Console.Write("Ingrese el nombre del empleado "+(f+1)+": ");

nombres[f] = Console.ReadLine();

Console.Write("Ingrese el sueldo "+(f+1)+": ");

string linea;

linea = Console.ReadLine();

sueldos[f] = float.Parse(linea);

public void MayorSueldo()

float mayor;

int pos;

mayor = sueldos[0];

pos = 0;

for (int f = 1; f< nombres.Length; f++)

if (sueldos[f] > mayor)

mayor = sueldos[f];

pos = f;

Console.WriteLine("El empleado con sueldo mayor es :" +


nombres[pos]);

Console.WriteLine("Tiene un sueldo de: " + mayor);

Console.ReadKey();

ING. VLADIMIR FLOREZ TINTA 107


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

static void Main(string[] args)

PruebaVector pv = new PruebaVector();

pv.Cargar();

pv.MayorSueldo();

Al ejecutar el código muestra el siguiente resultado

Ejemplo 2

Realizar un programa que ingrese un vector de n elementos e imprimir el menor


y un mensaje si se repite dentro del vector dicho numero.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

ING. VLADIMIR FLOREZ TINTA 108


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

namespace PruebaVector

class PruebaVector

private int[] vec;//Declaramos un vector

private int menor;

public void Cargar()

Console.Write("Ingrese la longitud del vector:");

string linea;

linea = Console.ReadLine();

int n = int.Parse(linea);

vec = new int[n];

for (int f = 0; f < vec.Length; f++)

Console.Write("Ingrese componente ["+(f+1)+"]: ");

linea = Console.ReadLine();

vec[f] = int.Parse(linea);

public void MenorElemento()

menor = vec[0];

for (int f = 1; f< vec.Length; f++)

if (vec[f] < menor)

menor = vec[f];

Console.WriteLine("El elemento menor es: " + menor);

public void RepiteMenor()

ING. VLADIMIR FLOREZ TINTA 109


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

int cant = 0;

for (int f = 0; f< vec.Length; f++)

if (vec[f] == menor)

cant++;

if (cant > 1)

Console.WriteLine("Se repite el numero.");

else

Console.WriteLine("No se repite el menor.");

Console.ReadLine();

static void Main(string[] args)

PruebaVector pv = new PruebaVector();

pv.Cargar();

pv.MenorElemento();

pv.RepiteMenor();

Al ejecutar el código muestra el siguiente resultado

ING. VLADIMIR FLOREZ TINTA 110


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Matrices en C#
Matrices en C#
Este también es un tipo de dato estructurado, que está compuesto por n
dimensiones. Para hacer referencia a cada componente del arreglo es necesario
utilizar n índices, uno para cada dimensión.
Conceptos básicos

Los arreglos multidimensionales tienen más de una dimensión. En C#, las


dimensiones se manejan por medio de un par de corchetes, dentro de los que se
escriben los valores de cada dimensión, separados por comas.
Operaciones.
Para manejar un arreglo, las operaciones a efectuarse son:

 Declaración del arreglo,


 Creación del arreglo,
 Inicialización de los elementos del arreglo,
 Acceso a los elementos del arreglo.

A continuación describiremos cada una de estas operaciones, en C#.


Declaración de Matrices en C#

La sintaxis para declarar un arreglo multidimensional es la siguiente:

<tipo>[ , ...]<identificador >;

Donde:
Tipo indica el tipo correspondiente a los elementos del arreglo,Identificador es el
nombre del arreglo, y el par de corchetes, la coma y las diéresis,[ , ...], representan
las dimensiones del arreglo. Los corchetes encierran todas las comas necesarias
para separar las dimensiones del arreglo.

Ejemplos:

double [ , ] bidim;// Dos dimensiones.


int [ , , ] tridim ;// Tres dimensiones.
char [ , , , ] enciclopedia;// Cuatro dimensiones.

ING. VLADIMIR FLOREZ TINTA 111


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Observe que, en la declaración, el espacio entre los corchetes está vacío. Esto se
debe a que, durante dicha operación, no se reserva espacio en la memoria.
Creación
La creación de un arreglo multidimensional consiste en reservar espacioen la
memoria para todos sus elementos, utilizando la siguiente sintaxis:

<identificador > =new<tipo> [dim1, dim2 ... dimN]

Donde:

new es el operador para gestionar espacio de memoria, en tiempo de ejecución,


dim1, dim2 ,dimN son valores enteros que representan las dimensiones del arreglo.
El tamaño del arreglo es el resultado de multiplicar los valores de las dimensiones
y representa el número de elementos del arreglo.
Veamos la siguiente gráfica donde se muestra una matriz (2x5), en donde se
almacena 5 nombres con sus respectivas edades

Publicado por Yhonatan Robles Vega No hay comentarios:


Etiquetas: arreglos multidimensionales en c#, c# matrices, c# vectores, ejercicios con matrices
en c#, ejercicios resueltos de matrices en c#, matrices en c#, vectores en c#

Resta de Vectores en C#
Resta de Vectores en C#
Realizar un programa que Reste dos vectores y los almacene en un tercer vector

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PruebaVector
{
class PruebaVector
{
private int[] A;//Declaramos un vector A
private int[] B;//Declaramos un vector B
private int[] C;//Declaramos un vector C
public void Cargar()
{
Console.Write("Ingrese la longitud de los vectores a restar: ");
string linea;
linea = Console.ReadLine();
int n = int.Parse(linea);
A = new int[n];
B = new int[n];
C = new int[n];
Console.WriteLine("Ingresando valores al vector A");
for (int i = 0; i< A.Length; i++)

ING. VLADIMIR FLOREZ TINTA 112


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

{
Console.Write("Ingrese componente [" + ( i + 1 ) +"]: ");
linea = Console.ReadLine();
A[i] = int.Parse(linea);
}
Console.WriteLine("Ingresando valores al vector B");
for (int j = 0; j< B.Length; j++)
{
Console.Write("Ingrese componente [" + (j + 1) + "]: ");
linea = Console.ReadLine();
B[j] = int.Parse(linea);
}
for (int i = 0; i< A.Length; i++)
{
C[i]=A[i]-B[i];
}
}
public void Visualizar()
{
Console.WriteLine("La resta de los vecores es: ");
for (int i = 0; i< A.Length; i++)
{
Console.Write("["+C[i]+"] ");
}
Console.ReadLine();
}
static void Main(string[] args)
{
PruebaVector pv = new PruebaVector();
pv.Cargar();
pv.Visualizar();
}
}
}

Al ejecutar el código muestra el siguiente resultado

Ejemplo de Matrices en C#
Ejemplo de Matrices en C#
Realizar un programa que permita imprimir la siguiente serie:

ING. VLADIMIR FLOREZ TINTA 113


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace PruebaVector

class PruebaVector

private int[,] serie;

public void Cargar()

serie = new int[10,10];

for (int i = 1; i<= 6; i++)

for (int j = 1; j <= 6; j++)

if (i==j)

serie[i, j] = 1;

else

serie[i, j] = 0;

ING. VLADIMIR FLOREZ TINTA 114


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

public void visualizar()

for (int i = 1; i< = 6; i++)

Console.Write("\n");

for (int j = 1; j <= 6; j++)

Console.Write(serie[i,j]+" ");

Console.ReadKey();

static void Main(string[] args)

PruebaVector pv = new PruebaVector();

pv.Cargar();

pv.visualizar();

Al ejecutar el código muestra el siguiente resultado

Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: arreglos multidimensionales en c#, arreglos y vectores en c#, ejemplo con matrices
en c#, ejercicios de matrices en C#, matrices en c#

Ejercicios Resueltos de Matrices en C#


ING. VLADIMIR FLOREZ TINTA 115
HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ejercicios Resueltos de Matrices en C#


Ejemplo 1
Desarrollar un programa que permita cargar 5 nombres de personas y sus edades
respectivas. Luego de realizar la carga por teclado de todos los datos imprimir los
nombres de las personas mayores de edad (mayores o iguales a 18 años)
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace PruebaVector10

class PruebaVector

private string[] nombres;

private int[] edades;

public void Cargar()

nombres = new string[5];

edades = new int[5];

for (int f = 0; f < 5; f++)

Console.Write("Ingrese nombre "+(f+1)+": ");

nombres[f] = Console.ReadLine();

Console.Write("Ingrese edad "+(f+1)+": ");

string linea;

linea = Console.ReadLine();

edades[f] = int.Parse(linea);

public void MayoresEdad()

Console.WriteLine("Personas mayores de edad.");

for (int f = 0; f < nombres.Length; f++)

ING. VLADIMIR FLOREZ TINTA 116


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

if (edades[f] >= 18)

Console.WriteLine(nombres[f]);

Console.ReadKey();

static void Main(string[] args)

PruebaVector pv = new PruebaVector();

pv.Cargar();

pv.MayoresEdad();

Al ejecutar el código muestra el siguiente resultado

Ejemplo 2
Realizar un programa que permita imprimir la siguiente serie:
1 0 1 0 1 0
1 0 1 0 1 0

ING. VLADIMIR FLOREZ TINTA 117


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

1 0 1 0 1 0
1 0 1 0 1 0
1 0 1 0 1 0
1 0 1 0 1 0
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace PruebaVector

class PruebaVector

private int[,] serie;

public void Cargar()

serie = new int[10,10];

for (int i = 1; i<= 6; i++)

for (int j = 1; j <= 6; j++)

if (j % 2 == 0)

serie[i, j] = 0;

else

serie[i, j] = 1;

public void visualizar()

ING. VLADIMIR FLOREZ TINTA 118


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

for (int i = 1; i< = 5; i++)

Console.Write("\n");

for (int j = 1; j <= 6; j++)

Console.Write(serie[i,j]+" ");

Console.ReadKey();

static void Main(string[] args)

PruebaVector pv = new PruebaVector();

pv.Cargar();

pv.visualizar();

Al ejecutar el código muestra el siguiente resultado

Vectores y Matrices en C#
Vectores y Matrices en C#
Un array (matriz o vector) es un conjunto finito y ordenado de elementos
homogéneos. La propiedad “ordenado” significa que el elemento primero, segundo
y tercero,…, enésimo de un array puede ser identificado. Los elementos del array
son homogéneos, es decir, del mismo tipo de datos. Los array también se conocen
como matrices-en matemáticas- y tablas- en cálculos financieros.

ING. VLADIMIR FLOREZ TINTA 119


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

En otras palabras un arreglo es una especie de variable que contiene muchos


valores pero cada uno con una posición diferente. Un arreglo puede ser
unidimensional o vectorial, bidimensional o matricial, o multi-dimencional.
Vectores en C#
Qué es un vector? Un vector (o arreglo unidimensional) es una estructura de datos
en la cual se almacena un conjunto de datos de un mismo tipo. Es decir que un
arreglo es una lista de n elementos que posee las siguientes características:

 Se identifica por un único nombre de variable


 Sus elementos se almacenan en posiciones contiguas de memoria
 Se accede a cada uno de sus elementos en forma aleatoria

Matrices en C#

Publicado por Yhonatan Robles Vega No hay comentarios:


Etiquetas: arreglos y vectores en c#, c# ejercicios resueltos, c# vectores, ejemplo con matrices
en c#, vectores en c#, vectores y matrices en c#

Suma de Matrices en C#
Suma de Matrices en C#
ING. VLADIMIR FLOREZ TINTA 120
HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Realizar un programa que permita la suma de dos matrices de 3x3 y el resultado


almacenar en un tercer matriz

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PruebaVector
{
class PruebaVector
{
private int[,] MatrizA;
private int[,] MatrizB;
private int[,] MatrizC;
public void Cargar()
{
MatrizA = new int[10,10];
MatrizB = new int[10, 10];
MatrizC = new int[10, 10];
Console.WriteLine("Ingresando datos al matriz A");
for (int i = 1; i<= 3; i++)
{
for (int j = 1; j <= 3; j++)
{
Console.Write("Ingrese posicion [" + i + "," + j + "]: ");
string linea;
linea = Console.ReadLine();
MatrizA[i, j] = int.Parse(linea);
}
}
Console.WriteLine("Ingresando datos al matriz B");
for (int i = 1; i <= 3; i++)
{
for (int j = 1; j <= 3; j++)
{
Console.Write("Ingrese posicion [" + i + "," + j + "]: ");
string linea;
linea = Console.ReadLine();
MatrizB[i, j] = int.Parse(linea);
}
}
//Sumamos la matrizA y la MatrizB
for (int i = 1; i< = 3; i++)
{
for (int j = 1; j <= 3; j++)
{
MatrizC[i,j]=MatrizA[i,j]+MatrizB[i,j];
}
}
}
// visualizamos la suma de las matrices
public void visualizar()
{
Console.WriteLine("La suma de la MatrizA y MatrizB es :");
for (int i = 1; i< = 3; i++)
{
Console.Write("\n");
for (int j = 1; j <= 3; j++)
{
Console.Write(MatrizC[i,j]+" ");

ING. VLADIMIR FLOREZ TINTA 121


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

}
}
Console.ReadKey();
}
static void Main(string[] args)
{
PruebaVector pv = new PruebaVector();
pv.Cargar();
pv.visualizar();
}
}
}
Al ejecutar el código muestra el siguiente resultado

Ejemplo de Vectores y Matrices en C#


Ejemplo de Vectores y Matrices en C#
Se desea saber la temperatura media trimestral de cuatro provincias. Para ello se
tiene como dato las temperaturas medias mensuales de dichas provincias.
Se debe ingresar el nombre de la provincia y seguidamente las tres temperaturas
medias mensuales.
Seleccionar las estructuras de datos adecuadas para el almacenamiento de los datos
en memoria.
1. Ingresar por teclado los nombres de las provincias y las temperaturas
medias mensuales.
2. Imprimir los nombres de las provincias y las temperaturas medias
mensuales de las mismas.
3. Calcular la temperatura media trimestral de cada provincia.
4. Imprimir los nombres de las provincias y las temperaturas medias
trimestrales.

ING. VLADIMIR FLOREZ TINTA 122


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

5. Imprimir el nombre de la provincia con la temperatura media


trimestral mayor.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Matriz
{
class Matriz
{
private string[] paises;
private int[,] tempmen;
private int[] temptri;
public void Cargar()
{
paises = new String[4];
tempmen = new int[4, 3];
for (int f = 0; f< paises.Length; f++)
{
Console.Write("Ingrese el nombre de la provincia "+(f+1)+": ");
paises[f] = Console.ReadLine();
for (int c = 0; c < tempmen.GetLength(1); c++)
{
Console.Write("Ingrese temperatura mensual " + (c + 1) + ":
");
string linea = Console.ReadLine();
tempmen[f, c] = int.Parse(linea);
}
}
}
public void ImprimirTempMensuales()
{
for (int f = 0; f< paises.Length; f++)
{
Console.Write("Provincia:" + paises[f] + ":");
for (int c = 0; c < tempmen.GetLength(1); c++)
{
Console.Write(tempmen[f, c] + " ");
}
Console.WriteLine();
}
}
public void CalcularTemperaturaTri()
{
temptri = new int[4];
for (int f = 0; f< tempmen.GetLength(0); f++)
{
int suma = 0;
for (int c = 0; c < tempmen.GetLength(1); c++)
{
suma = suma + tempmen[f, c];
}
temptri[f] = suma / 3;
}
}
public void ImprimirTempTrimestrales()
{
Console.WriteLine("Temperaturas trimestrales.");
for (int f = 0; f< paises.Length; f++)

ING. VLADIMIR FLOREZ TINTA 123


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

{
Console.WriteLine(paises[f] + " " + temptri[f]);
}
}
public void PaisMayorTemperaturaTri()
{
int may = temptri[0];
string nom = paises[0];
for (int f = 0; f< paises.Length; f++)
{
if (temptri[f] > may)
{
may = temptri[f];
nom = paises[f];
}
}
Console.WriteLine("Provincia con temperatura trimestral mayor es " +
nom + " que tiene una temperatura de " + may);
}
static void Main(string[] args)
{
Matriz ma = new Matriz();
ma.Cargar();
ma.ImprimirTempMensuales();
ma.CalcularTemperaturaTri();
ma.ImprimirTempTrimestrales();
ma.PaisMayorTemperaturaTri();
Console.ReadKey();
}
}
}
Al ejecutar el código muestra el siguiente resultado

Publicado por Yhonatan Robles Vega No hay comentarios:


Etiquetas: arreglos en c#, arreglos multidimensionales en c#, arreglos y vectores en c#, c#
vectores,ejemplo con matrices en c#, ejercicios de arrays en c#

Ejercicios De Vectores y Matrices en C#


Ejercicios De Vectores y Matrices en C#
Ejercicio
Se tiene la siguiente información:

ING. VLADIMIR FLOREZ TINTA 124


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

· Nombres de 4 operarios.
· Ingresos en concepto de sueldo, cobrado por cada operario, en los últimos 3
meses.
Realizar un programa para:
1. Realizar el ingreso de la información mencionada.
2. Generar un vector que contenga el ingreso acumulado en sueldos en
los últimos 3 meses para cada operario.
3. Mostrar por pantalla el total pagado en sueldos a todos los operarios
en los últimos 3 meses
4. Obtener el nombre del operario que tuvo el mayor ingreso acumulado
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Matriz
{
class Matriz
{
private string[] empleados;
private int[,] sueldos;
private int[] sueldostot;
public void Cargar()
{
empleados = new String[4];
sueldos = new int[4, 3];
for (int f = 0; f< empleados.Length; f++)
{
Console.Write("Ingrese el nombre del operario "+(f+1)+": ");
empleados[f] = Console.ReadLine();
for (int c = 0; c < sueldos.GetLength(1); c++)
{
Console.Write("Ingrese sueldo " + (c + 1) + ": ");
string linea;
linea = Console.ReadLine();
sueldos[f, c] = int.Parse(linea);
}
}
}
public void CalcularSumaSueldos()
{
sueldostot = new int[4];
for (int f = 0; f< sueldos.GetLength(0); f++)
{
int suma = 0;
for (int c = 0; c < sueldos.GetLength(1); c++)
{
suma = suma + sueldos[f, c];
}
sueldostot[f] = suma;
}
}
public void ImprimirTotalPagado()
{
Console.WriteLine("Total de sueldos pagados por Operario.");
for (int f = 0; f< sueldostot.Length; f++)
{

ING. VLADIMIR FLOREZ TINTA 125


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Console.WriteLine(empleados[f] + " - " + sueldostot[f]);


}
}
public void EmpleadoMayorSueldo()
{
int may = sueldostot[0];
string nom = empleados[0];
for (int f = 0; f< sueldostot.Length; f++)
{
if (sueldostot[f] > may)
{
may = sueldostot[f];
nom = empleados[f];
}
}
Console.WriteLine("El operario con mayor sueldo es " + nom + " que
tiene un sueldo de " + may);
}
static void Main(string[] args)
{
Matriz ma = new Matriz();
ma.Cargar();
ma.CalcularSumaSueldos();
ma.ImprimirTotalPagado();
ma.EmpleadoMayorSueldo();
Console.ReadKey();
}
}
}

Al ejecutar el código muestra el siguiente resultado

Ordenamiento por Inserción Directa en C#


Método de Ordenamiento por Inserción
directa en C#
using System;

using System.Collections.Generic;
using System.Linq;

ING. VLADIMIR FLOREZ TINTA 126


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

using System.Text;

namespace PruebaVector

class PruebaVector

private int[] vector;

public void Cargar()

Console.WriteLine("Metodo de insercion directa");

Console.Write("Cuantos longitud del vector:");

string linea;

linea = Console.ReadLine();

int cant;

cant = int.Parse(linea);

vector = new int[cant];

for (int f = 0; f < vector.Length; f++)

Console.Write("Ingrese elemento "+(f+1)+": ");

linea = Console.ReadLine();

vector[f] = int.Parse(linea);

public void InsercionDirecta()

int auxili;

int j;

for (int i = 0; i < vector.Length; i++)

auxili = vector[i];

j = i - 1;

while (j >= 0 && vector[j] > auxili)

vector[j + 1] = vector[j];

j--;

ING. VLADIMIR FLOREZ TINTA 127


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

vector[j + 1] = auxili;

public void Imprimir()

Console.WriteLine("Vector ordenados en forma ascendente");

for (int f = 0; f < vector.Length; f++)

Console.Write(vector[f]+" ");

Console.ReadKey();

static void Main(string[] args)

PruebaVector pv = new PruebaVector();

pv.Cargar();

pv.InsercionDirecta();

pv.Imprimir();

Al ejecutar el código muestra el siguiente resultado

Publicado por Yhonatan Robles Vega 1 comentario:

Etiquetas: burbuja en c#, ejercicios con métodos de ordenamiento en c#, inserción binaria en
C#,inserción directa en c#, merge sort en c#, quick sort en c#, shaker sort en c#, shell sor en c#

ING. VLADIMIR FLOREZ TINTA 128


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Métodos de Ordenamiento en C#
Métodos de Ordenamiento en C#
En computación un algoritmo de ordenamiento es un algoritmo que pone
elementos de una lista o un vector en una secuencia dada por una relación de
orden, es decir, el resultado de salida ha de ser una permutación o
reordenamiento de la entrada que satisfaga la relación de orden dada. Las
relaciones de orden más usadas son el orden numérico y el orden lexicográfico.
Ordenamientos eficientes son importantes para optimizar el uso de otros
algoritmos (como los de búsqueda y fusión) que requieren listas ordenadas para
una ejecución rápida.

Ahora veremos los distintos métodos de ordenamiento en c#, aremos un


ejemplo de cada uno de los métodos de ordenamiento.

Ejemplo
using System;

using System.Collections.Generic;
using System.Linq;

using System.Text;

namespace PruebaVector

class PruebaVector

private int[] vector;

public void Cargar()

Console.WriteLine("Metodo de insercion directa");

Console.Write("Cuantos longitud del vector:");

string linea;

linea = Console.ReadLine();

int cant;

cant = int.Parse(linea);

vector = new int[cant];

for (int f = 0; f < vector.Length; f++)

Console.Write("Ingrese elemento "+(f+1)+": ");

ING. VLADIMIR FLOREZ TINTA 129


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

linea = Console.ReadLine();

vector[f] = int.Parse(linea);

public void InsercionDirecta()

int auxili;

int j;

for (int i = 0; i < vector.Length; i++)

auxili = vector[i];

j = i - 1;

while (j >= 0 && vector[j] > auxili)

vector[j + 1] = vector[j];

j--;

vector[j + 1] = auxili;

public void Imprimir()

Console.WriteLine("Vector ordenados en forma ascendente");

for (int f = 0; f < vector.Length; f++)

Console.Write(vector[f]+" ");

Console.ReadKey();

static void Main(string[] args)

PruebaVector pv = new PruebaVector();

pv.Cargar();

pv.InsercionDirecta();

ING. VLADIMIR FLOREZ TINTA 130


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

pv.Imprimir();

Al ejecutar el código muestra el siguiente resultado

Ordenamiento por Shell Sort en C#


Método de Ordenamiento Shell Sort en C#

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace PruebaVector

class PruebaVector

private int[] vector;

public void Cargar()

Console.WriteLine("Metodo de Shell Sort");

Console.Write("Cuantos longitud del vector:");

string linea;

linea = Console.ReadLine();

int cant;

cant = int.Parse(linea);

vector = new int[cant];

ING. VLADIMIR FLOREZ TINTA 131


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

for (int f = 0; f < vector.Length; f++)

Console.Write("Ingrese elemento "+(f+1)+": ");

linea = Console.ReadLine();

vector[f] = int.Parse(linea);

public void Shell()

int salto = 0;

int sw = 0;

int auxi = 0;

int e = 0;

salto = vector.Length / 2;

while (salto > 0)

sw = 1;

while (sw != 0)

sw = 0;

e = 1;

while (e <= (vector.Length - salto))

if (vector[e - 1] > vector[(e - 1) + salto])

auxi = vector[(e - 1) + salto];

vector[(e - 1) + salto] = vector[e - 1];

vector[(e - 1)] = auxi;

sw = 1;

e++;

salto = salto / 2;

ING. VLADIMIR FLOREZ TINTA 132


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

public void Imprimir()

Console.WriteLine("Vector ordenados en forma ascendente");

for (int f = 0; f < vector.Length; f++)

Console.Write(vector[f]+" ");

Console.ReadKey();

static void Main(string[] args)

PruebaVector pv = new PruebaVector();

pv.Cargar();

pv.Shell();

pv.Imprimir();

Al ejecutar el código muestra el siguiente resultado

Publicado por Yhonatan Robles Vega 1 comentario:

Etiquetas: burbuja en c#, ejercicios con métodos de ordenamiento en c#, inserción binaria en
C#,inserción directa en c#, merge sort en c#, quick sort en c#, shaker sort en c#, shell sor en c#

Ordenamiento por Inserción Binaria en C#

ING. VLADIMIR FLOREZ TINTA 133


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Método de Ordenamiento por Inserción


Binaria en C#
int auxiliar;

int q;

int izqui;

int dere;

for (int i = 0; i < numeros.Length; i++)

auxiliar = numeros[i];

izqui = 0;

dere = i - 1;

while (izqui <= dere)

q = ((izqui + dere) / 2);

if (auxiliar < numeros[q])

dere = q - 1;

else

izqui = q + 1;

j = i - 1;

while (j >= izqui)

numeros[j + 1] = numeros[j];

j = j - 1;

numeros[izqui] = auxiliar;

for (int i = 0; i < longitud; i++)

Console.WriteLine(" " + numeros[i]);

ING. VLADIMIR FLOREZ TINTA 134


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ordenamiento por Burbuja en C#


Método de Ordenamiento Burbuja en C#
using System;

using System.Collections.Generic;
using System.Linq;

using System.Text;

namespace Burbuja
{

class Burbuja

private int[] vector;

public void Cargar()

Console.WriteLine("Metodo de Burbuja");

Console.Write("Cuantos longitud del vector: ");

string linea;

linea = Console.ReadLine();

int cant;

cant = int.Parse(linea);

vector = new int[cant];

for (int f = 0; f < vector.Length; f++)

Console.Write("Ingrese elemento "+(f+1)+": ");

linea = Console.ReadLine();

vector[f] = int.Parse(linea);

public void MetodoBurbuja()

int t;

for (int a = 1; a< vector.Length; a++)

for (int b = vector.Length - 1; b >= a; b--)

ING. VLADIMIR FLOREZ TINTA 135


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

if (vector[b - 1] > vector[b])

t = vector[b - 1];

vector[b - 1] = vector[b];

vector[b] = t;

public void Imprimir()

Console.WriteLine("Vector ordenados en forma ascendente");

for (int f = 0; f< vector.Length; f++)

Console.Write(vector[f]+" ");

Console.ReadKey();

static void Main(string[] args)

Burbuja pv = new Burbuja();

pv.Cargar();

pv.MetodoBurbuja();

pv.Imprimir();

Al ejecutar el código muestra el siguiente resultado

ING. VLADIMIR FLOREZ TINTA 136


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: burbuja en c#, ejercicios con métodos de ordenamiento en c#, inserción binaria en
C#,inserción directa en c#, merge sort en c#, quick sort en c#, shaker sort en c#, shell sor en c#

Ordenamiento por Quick Sort en C#


Método de Ordenamiento Quick Sort en
C#
using System;

using System.Collections.Generic;
using System.Linq;

using System.Text;

namespace quicksort
{

class Class

static void Main()

int n;

Console.WriteLine("Metodo de Quick Sort");

Console.Write("Cuantos longitud del vector: ");

n = Int32.Parse(Console.ReadLine());

llenar b = new llenar(n);

class llenar

int h;

ING. VLADIMIR FLOREZ TINTA 137


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

int[] vector;

public llenar(int n)

h = n;

vector = new int[h];

for (int i = 0; i < h; i++)

Console.Write("ingrese valor {0}: ", i + 1);

vector[i] = Int32.Parse(Console.ReadLine());

quicksort(vector, 0, h - 1);

mostrar();

private void quicksort(int[] vector, int primero, int ultimo)

int i, j, central;

double pivote;

central = (primero + ultimo) / 2;

pivote = vector[central];

i = primero;

j = ultimo;

do

while (vector[i] < pivote) i++;

while (vector[j] > pivote) j--;

if (i <= j)

int temp;

temp = vector[i];

vector[i] = vector[j];

vector[j] = temp;

i++;

j--;

ING. VLADIMIR FLOREZ TINTA 138


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

} while (i <= j);

if (primero < j)

quicksort(vector, primero, j);

if (i < ultimo)

quicksort(vector, i, ultimo);

private void mostrar()

Console.WriteLine("Vector ordenados en forma ascendente");

for (int i = 0; i < h; i++)

Console.Write("{0} ", vector[i]);

Console.ReadLine();

Al ejecutar el código muestra el siguiente resultado

Ordenamiento por Merge Sort en C#

ING. VLADIMIR FLOREZ TINTA 139


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Método de Ordenamiento Merge Sort en


C#
using System;

using System.Collections.Generic;
using System.Linq;

using System.Text;

namespace MergeSort

class Program

static void Main(string[] args)

int[] nums = new int[40];

Console.WriteLine("Metodo de Merge Sort");

Console.Write("Cuantos longitud del vector: ");

string linea;

linea = Console.ReadLine();

int cant;

cant = int.Parse(linea);

nums = new int[cant];

for (int f = 0; f< nums.Length; f++)

Console.Write("Ingrese elemento " + (f + 1) + ": ");

linea = Console.ReadLine();

nums[f] = int.Parse(linea);

MergeSort(nums);

Console.WriteLine("Vector Ordenado Ascendentemente");

for (int i = 0; i< nums.Length; i++)

Console.Write(nums[i] + " ");

Console.ReadLine();

//Método portal que llama al método recursivo inicial

ING. VLADIMIR FLOREZ TINTA 140


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

public static void MergeSort(int[] x)

MergeSort(x, 0, x.Length - 1);

static private void MergeSort(int[] x, int desde, int hasta)

//Condicion de parada

if (desde == hasta)

return;

//Calculo la mitad del array

int mitad = (desde + hasta) / 2;

//Voy a ordenar recursivamente la primera mitad

//y luego la segunda

MergeSort(x, desde, mitad);

MergeSort(x, mitad + 1, hasta);

//Mezclo las dos mitades ordenadas

int[] aux = Merge(x, desde, mitad, mitad + 1, hasta);

Array.Copy(aux, 0, x, desde, aux.Length);

//Método que mezcla las dos mitades ordenadas

static private int[] Merge(int[]


x, int desde1, int hasta1, int desde2, inthasta2)

int a = desde1;

int b = desde2;

int[] result = new int[hasta1 - desde1 + hasta2 - desde2 + 2];

for (int i = 0; i< result.Length; i++)

if (b != x.Length)

if (a > hasta1 && b <= hasta2)

result[i] = x[b];

b++;

ING. VLADIMIR FLOREZ TINTA 141


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

if (b > hasta2 && a <= hasta1)

result[i] = x[a];

a++;

if (a <= hasta1 && b <= hasta2)

if (x[b] <= x[a])

result[i] = x[b];

b++;

else

result[i] = x[a];

a++;

else

if (a <= hasta1)

result[i] = x[a];

a++;

return result;

Al ejecutar el código muestra el siguiente resultado

ING. VLADIMIR FLOREZ TINTA 142


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: burbuja en c#, ejercicios con métodos de ordenamiento en c#, inserción binaria en
C#,inserción directa en c#, merge sort en c#, quick sort en c#, shaker sort en c#, shell sor en c#

Ordenamiento por Shaker Sort en C#


Método de Ordenamiento Shaker Sort en
C#
int n = numeros.Length;

int izq = 1;

int k = n;

int aux;

int der = n;

do

for (int i = der; i >= izq; i--)

if (numeros[i - 1] > numeros[i])

aux = numeros[i - 1];

numeros[i - 1] = numeros[i];

numeros[i] = aux;

k = i;

ING. VLADIMIR FLOREZ TINTA 143


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

izq = k + 1;

for (int i = izq; i <= der; i++)

if (numeros[i - 1] > numeros[i])

aux = numeros[i - 1];

numeros[i - 1] = numeros[i];

numeros[i] = aux;

k = 1;

der = k - 1;

while (der >= izq);

for (int i = 0; i < longitud; i++)

Console.WriteLine(" " + numeros[i]);

Ejercicios Resueltos de Arrays en C#


Ejercicios Resueltos de Arrays en C#
Ejemplo 2

Definir un vector donde almacenar los nombres de 5 personas. Realizar un


programa que ordene alfabéticamente

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace PruebaVector

ING. VLADIMIR FLOREZ TINTA 144


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

class PruebaVector

private string[] nombre;

public void Cargar()

nombre = new string[5];

for (int f = 0; f < nombre.Length; f++)

Console.Write("Ingrese el nombre "+(f+1)+": ");

nombre[f] = Console.ReadLine();

public void Ordenar()

for (int k = 0; k < 4; k++)

for (int f = 0; f < 4 - k; f++)

if (nombre[f].CompareTo(nombre[f + 1]) > 0)

string aux;

aux = nombre[f];

nombre[f] = nombre[f + 1];

nombre[f + 1] = aux;

public void Imprimir()

Console.WriteLine("Los nombres ordenados en forma alfabéticamente");

for (int f = 0; f < nombre.Length; f++)

Console.WriteLine(nombre[f]);

ING. VLADIMIR FLOREZ TINTA 145


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Console.ReadKey();

static void Main(string[] args)

PruebaVector pv = new PruebaVector();

pv.Cargar();

pv.Ordenar();

pv.Imprimir();

Al ejecutar el código muestra el siguiente resultado

Ejemplo 3

Ingresar un vector de n elementos de tipo entero. Ordenar posteriormente el


vector en forma ascendente

using System;

using System.Collections.Generic;

using System.Linq;

ING. VLADIMIR FLOREZ TINTA 146


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

using System.Text;

namespace PruebaVector

class PruebaVector

private int[] vector;

public void Cargar()

Console.Write("Cuantos longitud del vector:");

string linea;

linea = Console.ReadLine();

int cant;

cant = int.Parse(linea);

vector = new int[cant];

for (int f = 0; f < vector.Length; f++)

Console.Write("Ingrese elemento "+(f+1)+": ");

linea = Console.ReadLine();

vector[f] = int.Parse(linea);

public void Ordenar()

for (int k = 0; k < vector.Length; k++)

for (int f = 0; f < vector.Length - 1 - k; f++)

if (vector[f] > vector[f + 1])

int aux;

aux = vector[f];

vector[f] = vector[f + 1];

vector[f + 1] = aux;

ING. VLADIMIR FLOREZ TINTA 147


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

public void Imprimir()

Console.WriteLine("Vector ordenados en forma ascendente");

for (int f = 0; f < vector.Length; f++)

Console.Write(vector[f]+" ");

Console.ReadKey();

static void Main(string[] args)

PruebaVector pv = new PruebaVector();

pv.Cargar();

pv.Ordenar();

pv.Imprimir();

Al ejecutar el código muestra el siguiente resultado

Publicado por Yhonatan Robles Vega 1 comentario:

Etiquetas: c sharp, ejercicios de métodos de ordenamiento en c#, métodos de ordenamiento


en c#,ordenar en c#, ordenar vectores en c#

ING. VLADIMIR FLOREZ TINTA 148


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ordenar Vectores en C#
Ordenar Vectores en C#
El ordenamiento de un vector se logra intercambiando las componentes de
manera que:
vec[0] <= vec[1] <= vec[2] ..<=vec[n]
El contenido de la componente vec[0] sea menor o igual al contenido de la
componente vec[1] y así sucesivamente.
Si se cumple lo dicho anteriormente decimos que el vector está ordenado de
menor a mayor. Igualmente podemos ordenar un vector de mayor a menor.
Se puede ordenar tanto vectores con componentes de tipo int, float como string.
En este último caso el ordenamiento es alfabético.
Veamos algunos ejemplos de ordenamiento de vectores, ya que podemos
ordenar ascendente o decentemente los valores de un vector.

Ejercicios de Ordenamiento en C#
Ejemplo 1

Realizar un programa que dado un vector y que almacene 5 números para luego
ordenar los números acendentemente.

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace PruebaVector

class PruebaVector

private int[] numeros;

public void Cargar()

numeros = new int[5];

for (int f = 0; f < numeros.Length; f++)

Console.Write("Ingrese numero "+(f+1)+": ");

ING. VLADIMIR FLOREZ TINTA 149


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

string linea = Console.ReadLine();

numeros[f] = int.Parse(linea);

public void Ordenar()

for (int k = 0; k < 4; k++)

for (int f = 0; f < 4 - k; f++)

if (numeros[f] > numeros[f + 1])

int aux;

aux = numeros[f];

numeros[f] = numeros[f + 1];

numeros[f + 1] = aux;

public void Imprimir()

Console.WriteLine("Ordenado Ascendentemante");

for (int f = 0; f < numeros.Length; f++)

Console.Write(numeros[f]+" ");

Console.ReadKey();

static void Main(string[] args)

PruebaVector pv = new PruebaVector();

pv.Cargar();

pv.Ordenar();

ING. VLADIMIR FLOREZ TINTA 150


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

pv.Imprimir();

Al ejecutar el código muestra el siguiente resultado

Método de Ordenamiento de Inserción Binaria en C#


Método de Ordenamiento de Inserción
Binaria en C#
La Inserción Binaria, es una mejora de la Inserción Directa.
La Inserción Binaria es un método de inserción, que difiere de la Inserción Directa
simplemente en la búsqueda de la posición de la Inserción.
Veamos un ejemplo de como funciona este método de ordenamiento de
Inserción Binaria, analizando paso a paso.
1. Hallamos el elemento central del área comprendida por la parte ordenada más
la posición del elemento a insertar.

ING. VLADIMIR FLOREZ TINTA 151


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

2. Comparamos el elemento central con el elemento que queremos insertar. Si


dicho elemento central es menor o igual, nos quedamos con la parte derecha (Sin
incluir el elemento central). En caso contrario, nos quedamos con la parte
izquierda incluyendo al elemento central.

3. Repetimos el mismo proceso sobre el área con la que nos quedamos, hasta
que dicha área sea nula.

4. Cuando el área sea nula, tendremos la posición de inserción.

ING. VLADIMIR FLOREZ TINTA 152


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

A continuación veamos un ejemplo en Pseudo-Código Para el Método de


Inserción Binaria

Ejemplo del Código Implementado

ING. VLADIMIR FLOREZ TINTA 153


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Un ejemplo de método de inserción binaria en C#


int auxiliar;

int q;

int izqui;

int dere;

for (int i = 0; i < numeros.Length; i++)

auxiliar = numeros[i];

izqui = 0;

dere = i - 1;

while (izqui <= dere)

q = ((izqui + dere) / 2);

if (auxiliar < numeros[q])

dere = q - 1;

else

izqui = q + 1;

ING. VLADIMIR FLOREZ TINTA 154


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

j = i - 1;

while (j >= izqui)

numeros[j + 1] = numeros[j];

j = j - 1;

numeros[izqui] = auxiliar;

for (int i = 0; i < longitud; i++)

Console.WriteLine(" " + numeros[i]);

Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: c# métodos de ordenamiento, ejemplo de inserción binaria en C#, inserción binaria


en C#, método de ordenamiento de inserción binaria en C#, métodos de ordenamiento en c#

Método de Ordenamiento de Inserción Directa en C#


Método de Ordenamiento de Inserción
Directa en C#
El método de inserción directa es el que generalmente utilizan los jugadores de
cartas cuando ordenan éstas, de ahí que también se conozca con el nombre de
método de la baraja.
La idea central de este algoritmo consiste en insertar un elemento del arreglo en
la parte izquierda del mismo, que ya se encuentra ordenada. Este proceso se
repite desde el segundo hasta el n-esimo elemento.
Ejemplo:

Se desean ordenarse las siguientes clave del arreglo A: 15, 67, 08, 16, 44, 27, 12,
35
Primera pasada
A[2] < A[1] 67 < 15 No hay intercambio

A: 15, 67, 08, 16, 44, 27, 12, 35


ING. VLADIMIR FLOREZ TINTA 155
HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Segunda pasada
A[3] < A[2] 08 < 67 Si hay intercambio
A[2] < A[1] 08 < 15 Si hay

A: 15, 08, 67, 16, 44, 27, 12, 35


Tercera pasada
A[4] < A[3] 08 < 15 Si hay intercambio
A[3] < A[2] 08 < 15 Si hay intercambio

A= 08, 15, 67, 16, 44, 27, 12, 35


Hasta la séptima pasada el arreglo queda ordenado: 08, 12, 15, 16, 27, 35, 44,
67

A continuación veamos un ejemplo en Pseudo-Código Para el Método de Shell


Sort

void InsercionDirecta (int arreglo[], int tam)


{
int i , j , valorBusqueda;
for(i = 1; i < tam; i++)
{
valorBusqueda = a[i];
for (j = i - 1; j >= 0 && a[j] > valorBusqueda; j--)
{
a[j + 1] = a[j];
}
a[j + 1] = valorBusqueda;
}
val = a[i];
}
Ejemplo del Método de Ordenamiento Inserción Directa en c#

using System;

using System.Collections.Generic;

ING. VLADIMIR FLOREZ TINTA 156


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

using System.Linq;

using System.Text;

namespace PruebaVector

class PruebaVector

private int[] vector;

public void Cargar()

Console.WriteLine("Metodo de insercion directa");

Console.Write("Cuantos longitud del vector:");

string linea;

linea = Console.ReadLine();

int cant;

cant = int.Parse(linea);

vector = new int[cant];

for (int f = 0; f < vector.Length; f++)

Console.Write("Ingrese elemento "+(f+1)+": ");

linea = Console.ReadLine();

vector[f] = int.Parse(linea);

public void InsercionDirecta()

int auxili;

int j;

for (int i = 0; i < vector.Length; i++)

auxili = vector[i];

j = i - 1;

while (j >= 0 && vector[j] > auxili)

vector[j + 1] = vector[j];

ING. VLADIMIR FLOREZ TINTA 157


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

j--;

vector[j + 1] = auxili;

public void Imprimir()

Console.WriteLine("Vector ordenados en forma ascendente");

for (int f = 0; f < vector.Length; f++)

Console.Write(vector[f]+" ");

Console.ReadKey();

static void Main(string[] args)

PruebaVector pv = new PruebaVector();

pv.Cargar();

pv.InsercionDirecta();

pv.Imprimir();

Al ejecutar el código muestra el siguiente resultado

Método de Ordenamiento Quick Sort en C#

ING. VLADIMIR FLOREZ TINTA 158


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Método de Ordenamiento Quick Sort en


C#
El método de ordenamiento Quick Sort es actualmente el más eficiente y veloz de
los métodos de ordenación interna. Es también conocido con el nombre del método
rápido y de ordenamiento por partición, en el mundo de habla hispana.
Este método es una mejora sustancial del método de intercambio directo y recibe
el nombre de Quick Sort por la velocidad con que ordena los elementos del arreglo.
Su autor C.A. Hoare lo bautizó así.
La idea central de este algoritmo consiste en los siguiente:

 Se toma un elemento x de una posición cualquiera del arreglo.


 Se trata de ubicar a x en la posición correcta del arreglo, de tal forma que
todos los elementos que se encuentran a su izquierda sean menores o iguales a x y
todos los elementos que se encuentren a su derecha sean mayores o iguales a x.
 Se repiten los pasos anteriores pero ahora para los conjuntos de datos que
se encuentran a la izquierda y a la derecha de la posición correcta de x en el arreglo.

Ejemplo:
A: 15,67,08,16,44,27,12,35
Se selecciona A[i] x=15

Primera pasada (DER-IZQ)


A[8] >= x 35 >= 15 No hay intercambio
A[7] >= x 12 >= 15 Si hay intercambio
A: 12,67,08,16,44,27,15,35

(IZQ-DER)
A[2] < = X 67 < = 15 Si hay intercambio
A:12,15,08,16,44,27,67,35

2da. Pasada (DER-IZQ)


A[6] >= x 27 >= 15 No hay intercambio
A[5] >= x 44 >= 15 No hay intercambio
A[4] >= x 16 >= 15 No hay intercambio
A[3] >= x 08 >= 15 Si hay intercambio
A: 12,08,15,16,44,27,67,35

Como el recorrido de izquierda a derecha debería iniciarse en la misma


posición donde se encuentra el elemento x, el proceso se termina ya que el
elemento x, se encuentra en la posición correcta.
A: 12, 08, 15, 16, 44, 27, 67, 35

1er 2do Conjunto


16, 44, 27, 67, 35
ING. VLADIMIR FLOREZ TINTA 159
HERRAMIENTAS DE DESARROLLO DE SOFTWARE

x16

(DER-IZQ)
A[8]>=x No hay intercambio
A[7]>=x No hay intercambio
A[6]>=x No hay intercambio
A[5]>=x No hay intercambio
A: 12, 08, 15, 16, 44, 27, 67, 35
xß44

(DER-IZQ)
A[8]>= x Si hay intercambio
A: 12, 08, 15, 16, 35, 27, 67, 44

(IZQ-DER)
A[6] < = x No hay intercambio
A[7] < = x Si hay intercambio
12, 08, 15, 16, 35, 27, 44, 67
12, 08, 15, 16, 35, 27, 44, 67
35, 27, 44, 67
xß35

(DER-IZQ)
A[8] >= x No hay intercambio
A[7] >= x No hay intercambio
A[6] >= x Si hay intercambio
12, 08, 15, 16, 27, 35, 44, 67
12,08
xß12

(DER-IZQ)
A[2]>=x Si hay intercambio

EL VECTOR ORDENADO:
08,12,15,16,27,35,44,67

A continuación veamos un ejemplo en Pseudo-Código Para el Método de Quick


Sort

ING. VLADIMIR FLOREZ TINTA 160


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ejemplo del Método de Ordenamiento Quick Sort en C#


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace quicksort
{
class Class
{
static void Main()
{
int n;
Console.WriteLine("Metodo de Quick Sort");
Console.Write("Cuantos longitud del vector: ");
n = Int32.Parse(Console.ReadLine());
llenar b = new llenar(n);
}
}
class llenar
{
int h;
int[] vector;
public llenar(int n)
{
h = n;
vector = new int[h];
for (int i = 0; i < h; i++)
{
Console.Write("ingrese valor {0}: ", i + 1);

ING. VLADIMIR FLOREZ TINTA 161


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

vector[i] = Int32.Parse(Console.ReadLine());
}
quicksort(vector, 0, h - 1);
mostrar();
}
private void quicksort(int[] vector, int primero, int ultimo)
{
int i, j, central;
double pivote;
central = (primero + ultimo) / 2;
pivote = vector[central];
i = primero;
j = ultimo;
do
{
while (vector[i] < pivote) i++;
while (vector[j] > pivote) j--;
if (i <= j)
{
int temp;
temp = vector[i];
vector[i] = vector[j];
vector[j] = temp;
i++;
j--;
}
} while (i <= j);
if (primero < j)
{
quicksort(vector, primero, j);
}
if (i < ultimo)
{
quicksort(vector, i, ultimo);
}
}
private void mostrar()
{
Console.WriteLine("Vector ordenados en forma ascendente");
for (int i = 0; i < h; i++)
{
Console.Write("{0} ", vector[i]);
}
Console.ReadLine();
}
}
}
Al ejecutar el código muestra el siguiente resultado

ING. VLADIMIR FLOREZ TINTA 162


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Publicado por Yhonatan Robles Vega 1 comentario:


Etiquetas: c# métodos de ordenamiento, ejemplo de quick sort en c#, método de ordenamiento
quick sort en c#, ordenación rápida en c#, quick sort, quick sort en c#

Método de Ordenamiento Shell Sort en C#


Es un algoritmo de ordenación interna muy sencillo pero muy ingenioso, basado
en comparaciones e intercambios, y con unos resultados radicalmente mejores que
los que se pueden obtener con el método de la burbuja, el des elección directa o el
de inserción directa.
Sin embargo, es necesario romper una lanza a favor del algoritmo ShellSort, ya
que es el mejor algoritmo de ordenación in-situ... es decir, el mejor de aquellos en
los que la cantidad de memoria adicional que necesita -aparte de los propios datos
a ordenar, claro está- es constante, sea cual sea la cantidad de datos a ordenar. El
algoritmo de la burbuja, el de selección directa, el de inserción directa y el de Shell
son todos in-situ, y éste último, el de Shell, es el que mejor resultados da, sin
ninguna duda de todos ellos y sus posibles variantes.

El ShellSort es una mejora del método de inserción directa que se utiliza cuando
el número de elementos a ordenar es grande. El método se denomina “shell” –en
honor de su inventor Donald Shell – y también método de inserción con
incrementos decrecientes.
En el método de clasificación por inserción, cada elemento se compara con los
elementos contiguos de su izquierda, uno tras otro. Si el elemento a insertar es más
pequeño - por ejemplo -, hay que ejecutar muchas comparaciones antes de
colocarlo en su lugar definitivamente. Shell modifico los saltos contiguos
resultantes de las comparaciones por saltos de mayor tamaño y con eso se
conseguía la clasificación más rápida. El método se basa en fijar el tamaño de los
saltos constantes, pero de más de una posición.

Considere un valor pequeño que está inicialmente almacenado en el final del


vector. Usando un ordenamiento O(n2) como el ordenamiento de burbuja o el
ordenamiento por inserción, tomará aproximadamente n comparaciones e
intercambios para mover este valor hacia el otro extremo del vector. El Shell sort
primero mueve los valores usando tamaños de espacio gigantes, de manera que un
valor pequeño se moverá bastantes posiciones hacia su posición final, con sólo
unas pocas comparaciones e intercambios.

ING. VLADIMIR FLOREZ TINTA 163


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Uno puede visualizar el algoritmo Shell sort de la siguiente manera: coloque la


lista en una tabla y ordene las columnas (usando un ordenamiento por inserción).
Repita este proceso, cada vez con un número menor de columnas más largas. Al
final, la tabla tiene sólo una columna.
Mientras que transformar la lista en una tabla hace más fácil visualizarlo, el
algoritmo propiamente hace su ordenamiento en contexto (incrementando el índice
por el tamaño de paso, esto es usando i += tamaño_de_paso en vez de i++).

Por ejemplo, considere una lista de números como [ 13 14 94 33 82 25 59 94 65


23 45 27 73 25 39 10 ]. Si comenzamos con un tamaño de paso de 8, podríamos
visualizar esto dividiendo la lista de números en una tabla con 5 columnas. Esto
quedaría así:

13 14 94 33 82
25 59 94 65 23
45 27 73 25 39
10

Entonces ordenamos cada columna, lo que nos da:

10 14 73 25 23
13 27 94 33 39
25 59 94 65 82
45

Cuando lo leemos de nuevo como una única lista de números, obtenemos:

[ 10 14 73 25 23 13 27 94 33 39 25 59 94 65 82 45 ]

Aquí, el 10 que estaba en el extremo final, se ha movido hasta el extremo inicial.


Esta lista es entonces de nuevo ordenada usando un ordenamiento con un espacio
de 3 posiciones, y después un ordenamiento con un espacio de 1 posición
(ordenamiento por inserción simple).
El Shell sort lleva este nombre en honor a su inventor, Donald Shell, que lo publicó
en 1959. Algunos libros de texto y referencias antiguas le llaman ordenación
"Shell-Metzner" por Marlene Metzner Norton, pero según Metzner, "No tengo
nada que ver con el algoritmo de ordenamiento, y mi nombre nunca debe
adjuntarse a éste."

A continuación veamos un ejemplo en Pseudo-Código Para el Método de Shell


Sort

ING. VLADIMIR FLOREZ TINTA 164


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ejemplo del Método de Ordenamiento Shell Sort en C#


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PruebaVector
{
class PruebaVector
{
private int[] vector;
public void Cargar()
{
Console.WriteLine("Metodo de Shell Sort");
Console.Write("Cuantos longitud del vector:");
string linea;
linea = Console.ReadLine();
int cant;
cant = int.Parse(linea);
vector = new int[cant];
for (int f = 0; f < vector.Length; f++)
{
Console.Write("Ingrese elemento "+(f+1)+": ");
linea = Console.ReadLine();
vector[f] = int.Parse(linea);
}
}
public void Shell()
{
int salto = 0;
int sw = 0;
int auxi = 0;
int e = 0;
salto = vector.Length / 2;
while (salto > 0)
{
sw = 1;

ING. VLADIMIR FLOREZ TINTA 165


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

while (sw != 0)
{
sw = 0;
e = 1;
while (e <= (vector.Length - salto))
{
if (vector[e - 1] > vector[(e - 1) + salto])
{
auxi = vector[(e - 1) + salto];
vector[(e - 1) + salto] = vector[e - 1];
vector[(e - 1)] = auxi;
sw = 1;
}
e++;
}
}
salto = salto / 2;
}
}
public void Imprimir()
{
Console.WriteLine("Vector ordenados en forma ascendente");
for (int f = 0; f < vector.Length; f++)
{
Console.Write(vector[f]+" ");
}
Console.ReadKey();
}
static void Main(string[] args)
{
PruebaVector pv = new PruebaVector();
pv.Cargar();
pv.Shell();
pv.Imprimir();
}
}
}
Al ejecutar el código muestra el siguiente resultado

Método de Ordenamiento Merge Sort en C#


Método de Ordenamiento Merge Sort en
C#

ING. VLADIMIR FLOREZ TINTA 166


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Esta vez estaremos hablando de Ordenación por Mezcla (Merge Sort), otro
algoritmo recursivo bastante eficiente para ordenar un array, que tiene un orden de
complejidad O(nlogn) al igual que Quick Sort. Fue desarrollado en 1945 por John
Von Neumann según wikipedia.
Estrategia de Merge Sort
Merge Sort está basado en la técnica de diseño de algoritmos Divide y Vencerás,
de la cual se habló aquí mismo hace un tiempo. Recordando un poco, esta técnica
consiste en dividir el problema a resolver en sub problemas del mismo tipo que a
su vez se dividirán, mientras no sean suficientemente pequeños o triviales.

Veamos una panorámica de la estrategia que sigue este algoritmo para ordenar una
secuencia S de n elementos:

 Si S tiene uno o ningún elemento, está ordenada


 Si S tiene al menos dos elementos se divide en dos secuencias S1 y S2
 S1 contiene los primeros n/2 elementos y S2 los restantes
 Ordenar S1 y S2, aplicando recursivamente este procedimiento
 Mezclar S1 y S2 en S, de forma que ya S1 y S2 estén ordenados
 Veamos ahora como sería la estrategia para mezclar las secuencias:

Se tienen referencias al principio de cada una de las secuencias a mezclar (S1 y


S2). Mientras en alguna secuencia queden elementos, se inserta en la secuencia
resultante (S) el menor de los elementos referenciados y se avanza esa referencia
una posición.
Pseudocódigo del Método de Ordenamiento Merge Sort
Como ven, la idea es bastante simple, pero programarla no tanto. Para no dar de
golpe la solución, veamos primero un pseudocódigo del algoritmo:
function mergesort(array A[x..y])
begin
if (x-y > 1)):
array A1 := mergesort(A[x..(int( x+y / 2))])
array A2 := mergesort(A[int(1+(x+y / 2))..y])
return merge(A1, A2)

ING. VLADIMIR FLOREZ TINTA 167


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

else:
return A
end
function merge(array A1[0..n1], array A2[0..n2])
begin
integer p1 := 0
integer p2 := 0
array R[0..(n1 + n2 + 2)]//suponiendo que n1 y n2 son las posiciones
//del array y no el length de este mismo, de otro modo seria (n1 + n2)
while (p1 <= n1 or p2 <= n2):
if (p1 <= n1 and A1[p1] <= A2[p2]):
R[p1 + p2] := A1[p1]
p1 := p1 + 1
else
if (p2 <= n2 and A1[p1] > A2[p2]):
R[p1 + p2] := A2[p2]
p2 := p2 + 1
return R
end
Ejemplo del Método de Ordenamiento Merge Sort en C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MergeSort
{
class Program
{
static void Main(string[] args)
{
int[] nums = new int[40];
Console.WriteLine("Metodo de Merge Sort");
Console.Write("Cuantos longitud del vector: ");
string linea;
linea = Console.ReadLine();
int cant;
cant = int.Parse(linea);
nums = new int[cant];
for (int f = 0; f < nums.Length; f++)
{
Console.Write("Ingrese elemento " + (f + 1) + ": ");
linea = Console.ReadLine();
nums[f] = int.Parse(linea);
}
MergeSort(nums);
Console.WriteLine("Vector Ordenado Ascendentemente");
for (int i = 0; i < nums.Length; i++)
Console.Write(nums[i] + " ");
Console.ReadLine();
}
//Método portal que llama al método recursivo inicial
public static void MergeSort(int[] x)

ING. VLADIMIR FLOREZ TINTA 168


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

{
MergeSort(x, 0, x.Length - 1);
}
static private void MergeSort(int[] x, int desde, int hasta)
{
//Condicion de parada
if (desde == hasta)
return;
//Calculo la mitad del array
int mitad = (desde + hasta) / 2;
//Voy a ordenar recursivamente la primera mitad
//y luego la segunda
MergeSort(x, desde, mitad);
MergeSort(x, mitad + 1, hasta);
//Mezclo las dos mitades ordenadas
int[] aux = Merge(x, desde, mitad, mitad + 1, hasta);
Array.Copy(aux, 0, x, desde, aux.Length);
}
//Método que mezcla las dos mitades ordenadas
static private int[] Merge(int[]
x, int desde1, int hasta1, int desde2, int hasta2)
{
int a = desde1;
int b = desde2;
int[] result = new int[hasta1 - desde1 + hasta2 - desde2 + 2];
for (int i = 0; i < result.Length; i++)
{
if (b != x.Length)
{
if (a > hasta1 && b <= hasta2)
{
result[i] = x[b];
b++;
}
if (b > hasta2&& a <= hasta1)
{
result[i] = x[a];
a++;
}
if (a <= hasta1&& b <= hasta2)
{
if (x[b] <= x[a])
{
result[i] = x[b];
b++;
}
else
{
result[i] = x[a];
a++;
}
}
}
else
{
if (a <= hasta1)
{
result[i] = x[a];
a++;
}
}

ING. VLADIMIR FLOREZ TINTA 169


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

}
return result;
}
}
}
Al ejecutar el código muestra el siguiente resultado

Publicado por Yhonatan Robles Vega No hay comentarios:


Etiquetas: arreglos en c#, bucle for, c# merge sort, ejemplo del merge sort en c#, merge sort en
c#,método de ordenamiento de merge sort en c#, métodos de ordenamiento en c#, mezcla en c#

Método de Ordenamiento Burbuja en C#


Método de Ordenamiento Burbuja en C#
Este método consiste en ir comparando cada par de elementos del array e ir
moviendo el mayor elemento hasta la última posición, comenzando desde la
posición cero. Una vez acomodado el mayor elemento, prosigue a encontrar y
acomodar el segundo más grande comparando de nuevo los elementos desde el
inicio de la lista, y así sigue hasta ordenar todos los elementos del arreglo. Al ser
necesario revisar varias veces toda la lista hasta que no se necesiten más
intercambios, hace que el ordenamiento por burbuja sea uno de los algoritmos más
ineficientes que existen. Incluso entre los algoritmos de ordenamiento del mismo
orden, otros como el “Ordenamiento por inserción” son considerados más
eficientes. Y lo más curioso es que este procedimiento es uno de los más usados
para ordenar listas en todos los lenguajes de programación.
Estos serían los pasos a seguir por este algoritmo para ordenar una lista a1, a2, a3,
… an
1) Comparar a1 con a2 e intercambiarlos si a1>a2
2) Seguir hasta que se haya comparado an-1 con an
3) Repetir el proceso anterior n-1 veces
Ejemplo:
25 57 48 37 12 92 86 33
En el primer paso se realizan las siguientes operaciones:
x[0] con x[1] (25 con 57) no intercambio.
x[1] con x[2] (57 con 48) intercambio.
x[2] con x[3] (57 con 32) intercambio.

ING. VLADIMIR FLOREZ TINTA 170


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

x[3] con x[4] (57 con 12) intercambio.


x[4] con x[5] (57 con 92) no intercambio.
x[5] con x[6] (92 con 86) intercambio.
x[6] con x[7] (92 con 33) intercambio.
Así después del primer paso, el arreglo está en el siguiente orden:
25 48 37 12 57 86 33 92
Observe que después del primer paso, el elemento mayor (en este caso 92) está en
la posición correcta dentro del arreglo. En general x[n-i] estará en su posición
correcta después de la iteración i. El método se lama ordenamiento de burbuja
porque cada número “burbujea” con lentitud hacia su posición correcta. El
conjunto completo de iteraciones es:
iteración 0 : 25 57 48 37 12 92 86 33
iteración 1: 25 48 37 12 57 86 33 92
iteración 2: 25 37 12 48 57 33 86 92
iteración 3: 25 12 37 48 33 57 86 92
iteración 4: 12 25 37 33 48 57 89 92
iteración 5: 12 25 33 37 48 57 89 92

A continuación veamos un ejemplo en Pseudo-Código Para el Método


Burbuja

ING. VLADIMIR FLOREZ TINTA 171


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ejemplo del Método de Ordenamiento Burbuja en C#


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Burbuja
{
class Burbuja
{
private int[] vector;
public void Cargar()
{
Console.WriteLine("Metodo de Burbuja");
Console.Write("Cuantos longitud del vector: ");
string linea;
linea = Console.ReadLine();
int cant;
cant = int.Parse(linea);
vector = new int[cant];

ING. VLADIMIR FLOREZ TINTA 172


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

for (int f = 0; f < vector.Length; f++)


{
Console.Write("Ingrese elemento "+(f+1)+": ");
linea = Console.ReadLine();
vector[f] = int.Parse(linea);
}
}
public void MetodoBurbuja()
{
int t;
for (int a = 1; a < vector.Length; a++)
for (int b = vector.Length - 1; b >= a; b--)
{
if (vector[b - 1] > vector[b])
{
t = vector[b - 1];
vector[b - 1] = vector[b];
vector[b] = t;
}
}
}
public void Imprimir()
{
Console.WriteLine("Vector ordenados en forma ascendente");
for (int f = 0; f < vector.Length; f++)
{
Console.Write(vector[f]+" ");
}
Console.ReadKey();
}
static void Main(string[] args)
{
Burbuja pv = new Burbuja();
pv.Cargar();
pv.MetodoBurbuja();
pv.Imprimir();
}
}
}

Al ejecutar el código muestra el siguiente resultado

ING. VLADIMIR FLOREZ TINTA 173


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ejercicios Resueltos de Matrices en C#


Ejercicios Resueltos de Matrices en C#
Ejemplo 1

Crear una matriz de 3 filas por 4 columnas con elementos de tipo int, ingresar
sus posiciones y luego imprimirlas.

using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Matriz

class Matriz

private int[,] mat;

public void Ingresar()

mat = new int[3, 4];

for (int f = 0; f < 3; f++)

for (int c = 0; c < 4; c++)

Console.Write("Ingrese posicion ["+(f+1)+","+(c+1)+"]: ");

string linea;

linea = Console.ReadLine();

mat[f, c] = int.Parse(linea);

public void Imprimir()

for (int f = 0; f < 3; f++)

for (int c = 0; c < 4; c++)

ING. VLADIMIR FLOREZ TINTA 174


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Console.Write(mat[f, c] + " ");

Console.WriteLine();

Console.ReadKey();

static void Main(string[] args)

Matriz ma = new Matriz();

ma.Ingresar();

ma.Imprimir();

Al ejecutar el código muestra el siguiente resultado

Ejemplo 2

ING. VLADIMIR FLOREZ TINTA 175


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Crear una matriz de 3 filas por 4 columnas e ingresar valores enteros, imprimir
la primer fila. Imprimir la última fila e imprimir la primer columna

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Matriz

class Matriz

private int[,] mat;

public void Cargar()

mat = new int[3, 4];

for (int f = 0; f < 3; f++)

for (int c = 0; c < 4; c++)

Console.Write("Ingrese posicion ["+(f+1)+","+(c+1)+"]: ");

string linea;

linea = Console.ReadLine();

mat[f, c] = int.Parse(linea);

public void PrimerFila()

Console.WriteLine("\nPrimer fila de la matriz:");

for (int c = 0; c< 4; c++)

ING. VLADIMIR FLOREZ TINTA 176


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Console.Write(mat[0, c]+" ");

public void UltimaFila()

Console.WriteLine("\nUltima fila de la matriz:");

for (int c = 0; c< 4; c++)

Console.Write(mat[2, c]+" ");

public void PrimerColumna()

Console.WriteLine("\nPrimer columna:");

for (int f = 0; f< 3; f++)

Console.Write(mat[f, 0]+" ");

static void Main(string[] args)

Matriz ma = new Matriz();

ma.Cargar();

ma.PrimerFila();

ma.UltimaFila();

ma.PrimerColumna();

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

ING. VLADIMIR FLOREZ TINTA 177


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: arreglos y vectores en c#, c# matrices, ejemplo de matrices en c#, ejercicios


resueltos de matrices en c#, estructura anidada en c#, Estructura repetitiva For en C#, matrices
en c#

Matrices en C Sharp
Una matriz es una estructura de datos que permite almacenar un conjunto de
datos del mismo tipo.
Con un único nombre se define la matriz y por medio de DOS sub índices hacemos
referencia a cada elemento de la misma (componente)

Hemos graficado una matriz de 3 filas y 5 columnas. Para hacer referencia a cada
elemento debemos indicar primero la fila y luego la columna, por ejemplo en la
componente 1,4 se almacena el valor 97.

ING. VLADIMIR FLOREZ TINTA 178


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

En este ejemplo almacenamos valores enteros. Todos los elementos de la matriz


deben ser del mismo tipo (int, float, string etc.)
Las filas y columnas comienzan a numerarse a partir de cero, similar a los
vectores.

Declaración de una Matriz en C#


C# admite matrices de una dimensión, matrices multidimensionales (matrices
rectangulares) y matrices de matrices (matrices escalonadas). El siguiente
ejemplo muestra cómo declarar diferentes tipos de matrices:

Matrices unidimensionales:
int[] numbers;

Matrices multidimensionales:
string[,] names;

Matrices de matrices (escalonadas):


byte[][] scores;

La declaración de matrices (como se muestra arriba) no crea realmente las


matrices. En C#, las matrices son objetos (se explica más adelante en este
tutorial) cuyas instancias deben crearse. Los siguientes ejemplos muestran
cómo crear matrices:

Matrices unidimensionales:
int[] numbers = new int[5];

Matrices multidimensionales:
string[,] names = new string[5,4];

Matrices de matrices (escalonadas):


byte[][] scores = new byte[5][];

ING. VLADIMIR FLOREZ TINTA 179


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

for (int x = 0; x < scores.Length; x++)


{
scores[x] = new byte[4];
}

También se pueden utilizar matrices más grandes. Por ejemplo, se puede utilizar
una matriz rectangular de tres dimensiones:

int[,,] buttons = new int[4,5,3];

Incluso, se pueden combinar matrices rectangulares y escalonadas. Por ejemplo,


el siguiente código declara una matriz unidimensional que contiene matrices
tridimensionales de matrices bidimensionales de tipo int:

int[][,,][,] numbers;

Constructores en C#
Constructores en C#
Cada vez que se crea una clase o estructura, se llama a su constructor. Una clase
o estructura puede tener varios constructores que toman argumentos diferentes.
Los constructores permiten al programador establecer valores predeterminados,
limitar la creación de instancias y escribir código flexible y fácil de leer.
En C# podemos definir un método que se ejecute inicialmente y en forma
automática. Este método se lo llama constructor.
El constructor tiene las siguientes características:
 Tiene el mismo nombre de la clase.
 Es el primer método que se ejecuta.
 Se ejecuta en forma automática.
 No puede retornar datos.
 Se ejecuta una única vez.
 Un constructor tiene por objetivo inicializar atributos.
Sintaxis de un Constructor en C#
Modificador NombredelaClase (Parámetros)
{
Instrucciones

ING. VLADIMIR FLOREZ TINTA 180


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

}
Veamos un Ejemplo de un constructor en C#
using System;

namespace constructores

class EjConstructor

int a;

int b;

//declaramos el constructor

public EjConstructor(int x, int y)

a = x;

b = y;

public int Suma()

return a + b;

public int resta()

return a - b;

class Principal

static void Main(string[] args)

//creamos objeto de la clase y le pasamos los parametros al


constructor

EjConstructor obj = new EjConstructor(10, 20);

Console.WriteLine("La suma es: "+obj.Suma());

Console.WriteLine("La resta es: "+obj.resta());

Console.ReadKey();

ING. VLADIMIR FLOREZ TINTA 181


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Al ejecutar el código muestra el siguiente resultado

El ejemplo es sencillo para que pueda comprenderse creamos una clase


EjConstructor con 2 variables enteras, luego definimos el constructor con 2
parámetros observen que tiene el mismo nombre de la clase eso tiene que ser así
obligatoriamente, también tenemos un método Suma y un método resta que lo
único que hace es realizar una suma y la resta sucesivamente.Luego en la clase
Principal al momento de crear el objeto de la clase le pasamos los parámetros de
una sola vez al constructor, y después solo imprimimos el resultado de la suma y
la resta del método Suma y resta.
Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: C#, c# constructores, clases en c#, clases y constructores en c#, constructor de una
clase en c#, constructores en c#, operaciones con vectores en c#, ordenar en c#

Búsqueda Binaria en C#
Búsqueda Binaria en C#
El algoritmo de búsqueda binaria es un excelente método para buscar datos
dentro de una estructura(generalmente un arreglo unidimensional). Se le da el
nombre de búsqueda binaria por que el algoritmo divide en dos el arreglo,
aludiendo al concepto de bit, el cual puede tener dos estados.
La única condición para usar este algoritmo es que los datos dentro del arreglo
estén ordenados de menor a mayor.
La solución mas fácil para realizar una búsqueda es por fuerza bruta, pero este
método puede resultar bastante ineficiente cuando se tiene una gran cantidad
de datos, ya que habría que buscar posición por posición hasta encontrar el dato
que queremos.

ING. VLADIMIR FLOREZ TINTA 182


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

El código por fuerza bruta es bastante sencillo:

for(int i=0; i<Arreglo.length; i++)


if(Arreglo[i] == elemento)
System.out.println("\nElemento encontrado en la posicion: " + i);

Solo se recorre todo el arreglo y verificamos si la posición i es igual al dato que


queremos buscar, el código anterior se puede mejorar simplemente agregándole
una bandera, pero aun así no es lo suficientemente bueno.
El algoritmo de búsqueda binaria es el siguiente:
1. Se declaran los índices superior e inferior. El inferior en 0 y el
superior con el tamaño del arreglo menos 1.
2. Se calcula el centro del arreglo con la siguiente formula: centro =
(superior + inferior) / 2
3. Verificamos si el arreglo en la posición centro es igual al dato que
buscamos. Si es igual significa que encontramos el dato y retornamos
centro.
4. Si son diferentes verificamos si el arreglo en la posición centro es
mayor al dato que queremos buscar. Si es mayor actualizamos superior:
superior = centro - 1, si no actualizamos inferior: inferior = centro + 1.

5. Volvemos al paso 2.
Si cuando ya no se cumpla la condición del ciclo y no se encontró el dato
retornamos -1
indicando que el dato no se encuentra en el arreglo.
Búsqueda Binaria en C#
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace BusquedaBinaria

class Busqueda

private int[] vector;

public void Cargar()

ING. VLADIMIR FLOREZ TINTA 183


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Console.WriteLine("Busqueda Binaria");

Console.WriteLine("Ingrese 10 Elementos");

string linea;

vector = new int[10];

for (int f = 0; f< vector.Length; f++)

Console.Write("Ingrese elemento " + (f + 1) + ": ");

linea = Console.ReadLine();

vector[f] = int.Parse(linea);

public void busqueda(int num)

int l = 0, h = 9;

int m = 0;

bool found = false;

while (l <= h && found == false)

m = (l + h) / 2;

if (vector[m] == num)

found = true;

if (vector[m] > num)

h = m - 1;

else

l = m + 1;

if (found == false)

{ Console.Write("\nEl elemento {0} no esta en el arreglo", num); }

else

{ Console.Write("\nEl elemento {0} esta en la posicion: {1}", num, m


+ 1); }

public void Imprimir()

ING. VLADIMIR FLOREZ TINTA 184


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

for (int f = 0; f< vector.Length; f++)

Console.Write(vector[f] + " ");

static void Main(string[] args)

Busqueda pv = new Busqueda();

pv.Cargar();

pv.Imprimir();

Console.Write("\n\nElemento a buscar: ");

int num = int.Parse(Console.ReadLine());

pv.busqueda(num);

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

ING. VLADIMIR FLOREZ TINTA 185


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Ejercicios con Clases en C#


Ejercicios con Clases en C#
Normalmente un problema resuelto con la metodología de programación
orientada a objetos no interviene una sola clase, sino que hay muchas clases que
interactúan y se comunican. Plantearemos un problema separando las
actividades en dos clases.
Ejemplo 1
Un banco tiene 3 clientes que pueden hacer depósitos y extracciones. También
el banco requiere que al final del día calcule la cantidad de dinero que hay
depositada.
La Solución tendrá el siguiente esquema: Debemos definir los atributos y los
métodos de cada clase:
Cliente
atributos
nombre
monto
métodos
constructor
Depositar
Extraer
RetornarMonto

Banco
atributos
3 Cliente (3 objetos de la clase Cliente)
métodos
constructor

ING. VLADIMIR FLOREZ TINTA 186


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Operar
DepositosTotales
Solución en C#
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EjerciciosconClases

class Cliente

private string nombre;

private int monto;

public Cliente(string nom)

nombre = nom;

monto = 0;

public void Depositar(int m)

monto = monto + m;

public void Extraer(int m)

monto = monto - m;

public int RetornarMonto()

return monto;

public void Imprimir()

Console.WriteLine(nombre + " tiene depositado la suma de " + monto);

ING. VLADIMIR FLOREZ TINTA 187


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

class Banco

private Cliente cliente1, cliente2, cliente3;

public Banco()

cliente1 = new Cliente("Yhonas");

cliente2 = new Cliente("Ana");

cliente3 = new Cliente("Pedro");

public void Operar()

cliente1.Depositar(100);

cliente2.Depositar(150);

cliente3.Depositar(200);

cliente3.Extraer(150);

public void DepositosTotales()

int t = cliente1.RetornarMonto() +

cliente2.RetornarMonto() +

cliente3.RetornarMonto();

Console.WriteLine("El total de dinero en el banco es:" + t);

cliente1.Imprimir();

cliente2.Imprimir();

cliente3.Imprimir();

static void Main(string[] args)

Banco banco1 = new Banco();

banco1.Operar();

banco1.DepositosTotales();

Console.ReadKey();

ING. VLADIMIR FLOREZ TINTA 188


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Al ejecutar el código muestra el siguiente resultado

Publicado por Yhonatan Robles Vega No hay comentarios:

Etiquetas: arrays resueltos en c#, c# ejercicios resueltos, ejemplo de búsqueda binaria en


c#,ejercicios con clases en c#

Ejercicios Resueltos de Constructores en C#


Ejercicios Resueltos de Constructores en
C#
Ejemplo 1
Realizar un programa que ingrese los sueldos de 5 operarios en un vector. Realizar
la creación y carga del vector en el constructor.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace PruebaConstructor

class Operarios

private int[] sueldos;

public Operarios()

sueldos = new int[5];

ING. VLADIMIR FLOREZ TINTA 189


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

for (int f = 0; f < sueldos.Length; f++)

Console.Write("Ingrese el sueldo "+(f+1)+": ");

string linea = Console.ReadLine();

sueldos[f] = int.Parse(linea);

public void Imprimir()

Console.WriteLine("Los Sueldos Ingresados.");

for (int f = 0; f < sueldos.Length; f++)

Console.WriteLine(sueldos[f]);

Console.ReadKey();

static void Main(string[] args)

Operarios op = new Operarios();

op.Imprimir();

Al ejecutar el código muestra el siguiente resultado

ING. VLADIMIR FLOREZ TINTA 190


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

Explicación:
Como la clase se llama Operarios el constructor tiene el mismo nombre, no
disponemos la palabra clave void ya que el constructor no puede retornar datos.
La ventaja de plantear un constructor en lugar de definir un método con cualquier
nombre es que se llamará en forma automática cuando se crea un objeto de esta
clase:
Operarios op = new Operarios();

Cuando se crea el objeto op se llama al método constructor.


Finalmente llamamos al método imprimir:
op.Imprimir();

Ejemplo 2
Plantear una clase llamada Alumno y definir como atributos su nombre y su edad.
En el constructor realizar el ingreso de datos. Definir otros dos métodos para
imprimir los datos ingresados y un mensaje si es mayor o no de edad (edad >=18)
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace PruebaConstructor

class Alumno

private string nombre;

private int edad;

public Alumno()

Console.Write("Ingrese nombre:");

nombre = Console.ReadLine();

Console.Write("Ingrese edad:");

string linea = Console.ReadLine();

edad = int.Parse(linea);

ING. VLADIMIR FLOREZ TINTA 191


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

public void Imprimir()

Console.WriteLine("Nombre:" + nombre);

Console.WriteLine("Edad:" + edad);

public void EsMayorEdad()

if (edad >= 18)

Console.Write(nombre + " es mayor de edad.");

else

Console.Write(nombre + " no es mayor de edad.");

static void Main(string[] args)

Alumno alumno1 = new Alumno();

alumno1.Imprimir();

alumno1.EsMayorEdad();

Console.ReadKey();

Al ejecutar el código muestra el siguiente resultado

Explicación:

ING. VLADIMIR FLOREZ TINTA 192


HERRAMIENTAS DE DESARROLLO DE SOFTWARE

En la main el constructor se llama en forma automática cuando creamos un


objeto de la clase Alumno:
static void Main(string[] args)
{
Alumno alumno1 = new Alumno();
Los otros dos métodos deben llamarse por su nombre y en el orden que
necesitemos:
alumno1.Imprimir();
alumno1.EsMayorEdad();

ING. VLADIMIR FLOREZ TINTA 193

Vous aimerez peut-être aussi