c# basico aplicacion consola

119
1 SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2 MEDELLIN –COLOMBIA www.sisyen.com Lenguaje C# Notas de C# Cortesía de: DYRCE DIAZ FONG Introducción Los primeros rumores de que Microsoft estaba desarrollando un nuevo lenguaje de programación surgieron en 1998, haciendo referencia a un lenguaje que entonces llamaban COOL y que decían era muy similar a Java. En Junio de 2000, Microsoft despejo todas las dudas liberando la especificación de un nuevo lenguaje llamado C#. A esto le siguió rápidamente la primera versión de prueba del entorno de desarrollo estándar (SDK).Net, que incluía un compilador de C#. El nuevo lenguaje estaba diseñado por Anders Hejlsberg(creador de Turbo Pascal y arquitecto de Delphi), Scott Wiltamuth y Peter Golde. Entonces describieron el lenguaje como “…simple, moderno, orientado a objetos, de tipado seguro y con una fuerte herencia de C/C++.” El lenguaje C# se ha construido suponiendo que los modernos sistemas de software se construye usando componentes. Por lo tanto, C# proporciona soporte a nivel de lenguaje para los constructores básicos de los componentes como puede ser propiedades, métodos y eventos. Además del profundo soporte para desarrollo de software basado en componentes, C# es un lenguaje completamente orientado a objetos, que implementa casi todos los conceptos y abstracciones presentes en C++ y Java. Como es de esperar en un lenguaje orientado a objetos, C# implementa conceptos como herencia, encapsulación, polimorfismo y programación basada en interfaces, implementa algunas construcciones nuevas, como los delegados. C# Consigue compaginar bien orientación a objetos y rendimiento. Algunos lenguajes, como Smalltalk, se basan en que “todo es un objeto”. Esta aproximación tiene la ventaja de una completa orientación a objetos, pero tiene la PDF created with pdfFactory Pro trial version www.pdffactory.com

Upload: juan-carlos-montoya-valencia

Post on 27-Oct-2014

1.251 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: C# Basico Aplicacion Consola

1

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Lenguaje C#

Notas de C#

Cortesía de: DYRCE DIAZ FONG

Introducción

Los primeros rumores de que Microsoft estaba desarrollando un nuevo lenguaje de programación surgieron en 1998, haciendo referencia a un lenguaje que entonces llamaban COOL y que decían era muy similar a Java.

En Junio de 2000, Microsoft despejo todas las dudas liberando la especificación de un nuevo lenguaje llamado C#. A esto le siguió rápidamente la primera versión de prueba del entorno de desarrollo estándar (SDK).Net, que incluía un compilador de C#.

El nuevo lenguaje estaba diseñado por Anders Hejlsberg(creador de Turbo Pascal y arquitecto de Delphi), Scott Wiltamuth y Peter Golde. Entonces describieron el lenguaje como “…simple, moderno, orientado a objetos, de tipado seguro y con una fuerte herencia de C/C++.”

El lenguaje C# se ha construido suponiendo que los modernos sistemas de software se construye usando componentes. Por lo tanto, C# proporciona soporte a nivel de lenguaje para los constructores básicos de los componentes como puede ser propiedades, métodos y eventos.

Además del profundo soporte para desarrollo de software basado en componentes, C# es un lenguaje completamente orientado a objetos, que implementa casi todos los conceptos y abstracciones presentes en C++ y Java.

Como es de esperar en un lenguaje orientado a objetos, C# implementa conceptos como herencia, encapsulación, polimorfismo y programación basada en interfaces, implementa algunas construcciones nuevas, como los delegados.

C# Consigue compaginar bien orientación a objetos y rendimiento. Algunos lenguajes, como Smalltalk, se basan en que “todo es un objeto”. Esta aproximación tiene la ventaja de una completa orientación a objetos, pero tiene la

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 2: C# Basico Aplicacion Consola

2

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

desventaja de ser muy ineficiente. Para mejorar el rendimiento, otros lenguajes como Java, separan el sistema de tipos en tipos primitivos y todo el resto, dando lugar a mejor rendimiento en los tipos primitivos, pero en una separación a veces molesta entre tipos primitivos y tipos definidos por el usuario. En C# se han aunado ambas aproximaciones presentando lo que se llama un sistema unificado de tipos, en el que todos los tipos, incluso los primitivos, derivan de un tipo objeto común, a la vez que permite el uso de optimizaciones para tipos primitivos y tipos sencillos.

Contrariamente a la mayoría de lenguajes, C# no incluye una librería especifica, sino que utiliza la librería de clases de la plataforma .NET para todas sus necesidades, desde utilización de la consola hasta la programación multiproceso o el cifrado de seguridad.

C# se diseño para la plataforma .NET y es capaz de utilizar todo su potencial. En el diseño y se ha puesto especial hincapié en la simplicidad. Por ejemplo, en C# hay un tipo de clase y siempre se le aplica el recolector de basura.

Microsoft.NET

Microsoft.NET es el conjunto de nuevas tecnologías en las que Microsoft ha estado trabajando durante los últimos años con el objetivo de obtener una plataforma sencilla y potente para distribuir el software en forma de servicios que puedan ser suministrados remotamente y que puedan comunicarse y combinarse unos con otros de manera totalmente independiente de la plataforma, lenguaje de programación y modelo de componentes con los que hayan sido desarrollados. Ésta es la llamada plataforma .NET, y a los servicios antes comentados se les denomina servicios Web.

Para crear aplicaciones para la plataforma .NET, tanto servicios Web como aplicaciones tradicionales (aplicaciones de consola, aplicaciones de ventanas, servicios de Windows NT, etc.), Microsoft ha publicado el denominado kit de desarrollo de software conocido como .NET Framework SDK, que incluye las herramientas necesarias tanto para su desarrollo como para su distribución y ejecución y Visual Studio.NET, que permite hacer todo la anterior desde una interfaz visual basada en ventanas.

El concepto de Microsoft.NET también incluye al conjunto de nuevas aplicaciones que Microsoft y terceros han (o están) desarrollando para ser utilizadas en la plataforma .NET. Entre ellas podemos destacar aplicaciones desarrolladas por Microsoft tales como Windows.NET, Hailstorm, Visual Studio.NET, MSN.NET, Office.NET, y los nuevos servidores para empresas de Microsoft (SQL Server.NET, Exchange.NET, etc.)

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 3: C# Basico Aplicacion Consola

3

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

C#

C# (leído en inglés "C Sharp" y en español "C Almohadilla") es el nuevo lenguaje de propósito general diseñado por Microsoft para su plataforma .NET.

Aunque es posible escribir código para la plataforma .NET en muchos otros lenguajes, C# es el único que ha sido diseñado específicamente para ser utilizado en ella, por lo que programarla usando C# es mucho más sencillo e intuitivo que hacerlo con cualquiera de los otros lenguajes ya que C# carece de elementos heredados innecesarios en .NET. Por esta razón, se suele decir que C# es el lenguaje nativo de .NET

Características del lenguaje C#

Ø Lo primero que hay que resaltar es que C#: Es un lenguaje sensible a las mayúsculas, por lo que, por ejemplo, Main es diferente a main, por lo que deberá prestar atención a la hora de escribir el código ya que la confusión entre mayúsculas y minúsculas provocará errores de compilación.

Ø Todas las órdenes acaban con el símbolo del punto y coma (;). Ø Los bloques de órdenes (parte iterativa de un ciclo, partes dependientes de

una instrucción condicional -parte if y parte else-, código de un método, etc.) se encierran entre llaves { } y no se escribe el ; después de la llave de cierre (observar en el ejemplo el método Main).

Ø Existen comentarios de línea, cuyo comienzo se especifica con los caracteres // y comentarios de formato libre, delimitados por /* y */.

Los comentarios tienen como finalidad ayudar a comprender el código fuente y están destinados, por lo tanto, a los programadores. No tienen efecto sobre el código ejecutable ya que su contenido es ignorado por el compilador (no se procesa). La sintaxis de los comentarios en C#.

C# es un lenguaje orientado a objetos y todo programa debe pertenecer a una clase. .

Clase

Clase: Una clase es la definición de las características concretas de un determinado tipo de objetos. Es decir, de cuáles son los datos y los métodos de los que van a disponer

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 4: C# Basico Aplicacion Consola

4

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

todos los objetos de ese tipo. Por esta razón, se suele decir que el tipo de dato de un objeto es la clase que define las características del mismo.

Una clase es la plantilla que permite crear objetos.

Se puede decir que un plano es a las clases como las casas que se construye con los planos a los objetos.

Sintaxis de definición de clases

La sintaxis básica para definir una clase es la que a continuación se muestra:

class <nombreClase> { <miembros> }

De este modo se definiría una clase de nombre <nombreClase> cuyos miembros son los definidos en <miembros> Los miembros de una clase son los datos y métodos de los que van a disponer todos los objetos de la misma. Un ejemplo de cómo declarar una clase de nombre A que no tenga ningún miembro es la siguiente

Objeto: C# es un lenguaje orientado a objetos puro, lo que significa que todo con lo que vamos a trabajar en este lenguaje son objetos. Un objeto es un agregado de datos y de métodos que permiten manipular dichos datos, y un programa en C# no es más que un conjunto de objetos que interaccionan unos con otros a través de sus métodos.

Instanciar: Crear objetos de una clase.

Namespace: Del mismo modo que los ficheros se organizan en directorios, los tipos de datos se organizan en espacios de nombres.

Por un lado estos espacios permiten tener más organizados los tipos de datos, lo que facilita su localización. De hecho, esta es la forma en que se encuentra organizada la BCL, de modo que todas las clases más comúnmente usadas en cualquier aplicación pertenecen al espacio de nombres llamado System, las de acceso a bases de datos en System.Data, las de realización de operaciones de entrada/salida en System.IO, etc

Por otro lado, los espacios de nombres también permiten poder usar en un mismo programa varias clases con igual nombre si pertenecen a espacios diferentes. La idea es

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 5: C# Basico Aplicacion Consola

5

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

que cada fabricante defina sus tipos dentro de un espacio de nombres propio para que así no haya conflictos si varios fabricantes definen clases con el mismo nombre y se quieren usar a la vez en un mismo programa. Obviamente para que esto funcione no han de coincidir los nombres los espacios de cada fabricante, y una forma de conseguirlo es dándoles el nombre de la empresa fabricante, o su nombre de dominio en Internet, etc.

Para definir un espacio de nombres se utiliza la siguiente sintaxis:

namespace <nombreEspacio> { <tipos> }

Los tipos que se definan en <tipos> pasarán a considerase pertenecientes al espacio de nombres llamado <nombreEspacio>. Aparte de clases esto tipos pueden ser también interfaces, estructuras, tipos enumerados y delegados. A continuación se muestra un ejemplo en el que definimos una clase de nombre ClaseEjemplo perteneciente a un espacio de nombres llamado EspacioEjemplo:

namespace EspacioEjemplo { class ClaseEjemplo { } }

Método: Los métodos son miembros de las clases y pueden realizar una serie de acciones, o devolver un valor ya sea que tengan que calcularlo o no. Pueden recibir o no parámetros y pueden devolver o no devolver parámetros. + Declaración: tipoRetorno + NombreDelMétodo + [Parámetros] + { cuerpo } + Ejemplo: int Suma(int numero1, int numero 2) { return numero1 + numero2; }

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 6: C# Basico Aplicacion Consola

6

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

+ Uso: [valor de retorno] miMétodo([Parametros]); + Ejemplo: resultado = Suma(numero1,numero2);

Variables

Una variable permite el almacenamiento de datos en la memoria. Es una abstracción que permite referirnos a una zona de memoria mediante un nombre (su identificador). Todas las variables tienen asociadas un tipo que determina los valores que pueden almacenarse y las operaciones que pueden efectuarse con los datos de ese tipo.

Además, el término variable indica que el contenido de esa zona de memoria puede modificarse durante la ejecución del programa.

Nombres de variables

Los nombres que pueden asignarse a las variables deben regirse por unas normas básicas:

Ø Pueden contener letras, dígitos y el carácter de subrayado (_). Ø No pueden empezar con un número: deben comenzar por una letra o

con el carácter de subrayado (_).

Finalmente, recordar que, como identificador que es, el nombre de una variable es sensible a las mayúsculas y no pueden coincidir con una palabra reservada a no ser que tenga el prefijo @, aunque no es una práctica recomendada.

Declaración de variables

Antes de usar una variable se debe declarar. La declaración de una variable indica al compilador el nombre de la variable y su tipo. Una declaración permite que se pueda reservar memoria para esa variable y restringir el espacio (cantidad

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 7: C# Basico Aplicacion Consola

7

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

de memoria) que requiere, los valores que pueden asignársele y las operaciones en las que puede intervenir.

La sintaxis de una declaración es sencilla: tan sólo hay que especificar el tipo de la variable y el nombre que se le asocia. La declaración debe concluir con el carácter punto y coma.

A cada variable se le debe:

Ø Darle un nombre significativo Ø Asociarle un tipo de dato.

Cuando se van a declarar múltiples variables del mismo tipo no es necesario que cada declaración se haga por separado, pueden agruparse en la misma línea compartiendo el tipo.

No es conveniente abusar de la declaración múltiple de variables en una línea. Desde el punto de vista de la legibilidad es preferible, por regla general, que cada variable se declare separadamente y que la declaración vaya acompañada de un breve comentario.

Se puede declarar e inicializar variables en una sola línea:

Ejemplo int a=1, b=2, c, d=4;

No existe ninguna zona predeterminada en el código para la declaración de variables, la única restricción es que la declaración debe realizarse antes de su uso.

No es conveniente abusar de la declaración múltiple de variables en una línea. Desde el punto de vista de la legibilidad es preferible, por regla general, que cada variable se declare separadamente y que la declaración vaya acompañada de un breve comentario

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 8: C# Basico Aplicacion Consola

8

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Una vez declarada una variable debe recibir algún valor (es su misión, después de todo). Este valor lo puede recibir de algún dispositivo (flujo de entrada) o como resultado de evaluar una expresión. La manera más simple de proporcionar un valor a una variable es emplear la instrucción de asignación:

Doublé Radio; //Declaración

Radio=10.0; //Inicialización

Tipos de datos

Los tipos son la base de cualquier programa. Un tipo no es más que un espacio en el que se almacena una información , ya sea números, palabras o la fecha de nacimiento.

Los tipos de datos son especialmente importantes en C# porque es un lenguaje con información de tipos, esto significa que, en todas las operaciones, el compilador comprueba los tipos para ver su compatibilidad. Las operaciones no validas no se compilan. De esta forma se evitan muchos errores y se consigue una mayor fiabilidad.

Los tipos predefinidos de C# son tipos disponibles en la plataforma .NET y que, por comodidad, en C# se emplean usando un alias. En la tabla se presenta detallando su nombre completo, su alias, una breve descripción, el número de bytes que ocupan y el rango de valores.

Los tipos de lenguaje C# son divididos en dos grandes categorías: tipos por valor y tipos por referencia. Existe una tercera categoría de tipos, disponible solo cuando se usa código no seguro: los punteros.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 9: C# Basico Aplicacion Consola

9

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Tipos valor Tipos referencia La variable contiene un valor

La variable contiene una referencia

El dato se almacena en la pila El dato se almacena en el heap

El dato siempre tiene valor El dato puede no tener valor null Una asignación copia el valor

Una asignación copia la referencia

int i = 123; // tipo valor string s = "Hello world"; // tipo referencia

Tipos Enteros

Los tipos que sirven para almacenar números enteros son: byte, sbyte,, short, ushort, int,uint,long y ulong, como se aprecia en la tabla.

Probablemente el tipo más utilizado es el int, pues se utiliza para controlar matrices, indizar arreglos además de las operaciones normales con enteros.

Ejercicio

Diseñar un programa en C# que calcule el numero de segundos en una hora, dia y en un año.

using System; using System.Collections.Generic;

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 10: C# Basico Aplicacion Consola

10

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

using System.Text; namespace Segundos { class CSegundos { static void Main(string[] args) { int minuto = 60;//Segundos por minuto int hora = minuto * 60; int dia = hora * 24; long amo = dia * 365; Console.WriteLine("Segundos en un hora:{0}", dia); Console.WriteLine("Segundos en un dia:{0}", hora); Console.WriteLine("Segundos en un Año:{0}", amo); Console.ReadLine(); } } }

Tipos de coma Flotante

Los tipos de coma flotante sirven para representar a números con parte fraccionaria. La representación por su puesto puede no ser exacta, bien por errores de la maquina, bien porque el numero de decimales que se puede alojar es finito.

Existen dos clases de tipos de punto flotante, float y doublé. De los dos, el mas usado es doublé, pues es el valor que devuelven la mayoría de las funciones matemáticas de la librería base.

Ejercicio

Diseñar un programa en C# que calcule la raíz cuadrada y el logaritmo de dos.

using System; using System.Collections.Generic; using System.Text; namespace DosFunciones

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 11: C# Basico Aplicacion Consola

11

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

{ class CDosFunciones { static void Main(string[] args) { int a = 2; double log2 = Math.Log(2); double raiz2 = Math.Sqrt(2); Console.WriteLine("El logaritmo de dos es {0}", log2); Console.WriteLine("La raiz de dos es {0}", raiz2); Console.ReadLine(); } } }

Si se intenta cambiar el tipo de log2 a otro de menos precisión , como float o int, el compilador protestara. Esto se debe,a que el valor devuelto por Math.Log() es de tipo doublé y si se quiere convertir a float, se pierden datos.

El tipo decimal

El tipo decimal es un tipo “nuevo” en el sentido que no tiene equivalencia en C/C++. Es muy parecido a los tipos de coma flotante float y doublé.

En la aritmética de los tipos de coma flotante ordinarios, se puede producir leves errores de redondeo.

El tipo decimal elimina estos errores y puede representar correctamente hasta 28 lugares decimales. Esta capacidad para representar valores decimales sin errores de redondeo lo hace especialmente eficaz para cálculos monetarios.

El tipo bool

El tipo bool sirve para representar los valores verdadero/falso, que en C# se muestra

En C#, por ejemplo, una instrucción if solo puede estar gobernada por un valor bool, ayudando a la claridad del código.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 12: C# Basico Aplicacion Consola

12

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

El tipo char

El tipo char permite almacenar un carácter en formato Unicode de 16 bits, lo que garantiza que los acentos se ven de forma adecuada y además permite la representación de otros alfabetos, como el griego etc, . para introducir un carácter se utilizan comillas simples, de forma de declarar un carácter es:

char letra = ‘ a ‘;

Se puede declarar un arreglo de char.

Char [] cadena = {‘a’, ‘b’, ‘c’};

PERO PARA ALMACENAR ALGUNAS CADENAS DE CARACTERES, COMO LAS PALABRAS, ES MAS INDICADO USAR EL TIPO string.

Tipos de Datos en C#

Tipo Descripción Bits Rango de valores Alias

SByte Bytes con signo 8 -128 - 127 sbyte

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 13: C# Basico Aplicacion Consola

13

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Byte Bytes sin signo 8 0 - 255 byte

Int16 Enteros cortos con signo 16 [-32.768, 32.767] short

UInt16 Enteros cortos sin signo 16 [0, 65.535] ushort

Int32 Enteros normales 32 [-2.147.483.648, 2.147.483.647] int

UInt32 Enteros normales sin signo 32 [0, 4.294.967.295] uint

Int64 Enteros largos 64 [-9.223.372.036.854.775.808, 9.223.372.036.854.775.807] long

UInt64 Enteros largos sin signo 64 [0-18.446.744.073.709.551.615] ulong

Single Reales con 7 dígitos de precisión

32 [1,5×10-45 - 3,4×1038] float

Double Reales de 15-16 dígitos de precisión

64 [5,0×10-324 - 1,7×10308] double

Decimal

Reales de 28-29 dígitos de precisión

128 [1,0×10-28 - 7,9×1028] decimal

Boolean Valores lógicos 32 true, false bool

Char Caracteres Unicode 16 ['\u0000', '\uFFFF'] char

String Cadenas de caracteres

Variable El permitido por la memoria string

Object Cualquier objeto Variable Cualquier objeto object

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 14: C# Basico Aplicacion Consola

14

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Secuencia de Escape Una secuencia de escape sencilla representa una codificacion de caracteres Unicode y esta formada por el carácter \ seguido de otro carácter. Las secuencias validas se describe en la siguiente tabla.

Secuencia de escape Nombre del carácter Codificación Unicode \' Comilla simple 0x0027 \" Comilla doble 0x0022 \\ Barra invertida 0x005C \0 Null 0x0000 \a Alerta 0x0007 \b Retroceso 0x0008 \f Avance de página 0x000C \n Nueva línea 0x000A \r Retorno de carro 0x000D \t Tabulación horizontal 0x0009 \v Tabulación vertical 0x000B

Instrucciones de Asignación en C# La instrucción de asignación en C# es. Nombre de la variable= Expresión Otras instrucciones de Asignación en C# Existe una notación abreviada que combina el operador de asignación (=) y un operador aritmético y permite modificar el valor de una variable dada: Sumándole Restándole Multiplicándolo

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 15: C# Basico Aplicacion Consola

15

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

La forma general es:

Variable Operador = Expresión La expresión puede ser otra variable una constante, o una expresión aritmética más complicada.

Ejemplos 1. cuentaß cuenta + 2 cuenta = cuenta + 2; cuenta+ = 2; 2. totalß total – descuento total = total – descuento total - = descuento; 3. bonoß bono x 2 bonoß bono* 2; bono * = 2; 4. tiempoß tiempo/ factor_prisa tiempo = tiempo/factor_prisa; tiempo / = factor_prisa; 5. cambioß cambio mod 100 cambio = cambio % 100; cambio % = 100; 6. cantidad ß cantidad x (cnt1 + cnt2) cantidad = cantidad *(cnt1+ cnt2); cantidad* = (cnt1+cnt2);

Instrucciones condicionales

Las instrucciones condicionales son instrucciones que permiten ejecutar bloques de instrucciones sólo si se da una determinada condición.

Instrucción if

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 16: C# Basico Aplicacion Consola

16

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

La instrucción if permite ejecutar ciertas instrucciones sólo si se da una determinada condición. Su sintaxis de uso es la sintaxis:

if (<condición>) <InstruccionesIf> else <InstruccionesElse>

El significado de esta instrucción es el siguiente: se evalúa la expresión <condición>, que ha de devolver un valor lógico. Si es cierta (devuelve true) se ejecutan las <instruccionesIf>, y si es falsa (false) se ejecutan las <instruccionesElse> La rama else es opcional, y si se omite y la condición es falsa se seguiría ejecutando a partir de la instrucción siguiente al if. En realidad, tanto <instruccionesIf> como <instruccionesElse> pueden ser una única instrucción o un bloque de instrucciones.

Instrucción switch

La instrucción switch permite ejecutar unos u otros bloques de instrucciones según el valor de una cierta expresión. Su estructura es:

switch (<expresión>) { case <valor1>: <bloque1> break case <valor2>: <bloque2> break ... default: <bloqueDefault> }

El significado de esta instrucción es el siguiente: se evalúa <expresión>. Si su valor es <valor1> se ejecuta el <bloque1>, si es <valor2> se ejecuta <bloque2>, y así para el resto de valores especificados. Si no es igual a ninguno de esos valores y se incluye la rama default, se ejecuta el <bloqueDefault>; pero si no se incluye se pasa directamente a ejecutar la instrucción siguiente al switch.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 17: C# Basico Aplicacion Consola

17

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Los valores indicados en cada rama del switch han de ser expresiones constantes que produzcan valores de algún tipo básico entero, de tipo char o de tipo string. Además, no puede haber más de una rama con el mismo valor.

En realidad, aunque todas las ramas de un switch son opcionales siempre se ha de incluir al menos una. Además, la rama default se usa cuando el valor tomado no corresponde a ninguno de los case.

Break salirse de cada una de las ramas cuando finaliza las instrucciones.

Instrucciones iterativas

Las instrucciones iterativas son instrucciones que permiten ejecutar repetidas veces una instrucción o un bloque de instrucciones mientras se cumpla una condición. Es decir, permiten definir bucles donde ciertas instrucciones se ejecuten varias veces. A continuación se describen cuáles son las instrucciones de este tipo incluidas en C#.

Instrucción while

La instrucción while permite ejecutar un bloque de instrucciones mientras se de una cierta instrucción. Su sintaxis de uso es:

while (<condición>) { <instrucciones> }

Su significado es el siguiente: Se evalúa la <condición> indicada, que ha de producir un valor lógico. Si es cierta (valor lógico true) se ejecutan las <instrucciones> y se repite el proceso de evaluación de <condición> y ejecución de <instrucciones> hasta que deje de serlo. Cuando sea falsa (false) se pasará a ejecutar la instrucción siguiente al while. En realidad <instrucciones> puede ser una única instrucción o un bloque de instrucciones.

Instrucción do...while

La instrucción do...while es una variante del while que se usa así:

Do { <instrucciones>

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 18: C# Basico Aplicacion Consola

18

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

}while(<condición>); La única diferencia del significado de do...while respecto al de while es que en vez de evaluar primero la condición y ejecutar <instrucciones> sólo si es cierta, do...while primero ejecuta las <instrucciones> y luego mira la <condición> para ver si se ha de repetir la ejecución de las mismas. .

do ... while está especialmente destinado para los casos en los que haya que ejecutar las <instrucciones> al menos una vez aún cuando la condición sea falsa desde el principio.

Instrucción for

La instrucción for es una variante de while que permite reducir el código necesario para escribir los tipos de bucles más comúnmente usados en programación. Su sintaxis es:

for (<inicialización>; <condición>; <modificación>) { <instrucciones> }

El significado de esta instrucción es el siguiente: se ejecutan las instrucciones de <inicialización>, que suelen usarse para definir e inicializar variables que luego se usarán en <instrucciones>. Luego se evalúa <condición>, y si es falsa se continúa ejecutando por la instrucción siguiente al for; mientras que si es cierta se ejecutan las <instrucciones> indicadas, luego se ejecutan las instrucciones de <modificación> -que como su nombre indica suelen usarse para modificar los valores de variables que se usen en <instrucciones>- y luego se reevalúa <condición> repitiéndose el proceso hasta que ésta última deje de ser cierta.

Operadores y expresiones

Un operador está formado por uno o más caracteres y permite realizar una determinada operación entre uno o más datos y produce un resultado. Es una manera simbólica de expresar una operación sobre unos operandos.

C# proporciona un conjunto fijo, suficiente y completo de operadores. El significado de cada operador está perfectamente definido para los tipos predefinidos, aunque algunos de ellos pueden sobrecargarse, es decir, cambiar su significado al aplicarlos a un tipo definido por el usuario.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 19: C# Basico Aplicacion Consola

19

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

C# dispone de operadores aritméticos, lógicos, relacionales, de manipulación de bits, asignación, para acceso a tablas y objetos, etc. Los operadores pueden presentarse por diferentes criterios, por ejemplo, por su funcionalidad:

Categorías Operadores Aritméticos + - * / % Lógicos (booleanos y bit a bit) & | ^ ! ~ && || Concatenación de cadenas + Incremento y decremento ++ -- Desplazamiento << >> Relacionales == != < > <= >=

Asignación = += -= *= /= %= &= |= ^= <<= >>=

Acceso a miembros . Acceso por índices [] Conversión de tipos explícita () Conditional ? : Creación de objetos New Información de tipos as is sizeof typeof Control de excepciones de desbordamiento checked unchecked

Direccionamiento indirecto y dirección * -> [] &

Los operadores aritméticos de C# son los que se emplean comúnmente en otros lenguajes: + (suma), - (resta), * (multiplicación), / (división) y % (módulo o resto de la división).

Son operadores binarios y se colocan entre los argumentos sobre los que se aplican, proporcionando un resultado numérico (Por ejemplo, 7+3.5, 66 % 4).

Los operadores lógicos proporcionan un resultado de tipo lógico (bool) y los operadores a nivel de bit actúan sobre la representación interna de sus operandos (de tipos enteros) y proporcionan resultados de tipo numérico.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 20: C# Basico Aplicacion Consola

20

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Los operadores binarios son: & (operación Y lógica entre argumentos lógicos u operación Y bit a bit entre operandos numéricos), | (operación O, lógica ó bit a bit, dependiendo del tipo de los argumentos) , ^ (O exclusivo, lógico ó bit a bit), && (Y lógico, que evalúa el segundo operando solo cuando es necesario) y || (O lógico, que evalúa el segundo operando solo cuando es necesario).

Los operadores unarios son: ! (negación o complemento de un argumento lógico) y ~ (complemento bit a bit de un argumento numérico).

El operador + para la concatenación de cadenas es un operador binario. Cuando al menos uno de los operandos es de tipo string este operador actúa uniendo las representaciones de tipo string de los operandos.

Operadores de incremento y decremento. El operador de incremento (++) incrementa su operando en 1 mientras que el de decremento (--) decrementa su operando en 1. Puede aparecer antes de su operando: ++v (incremento prefijo) o después: v++ (incremento postfijo).

El incremento prefijo hace que el resultado sea el valor del operando después de haber sido incrementado y el postfijo hace que el resultado sea valor del operando antes de haber sido incrementado.

Los tipos numéricos y de enumeración poseen operadores de incremento y decremento predefinidos.

Los operadores de desplazamiento son operadores binarios. Producen un desplazamiento a nivel de bits de la representación interna del primer operando (de un tipo entero), a la izquierda (<<) o a la derecha (>>) el número de bits especificado por su segundo operando.

Los operadores relacionales proporcionan un resultado lógico, dependiendo de si sus argumentos son iguales (==), diferentes (!=), o del orden relativo entre ellos (<, >, <= y >=).

La asignación simple (=) almacena el valor del operando situado a su derecha en una variable (posición de memoria) indicada por el operando situado a su izquierda.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 21: C# Basico Aplicacion Consola

21

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Los operandos deben ser del mismo tipo o el operando de la derecha se debe poder convertir implícitamente al tipo del operando de la izquierda).

E/S básica

Las operaciones de entrada y salida tienen como objetivo permitir que el usuario pueda introducir información al programa operaciones de entrada y que pueda obtener información de éste operaciones de salida. En definitiva, tratan de la comunicación entre el usuario y el programa.

La manera más simple de comunicación es mediante la consola. La consola ha sido el modo tradicional de comunicación entre los programas y el usuario por su simplicidad. Las aplicaciones basadas en ventanas resultan mucho más atractivas y cómodas para el usuario y es éste, sin duda, el tipo de comunicación que se debe emplear para productos finales. Los programas que no requieran mucha interacción con el usuario, se construyen y se ponen en explotación mucho más rápidamente si se utiliza la consola como medio de comunicación.

Aplicaciones en modo consola

Estas aplicaciones emplean la consola para representar las secuencias de entrada, salida (y error) estándar.

Una aplicación de consola se crea en Visual Studio .NET seleccionando Archivo, Nuevo y Proyecto. Cuando aparece la ventana Nuevo proyecto se selecciona Proyectos de Visual C# y Aplicación de consola:

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 22: C# Basico Aplicacion Consola

22

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Entradas y salida por consola

Salidas

Console.WriteLine(“Segundos en un dia:{0}”, Dia);

Console.WriteLine(“Segundos en un dia: “+ Dia);

El método Cpnsole.WriteLine imprime los resultados por la consola. El identificador {0} dentro de la cadena de texto indica que se sustituye {0} por el primer argumento. Si hubiera más de un argumento, se seguiría con {1}, y así sucesivamente.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 23: C# Basico Aplicacion Consola

23

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Para entrar datos

Console.ReadLine (): Lee el valor de Variable como una línea de texto.. Convert .ToInt32 () es el método que permite convertir a entero (int) un valor leído. Convert.ToDouble() Es el método que permite convertir a real un valor leido Funciones Math.Log() : Encuentra el logaritmo Math.Sqrt(): Encuentra la raiz cuadrada % Devuelve el residuo

EJERCICIOS RESUELTOS

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 24: C# Basico Aplicacion Consola

24

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Para cada ejercicio que se plantea hacer análisis del problema definir variables y construir algoritmo antes de programar en C#.

Ejercicio 1

Diseñar un programa en C# que muestre el siguiente mensaje en la consola “ Bienvenidos a C#..”

using System; using System.Collections.Generic; using System.Text; namespace Saludo { class CBienVenida { static void Main(string[] args) { Console.WriteLine("Bienvenidos a C#"); Console.ReadLine(); //WriteLine y ReadLine son metodos } } }

La línea using System declara que se va a usar el espacio de nombres (namespace) llamado System, evita escribir el prefijo System cada vez que se use un elemento de ese espacio de nombres. Por ejemplo, Console es una clase del espacio de nombres System; en lugar de escribir su nombre completo (System.Console) podemos escribir solamente Console al haber declarado que se va a emplear el espacio de nombres System.

Cuando este programa se compile y se proceda a su ejecución, el primera función (estrictamente hablando, método) en ejecutarse será Main.

La función Main () tiene los siguientes prototipos válidos:

Ø Si la función no devuelve ningún valor, puede usarse:

static void Main( )

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 25: C# Basico Aplicacion Consola

25

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

static void Main(string [] args)

La diferencia está en la posibilidad de suministrar argumentos en la llamada a la ejecución del programa. Main () procesa los argumentos en la llamada a la ejecución del programa tomándolos de la lista de cadenas.

Ø Si la función devuelve un valor al proceso que invoca la ejecución del programa, el valor debe ser entero (int) y, como en el caso anterior, puede usarse:

static int Main( ) static int Main(string [] args)

La convención es que el valor 0 indica que el programa termina correctamente.

En cuanto a las instrucciones que efectivamente se ejecutan, el método Main() llama a los métodos WriteLine() y ReadLine() junto con sus variantes Write y Read de la clase Console.

El acceso a la consola lo facilita la clase Console, declarada en el espacio de nombres System. Esa clase proporciona la compatibilidad básica para aplicaciones que leen y escriben caracteres en la consola. No es necesario realizar ninguna acción para poder obtener datos de la consola a partir de la entrada estándar (teclado) o presentarlos en la salida estándar (consola) ya que estos flujos (junto con el del error estándar) se asocian a la consola de manera automática

Aunque la última instrucción pueda parecer innecesaria, de no escribirla se mostraría la cadena ¡ Bienvenidos a C! y se cerraría inmediatamente la consola, por lo que no podríamos contemplar el resultado de la ejecución. La última instrucción detiene la ejecución del programa hasta que se introduce una cadena (pulsar ENTER es suficiente) y a continuación termina la ejecución del programa y se cierra la consola.

Ejercicio 2

Diseñar un programa en C# que permita entrar su nombre y luego mostrarlo en la consola.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 26: C# Basico Aplicacion Consola

26

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

using System; using System.Collections.Generic; using System.Text; namespace Nombre { class IngresarNombre { static int Main(string[] args) { Console.Write("Introduzca su nombre: "); // 1 string nombre = Console.ReadLine(); // 2 Console.WriteLine("Su nombre es: " + nombre); // 3 Console.ReadLine(); return 0; } }

}

La instrucción 1 muestra la cadena Introduzca su nombre: pero no avanza a la siguiente línea de la consola, por lo que cuando se ejecuta la instrucción 2 lo que escribe el usuario se muestra a continuación, en la misma línea. La cadena que escribe el usuario se guarda en la variable nombre y se elimina del buffer de entrada el terminador de línea. Cuando se valida la entrada (al pulsar ENTER) se avanza a la siguiente línea. La instrucción 3 muestra una cadena, resultado de concatenar un literal y la cadena introducida por el usuario. Finalmente, la instrucción 4 es necesaria para detener la ejecución del programa (realmente, la finalización del mismo) hasta que el usuario pulse ENTER. Observar que aunque el método Readline devuelva una cadena, éste valor devuelto no es usado. En la siguiente figura mostramos dos ejemplos de ejecución.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 27: C# Basico Aplicacion Consola

27

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Ejercicio 3

using System; using System.Collections.Generic; using System.Text; namespace ComparaString { class CComparar { static void Main(string[] args) { string mivariable = "C# es Programacion Orientada a Objetos"; if (mivariable.Equals("C# es Programacion Orientada a Objetos")) { Console.WriteLine("Cadenas Iguales..."); } else { Console.WriteLine("Cadenas diferentes.. "); } Console.ReadLine(); } }

}

using System; using System.Collections.Generic;

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 28: C# Basico Aplicacion Consola

28

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

using System.Text; namespace ComparaString2 { class CComparar { static void Main(string[] args) { string mivariable = "C# es Programacion Orientada a Objetos"; if (string.Equals(mivariable,"C# es Programacion Orientada a Objetos")) { Console.WriteLine("Cadenas Iguales..."); } else { Console.WriteLine("Cadenas diferentes.. "); } Console.ReadLine(); } }

}

Sobre las variables de tipo string se puede trabajar forma muy sencilla. Por ejemplo, se puede aplicar el operador "==" para comparar dos strings, de modo que es equivalente a:

mivariable.Equals("C# es Programacion Orientada a Objetos")) string.Equals(mivariable,"C# es Programacion Orientada a Objetos"))

Ejercicio 4

Diseñar un programa en C# que lea dos variables de tipo string muestre si son iguales y el valor de las dos variables.

using System; using System.Collections.Generic; using System.Text; namespace DosString { class CComparar

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 29: C# Basico Aplicacion Consola

29

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

{ static void Main(string[] args) { string mivariable1,mivariable2; Console.WriteLine("Entrar Cadena1:"); mivariable1=Console.ReadLine(); Console.WriteLine("Entrar Cadena2:"); mivariable2=Console.ReadLine(); if (string.Equals(mivariable1, mivariable2)) { Console.WriteLine("Cadenas Iguales..."); } else { Console.WriteLine("Cadenas diferentes.. "); } Console.ReadLine(); } } }

Ejercicio 5

Diseñar un programa en C# que permita concatenar tres variables de tipo string que están inicializadas en los siguientes valores:

Mivariable1=”C# En:”

Mivariable2=”Modo Consola,”

Mivariable3=”Modo Windows,”

Mivariable4=”EN LA WEB”

using System; using System.Collections.Generic; using System.Text; namespace CocatenarString2 { class Program {

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 30: C# Basico Aplicacion Consola

30

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

static void Main(string[] args) { string mivariable1=string.Empty, mivariable2=string.Empty; string mivariable3 = string.Empty, mivariable4 = string.Empty; string mivariable5=string.Empty; mivariable1 = "\nC# En:\n"; mivariable2 = "Modo Consola\n"; mivariable3 = "Modo Windows\n"; mivariable4 = "EN LA WEB\n"; mivariable5 = string.Concat(mivariable1,mivariable2,mivariable3,mivariable4); Console.WriteLine("El resultado de las variables concatenadas es:" + mivariable5); Console.ReadLine(); } }

}

Es muy sencillo realizar operaciones de concatenación entre strings, pues no hay más que aplicar el operador "+".

También se puede utilizar el método Concat de la clase String.

mivariable5= = string.Concat(mivariable1,mivariable2,mivariable3,mivariable4)

observar, se han inicializado las cinco variables string con una cadena vacía string.Empty,

Ejercicio 6

Diseñar un programa en C# que permita leer un string y averiguar cuántos caracteres 's' hay en la variable string.

Ejercicio 7

Diseñar un algoritmo que lea el valor de dos números enteros y muestre su suma. Información de entrada: a, b

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 31: C# Basico Aplicacion Consola

31

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Información de salida: suma Inicio Enteros a, b,suma int a,b,suma; Muestre “Entrar el valor de A:” Console.Write (“Entrar el valor de A:”); Leer a a = Convert.ToInt32 (Console.ReadLine()); Muestre “Entrar el valor de B:” Console.Writel(Entrar el valor de B:”); Leer b b= Convert.ToInt32 (Console.ReadLine()); Suma = a+b suma=a+b; Mustre “Resultado de la suma de A+B:”, Suma Console.write (“resultado de la suma de A+B:” +suma); Fin(inicio) using System; using System.Collections.Generic; using System.Text; namespace SumadosNum { class CSumar { static void Main(string[] args) { int a,b,suma; Console.Write("Entrar el valor de A:"); a = Convert.ToInt32(Console.ReadLine()); Console.Write("Entrar el valor de B:"); b= Convert.ToInt32(Console.ReadLine()); suma=a+b; Console.Write("Resultado de la suma de A+B = "+suma); Console.ReadLine(); } } } Console.ReadLine (): Lee el valor de la variable a, b como una línea de texto, se convierte a entero para poderse sumar. Console es la clase y ReadLine() es el método. Convert es la clase y ToInt32 () es el método que permite convertir a entero (int) . . Ejercicio 8 Diseñar un programa en C# que inicialice la variable TuEdad en 20, la varible TuNombre en Jose. ¿De qué tipo son cada variable? using System; using System.Collections.Generic;

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 32: C# Basico Aplicacion Consola

32

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

using System.Text; namespace EdadNombre { class CEdadNombre { static void Main(string[] args) { int TuEdad = 20; string TuNombre = "Jose"; Console.WriteLine("Tienes {0} años, {1}.", TuEdad, TuNombre); // Escribe: Tienes 20 años, Jose. Console.ReadLine(); } } }

Ejercicio 9

Diseñar un programa C# que calcule y muestra el área de un círculo de radio 10.

using System; using System.Collections.Generic; using System.Text; namespace CalculoArea { class CCalculoArea { static void Main(string[] args) { float Radio = 10.0F; float Area = Area = 2 * 3.1416F * Radio * Radio; Console.WriteLine(Area); Console.ReadLine(); } }

}

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 33: C# Basico Aplicacion Consola

33

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

using System; using System.Collections.Generic; using System.Text; namespace CalculoArea2 { class CCalculoArea2 { static void Main(string[] args) { const float PI = 3.1416F; float Radio = 10.0F; float Area = 2 * PI * Radio * Radio; Console.WriteLine(Area); Console.ReadLine(); } } }

using System; using System.Collections.Generic; using System.Text; namespace AreaLeer { class CArea { static void Main(string[] args) { double Radio ; double Area ; Console.Write("Entrar Radio:"); Radio = Convert.ToDouble(Console.ReadLine()); Area = 2 * 3.1416F * Radio * Radio; Console.WriteLine(Area); Console.ReadLine();

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 34: C# Basico Aplicacion Consola

34

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

} } } Ejercicio 10 Digitar el siguiente programa y explicar que hace el método ReadKey() de la clase Console. using System; class Secuencia { static void Main(string[] args) { Console.Write("\t\t\"LENGUAJE DE PROGRAMACION C#\"\n"); Console.ReadKey(); } } Ejemplo 11. Diseñar la salida de la siguiente aplicacion en C#. using System; class Secuencia { static void Main(string[] args) { Console.Write("\n\t\t\"LENGUAJE DE PROGRAMACION C#\"\n\n"); Console.Write(" \n CON C# SE APRENDE LA FILOSOFIA DE POO EN:\n"); Console.Write("\t\t APLICACIONES CONSOLA\n"); Console.Write("\t\t APLICACIONES WINDOWS\n"); Console.Write(“\t\t OJO TAMBIEN PROYECTOS WEB\n”); Console.ReadKey(); } } Ejercicio 12

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 35: C# Basico Aplicacion Consola

35

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Aplicaciones Windows

Una aplicación basada en ventanas “aplicación Windows”, utiliza ventanas y componentes específicos para interactuar con el usuario. Las peticiones de datos se realizan con componentes de entrada de texto por ejemplo, con un TextBox o mediante la selección en una lista de posibilidades por ejemplo, con un ComboBox. Las salidas pueden realizarse de múltiples maneras, empleando componentes Label, ventanas de mensajes MessageBox, etc.

Una aplicación de ventanas se crea fácilmente en Visual Studio .NET seleccionando Archivo, Nuevo y Proyecto. En la ventana Nuevo proyecto se selecciona Proyectos de Visual C# y Aplicación para Windows.

Diseñar una aplicación en C# modo Windows de forma que cuando el usuario haga clic sobre el botón Saludo aparezca un ventana con el mensaje ¡ Hola, mundo|; Y Hacer clic en el botón terminar para salir de la ejecución de la aplicación.

Cuando se hace clic sobre el botón titulado Saludo, Basta con ejecutar este código cada vez que se hace clic en dicho botón:

MessageBox.Show ("¡Hola, mundo!", "Un saludo típico"); (en realidad, System.Windows.Forms.MessageBox.Show (...);)

Una aplicación de ventanas se crea fácilmente en Visual Studio .NET seleccionando Archivo, Nuevo y Proyecto. En la ventana Nuevo proyecto se selecciona Proyectos de Visual C# y Aplicación para Windows.

Pasos

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 36: C# Basico Aplicacion Consola

36

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Ø Entrar al Visual Studio.Net, seleccionar Archivo, Nuevo Proyecto. Ø Ingresar saludo como nombre de la aplicación en el campo Nombre. Ø Hacer clic en Aceptar. Se creará un nuevo proyecto de aplicación para

Windows en una nueva carpeta. También se mostrará un formulario en blanco en la ventana Formulario de Windows. A mano izquierda se encuentra la caja de herramientas de donde se arrastra los controles para crear la interfaz de usuario.

Diseñar la interfaz para la aplicación agregando botones, al formulario. El tamaño del formulario es grande para la aplicación, así que se necesita hacer más pequeño.

Ø Hacer clic en la esquina inferior derecha del formulario en blanco. El cursor cambiará a una flecha doble. Arrastrar la esquina del formulario para achiquitarlo.

El título del formulario simplemente dice Form1, pero se puede cambiar. De hecho, el título es una de las numerosas propiedades que se puede configurar para un formulario. Podemos ver y editar cada propiedad en la ventana de Propiedades.

Ø Hacer clic en el formulario para activarlo; luego hacer clic en Ver, Ventana de Propiedades. La ventana de Propiedades se abrirá y mostrará todas las

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 37: C# Basico Aplicacion Consola

37

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

propiedades asociadas con un formulario. La propiedad Text contiene el texto que se muestra en la barra de título.

Ø Cambiar el título del Formulario de Windows de Form1 seleccionando la propiedad Text, cambiar el valor de la columna junto a esta a Saludos. Presionar Enter después de haber cambiado el texto, y el título del formulario reflejará los cambios que se ha realizado.

Ø Darle nombre al formulario, seleccionar la propiedad Name, cambiar el valor de la columna junto a esta a frmSaludos.

El Cuadro de Herramientas muestra todos los controles que se pueden agregar a un formulario. Los controles se agrupan en categorías, como Controles Comunes, Menús y Barras de herramientas, y Cuadros de diálogo.

Ø Arrastrar dos controles button desde el cuadro de herramientas hasta el formulario y colocarlos como lo muestra la figura.

Ø Colocar un titulo sobre el primer botón seleccionando la propiedad Text, y cambiando el valor de la columna junto a esta a Saludo. Presionar Enter después de haber cambiado el texto, y en el botón se reflejará los cambios que se ha realizado.

Ø Cambiar el nombre al botón seleccionando la propiedad Name, y cambiar el valor de la columna junto a esta a btnSaludo.

Ø Colocar un titulo sobre el segundo botón seleccionando la propiedad Text, y cambiando el valor de la columna junto a esta a Terminar. Presionar Enter después de haber cambiado el texto, en el botón se reflejará los cambios que se ha realizado.

Ø Cambiar el nombre al botón, seleccionando la propiedad Name, y cambiar el valor de la columna junto a esta a btnTerminar.

Si se hace clic sobre el botón se puede arrastrar este sobre el formulario, al sitio que se desee igualmente se puede modificar su tamaño y color.

Ø Agregar un evento al control Saludo. 1. Haga doble clic sobre el botón. 2. Ya abierto el editor de código, inserte el siguiente código C# dentro del

evento . btnSaludo_Click

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 38: C# Basico Aplicacion Consola

38

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

private void btnSaludo_Click(object sender, EventArgs e) { MessageBox.Show("¡Hola, mundo!", "Un saludo típico");

} El primer parámetro del método Show es el mensaje que se desea mostrar y el segundo es el título de la ventana.

Ø Agregar un evento al control Terminar 1. Haga doble clic sobre el botón Terminar. 2. Ya abierto el editor de código, inserte el siguiente código C# dentro del

evento btnTerminar_Click

private void btnTerminar_Click(object sender, EventArgs e) { Close(); }

El controlador de la orden Terminar simplemente invoca al método Close del formulario y lo cierra, finalizando la aplicación. Ø Probar la aplicación.

En el menú Depurar haga clic en iniciar o F5 para correr la aplicación.

Ejercicio 13

Diseñar una aplicación en C# modo Windows de forma que se pueda pedir el nombre del usuario y mostrar el nombre entrado al hacer click en el botón saludo.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 39: C# Basico Aplicacion Consola

39

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

En un componente TextBox se lee el nombre y se muestra empleando un componente Label cuando se hace clic en el botón titulado Saludo

Ø Entrar al Visual Studio.Net, seleccionar Archivo, Nuevo Proyecto. Ø Ingresar saludo2 como nombre de la aplicación en el campo Nombre. Ø Hacer clic en Aceptar. Se creará un nuevo proyecto de aplicación para

Windows en una nueva carpeta. También se mostrará un formulario en blanco en la ventana Formulario de Windows.

Diseñar la interfaz para la aplicación agregando botones, al formulario. El tamaño del formulario es grande para la aplicación, así que se necesita hacer más pequeño.

Ø Hacer clic en la esquina inferior derecha del formulario en blanco. El cursor cambiará a una flecha doble. Arrastrar la esquina del formulario para achiquitarlo.

Ø Cambiar el título del formulario. Hacer clic en el formulario para activarlo; luego hacer clic en Ver, Ventana de Propiedades. Seleccionar la propiedad Text, y cambiando el valor de la columna junto a esta a Saludo. Presionar Enter después de haber cambiado el texto, y el título del formulario reflejará los cambios que se ha realizado.

Ø Darle nombre al formulario, seleccionar la propiedad Name, cambiar el valor de la columna junto a esta a frmSaludos2.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 40: C# Basico Aplicacion Consola

40

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Ø Arrastrar el control label desde el cuadro de herramientas hasta el formulario y colocarlos como lo muestra la figura.

Ø Colocar texto sobre el label seleccionando la propiedad Text, y cambiando el valor de la columna junto a esta a Nombre. Presionar Enter después de haber cambiado el texto, en el label se reflejará los cambios que se ha realizado.

Ø Darle nombre al label, seleccionar la propiedad Name, cambiar el valor de la columna junto a esta a lblNombre.

Ø Arrastrar el control TextBox desde el cuadro de herramientas hasta el formulario y colocarlos como lo muestra la figura.

Ø Cambiar el nombre al TextBox seleccionando la propiedad Name, y cambiar el valor de la columna junto a esta a txtNombre.

Ø Arrastrar dos controles button desde el cuadro de herramientas hasta el formulario y colocarlos como lo muestra la figura.

Ø Colocar un titulo sobre el primer botón , seleccionando la propiedad Text, y cambiar el valor de la columna junto a esta a Saludo. Presionar Enter después de haber cambiado el texto, y en el botón se reflejará los cambios que se ha realizado.

Ø Cambiar el nombre al button seleccionando la propiedad Name, y cambiando el valor de la columna junto a esta a btnSaludo.

Ø Colocar un titulo sobre el segundo botón seleccionando la propiedad Text, y cambiar el valor de la columna junto a esta a Terminar. Presionar Enter después de haber cambiado el texto, y en el botón del formulario se reflejará los cambios que se ha realizado.

Ø Cambiar el nombre al segundo button seleccionando la propiedad Name, y cambiar el valor de la columna junto a esta a btnTerminar.

Ø Arrastrar el control label desde el cuadro de herramientas hasta el formulario y colocarlos como lo muestra la figura.

Ø Colocar texto sobre el label seleccionando la propiedad Text, y cambiando el valor de la columna junto a esta a Su nombre es: Presionar Enter después de haber cambiado el texto, y en el botón del label se reflejará los cambios que se ha realizado.

Ø Darle nombre al label, seleccionar la propiedad Name, cambiar el valor de la columna junto a esta a lblMensaje.

Ø Arrastrar otro control label desde el cuadro de herramientas hasta el formulario y colocarlos como lo muestra la figura después del anterior label.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 41: C# Basico Aplicacion Consola

41

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Ø Borrar el texto sobre el label seleccionando la propiedad Text, y borrar lo que hay en la columna . Presionar Enter después de haber borrado el texto, y en el botón del label se reflejará los cambios que se ha realizado.

Ø Darle nombre al label, seleccionando la propiedad Name, cambiar el valor de la columna junto a esta a lblNombreUsuario.

Ø Agregar un evento al control Saludo. 1. Haga doble clic sobre el botón . 2. Ya abierto el editor de código, inserte el siguiente código C# dentro del

evento . btnSaludo_Click private void btnSaludo_Click(object sender, EventArgs e) { lblNombreUsuario.Text = txtNombre.Text;

} En el objeto txtNombre en la propiedad Text queda guardado el nombre del usuario el cual se asigna al objeto label lblNombreUsuario en la propiedad Text y se despliga en el, en la ejecucion de la aplicación.

Ø Agregar un evento al control Terminar

1. Haga doble clic sobre el botón. 2. Ya abierto el editor de código, inserte el siguiente código C# dentro del

evento btnTerminar_Click

private void btnTerminar_Click(object sender, EventArgs e) { Close(); }

El controlador de la orden Terminar simplemente invoca al método Close() del formulario y lo cierra, finalizando la aplicación. Ø Probar la aplicación.

En el menú Depurar haga clic en iniciar o F5 para correr la aplicación.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 42: C# Basico Aplicacion Consola

42

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Ejercicio 14. Explicar cual es el efecto de la secuencia de escape \t y \n. Quitar esta secuencia de la aplicación siguiente y ejecutar nuevamenta el programa . Explicar que es lo que hace el metodo Write using System; class Secuencia { static void Main(string[] args) { Console.Write("\t\t\"LENGUAJE DE PROGRAMACION C#\"\n"); Console.ReadKey(); } } Ejercicio 15. ¿La 5 instrucciones que se realizan con el metodo Write se podria realizar en una sola instrucción? using System; class Secuencia { static void Main(string[] args) { Console.Write("\n\t\t\"LENGUAJE DE PROGRAMACION C#\"\n\n"); Console.Write(" \n CON C# SE APRENDE LA FILOSOFIA DE POO EN:\n"); Console.Write("\t\t APLICACIONES CONSOLA\n"); Console.Write("\t\t APLICACIONES WINDOWS\n"); Console.Write(“\t\t OJO TAMBIEN PROYECTOS WEB\n”); Console.ReadKey(); } } Ejercicio 16 Hacer un algoritmo que, dado dos valores enteros A y B, escriba un mensaje diciendo si A es mayor, A es menor. Inicio Entero a, b Muestre “Entrar el valor de A:”

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 43: C# Basico Aplicacion Consola

43

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Leer a Muestre “entrar el valor de B;” Leer b Si (a>b) Muestre “A es mayor que B” SiNo Muestre “A es menor que B” Fin(si) using System; //programa en C#: dado dos valores enteros A y B, //Escribe un mensaje diciendo si A es mayor, A es menor. class DosMayor { static void Main(string[] args) { int a, b; Console.Write("Entrar el valor de A:"); a = Convert.ToInt32(Console.ReadLine()); Console.Write("Entrar el valor de B:"); b = Convert.ToInt32(Console.ReadLine()); if (a > b) Console.WriteLine("\t\tA es mayor que B"); else onsole.WriteLine("\t\tA es menor que B"); Console.ReadKey(); } } Ejercicio 17 Hacer un algoritmo que, dados dos valores numèricos A y B, escriba un mensaje diciendo si A es mayor, menor o igual a B. Inicio Entero a, b Muestre “Entrar el valor de A:” Leer a Muestre “entrar el valor de B;” Leer b Si (a>b) Muestre “A es mayor que B” SiNo Si (a=b) Muestre “A es igual B” SiNo Muestre “A es menor que B”

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 44: C# Basico Aplicacion Consola

44

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Fin(si) Fin(si) using System; //Programa en C# que, dados dos valores numericos A y B, escribe //un mensaje diciendo si A es mayor, menor o igual a B class Dosmayor2 { static void Main(string[] args) { int a, b; Console.Write("Entrar el valor de A:"); a = Convert.ToInt32(Console.ReadLine()); Console.Write("Entrar el valor de B:"); b = Convert.ToInt32(Console.ReadLine()); if (a > b) Console.Write("A ES MAYOR QUE B\n"); else { if (a == b) Console.Write("A es igual a B"); else Console.Write("A es menor que B"); } Console.ReadKey(); } } Ejercicio 18 Escribir las estructuras que calculen y muestren el valor de X, de acuerdo con lo siguiente: X=0 si Y<A y (A<B<C) X=1 si A<=Y<B X=2 si B<=Y<C X=3 si C<=Y X=4 si no se cumple ninguna de las condiciones anteriores Diseñar el algoritmo.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 45: C# Basico Aplicacion Consola

45

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Inicio Entero a, b,c,y,x Muestre “Entrar el valor de A:” Leer a Muestre “Entrar el valor de B;” Leer b Muestre “Entrar el valor de C;” Leer c Muestre “Entrar el valor de Y;” Leer y Si 1(y<a)and ((a<b) and(b<c)) x=0 SiNo Si 2( a<=y) and (y<b) x=1 SiNo Si3 (b<=y )and (y<c) x=2 siNo Si4(c<=y) x=3 SiNo x=4 Fin(Si4) Fin(Si3) Fin(Si2) Fin(Si1) Fin(Inicio) using System; //Programa en C# que calcula y muestra //el valor de X, de acuerdo con lo siguiente: //X=0 si Y<A y (A<B<C) //X=1 si A<=Y<B //X=2 si B<=Y<C //X=3 si C<=Y //X=4 si no se cumple ninguna de las condiciones anteriores. class CCondicional {

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 46: C# Basico Aplicacion Consola

46

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

static void Main(string[] args) { int a,b,y,c,x; Console.Write("Entrar el valor de Y:"); y=Convert.ToInt32(Console.ReadLine()); Console.Write("Entrar el valor de A:"); a=Convert.ToInt32(Console.ReadLine()); Console.Write("Entrar el valor de B:"); b=Convert.ToInt32(Console.ReadLine()); Console.Write("Entrar el valor de C:"); c=Convert.ToInt32(Console.ReadLine()); if((y<a)&&((a<b)&&(b<c))) x=0; else { if((a<=y)&&(y<b)) x=1; else { if((b<=y)&&(y<c)) x=2; else { if(c<=y) x=3; else x=4; } } } Console.WriteLine("valor de X es:"+x); Console.ReadKey(); } } Ejercicio 19: Diseñar un algoritmo que encuentre la suma de los primeros N numeros enteros. Inicio Entero numero,suma,cont Contß0 Sumaß0 muestre “Entrar N:” leer numero

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 47: C# Basico Aplicacion Consola

47

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Mientras (cont<numero) contß cont + 1 sumaß suma + cont Fin(Mientras) Muestre “La suma es:” , suma Fin(Inicio) using System; //Programa en C# que encuentra la suma de los primeros //N numeros enteros. class CSumaNnumeros { static void Main(string[] args) { int numero, suma = 0, cont = 0; Console.Write("Entrar N:"); numero = Convert.ToInt32(Console.ReadLine()); while (cont < numero) { cont = cont + 1; suma = suma + cont; } Console.Write("La suma es:" + suma); Console.ReadKey(); } } Ejercicio 20 Cierta Universidad para liquidar el pago de matriculas de N estudiantes exige los siguientes datos: Identificacion,Patrimonio,estrato Social.La universidad cobra un valor constante para cada estudiante de $50.000. Si el patrimonio es mayor que $2000000 y el estrato superior a 3, se le incrementa un porcentaje del 3% sobre elpatrimonio. Hacer el algoritmo y el programa en C# que muestre: Identificacion,,pago de matricula. Inicio iden,estrato,N,cont: Entero PagoMatricula, Patrimonio: Real

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 48: C# Basico Aplicacion Consola

48

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

contß0 Muestre “Ingresar numero de estudiantes:” leer N Mientras (cont<N) contßcont+1 muestre “Ingresar Identificacion:") leer iden Muestre “ingresar estrato social:” leer estrato Muestre “Ingresar patrimonio:” leer Patrimonio PagoMatricula = 50000 Si(Patrimonio >2000000) and (estrato>3) PagomatriculaßPagoMatricula + 0.03*Patrimonio Fin(Si) Muestre “El estudiante con identificacion:” , iden, “Debe pagar:”, PagoMatricula Fin(Mientras) Fin(inicio) using System; //cierta Universidad para liquidar el pago de matriculas de N //estudiantes exige los siguientes datos: //Identificacion,Patrimonio,estrato Social. //La universidad cobra un valor constante para cada estudiante de //$50.000. Si el patrimonio es mayor que $2000000 y el estrato //superior a 3, se le incrementa un porcentaje del 3% sobre el //patrimonio. Programa en C# que muestra: //Numero de inscripcion,Cedula,pago de matricula Class CLiquidacion { static void Main(string[] args) { int iden, estrato, N, cont; cont = 0; double PagoMatricula, Patrimonio; Console.Write("Ingresar Numero de estudiantes:"); N = Convert.ToInt32(Console.ReadLine()); while (cont < N) { cont = cont + 1; Console.Write("\nIngresar Identificacion:"); iden = Convert.ToInt32(Console.ReadLine()); Console.Write("Ingresar Estrato Social:"); estrato = Convert.ToInt32(Console.ReadLine()); Console.Write("Ingresar patrimonio:"); Patrimonio = Convert.ToDouble(Console.ReadLine()); PagoMatricula = 50000;

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 49: C# Basico Aplicacion Consola

49

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

if ((Patrimonio > 2000000) && (estrato > 3)) { PagoMatricula = PagoMatricula + 0.03 * Patrimonio; } Console.Write("\nEl estudiante con Identificacion:" + iden + "\tDebe pagar:" + PagoMatricula); Console.ReadKey(); //Console.Clear(); } } } Ejercicio 21 Diseñar un programa en C# que permita leer un numero no conocido de datos y encontrar la suma. ¿Este es un esquema Cualitativo o Cuantitativo explicar la respuesta..? using System; using System.Collections.Generic; using System.Text; namespace Caracter { class CCaracter { static void Main(string[] args) { string res; int cont = 0, Num, suma = 0; //res = "s"; do { Console.Write("Leer Valor del Numero:"); Num = Convert.ToInt32(Console.ReadLine()); suma = suma + Num; cont = cont + 1; Console.Write("Entrar s para continuar y cualquier otra tecla para terminar: "); res = Console.ReadLine(); } while (res == "s"); Console.WriteLine("Numeros Leidos:”+cont+”\tSuma de los numeros{1} "+ suma); Console.ReadKey();

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 50: C# Basico Aplicacion Consola

50

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

} } } Ejemplo 22 Ciclo para Una secretaria olvido la clave de dos digitos para entrar al sistema, diseñar el algoritmo y el programa en C# que le permita ver todas las posibles combinaciones de la clave, para tratar de recordar la clave. Inicio I,j:Enteros Inicio I=0 I,j:Enteros J=0 para1 iß0,9,1 Mientras1(i<=o) J=0 para2 jß0,9,1 Mientras2(j<=9) Muestre “Combinaciones:”,i,j Muestre “Combinaciones:”,i,j Fin(para2) Jßj+1 Fin(para1) Fin(Mientras2) ißi+1 Fin(inicio) Fin(Mientras1) Fin(Inicio) using System; class CSecretaria { static void Main(string[] args) { int i=0, j=0;

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 51: C# Basico Aplicacion Consola

51

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

while( i <= 9) { j = 0; while (j <= 9) { Console.WriteLine("Combinaciones:" + i + j); Console.ReadKey(); j += 1;//j=j+1; } i += 1;//i=i+1; } } } using System; class CSecretaria { static void Main(string[] args) { int i, j; for (i = 0; i <= 9; i++) { for (j = 0; j <= 9; j++) { Console.WriteLine("Combinaciones:" + i + j); Console.ReadKey(); } } } } Ejercicio 23 Ciclo para con decremento Se tiene 100 cervezas en una mesa, si se toma de a una cerveza. Mostrar el numero de cervezas que va quedando en la mesa. using System; class Cervezas { static void Main(string[] args) { for (int i = 100; i > 0; i -= 1)

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 52: C# Basico Aplicacion Consola

52

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

{ Console.WriteLine("Cervezas en la mesa:" + i); Console.ReadKey(); } } } Ejercicio 24 Diseñar un algoritmo y el programa en C# que permita leer y sumar una cantidad no determinada de números enteros. Comparar la instrucción para mostrar el resultado del programa del ejercicio 21 con este. using System; using System.Collections.Generic; using System.Text; namespace Caracter { class CCaracter { static void Main(string[] args) { string res; int cont = 0, Num, suma = 0; //res = "s"; do { Console.Write("Leer Valor del Numero:"); Num = Convert.ToInt32(Console.ReadLine()); suma = suma + Num; cont = cont + 1; Console.Write("Entrar s para continuar y cualquier otra tecla para terminar: "); res = Console.ReadLine(); } while (res == "s"); Console.WriteLine("Numeros Leidos:{0}\tSuma de los numeros{1} ", cont, suma); Console.ReadKey(); } }

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 53: C# Basico Aplicacion Consola

53

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

} Ejercicio 25 Diseñar un algoritmo y el programa en C# que permita al usuario entrar valores entre 1 y 3. Si el valor ingresado es 1 se debe visualizar en la consola: Voy a Cine.... Y comere crispeta... Si el valor ingresado es 2 se debe visualizar en la consola: Estudio Algoritmo... Y programo en C#... Si el valor ingresado es 3 se debe visualizar en la consola: Voy a futbol... Y disfruto.... using System; class Casos { static void Main(string[] args) { int Opcion; Console.Write("Entrar Opcion:"); Opcion = Convert.ToInt32(Console.ReadLine()); switch (Opcion) { case 1: Console.WriteLine("Voy a Cine...."); Console.WriteLine("Y comere crispeta..."); break; case 2: Console.WriteLine("Estudio Algoritmo..."); Console.WriteLine("Y programo en C#..."); break; case 3: Console.WriteLine("Voy a futbol..."); Console.WriteLine("Y disfruto...."); break; default: Console.WriteLine("Opcion no permitida"); break; } Console.ReadKey(); } }

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 54: C# Basico Aplicacion Consola

54

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Ejercicio 26 Diseñar el algoritmo y el programa en C# que determine si tres lados conforman un triangulo y si el triangulo es equilatero, isosceles o escaleno. Resolver el algoritmo Para N posibles valores de triangulos. Tres lados conforma un triangulo si: L1<L2+L3 y L2<L1+L3 y L3<L1+L2 Un triangulo es equilátero: L1=L2=L3 Un triangulo es Isósceles: L1=L2 o L1=L3 o L2=L3 Un triangulo es escaleno: L1<>L2<>L3 using System; class Triangulo { static void Main(string[] args) { int L1,L2,L3,N,I; Console.Write("\tIngresar Numero de posibles triangulos:"); N=Convert.ToInt32(Console.ReadLine()); for(I=1;I<=N;I++) { Console.Write("\tIngresar Lado 1:"); L1=Convert.ToInt32(Console.ReadLine()); Console.Write("\tIngresar Lado 2:"); L2=Convert.ToInt32(Console.ReadLine()); Console.Write("\tIngresar Lado 3:"); L3=Convert.ToInt32(Console.ReadLine()); if((L1<=L2+L3)&&(L2<=L1+L3)&&(L3<=L2+L1)) { if((L1==L2)&&(L2==L3)) { Console.Write("\nTriangulo equilatero..\n"); } else { if((L1==L2)||(L1==L3)||(L2==L3)) { Console.Write("\nTriangulo Isoceles...\n");

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 55: C# Basico Aplicacion Consola

55

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

} else { Console.Write("\n Triangulo Escaleno...\n"); } } } else Console.WriteLine("Los tres lados no conforman triangulos...\n"); } Console.ReadKey(); } } Ejercicio 27 : En un programa deportivo se ha concluido que la duracion de la sesion de practica depende del peso de las persona y de las condiciones que presenta en la revision medica. La revision medica califica a las personas como de condicion 3,4,5 o 6. El tiempo de cada persona es igual al peso por una rata que se basa en su condicion ; esta es respectivamente: 0.15,021,0.22 y 0.26. using System; class Tiempo { static void Main(string[] args) { int Categoria; double TiempoSesion, Peso; Console.Write("\nEntrar peso del Atleta:"); Peso = Convert.ToDouble(Console.ReadLine()); Console.Write("\nEntrar categoria"); Categoria = Convert.ToInt32(Console.ReadLine()); switch (Categoria) { case 3: TiempoSesion = Peso * 0.15; break; case 4: TiempoSesion = Peso * 0.21; break; case 5: TiempoSesion = Peso * 0.22;

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 56: C# Basico Aplicacion Consola

56

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

break; case 6: TiempoSesion = Peso * 0.26; break; default: Console.WriteLine("Opcion no permitida..."); Console.ReadKey(); return; } Console.WriteLine("Tiempo de sesion para el atleta es:" + TiempoSesion); Console.ReadKey(); } } Ejercicio 28 Diseñar un programa en C# que permita generar números aleatorios entre 1 y 9. using System; class Aleatorios { static void Main(string[] args) { int n = 0,i; for (i = 1; i <= 10; i++) { Random tiro = new Random(); n = tiro.Next(1, 10); Console.WriteLine("El numero lanzado por el PC fue: "+ n); Console.ReadLine(); } } } Ejercicio 29 Diseñar un algoritmo que permita leer un numero entero y muestre si ese numero es par o impar para ambos casos mostrar el valor del numero. using System;

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 57: C# Basico Aplicacion Consola

57

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

class CParImpar { static void Main(string[] args) { int Numero, Residuo; Console.Write("Ingresar Numero:"); Numero = Convert.ToInt32(Console.ReadLine()); Residuo = Numero % 2; if (Residuo == 0) { Console.WriteLine("Numero Par...."); System.Console.WriteLine("valor:" + Numero); } else { System.Console.WriteLine("Numero Impar"); System.Console.WriteLine("Valor:" + Numero); } Console.ReadKey(); } } Ejercicio 30 Suponga que una tienda en particular vende todas sus mercancias a un precio de $1000 o menos. Suponga, ademas, que todos los compradores pagan con una moneda de $1000 todas sus compras. Diseñe un algoritmo para leer los precios de los articulos vendidos y para calcular el numero de monedas que debe dar a cambio, de tal manera, que devuelva un minimo de moneda fraccionaria.Solo se permite monedas de 1000, 500,200,100,50. Por ejemplo, si el precio de la venta es de $450, el cambio debe ser una moneda de $500 y una moneda de $50. El objetivo es no utilizar if anidados, para ello se pide utilizar la funcion modular, o el concepto de division entera. Informacion de entrada ValorCompra: Valor invertido en la compra (Entera) Pago: Valor de las monedas con la que se va a pagar.(Para el problema por lo especificado en clase se pudo asumir como un valor constante de 1000) (Entera) devuelta: variable utilizada para guardar la devuelta de la compra.(Entera) Inicio ValorCompra, Pago, devuelta: Entero Muestre “Ingrese el valor de la compra: " leer ValorCompra Muestre “Ingrese el valor del pago: " leer Pago devuelta = Pago - ValorCompra Muestre "Su devuelta es: " , devuelta , " pesos” Si(devuelta Mod 100 = 50)

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 58: C# Basico Aplicacion Consola

58

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Muestre "Moneda de 50 pesos" devuelta = devuelta - 50; Fin(si) Si(devuelta >= 500) Muestre "Moneda de 500 pesos" devuelta = devuelta - 500 Fin(Si) Casos(devuelta) 400: Muestre"Moneda de 200 pesos" Muestre "Moneda de 200 pesos" 300: Muestre "Moneda de 200 pesos" Muestre "Moneda de 100 pesos" 200: Muestre "Moneda de 200 pesos" 100: muestre “Moneda de 100 pesos" Fin(Casos) Fin(Inicio) using System; //utiliza el espacio de nombres System namespace DevueltaMonedas { class CDevuelta { //punto de entrada y salida del programa static void Main(string[] args) { int ValorCompra, Pago, devuelta; Console.Write("\n\tIngrese el valor de la compra: "); ValorCompra = Convert.ToInt32(Console.ReadLine()); Console.Write("\n\tIngrese el valor del pago: "); Pago = Convert.ToInt32(Console.ReadLine()); devuelta = Pago - ValorCompra; Console.Write("\n\n\n\n\tSu devuelta es: " + devuelta + " pesos\n”); if (devuelta % 100 == 50) { Console.WriteLine("\n\tMoneda de 50 pesos"); devuelta = devuelta - 50; } if (devuelta >= 500) { Console.WriteLine("\n\tMoneda de 500 pesos"); devuelta = devuelta - 500; } switch (devuelta) { case 400: Console.WriteLine("\n\tMoneda de 200 pesos");

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 59: C# Basico Aplicacion Consola

59

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Console.WriteLine("\n\tMoneda de 200 pesos"); break; case 300: Console.WriteLine("\n\tMoneda de 200 pesos"); Console.WriteLine("\n\tMoneda de 100 pesos"); break; case 200: Console.WriteLine("\n\tMoneda de 200 pesos"); break; case 100: Console.WriteLine("\n\tMoneda de 100 pesos"); break; } Console.WriteLine(" "); Console.ReadKey(); } } } Ejercicio 31 Mostrar los digitos de los que esta compuesto un numero entero cualquiera. Informacion de entrada Numero: Valor al que se le va a separar cada unos de sus digitos.(Entero) Otra varibale d: Guarda cada uno de los digitos del numero. (Entera) Inicio Numero,d: Entero Muestre "Ingrese numero entero: " Leer Numero Mientras(Numero<> 0) d = Numero % 10; Muestre "Los digitos son:", d Numero = Numero / 10 Fin(Mientras) Fin(Inicio) using System; namespace digitos { class Program { static void Main(string[] args) { String cNumero; int Numero, d; Console.Write("\n\tIngrese numero entero: ");

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 60: C# Basico Aplicacion Consola

60

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

cNumero = Console.ReadLine(); Numero = Convert.ToInt32(cNumero); while (Numero != 0) { d = Numero % 10; Console.WriteLine("\nLos digitos son:" + d); Console.ReadKey(); Numero = Numero / 10; } } } } Métodos (Funciones Y Procedimientos) Los métodos son miembros de las clases y pueden realizar una serie de acciones, o devolver un valor ya sea que tengan que calcularlo o no. Pueden recibir o no Parámetros y pueden devolver o no devolver parámetros. + Declaración: tipoRetorno + NombreDelMétodo + [Parámetros] + { cuerpo } Ejercicio 32 Diseñar en C# un método que reciba como parámetro el valor de dos números enteros y retorne la suma, invocarlo desde el método Main. using System; using System.Collections.Generic; using System.Text; namespace MSumaDosNumeros { class CCSumaDosNumeros { static int Suma(int numero1, int numero2) { return numero1 + numero2; } static void Main(string[] args) { int num1,num2,resultado; Console.Write("Entrar el numero1: ");

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 61: C# Basico Aplicacion Consola

61

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

num1=Convert.ToInt32(Console.ReadLine()); Console.Write("Entrar el numero2: "); num2=Convert.ToInt32(Console.ReadLine()); resultado=Suma(num1,num2); Console.WriteLine("El resultado de la suma es:"+resultado); Console.ReadLine(); } } } Los métodos pueden recibir diversos valores desde el exterior, de hecho pueden recibir tantos valores como sea necesario, los valores que se le pasan a un método pueden ser por valor o por referencia, los valores que un método recibe por valor, los recibe como una copia del dato que puede modificar a su gusto sin que se vean afectadas las demás copias de dicho dato, en cambio los valores que un método recibe por referencia son las direcciones a donde se encuentra el dato, al cambiar el dato que hay donde una de estas referencias apuntan cambia el valor para todos aquellos que lo están utilizando, un ejemplo muy sencillo de esto es, en el mundo real un paso de valor por referencia se da si tenemos apuntada la dirección de un amigo, dicha dirección es una referencia al lugar donde vive, es por eso que si vamos al lugar donde apunta la referencia nos encontraremos en la casa de nuestro amigo, una vez allí, si rompemos un vidrio cualquier persona que llegue a ese lugar encontrara la ventana rota, en cambio con los pasos de parámetro por valor se tiene una copia del objeto en si, es decir, en el ejemplo anterior en vez de haber tenido una dirección, habría tenido una casa exactamente igual a la de mi amigo, por lo que si hubiera roto un vidrio, solo mi casa se habría visto afectada. En C# si pasamos un valor a un método se pasa por valor a menos que se le indique lo contrario. No hay límite al número de parámetros que puede recibir o devolver un método pero si no se va a recibir o a devolver ningún valor se puede usar la palabra void para indicarlo. En C# los métodos son sumamente flexibles, es por esto que se puede devolver múltiples valores y nos permite sobrecargarlos, las palabras claves ref y out son las que permiten que un método retorne más de un valor al método que lo invoco. La sobrecarga de métodos permite que un método se comporte de manera diferente en función al tipo de parámetros que recibe y/o del número de Argumentos que le acompañan. Ejercicio 33

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 62: C# Basico Aplicacion Consola

62

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Se tiene las siguientes variables enteras: i1=2,i2=3,resultado1 Y reales: f1=2.14,f2=5.25,resultado2; Se pide diseñar un programa en C# que encuentre la suma de las dos variables reales,encontrar la suma de la variable entera i1 y la real f1. using System; using System.Collections.Generic; using System.Text; namespace EjemSobrecarga { class CCSobrecarga { static int suma( int n1, int n2 ) //Método 1 { return n1+n2; } static float suma( float n1, float n2 ) //Método 2 { return n1+n2; } static float suma( int n1, float n2 ) //Método 3 { return n1+n2; } static void Main(string[] args) { int i1=2,i2=3,resultado1; float f1=2.14F,f2=5.25F,resultado2; resultado1 = suma(i1,i2); //Llamada 1 resultado2 = suma(f1,f2); //Llamada 2

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 63: C# Basico Aplicacion Consola

63

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

resultado2 = suma(i1,f1); //Llamada 3 Console.WriteLine("Suma de dos numeros Enteros:{0}", resultado1); Console.WriteLine("Suma de dos numeros Reales:{0}", resultado2); Console.WriteLine("Suma de un numero Entero y uno real:{0}", resultado2); Console.ReadKey(); } } } En este ejemplo en ninguno de los casos hay perdida de precisión debido a que el método haciendo uso de la sobrecarga se adapta a los parámetros que recibe y actúa en consecuencia a ello, es decir si el método suma recibe dos enteros como en la llamada 1 devuelve un número entero empleando para ello el método 1, si recibe dos flotantes devuelve un flotante utilizando para ello el método 2 y si recibe primero un e ntero y luego un flotante responde utilizando el método 3. ref (Referencia de C#) La palabra clave ref produce argumentos que se van a pasar por referencia. El efecto es que cualquier cambio que se realice en el parámetro dentro del método se reflejará en esa variable cuando se devuelva el control al método que realizó la llamada. Para utilizar un parámetro ref, la definición de método y el método de llamada deben utilizar explícitamente la palabra clave ref.

Ejercicio 34

Diseñar un método llamado Método que entregue por referencia el valor de la variable i=44 al programa principal.

using System; class CReferencia { static void Metodo(ref int i) { i = 44; } static void Main() { int val = 0; Metodo(ref val); Console.WriteLine("El valor de Val Ahora es:" + val); Console.ReadKey();

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 64: C# Basico Aplicacion Consola

64

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

}

}

Ejercicio 35 Diseñar un procedimiento que encuentre la suma y el promedio de un conjunto de N números enteros leídos, diseñar también el programa que lo invoque, pasarlo a C#. Parámetro de recibo N: Cantidad de números Tipo: Entero Parámetro de envió Suma: Acumula la suma de los N números Tipo: Entero Promedio: Promedio de los N números Tipo: Real SumaProm( N,Suma, Promedio) i, valor:Entero Suma = 0; Promedio = 0; Para iß1,N,1 Muestre"Entrar Valor:" leer valor Suma=Suma+valor Fin(para) Promedio = Suma / N; Fin(SumaProm) Programa que lo Invoca Inicio argSuma=0, CN,i: Entero argPromedio=0:Real Muestre"Entrar Numeros a Sumar:" leer CN SumaProm(CN, argSuma, argPromedio)

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 65: C# Basico Aplicacion Consola

65

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Muestre "La Suma es:",argSuma,”El promedio es:" , argPromedio Fin(Inicio) using System; class CSumapromedio { static void Main(string[] args) { int argSuma=0, CN; double argPromedio=0; Console.Write("Entrar Numeros a Sumar:"); CN = Convert.ToInt32(Console.ReadLine()); SumaProm(CN, ref argSuma, ref argPromedio); Console.Write("La Suma es:"+argSuma+"\nEl promedio es:" + argPromedio); Console.ReadKey(); } static void SumaProm(int N,ref int Suma, ref double Promedio) { int i, valor; Suma = 0; Promedio = 0; for(i=1;i<=N;i++) { Console.Write("Entrar Valor:"); valor=Convert.ToInt32(Console.ReadLine()); Suma=Suma+valor; } Promedio = Suma / N; } } Ejercicio 37 Diseñar un programa en C# que encuentre la suma de dos números enteros. Con programación orientada a objetos. PENSANDO EN OBJETOS

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 66: C# Basico Aplicacion Consola

66

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Clase: Una clase es la definición de las características concretas de un determinado tipo de objetos. Es una plantilla que permite crear objetos. Está compuesta de datos y métodos. Objetos: Un objeto es un agregado de datos y de métodos que permite manejar dichos datos. Método: Acciones que realizan los objetos o acciones que se pueden realizar sobre los objetos, es la forma de comunicarse los objetos. Los objetos se comunican mediante “mensajes”. Encapsulación: Es el mecanismo que agrupa los métodos y los datos que maneja y los mantiene protegidos frente a cualquier interferencia y mal uso. Cuando el código y los datos están enlazados de esta manera, se ha creado un objeto. Se puede decir que un objeto es un dispositivo que soporta encapsulación. Normalmente, las partes públicas de un objeto se utilizan para proporcionar una interface controlando las partes privadas del objeto. Constructor: Un constructor es un método que debe tener el mismo nombre que la clase, no debe retornar ningún valor, ni siquiera void. Permite crear e inicializar un objeto. Un constructor es invocado automáticamente cuando se crea la instancia, o sea que no hay que llamarlo explícitamente desde el programa principal. Existen tres tipos de constructores: Constructor por defecto , constructor común y constructor de copia. Constructor común: Es aquel que recibe parámetros para asignarlos como valores iníciales a los datos miembros. Sintaxis Para la creación de objeto: Nombre de la clase Nombre del Objeto = new Nombre de la clase(Parametros);

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 67: C# Basico Aplicacion Consola

67

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Para invocar los métodos: Nombre del Objeto.Nombre del método. using System; using System.Collections.Generic; using System.Text; namespace ClaseSuma { class CSuma { private int num1; private int num2; private int resultado; public CSuma(int N1, int N2) { num1 = N1; num2 = N2; } public int MostarNumero1() { return num1; } public int MostrarNumero2() { return num2; } public int Calcular() { resultado = num1 + num2; return resultado; } } //Se termino la clase Csuma class Prueba { static void Main(string[] args) { int numero1, numero2; Console.Write("Entrar numero 1:"); numero1 = Convert.ToInt32(Console.ReadLine()); Console.Write("Entrar numero 2:"); numero2 = Convert.ToInt32(Console.ReadLine()); CSuma obj1 = new CSuma(numero1, numero2);//Crea un objeto //Console.WriteLine("Numero1 es:" + obj1.num1);

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 68: C# Basico Aplicacion Consola

68

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Console.WriteLine("\n\nNUMEROS LEIDOS\n\n"); Console.WriteLine("Numero1 es:" + obj1.MostarNumero1()); Console.WriteLine("Numero2 es:" +obj1.MostrarNumero2()); Console.WriteLine("Resultado es:" + obj1.Calcular()); Console.ReadLine(); } } } TAREA DIGUITAR EL PROGRAMA DEL EJERCICIO 36, DESACTIVAR LA INSTRUCCIÓN //Console.WriteLine("Numero1 es:" + obj1.num1);DEL METODO PRINCIPAL Y EXPLICAR EL ERROR QUE MUESTRA… Ejercicio 37 Elaborar una función que encuentre el factorial de un numero entero mayor o igual a cero. Parámetros de recibo N: Guarda el numero al que se le calcula el factorial. Parámetro s de Envió facto: El factorial del numero. Factorial( N) facto=1,i: Enteros para iß1,N,1 facto=facto*i; fin(para) retorne facto Fin(Factorial) Inicio Num, resufacto:Entero Muestre "Entrar Numero para encontrar el factorial:" leer Num resufacto = Factorial(Num); Muestre “El factorial de:" , Num , "Es:" , resufacto Fin(Inicio) using System; class FactorialNumero { static int Factorial(int N)

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 69: C# Basico Aplicacion Consola

69

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

{ int facto=1,i; for(i=1;i<=N;i++) { facto=facto*i; } return facto; } static void Main(string[] args) { int Num, resufacto; Console.Write("Entrar Numero para encontrar el factorial:"); Num = Convert.ToInt32(Console.ReadLine()); resufacto = Factorial(Num); Console.Write("\nEl factorial de:" + Num + "\tEs:" + resufacto); Console.ReadKey(); } } Ejercicio 38 Diseñar un programa en C# que encuentre el factorial de un numero entero mayor o igual a cero, con programación orientada o objetos. using System; using System.Collections.Generic; using System.Text; namespace Factorial { class CFactorial { private int Facto; private int Numero; public CFactorial(int Num, int Fa) { Numero = Num; Facto = Fa; } public int CalculoFacto() { int i; for (i = 1; i <= Numero; i++) { Facto = Facto * i;

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 70: C# Basico Aplicacion Consola

70

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

} return Facto; } public int MostrarNumero() { return Numero; } static void Main(string[] args) { int num; Console.Write("Entrar Numero:"); num=Convert.ToInt32(Console.ReadLine()); CFactorial obj1=new CFactorial(num,1); Console.WriteLine("El factorial de: " + obj1.MostrarNumero() + " Es: " + obj1.CalculoFacto()); Console.ReadLine(); } } } DISEÑAR LA CLASE PRUEBA PARA LA CLASE CFACTORIAL. Ejercicio 39 Usando la función Factorial del ejercicio 36, elaborar un algoritmo que encuentre el factorial de los primeros N números enteros. using System; //Usando la función Factorial, elaborar un algoritmo //que encuentre el factorial de los primeros //N números enteros. class FactorialNumero { static int Factorial(int N) { int facto = 1, i; for (i = 1; i <= N; i++) { facto = facto * i; } return facto; } static void Main(string[] args)

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 71: C# Basico Aplicacion Consola

71

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

{ int Num, resufacto, j; Console.Write("Entrar Numero para encontrar el factorial:"); Num = Convert.ToInt32(Console.ReadLine()); for (j = 1; j <= Num; j++) { resufacto = Factorial(j); Console.Write("\nEl factorial de:" + j + "\tEs:" + resufacto); Console.ReadKey(); } } } Ejercicio 40 Elaborar una Método que determine si un número es primo o no. Y pasarlo a C#. Parámetros de recibo N: Numero a evaluar Tipo: Entero Parámetros de envió Respuesta: Dice si el numero es primo o no Tipo Booleano Respuesta almacena true si el numero es primo, false si no lo es. NOTA: Un numero es primo si solo es divisible por la unidad y por si mismo. Se debe chequear si el numero N tiene o no divisores, fuera de 1 y N; esos posibles divisores estarán entre 2 y N/2, por eso no se chequeara si N es divisible por un número mayor a N/2. Para saber si N es divisible por un numero cualquiera k, se puede usar el operador modulo. Este operador devuelve el residuo de una división entera. Por ejemplo 7 modulo 2=3, 4 modulo 2=0. Quiere decir entonces, que si un numero cualquiera N es divisible por k, entonces al dividir N por k el residuo es cero. Si se encuentra que N si es divisible por cualquier numero entre 2 y la mitad de N, quiere decir que N no es primo, por lo tanto se romperá el ciclo. Primo( N) Respuesta=false:Booleana Mitad=N/2,I:Entera I=2; Mientra((I<=Mitad)and(N Mod I<>0)) I=I+1 Fin(Mientras)

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 72: C# Basico Aplicacion Consola

72

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Si(I>Mitad) Respuesta=true SiNo Respuesta=false retorne Respuesta; Fin(Primo) Inicio Numero: Entero Muestre "Entrar numero:" Leer Numero Si(Primo(Numero)=true) Muestre “El numero:",Numero, "Es Primo" SiNo Muestre “El numero:" ,Numero, “No Es Primo" Fin(Inicio) using System; class CNumeroPrimo { static void Main(string[] args) { int Numero; Console.Write("\nEntrar numero:"); Numero=Convert.ToInt32(Console.ReadLine()); if(Primo(Numero)==true) Console.Write("\nEl numero:"+Numero+"\tEs Primo"); else Console.Write("\nEl numero:"+Numero+"\tNo Es Primo"); Console.ReadKey(); } static bool Primo(int N) { bool Respuesta=false; int Mitad=N/2,I; I=2; while((I<=Mitad)&&(N%I!=0)) { I=I+1; } if(I>Mitad) Respuesta=true; else Respuesta=false; return Respuesta;

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 73: C# Basico Aplicacion Consola

73

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

} } Ejercicio 41 Elaborar un procedimiento que muestre cual es el capital generado en cada uno de los N periodos, para un capital inicial, que se invierte a un interes dado, sin retirar los intereses. Parametros de recibo N: Numero de periodos Tipo:Entero capIni:Capital Inicial tipo:Double Inte: tasa de Interes Tipo:Double Parametro de Envio: No tiene InteresAcumulado( N, capIni, Inte) capitalPeriodo:Real capitalPeriodo = capIni; i:Entera para i = 1, N,1 capitalPeriodo = capitalPeriodo + capIni * Inte Muestre "Capital del periodo:" , capitalPeriodo capIni = capitalPeriodo Fin(para) Fin(InteresAcumulado) Inicio capitalIni, interes:Real NP:Entero Muestre"Entrar periodos:" leer NP Muestre "Entrar Capital:" leer capitalIni Muestre "Entrar tasa de Interes:" leer interes InteresAcumulado( NP, capitalIni, interes) Fin(Inicio) using System; class CapitalInteres {

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 74: C# Basico Aplicacion Consola

74

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

static void Main(string[] args) { double capitalIni, interes; int NP; Console.Write("Entrar periodos:"); NP = Convert.ToInt32(Console.ReadLine()); Console.Write("Entrar Capital:"); capitalIni = Convert.ToDouble(Console.ReadLine()); Console.Write("Entrar tasa de Interes:"); interes = Convert.ToDouble(Console.ReadLine()); InteresAcumulado(NP, capitalIni, interes); } static void InteresAcumulado(int N, double capIni,double Inte) { double capitalPeriodo; capitalPeriodo = capIni; int i; for (i = 1; i <= N; i++) { capitalPeriodo = capitalPeriodo + capIni * Inte; Console.WriteLine("Capital del periodo:" + capitalPeriodo); capIni = capitalPeriodo; Console.ReadKey(); } } } Ejercicio 42 Elaborar un algoritmo que muestre los enteros desde 1 hasta N y sus cuadrados, calculados solamente con sumas y utilizando el método propuesto: Numero Cuadrado Método 1 1 1 2 4 1+3 3 9 1+3+5 4 16 1+3+5+7 5 25 1+3+5+7+9 . N. Programar en C# Cuadrados( N) suma=1,i,inc=1 :Enteros

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 75: C# Basico Aplicacion Consola

75

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Muestre "Numero Cuadrado" para i = 1, N, 1 Muestre i , suma inc = inc + 2; suma = suma + inc; fin(para) fin(Cuadrados) Inicio NCuadrados: Enteros Muestre "Entrar N:” leer NCuadrados Cuadrados(NCuadrados); Fin(Inicio) using System; class CuadradosNumeros { static void Main(string[] args) { int NCuadrados; Console.Write("Entrar N:"); NCuadrados = Convert.ToInt32(Console.ReadLine()); Cuadrados( NCuadrados); } static void Cuadrados( int N) { int suma=1,i,inc=1; Console.WriteLine("Numero\tCuadrado"); for (i = 1; i <= N; i++) { Console.Write(+i + "\t" + suma+"\n"); Console.ReadKey(); inc = inc + 2; suma = suma + inc; } } } Ejercicio 43

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 76: C# Basico Aplicacion Consola

76

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Diseñar un programa en C# que permita calcular el área y el perímetro de una superficie rectangular con las siguientes hipótesis: los valores de la longitud y anchuras se leerán en el programa principal , el cálculo del área y el perímetro mediante un procedimiento , y la visualización de los resultados en el programa principal. using System; class CAreaPeri { static void AreaPerimetro(double Longitud, double Anchura, ref double Area, ref double Perimetro) { Area=Longitud*Anchura; Perimetro=2*(Longitud*Anchura); } static void Main(string[] args) { double argAnchura, argLongitud,argArea=0,argPerimetro=0; Console.WriteLine("Entrar anchura:"); argAnchura = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Entrar Longitud:"); argLongitud = Convert.ToDouble(Console.ReadLine()); AreaPerimetro(argLongitud, argAnchura, ref argArea, ref argPerimetro); Console.WriteLine("Area del Rectangulo:" + argArea); Console.WriteLine("Perimetro del Rectangulo" + argPerimetro); Console.ReadLine(); } } Ejercicio 44 Dar una prueba de escritorio al siguiente programa en C# y decir que hace. using System; class CSerie { static double Sumaserie(int N, double X) { int I; double suma = 0;

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 77: C# Basico Aplicacion Consola

77

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

for (I = 1;I <= N; I++) { suma = suma + I * Math.Pow(X, I) / (I + 1); } return suma; } static void Main(String[] args) { int NT=0; double resu, VX; Console.Write("Entrar numero de terminos a generar: "); NT = Convert.ToInt32(Console.ReadLine()); Console.Write("Entrar valor de X:"); VX = Convert.ToDouble(Console.ReadLine()); resu = Sumaserie(NT, VX); Console.WriteLine("La Suma es:" + resu); Console.ReadKey(); } } Ejercicio 45 Diseñar un programa en C# que genere las primera N tablas de multiplicar. using System; class Tablas { static void TablasM(int N) { int I, J, mult; for (I = 1; I <= N; I++) { Console.WriteLine(); for (J = 1; J <= 10; J++) { mult = I * J; Console.WriteLine(I + "X" + J + "=" + mult); Console.ReadKey(); } } } static void Main(String[] args) { int NT; Console.WriteLine("Entrar Numero de tablas a generar:"); NT = Convert.ToInt32(Console.ReadLine()); TablasM(NT); }

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 78: C# Basico Aplicacion Consola

78

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

} Ejercicio 46 Diseñar una funcion matematica Signo(X) definida de la siguiente forma: Signo(X) que retorna: 1 si X>0 0 si X=0 -1 si X<0 using System; class Signos { static int Signo(int X) { int VSigno; if (X > 0) { VSigno = 1; return VSigno; } else { if (X < 0) { VSigno = -1; return VSigno; } else { VSigno = 0; return VSigno; } } } static void Main(String[] args) { int SG; Console.WriteLine("Entrar Valor de X:"); SG = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("El signo de X es:" + Signo(SG)); Console.ReadKey(); } } using System;

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 79: C# Basico Aplicacion Consola

79

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

class Signos { static int Signo(int X) { int VSigno; if (X > 0) { VSigno = 1; } else { if (X < 0) { VSigno = -1; } else { VSigno = 0; } } return VSigno; } static void Main(String[] args) { int SG; Console.WriteLine("Entrar Valor de X:"); SG = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("El signo de X es:" + Signo(SG)); Console.ReadKey(); } } Explicar el siguiente ejercicio. using System; class Signos { static void Signo(int X,ref int VSigno) { if (X > 0) { VSigno = 1;

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 80: C# Basico Aplicacion Consola

80

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

} else if (X < 0) { VSigno = -1; } else { VSigno = 0; } } static void Main(String[] args) { int SG,argValorS=0; Console.WriteLine("Entrar Valor de X:"); SG = Convert.ToInt32(Console.ReadLine()); Signo(SG, ref argValorS); Console.WriteLine("El signo de X es:" + argValorS); Console.ReadKey(); } } Ejercicio 47 Diseñar un programa en C# que encuentre la suma de los primeros N términos de la sucesión de FIBONACCI. Esta se genera empezando por los números 0 y 1 y calculando cada nuevo miembro como la suma de los dos miembros precedentes de la sucesión, así: 0 1 1 2 3 5 8 13 using System; class Fibonacci { static int SerieFib(int N) { int ter1 = 0, ter2 = 1, terN, suma = 1,i; Console.WriteLine(ter1); Console.WriteLine(ter2); for (i = 3; i <= N; i++) {

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 81: C# Basico Aplicacion Consola

81

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

terN = ter1 + ter2; suma = suma + terN; Console.WriteLine(terN); Console.ReadKey(); ter1 = ter2; ter2 = terN; } return suma; } static void Main(String[] args) { int NT, resul; Console.WriteLine("Entrar Numero de terminos:"); NT = Convert.ToInt32(Console.ReadLine()); resul = SerieFib(NT); Console.WriteLine("El valor de la suma es:" + resul); Console.ReadKey(); } } Ejercicio 48 Dar prueba de escritorio y decir que hace el siguiente programa en C#. using System; class Horario { static void Horarios() { int I, J; for (I = 11; I <= 11; I++) { for (J = 0; J <= 59; J++) { Console.WriteLine("HORA:" + I + "MINUTOS:" + J); Console.ReadKey(); } } Console.WriteLine("HORA:12 MINUTOS:00"); Console.ReadKey(); } static void Main(String[] args) {

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 82: C# Basico Aplicacion Consola

82

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Horarios(); } } Ejercicio 49 Diseñar un procedimiento en C# para intercambiar los valores de dos variables. using System; class Intercambio { static void Cambiar( ref int a,ref int b) { int aux; aux=a; a=b; b=aux; } static void Main(string[] args) { int argA,argB; Console.WriteLine("Entrar valor de A:"); argA=Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Entrar valor de B:"); argB=Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Valor de A es :"+argA); Console.WriteLine("Valor de B es :" + argB); Cambiar(ref argA,ref argB); Console.WriteLine("Cambio de A:" + argA); Console.WriteLine("cambio de B:" + argB); Console.ReadKey(); } }

Vectores y Matrices Arreglo o Vector: Un Arreglo es una estructura de datos que almacena bajo el mismo nombre (variable) a una colección de datos del mismo tipo. Los arreglos se caracterizan porque almacenan los elementos en posiciones contiguas de memoria, Tienen un mismo nombre de variable que representa a todos los elementos. Para hacer referencia a esos elementos es necesario utilizar un índice que especifica el lugar que ocupa cada elemento dentro del archivo. Tipos de Arreglos: Unidimensionales (Vectores), Bidimensionales (Matrices) y Tridimensionales (Cubos) Para hacer referencia a un elemento del vector se usa el nombre del mismo, seguido del índice (entre corchetes), el cual indica una posición en particular del vector. Por ejemplo: Vec[x] Donde: Vec: Nombre del arreglo. x: Numero de datos que constituyen el arreglo

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 83: C# Basico Aplicacion Consola

83

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Representación gráfica de un vector

Arreglos de dos dimensiones o matrices Las matrices son estructuras de datos que organizan su información en forma de tablas; es decir los elementos que la conforman están dispuestos bajo dos conceptos de clasificación (filas, columnas). Para poder indicar el lugar donde se encuentra un determinado elemento, es necesario utilizar dos índices: uno para indicar el lugar el renglón o fila y otro para indicar la columna. Puede mirarse una matriz como un vector de vectores; por lo tanto, es un conjunto de componentes en el que se necesita dos subíndices para identificar un elemento que pertenezca al arreglo. Un arreglo bidimensional N*M tiene N Filas y M Columnas; por lo tanto, tiene N*M elementos dispuestos interiormente en memoria en forma sucesiva. Matriz cuadrada: Cuando el numero de filas es igual al numero de columnas. Por lo tanto, los elementos ubicados en la diagonal principal cumplen que la fila es igual a la columna. Matriz Identidad (I): Es una matriz cuadrada donde los elementos que están ubicados en la diagonal principal son 1 y el resto de elementos tienen el valor de cero. Matriz Simétrica: La matriz simétrica debe cumplir la condición de que el elemento X[ i, k ] = X[ k, i ]. Para una matriz de N * M donde; 1<=I <=N y 1<=k<=M Matriz Transpuesta: la matriz transpuesta de la matriz A de cualquier orden es aquella en la cual las filas de una matriz son las columnas de la otra. Vectores y Matrices en C# Los Vectores y las matrices al igual que las variables hay que: declarar, crear e inicializar. vector Declarar un vector:

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 84: C# Basico Aplicacion Consola

84

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

tipo[] nombre; Tipo : Indica el tipo de los elementos del vector, que pueden ser de cualquier tipo ; y nombre es un identificador que nombra al vector. Los corchetes modifican la definición normal del identificador para que sea interpretado por el compilador como un vector. int[] m; double [] temperatura; La primera línea declara un vector de elementos de tipo int; la segunda un vector de elementos de tipo double. Note que las declaraciones no especifican el tamaño del vector. El tamaño será especificado cuando se cree el vector, operación que se hará durante la ejecución del programa. Crear un Vector: Después de haber declarado un vector, el siguiente paso es crearlo o construirlo. Crear un vector significa reservar la cantidad de memoria necesaria para contener todos sus elementos y asignar al nombre del vector una referencia a este bloque. Esto puede expresarse genéricamente así: Nombre=new tipo[tamaño]; Donde nombre es el nombre del vector previamente declarado; tipo es el tipo de los elementos del vector; y tamaño es una expresión entera positiva, que especifica el número de elementos. El hecho de utilizar el operador new significa que C# implementa los vectores y las matrices como objetos, por lo tanto serán tratados como cualquier otro objeto. Las siguientes líneas de código crean los vectores declarados en el ejemplo anterior: m=new int[10]; temperatura=new double[31]; La primera línea crea un vector identificada por m con 10 elementos de tipo int; es decir, puede almacenar 10 valores enteros; el primer elemento es m[0] (se lee: m sub cero), el segundo m[1],….,y el ultimo m[9]. La segunda crea un vector de 31 elementos de tipo double.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 85: C# Basico Aplicacion Consola

85

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Es bastante común declarar y crear el vector utilizando una sola sentencia. Esto puede hacerse así: tipo[] nombre=new tipo[tamaño]; Las siguientes líneas de código declaran y crean los vectores expuestos en los ejemplos anteriores: Int[] m=new int[10]; double[] temperatura=new double[31]; CUANDO SE CREA UNA MATRIZ Y UN VECTOR, EL TAMAÑO DE LA MISMA PUEDE SER TAMBIEN ESPECIFICADO DURANTE LA EJECUCION A TRAVES DE UNA VARIABLE A LA QUE SE ASIGNARA COMO VALOR EL NUMERO DE LOS ELEMENTOS REQUERIDOS. Ejercicio 50 Diseñar un programa en C# con tres Métodos 2 procedimientos y una función. Ø Procedimiento que se encargue de llenar un vector. Ø Procedimiento que se encargue de mostrar el vector. Ø Una función que se encargue de encontrar el promedio de sus datos. Ø Diseñar el programa que los invoque.

using System; class Vector { static void LlenarVector(int[] Vector) { int i; for (i = 0; i < Vector.Length; i++) { Console.Write("V[" + i + "]="); Vector[i] = Convert.ToInt32(Console.ReadLine()); } } static void Mostrar(int[] Vector) { int i;

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 86: C# Basico Aplicacion Consola

86

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Console.WriteLine("\n\nEl Vector contiene los siguientes valores:"); for (i = 0; i < Vector.Length; i++) { Console.WriteLine("V[" + i + "]=" + Vector[i]); Console.ReadKey(); } } static void Main(string[] args) { int Tn; Console.Write("Entrar tamaño del vector:"); Tn = Convert.ToInt32(Console.ReadLine()); int[] V1 = new int[Tn]; LlenarVector(V1); Mostrar(V1); Console.ReadKey(); } } Ejercicio 51 Diseñar un programa en C# para encontrar la Suma de los elementos del vector ubicados en las posiciones impares. using System; class CSumaImpar { static int SumaImpar1(int[] Vector) { int i, suma = 0; for (i = 1; i < Vector.Length; i = i + 2) { suma = suma + Vector[i]; } return suma; } static void LlenarVector(int[] Vector) { int i; for (i = 0; i < Vector.Length; i++) { Console.Write("V[" + i + "]="); Vector[i] = Convert.ToInt32(Console.ReadLine()); } }

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 87: C# Basico Aplicacion Consola

87

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

static void Mostrar(int[] Vector) { int i; Console.WriteLine("\n\nEl Vector contiene los siguientes valores:"); for (i = 0; i < Vector.Length; i++) { Console.WriteLine("V[" + i + "]=" + Vector[i]); Console.ReadKey(); } } static void Main(string[] args) { int N, resuImpar; Console.WriteLine("Tamaño del Vector:"); N = Convert.ToInt32(Console.ReadLine()); int[] V1 = new int[N]; LlenarVector(V1); resuImpar = SumaImpar1(V1); Console.WriteLine("Suma de las posiciones Impares:" + resuImpar); Console.ReadKey(); } }

Ejercicio 52 Diseñar un programa en C# que permita mostrar el numero de apostadoresque ganaron una poya del partido de futbol de Medellin y Nacional.El numero maximo de apostadores es de 10. Diseñar un procedimiento que permita leer las apuestas de posibles goles hecho por Nacional,Medellin. Pasar por parametro dos vectores que guardan los goles de Medellin y Nacional y su tamaño. Diseñar una funcion que lea los goles con los que termino el partido y retorne el numero de apostadores que ganaron la apuesta. se pasa como parametro los dos vectores y tamaño.Los apostadores se enumeran de acuerdo al orden que se acercan ha hacer sus apuestas. Se utiliza dos vectores en paralelo para guardar las apuestas de cada jugador por el Medellin y el Nacional.

using System; class MedellinNacional {

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 88: C# Basico Aplicacion Consola

88

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

static void LlenarApuestas(int[] Medellin, int[] Nacional, int N) { int i; for (i = 1; i <= N; i++) { Console.WriteLine("Apuestas del Jugador:" + i); Console.Write("Entrar goles de Medellin:"); Medellin[i] = Convert.ToInt32(Console.ReadLine()); Console.Write("Entrar goles de Nacional:"); Nacional[i] = Convert.ToInt32(Console.ReadLine()); } } static int NumeroGanadores(int[] Medellin, int[] Nacional, int N) { int j, ganadores = 0, golHechosNacional, golHechosMedellin; Console.Write("Entrar goles hechos del Medellin:"); golHechosMedellin = Convert.ToInt32(Console.ReadLine()); Console.Write("Entrar goles hechos del Nacional:"); golHechosNacional = Convert.ToInt32(Console.ReadLine()); for (j = 1; j <=N; j++) { if ((Medellin[j] == golHechosMedellin) && (Nacional[j] == golHechosNacional)) { ganadores = ganadores + 1; } } return ganadores; } static void Main(string[] args) { int Njugadores, resu; int[] argMedellin = new int[15]; int[] argNacional = new int[15]; Console.WriteLine("Entrar el numero de jugadores"); Njugadores = Convert.ToInt32(Console.ReadLine()); LlenarApuestas(argMedellin, argNacional, Njugadores); resu = NumeroGanadores(argMedellin, argNacional, Njugadores); Console.WriteLine("Apuestas ganadas:" + resu); Console.ReadKey(); }

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 89: C# Basico Aplicacion Consola

89

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

} Ejercicio 53 En una matriz de 12 x 4 almacenar las calificaciones de 4 materias de un grupo de 12 estudiantes. Elaborar un programa en C# que permita mostrar lo siguiente: La nota promedio de cada estudiante. El numero de estudiantes que aprobaron cada materia. El numero de estudiantes que reprobaron cada materia. La nota promedio de cada materia. Diseñar procedimientos pasando como parametros la matriz para realizar cada uno de los calculos pedidos. using System; using System.Collections.Generic; using System.Text; /*En una matriz de 12 x 4 almacenar las calificaciones de 4 materias de un grupo de 12 estudiantes. Elaborar un programa en C# que permita mostrar lo siguiente: La nota promedio de cada estudiante. El numero de estudiantes que aprobaron cada materia. El numero de estudiantes que reprobaron cada materia. La nota promedio de cada materia. Diseñar procedimientos pasando como parametros la matriz para realizar cada uno de los calculos pedidos.*/ namespace punto2Examen { class CPromedio { //NOTA PROMEDIO DE CADA ESTUDIANTE SE RECORRE POR FILAS static void promedioEstudiante(double[,] Notas, int NF, int NC) { double NotaPromedio=0,Prom=0; int i, j; for (i = 1; i <= NF; i++) { for (j = 1; j <= NC; j++) { NotaPromedio = NotaPromedio + Notas[i,j]; }

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 90: C# Basico Aplicacion Consola

90

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Prom= NotaPromedio/4; Console.WriteLine("Estudinate:"+i+"\tNota Promedio:"+Prom); NotaPromedio=0; } } //ESTUDIANTES QUE GANARON CADA MATERIA SE RECORRE cada COLUMNA static void GanadoresMateria(double[,]Notas,int NF,int NC) { int i,j,Ganador=0; for (i=1;i<= NC;i++) { for (j=1;j<= NF; j++) { if(Notas[j,i]>=3.0) Ganador=Ganador+1; } Console.WriteLine("Materia:"+i+ "\tGanadores:"+Ganador); Ganador=0; } } //ESTUDIANTES QUE REPROBARON CADA MATERIA static void PerdedoresMateria(double[,]Notas,int NF,int NC) { int Perdedor=0,i,j; for (i = 1; i <= NC; i++) { for (j = 1; j <= NF; j++) { if(Notas[j,i]<3.0) Perdedor=Perdedor+1; } Console.WriteLine("Materia:"+i+"\tNumero Estudiante:"+Perdedor); Perdedor=0; } } //NOTA PROMEDIO DE CADA MATERIA SE RECORRE LA MATRIZ POR COLUMNA static void promedioMateria(double[,]Notas,int NF,int NC) {

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 91: C# Basico Aplicacion Consola

91

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

double SumaProm=0,Prom; int i, j; for (i = 1; i <= NC; i++) { for (j = 1; j <= NF; j++) { SumaProm = SumaProm + Notas[j, i]; } Prom=SumaProm/NC; Console.WriteLine("Materia:"+i+"\tNota Promedio es : "+Prom); SumaProm=0; } } //LLENANDO LA MATRIZ POR FILA static void LlenarMatriz(double[,] Notas, int NF, int NC) { int i, j; for(i=1;i<=NF;i++) { for(j=1;j<=NC;j++) { Console.Write("Matriz[" + i+","+j + "]="); Notas[i,j]=Convert.ToDouble(Console.ReadLine()); } } } static void MostrarMatriz(double[,] Notas, int NF, int NC) { int i,j; Console.WriteLine("La Matriz contiene los siguientes valores:"); for(i=1;i<=NF;i++) { for(j=1;j<=NC;j++) { Console.WriteLine("Matriz[" + i+","+j + "]="+Notas[i,j]); Console.ReadKey(); } } } static void Main(string[] args) {

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 92: C# Basico Aplicacion Consola

92

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

double[,] M1 = new double[20, 20]; int NumF, NumC; Console.Write("Entrar Numero de Estudiantes:"); NumF = Convert.ToInt32(Console.ReadLine()); Console.Write("Entrar Numero de Materias:"); NumC = Convert.ToInt32(Console.ReadLine()); LlenarMatriz(M1, NumF, NumC); MostrarMatriz(M1, NumF, NumC); Console.WriteLine("La nota promedio de cada estudiante es:"); promedioEstudiante(M1,NumF,NumC); Console.WriteLine("Numero de estudiantes que ganaron cada materia:"); GanadoresMateria(M1,NumF,NumC); Console.WriteLine("Numero de estudiantes que perdieron cada materia:"); PerdedoresMateria(M1, NumF, NumC); Console.WriteLine("Nota promedio de cada materia:"); promedioMateria(M1, NumF, NumC); Console.ReadKey(); } } } Ejercicio 54 Diseñar un programa en C# con procedimientos que permita llenar un vector y una matriz entra y mostrar los datos leidos para el vector y la matriz. Pasar por parametros el vector y la matriz como su tamaño. using System; class VectorMatriz { static void LlenarVector(int[] Vector, int N) { int i; for (i = 1; i <= N; i++) { Console.Write("V[" + i + "]="); Vector[i] = Convert.ToInt32(Console.ReadLine()); } }

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 93: C# Basico Aplicacion Consola

93

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

static void Mostrar(int[] Vector, int N) { int i; Console.WriteLine("\n\nEl Vector contiene los siguientes valores:"); for (i = 1; i <= N; i++) { Console.WriteLine("V[" + i + "]=" + Vector[i]); Console.ReadKey(); } } static void LlenarMatriz(int[,] Matriz, int NF, int NC) { int i, j; for(i=1;i<=NF;i++) { for(j=1;j<=NC;j++) { Console.Write("Matriz[" + i+","+j + "]="); Matriz[i,j]=Convert.ToInt32(Console.ReadLine()); } } } static void MostrarMatriz(int[,] Matriz, int NF, int NC) { int i,j; Console.WriteLine("La Matriz contiene los siguientes valores:"); for(i=1;i<=NF;i++) { for(j=1;j<=NC;j++) { Console.WriteLine("Matriz[" + i+","+j + "]="+Matriz[i,j]); Console.ReadKey(); } } } static void Main(string[] args) { int[] V1 = new int[10]; int[,] M1 = new int[10, 10]; int TA, NumF, NumC; Console.Write("Entrar tamaño del Vector:"); TA = Convert.ToInt32(Console.ReadLine()); LlenarVector(V1, TA); Mostrar(V1, TA); Console.Write("Entrar Numero de filas:"); NumF = Convert.ToInt32(Console.ReadLine()); Console.Write("Entrar Numero de Columnas:");

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 94: C# Basico Aplicacion Consola

94

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

NumC = Convert.ToInt32(Console.ReadLine()); LlenarMatriz(M1, NumF, NumC); MostrarMatriz(M1, NumF, NumC); } } Ejercicio 55 Diseñar un programa en C# que permita pasar una matriz a un vector. using System; class CPasaMatrizVec { static void LlenarMatriz(int[,] Matriz, int NF, int NC) { int i, j; for(i=1;i<=NF;i++) { for(j=1;j<=NC;j++) { Console.Write("Matriz[" + i+","+j + "]="); Matriz[i,j]=Convert.ToInt32(Console.ReadLine()); } } } static void MostrarV(int[] Vector, int N) { int i; Console.WriteLine("\n\nEl Vector contiene los siguientes valores:"); for (i = 1; i <= N; i++) { Console.WriteLine("V[" + i + "]=" + Vector[i]); Console.ReadKey(); } } static void MostrarMatriz(int[,] Matriz, int NF, int NC) { int i,j; Console.WriteLine("La Matriz contiene los siguientes valores:"); for(i=1;i<=NF;i++) { for(j=1;j<=NC;j++) { Console.WriteLine("Matriz[" + i+","+j + "]="+Matriz[i,j]); Console.ReadKey();

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 95: C# Basico Aplicacion Consola

95

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

} } } static void MatrizVector(int [,]Matriz,int [] Vector,int NF,int NC,ref int cont) { int i, j; cont = 0; for(i=1;i<=NF;i++) { for(j=1;j<=NC;j++) { cont=cont+1; Vector[cont]=Matriz[i,j]; } } } static void Main(string [] args) { int [,] M1=new int[10,10]; int [ ] V1=new int[100]; int argCont=0,NumF,NumC; Console.Write("Entrar Numero de filas:"); NumF = Convert.ToInt32(Console.ReadLine()); Console.Write("Entrar Numero de Columnas:"); NumC = Convert.ToInt32(Console.ReadLine()); LlenarMatriz(M1,NumF,NumC); MostrarMatriz(M1,NumF,NumC); MatrizVector(M1,V1,NumF,NumC,ref argCont); MostrarV(V1,argCont); } } Ejercicio 56 Diseñar un programa en C# que permita encontrar el elemento mayor de una matriz y la posicion donde se encuentra. using System; class Mayores { static void LlenarMatriz(int[,] Matriz, int NF, int NC) {

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 96: C# Basico Aplicacion Consola

96

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

int i, j; for (i = 1; i <= NF; i++) { for (j = 1; j <= NC; j++) { Console.Write("Matriz[" + i + "," + j + "]="); Matriz[i, j] = Convert.ToInt32(Console.ReadLine()); } } } static void MayorMatriz(int[,] Matriz, int NF, int NC, ref int ValorMayor, ref int PosFila, ref int PosC) { int i, j; ValorMayor = Matriz[1,1]; for (i = 1; i <= NF; i++) { for (j = 1; j <= NC; j++) { if (Matriz[i, j]>ValorMayor) { ValorMayor = Matriz[i, j]; PosFila = i; PosC = j; } } } } static void MostrarMatriz(int[,] Matriz, int NF, int NC) { int i, j; Console.WriteLine("La Matriz contiene los siguientes valores:"); for (i = 1; i <= NF; i++) { for (j = 1; j <= NC; j++) { Console.WriteLine("Matriz[" + i + "," + j + "]=" + Matriz[i, j]); Console.ReadKey(); } } } static void Main(string[] args)

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 97: C# Basico Aplicacion Consola

97

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

{ int[,] M1 = new int[10, 10]; int NumF, NumC,PosF=0,PosC=0,ValM=0; Console.Write("Entrar Numero de filas:"); NumF = Convert.ToInt32(Console.ReadLine()); Console.Write("Entrar Numero de Columnas:"); NumC = Convert.ToInt32(Console.ReadLine()); LlenarMatriz(M1, NumF, NumC); MostrarMatriz(M1, NumF, NumC); MayorMatriz(M1, NumF, NumC,ref ValM,ref PosF,ref PosC); Console.Write("Valor mayor de la matriz es:"+ValM+"Fila ES:"+NumF+"Columna es:"+PosC); Console.ReadKey(); } } Ejercicio 57 Diseñar un programa en C# que permita: Ø Econtrar la suma de los elementos ubicados en la diagonal principal

mediante una funcion.

Ø Encontrar la transpuesta de la matriz leida

using System; class CdiagonalTranspuesta { static void Transpuesta(int [,]Matriz,int[,] Tran,int N) { int i,j; for(i=1;i<=N;i++) { for(j=1;j<=N;j++) { Tran[j,i]=Matriz[i,j]; } } } static int SumaDiagonal(int[,]Matriz, int N) {

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 98: C# Basico Aplicacion Consola

98

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

int i, sumaD = 0; for (i = 1; i <= N; i++) { sumaD = sumaD+Matriz[i,i]; } return sumaD; } static void LlenarMatriz(int[,]Matriz, int N) { int i, j; for (i = 1; i <= N; i++) { for (j = 1; j <= N; j++) { Console.Write("Matriz[" + i + "," + j + "]="); Matriz[i, j] = Convert.ToInt32(Console.ReadLine()); } } } static void MostrarMatriz(int[,] Matriz, int N) { int i, j; Console.WriteLine("La Matriz contiene los siguientes valores:"); for (i = 1; i <= N; i++) { for (j = 1; j <= N; j++) { Console.WriteLine("Matriz[" + i + "," + j + "]=" + Matriz[i, j]); Console.ReadKey(); } } } static void MostrarMatrizC(int[,] Matriz, int N) { int i, j; Console.WriteLine("La Matriz transpuesta es:"); for (i = 1; i <= N; i++)

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 99: C# Basico Aplicacion Consola

99

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

{ for (j = 1; j <= N; j++) { Console.WriteLine("Matriz[" + j + "," + i + "]=" + Matriz[j, i]); Console.ReadKey(); } } } static void Main(string[] args) { int [,] M1= new int[10,10]; int[,] M2 = new int[10, 10]; int NT,resu; Console.WriteLine("Entrar tamaño de la matriz:"); NT=Convert.ToInt32(Console.ReadLine()); LlenarMatriz(M1,NT); MostrarMatriz(M1,NT); resu = SumaDiagonal(M1, NT); Console.WriteLine("El valor de la suma de la diagonal Principal es:"+resu); Console.WriteLine("La matriz transpuesta es:"); Transpuesta(M1,M2,NT); MostrarMatrizC(M2,NT); Console.ReadKey(); } } Ejercicio 58 Diseñar un programa en C# que borre un elemento de un vector. using System; using System.Collections.Generic; using System.Text; namespace BorrarVector { class Borrar { static void LlenarVector(int[] A, int N) { int i; for (i = 1; i <= N; i++) { Console.Write("V[" + i + "]="); A[i] = Convert.ToInt32(Console.ReadLine());

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 100: C# Basico Aplicacion Consola

100

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

} } static void Mostrar(int[] A , int N) { int i; Console.WriteLine("\n\nEl Vector contiene los siguientes valores:"); for (i = 1; i <= N; i++) { Console.WriteLine("V[" + i + "]=" + A[i]); Console.ReadKey(); } } static void BorrarValor(ref int TV, int[] A, int ValorB) { int I=1,K; Console.WriteLine("Entro a buscar elemento para borrar..."); while ((I <= TV) && (ValorB != A[I])) { I = I + 1; } if (I <= TV) { for (K = I;K<=(TV - 1); K++) { A[K] = A[K + 1]; } TV = TV - 1; } else { Console.Write("Valor no esta en el arreglo.."); Console.ReadKey(); } } static void Main(string[] args) { int [] V1=new int[20]; int TA,vb; Console.WriteLine("Entrar Tamaño del Vector:"); TA=Convert.ToInt32(Console.ReadLine()); LlenarVector(V1,TA); Mostrar(V1,TA); Console.WriteLine("Entrar valor a Borrar..");

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 101: C# Basico Aplicacion Consola

101

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

vb = Convert.ToInt32(Console.ReadLine()); BorrarValor(ref TA, V1, vb); Mostrar(V1, TA); } } } Ejercicio 59 Diseñar un programa en C# con el siguiente menu:

1. Llenar Matriz\n; 2. Mostrar Matriz; 3.Sumar Diagonal Principal 4.Hallar Transpuesta 5.Salir ENTRAR OPCION---> using System; class Menu { static void Transpuesta(int [,]Matriz,int[,] Tran,int N) { int i,j; for(i=1;i<=N;i++) { for(j=1;j<=N;j++) { Tran[j,i]=Matriz[i,j]; } } } static int SumaDiagonal(int[,]Matriz, int N) { int i, sumaD = 0; for (i = 1; i <= N; i++) { sumaD = sumaD+Matriz[i,i]; } return sumaD; } static void LlenarMatriz(int[,]Matriz, int N) { int i, j; for (i = 1; i <= N; i++) {

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 102: C# Basico Aplicacion Consola

102

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

for (j = 1; j <= N; j++) { Console.Write("Matriz[" + i + "," + j + "]="); Matriz[i, j] = Convert.ToInt32(Console.ReadLine()); } } } static void MostrarMatriz(int[,] Matriz, int N) { int i, j; Console.WriteLine("\n\nLa Matriz contiene los siguientes valores:"); for (i = 1; i <= N; i++) { for (j = 1; j <= N; j++) { Console.WriteLine("Matriz[" + i + "," + j + "]=" + Matriz[i, j]); Console.ReadKey(); } } } static void MostrarMatrizC(int[,] Matriz, int N) { int i, j; Console.WriteLine("\n\nLa Matriz transpuesta es:"); for (i = 1; i <= N; i++) { for (j = 1; j <= N; j++) { Console.WriteLine("Matriz[" + j + "," + i + "]=" + Matriz[j, i]); Console.ReadKey(); } } } static void Main(string[] args) { int [,] M1= new int[10,10]; int[,] M2 = new int[10, 10]; int NT=0,resu; char opc; string cad; do { Console.Clear(); Console.WriteLine("\n\n\t\t\t\tMENU\n"); Console.WriteLine("\t 1. Llenar Matriz\n");

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 103: C# Basico Aplicacion Consola

103

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Console.WriteLine("\t 2. Mostrar Matriz\n"); Console.WriteLine("\t 3.Sumar Diagonal Principal\n"); Console.WriteLine("\t 4.Hallar Transpuesta\n"); Console.WriteLine("\t 5.Salir\n"); Console.Write("\t ENTRAR OPCION--->"); cad = Console.ReadLine(); opc = Convert.ToChar(cad); switch (opc) { case '1': Console.Write("\n\n\t\tEntrar tamaño de la matriz:"); NT = Convert.ToInt32(Console.ReadLine()); LlenarMatriz(M1, NT); break; case '2': MostrarMatriz(M1, NT); break; case '3': resu = SumaDiagonal(M1, NT); Console.WriteLine("\n\n\tEl valor de la suma de la diagonal Principal es:" + resu); Console.ReadKey(); break; case '4': Transpuesta(M1, M2, NT); MostrarMatrizC(M2, NT); break; case '5': Console.Clear(); Console.WriteLine("\n\n\nHASTA PRONTO..."); Console.ReadKey(); return; default: Console.WriteLine("\n\t Opcion no valida.."); Console.ReadKey(); break; } } while (opc != 5); } } Ejercicio 60 Diseñar un programa en C# :

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 104: C# Basico Aplicacion Consola

104

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Ø con un procedimiento LLenarMatriz que se le pasa por parametro la matriz y el orden N(Numero de filas igual al numero de columna)la cual se se debe llenar con numeros aleatorios entre 1 y 5 por filas.

Ø Con Un procedimiento que muestre los elementos ubicados por

debajo de la diagonal principal. Mostrar los elementos por filas

using System; class CMatrizAleatoria { //Diseñar el procedimiento LLenarMatriz que se le pasa por parametro la matriz y el orden N(Numero de filas igual al numero de columna)la cual se llena con numerosaleatorios entre 1 y 5 y por filas.// static void LlenarMatriz(int[,] Matriz, int N) { int i, j, aleat = 0; Random rnd = new Random(); for (i = 1; i <= N; i++) { for (j = 1; j <= N; j++) { aleat = rnd.Next(1, 5); Console.WriteLine("Matriz[" + i + "," + j + "]="+aleat); Matriz[i, j] = aleat; } } } // //2. Diseñar un procedimiento que muestre los elementos ubicados //por debajo de la diagonal principal. Mostrar los elementos por filas. static void MostrarMatriz(int[,] Matriz, int N) { int i, j; Console.WriteLine("\n\nLa Matriz contiene los siguientes valores:"); for (i = 2; i <= N; i++) { for (j = 1; j <= (i-1); j++) { Console.WriteLine("Matriz[" + i + "," + j + "]=" + Matriz[i, j]); Console.ReadKey();

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 105: C# Basico Aplicacion Consola

105

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

} } } static void Main(string[] args) { int [,] M1=new int[10,10]; int Nu; Console.Write("Entrar orden de la Matrz:"); Nu=Convert.ToInt32(Console.ReadLine()); LlenarMatriz(M1, Nu); MostrarMatriz(M1,Nu); } } Ejercicio 61 Diseñar un programa en C# : Ø con un procedimiento LLenarMatriz que se le pasa por parametro la

matriz y el orden N(Numero de filas igual al numero de columna)la cual se se debe llenar con numeros aleatorios entre 1 y 5 por filas.

Ø Con Un procedimiento que muestre los elementos ubicados por

encima de la diagonal principal. Mostrar los elementos por filas using System; class MatrizAleatorio { //1. Diseñar el procedimiento LLenarMatriz que se le pasa por parametro la matriz y el //orden N(Numero de filas igual al numero de columna)la cual se llena con numeros //aleatorios entre 1 y 5. Llenar la matriz por filas. static void LlenarMatriz(int[,] Matriz, int N) { int i, j, aleat = 0; Random rnd = new Random(); for (i = 1; i <= N; i++) { for (j = 1; j <= N; j++) { aleat = rnd.Next(1, 6); Console.WriteLine("Matriz[" + i + "," + j + "]="+aleat);

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 106: C# Basico Aplicacion Consola

106

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Matriz[i, j] = aleat; } } } // //2. Diseñar un procedimiento que muestre los elementos ubicados //por encima de la diagonal principal. Mostrar los elementos por filas. static void MostrarMatriz(int[,] Matriz, int N) { int i, j; Console.WriteLine("\n\nLa Matriz contiene los siguientes valores:"); for (i = 1; i <= N; i++) { for (j = i+1; j <=N ; j++) { Console.WriteLine("Matriz[" + i + "," + j + "]=" + Matriz[i, j]); Console.ReadKey(); } } } static void Main(string[] args) { int [,] M1=new int[10,10]; int Nu; Console.Write("Entrar orden de la Matrz:"); Nu=Convert.ToInt32(Console.ReadLine()); LlenarMatriz(M1, Nu); MostrarMatriz(M1,Nu); } }

Manejo de Excepciones

C# proporciona soporte integrado para el manejo de excepciones o de una forma más formal situaciones anómalas de funcionamiento, las cuales pueden ocurrir en cualquier

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 107: C# Basico Aplicacion Consola

107

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

momento durante la ejecución del programa y son manejadas por el código que se encuentra fuera del flujo normal de control. Todo esto gracias a las palabras clave try, throw, catch y finally. C# proporciona una solución estructurada tanto a nivel del sistema como de aplicación. Cada excepción esta representada por una instancia de un tipo de clase derivado de System.Exception. try { Se hace esto…. si i = 0 throw una excepción } catch { si fallo se hace esto... } finally { haya fallado o no, se hace esto... } Como se puede apreciar el manejo de excepciones es bastante sencillo y fácil de entender aunque no se tenga mucha experiencia programando, todo aquello que se puso entre las {} del try es un segmento de código en el que puede o no generarse un error en tiempo de ejecución(excepción), en caso de que haya habido un funcionamiento anómalo en el programa(excepción) la ejecución del código entra en el segmento de código catch y ejecuta el bloque de instrucciones que hemos definido para manejar ese error, finalmente el flujo del programa haya o no habido excepción entra en finally aquí podemos poner rutinas para marcar los objetos que ya no se utilizarán de manera que el recolector de basura pueda liberar la memoria que dichos objetos ocupaban, rutinas que guarden un log de la aplicación para llevar un control de ¿cuántas veces ha fallado?, ¿porqué fallo?, etc., todo bloque try puede tener uno o más catch para tratar cada una de las posibles excepciones, pero la flexibilidad de C# va más alla de eso, ya que nos permite lanzar nuestras propias excepciones, por ejemplo si un método no recibe un valor que debe recibir o recibe un valor que no puede procesar podemos lanzar nuestra propia excepción. Ejemplo: using System; public class ManejoExcepciones {

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 108: C# Basico Aplicacion Consola

108

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

public static void Main() { try //Le hacemos saber que puede ocurrir un error { string s=null; //Declaramos un string y lo dejamos vacio if (s == null) //Si el string esta vacio throw(new ExcepcionCadenaVacia()); //Lanzamos un error personalizado Console.WriteLine("Esto nunca se imprime"); //Si ahi error el código sale de la ejecución normal //es por eso que esta parte nunca se ejecuta } catch( ExcepcionCadenaVacia e ) //Atrapamos nuestro error { Console.WriteLine("La cadena esta vacia"); //Manejamos el error } finally { Console.WriteLine("Esto siempre se imprime"); //Esto siempre se ejecutará } } }

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 109: C# Basico Aplicacion Consola

109

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

EJERCICIOS 1.Elaborar un algoritmo que encuentre e imprima el área de un triángulo. Se proporcionan los valores de la base y la altura 2. Elaborar un algoritmo que determine el área de un trapecio. Se leerán la altura, la base mayor y la base menor. Se debe imprimir : el área, la altura ,la base mayor y la base menor (bm + bina) * altura /2 3. Elaborar un algoritmo que determine cual es la división de 2 #s que serán leídos 4. Elaborar un algoritmo que imprima "El futuro se labra día a día" 5. Elaborar un algoritmo que lea 2 nombres con sus respectivas edades, se debe imprimir el nombre de la persona mayor 6. Elaborar un algoritmo para averiguar si el cuadrado de un número es superior a cierta cantidad. 7. Cierta universidad para liquidar el pago de matricula de un estudiante le exige los siguientes datos : Número de inscripción Nombre Patrimonio Estrato social La universidad cobra un valor constante ( valor del salario mínimo actual )para cada estudiante. Si el patrimonio en mayor a 54.000 000 y el estrato superior a 3 se le incrementa un porcentaje del 5% sobre el patrimonio. Hacer un algoritmo que muestre : Número de inscripción Nombres

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 110: C# Basico Aplicacion Consola

110

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Pago por matrícula Documente las variables 8. Escribir un algoritmo que acepte 3 valores enteros diferentes y muestre el mayor de ellos 9. Determinar la cantidad de dinero recibida por un trabajador por concepto de las horas trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden de 40, el resto se considera horas extras y que éstas se pagan al doble de una hora normal cuando no exceden de 6, sí las horas extras exceden de 6, se pagan las primeras 6 al doble de lo que se paga una hora normal y el resto el triple. Del trabajador se conocen los siguientes datos: Nombre Numero de horas trabajadas en la semana Valor recibido por una hora normal de trabajo. 10. En un almacén de descuentos se efectúa una promoción en la cual se hace un descuento sobre el valor de la compra total según el color de la bolita que el cliente saque al pagar en la caja. Si la bolita es blanca no se le hará descuento alguno, si es verde se le hará un 10% de descuento, sí es amarilla un 25%, si es azul un 50% y si es roja un 100%. Hacer un algoritmo para determinar la cantidad final que un cliente deberá pagar por su compra. Se sabe que sólo hay bolitas de los colores mencionados. 11. Se tienen cuatro esferas ( A, B, C, D) de las cuales se sabe que tres son de igual peso y una diferente. Elaborar un algoritmo que determine cual es la esfera diferente y si es de mayor o de menor peso. 12. Una empresa con tres departamentos tiene establecido un plan de incentivos para sus vendedores. Al final del periodo a cada departamento se le pide el importe global de las ventas. A los departamentos que excedan el 33% de las ventas totales se les adiciona al salario de los vendedores un porcentaje equivalente al 20% del salado mensual. Si se tienen los siguientes datos: Ventas totales del departamento 1 Ventas totales del departamento 2 Ventas totales del departamento 3 Salario de los vendedores de cada departamento. Hacer un algoritmo que determine cuánto recibirán los vendedores de cada departamento al finalizar el periodo 13. Desarrolle un algoritmo que lea tres número únicos, y que imprima el número medio. El número medio es aquel! que no es el menor ni el mayor. 14. Leer una sola vez 5 valores A, B, C, D, E, imprimir el mayor

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 111: C# Basico Aplicacion Consola

111

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

15. Hacer un algoritmo que me lea tres valores en una sola lectura, cada valor es la medida del lado de un triángulo. Imprimir si forman un triángulo, y si este es Equilátero, Isósceles ó Escaleno. NOTA : Tres segmentos forman un triángulo si cada uno de los lados es inferior a la suma de los dos restantes 16. Elaborar un algoritmo que determine cual es el # mayor entre 3#s dados 17. Elaborar un algoritmo que lea el nombre, peso, y estatura de una persona. Se debe imprimir el nombre si la persona pesa mas de 80 Kgs o su estatura es mayor de 1.70 mts. En caso contrario se debe imprimir "la persona no cumple los requisitos" 18. Elabore al algoritmo que calcule el valor de S en función de A así: Si A < 3 Entonces S= 5A+ (A+1)2 Si A > 9 Entonces S = A3 + 7 A Si 3 <= A <=9 Entonces S= A+ 5 - (A + 2)/4 Ejercicios 1. Se desea conocer cuantos meses han transcurrido entre enero de 1951 y

enero de 1994. 2. Se desea conocer cuantos meses han transcurrido entre los inicios de dos

años cualesquiera dados 3. Hacer un algoritmo que dados los dos lados diferentes de un rectángulo,

encuentre el perímetro y el área del mismo. 4. A la mamá de Juan le preguntan su edad, y contesta: Tengo 3 hijos, pregúntele

a Juan su edad. Alberto tiene 2/3 de la edad de Juan y Ana tiene 4/3 de la edad de Juan y mi edad es la suma de las tres. Hacer un algoritmo que muestre la edad de los cuatro.

5. Hacer un seguimiento (prueba de escritorio) al siguiente grupo de instrucciones. Suma = 0 x=20 Suma = Suma + x Y = 40 x = x + Y * Y Suma = Suma +x/Y ESCRIBA: “EL VALOR DE LA SUMA ES: “ SUMA

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 112: C# Basico Aplicacion Consola

112

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

6. Un empleado trabaja 48 horas en la semana a razón de $8000 hora. La retención en la frente es del 12. 5% del salario bruto. Se desea saber cual es el salario bruto, la retención en la frente y el salario neto del trabajador.

7. Escribir un algoritmo que dados dos valores A y B encuentre : A - B A + B A * B A / B

8. Elaborar un algoritmo que lea un numero y obtenga se cuadrado y su cubo. 9. Elaborar un algoritmo que lea un numero negativo e imprima el numero y el

positivo del mismo 10. Dado el radio de un círculo. Elaborar un algoritmo que obtenga el área del circulo y la longitud de circunferencia. 11. Se tiene la siguiente información de un empleado:

código del empleado, nombre, número de horas trabajadas al mes, valor hora trabajada, retención en la frente.

Haga un algoritmo que muestre: código, nombre, salario neto y salario bruto. 12. Dado el valor del lado en un triángulo equilátero. Haga un algoritmo que obtenga el perímetro, el valor de la altura y el área del triángulo. 13. Hacer un algoritmo que determine la ecuación de la recta que pasa por los puntos (X1, Y1) y (X2, Y2). La ecuación de la recta es: AX + BY + C = o , En consecuencia se deben determinar los valores A, B y C. 14. Elabore un algoritmo que averigüe los 10 primeros términos de la secuencia de fibonacici 0 1 1 2 3 5 8 13 21 penul = 0 ultimo = 1 suma = ultimo + penul 15. Se tienen N tarjetas, en cada una viene Nombre del trabajador, número de horas trabajadas, Salario básico por hora y deducciones ( no hay horas extras ni nocturnas). Elabore un algoritmo que imprima el nombre de los trabajadores cuyo salado neto sea superior o igual a 290000 y cuantos ganan menos de 290000 16. Elabore un algoritmo que cuente las personas que devengan $80000 diarios, las que devengan $60000 diarios y las que devengan más de $80000. Se conoce

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 113: C# Basico Aplicacion Consola

113

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

el número de personas. En cada registro viene el nombre de la persona y su salario por día 17.Elabore un algoritmo que seleccione para un grupo de M estudiantes, los mayores de 21 pero menores de 30 años. En cada registro viene nombre y edad del estudiante 18. Elabore un algoritmo que imprima el porcentaje de los alumnos que perdieron el examen, el nombre de los que ganaron. La nota es de 1 a 5, se gana con 3 o más. En cada registro viene el nombre y la nota del examen. No se sabe cuántos registros vienen 19. Elabore un algoritmo que determine cual es el número mayor entre varios números dados. Se sabe cuántos números hay. 20. Elabore un algoritmo que determine si un número dado es par 21. Elabore un algoritmo que imprima la suma, la multiplicación, la diferencia y la división de 2 números que serán leídos 22. Elabore un algoritmo que encuentre el perímetro y área de un cuadrado. Se lee el lado 23. Elabore un algoritmo que imprima cuántos profesores enseñan Matemáticas, cuántos Sociales, cuántos Español. Se asume que un profesor sólo da alguna de las tres materias. Se conoce el número de profesores en el colegio. En cada registro viene nombre del profesor y materia que dicta. 24. Elabore un algoritmo que imprima el nombre de los profesores de cátedra. Se conoce el número de profesores. En cada registro viene nombre del profesor y tipo de vinculación. 25. Elabore un algoritmo que imprima el promedio de los alumnos que vienen de colegio oficial y los que vienen de colegio privado. No se conoce el número de alumnos. En cada registro viene nombre del alumno y tipo de colegio de donde procede. 26.Elabore un algoritmo que imprima el promedio de los alumnos cuyos padres se encuentran separados. No se conoce el número de alumnos. En cada registro viene nombre del alumno, edad, sexo y estado de los padres. 27. Elabore un algoritmo que imprima los múltiplos de 3 que hayan antes del 1 al 20. Ejercicios para ciclos 1. Elaborar un algoritmo que descomponga un dato de tipo entero en sus dígitos individuales 2. Elaborar un algoritmo que determine cual es el # mayor entre varios dados 3. Se tiene un número desconocido de registros, en cada registro viene un número positivo, elabore un algoritmo que imprima el promedio de éstos números.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 114: C# Basico Aplicacion Consola

114

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

4. Elabore un algoritmo que imprima el porcentaje de los alumnos que perdieron el examen, el nombre de los que ganaron. La nota es de 1 a 5, se gana con 3 o más. En cada registro viene el nombre y la nota del examen. No se sabe cuántos registros vienen 5. Elaborar un algoritmo que resuelva un par de ecuaciones lineales de dos incógnitas Análisis : las ecuaciones las podemos expresar como : y = a + bx y = m + nx donde x , y, son las incógnitas cuyos valores necesitamos como respuesta. a,b,m,n, son aquellos valores que definen claramente las 2 ecuaciones. Algrebaicamente se puede expresar cada incógnita en función de los valores que definen las ecuaciones así : 1° - 2° ecuación o = a - m + ( b - n ) x

X = m - a b - n

Se deben obtener los valores a,b,m,n Vectores

1. Llenar un vector de 100 posiciones con los cien primeros números naturales. 2. Llenar un vector de 1000 posiciones con los números del 1000 al 1. 3. Se tiene un vector de 50 posiciones. Llevar a las posiciones pares 1 y a las

posiciones impares 0. 4. Llenar un vector de 10 posiciones con los números pares del 2 al 20 5. Desarrolle un algoritmo que permita almacenar las notas de 150 estudiantes,

además que calcule cuántas notas son mayores a 4.5, cuántas están entre 3.5 y 4.5 , la suma de las notas entre 2.5 y 2.1 Y el promedio de las notas entre 0 y 2.0

6. Calcular el promedio de 50 valores almacenados en un vector. Determinar además cuantos son mayores que el promedio, imprimir el promedio, el número de datos mayores que el promedio y una lista de valores mayores que el promedio.

7. Almacenar los primeros 15 múltiplos de 7 en un vector. 8. Llenar dos vectores A y B de 45 elementos cada uno, sumar el elemento uno del

vector A con el elemento uno del vector B y así sucesivamente hasta 45, almacenar el resultado en un vector C, e imprimir el vector resultante.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 115: C# Basico Aplicacion Consola

115

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

9. Llenar un vector de 20 elementos, imprimir la posición y el valor del elemento mayor almacenado en el vector. Suponga que todos los elementos del vector son diferentes.

10. Almacenar 500 números en un vector, elevar al cuadrado cada valor almacenado en el vector, almacenar el resultado en otro vector. Imprimir el vector original y el vector resultante.

11. Almacenar 300 números en un vector, imprimir cuantos son ceros, cuantos son negativos, cuantos positivos. Imprimir además la suma de los negativos y la suma de los positivos.

12. Se tiene un vector de N posiciones en el cual se ha almacenado la cédula de las personas que pueden votar en la mesa #12 para elegir alcalde. Desarrolle algoritmo que lea una cédula e imprima un mensaje si esa persona si puede o no votar en esa mesa.

13. Almacenar en dos vectores el nombre y la edad de N personas. Imprimir el nombre de persona más joven de ese grupo de personas. Además decir su edad.

14. Almacenar 150 números en un vector, almacenarlos en otro vector en orden inverso al vector original e imprimir el vector resultante.

15. Se tienen almacenados en la memoria dos vectores M y N de cien elementos cada uno. Hacer un algoritmo que escriba la palabra "Iguales" si ambos vectores son iguales y "Diferentes" si no lo son. Serán iguales cuando en la misma posición de ambos vectores se tenga el mismo valor para todos los elementos.

16. Se tiene el vector A con 100 elementos almacenados. Diseñe un algoritmo que escriba "SI" si el vector esta ordenado ascendentemente o "NO" si el vector no esta ordenado.

17. Diseñe un algoritmo que lea un número cualquiera y lo busque en el vector X, el cual tiene almacenados 80 elementos. Escribir la posición donde se encuentra almacenado el número en el vector o el mensaje "NO" si no lo encuentra. Búsqueda secuencial.

18. Diseñe un algoritmo que lea dos vectores A y B de 20 elementos cada uno y multiplique el primer elemento de A con el ultimo elemento de B y luego el

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 116: C# Basico Aplicacion Consola

116

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

segundo elemento de A por el diecinueveavo elemento de B y así sucesivamente hasta llegar al veinteavo elemento de A por el primer elemento de B. El resultado de la multiplicación almacenarlo en un vector C Se tienen almacenados en tres vectores CIA 1, CIA2 Y CIA3 las ventas realizadas durante un mes de diciembre. Desarrolle un algoritmo que imprima cual de las tres compañías vendió más.

19. Llenar un vector de 200 posiciones con los primeros 200 términos de la secuencia FIBONACCI

20. Imprimir los datos de las posiciones pares de un vector 21. Sumar los datos de las posiciones impares de un vector 22. Imprimir los datos pares de un vector 23. Imprimir todos los datos de un vector, menos el primero, ultimo y el de la mitad 24. Ordenar un vector ascendentemente 25. Dados dos vectores formar un tercero con los datos repetidos que hay en cada

uno de los vectores 26. Dados dos vectores formar un tercero teniendo en cuenta que no pueden quedar

datos repetidos 27. Buscar un dato en un vector. 28. Eliminar un dato en un vector. 29. Insertar un dato en la posición p de un vector 30. Insertar un dato en un vector ordenado 31. Intercambiar los datos de un vector. El primero pasa a ser el ultimo y el ultimo pasa

a ser el primero. Así con el segundo, el tercero y los demás. 32. Hallar la moda en un vector (el dato que más veces se repite). Suponer que solo

hay una que se repite 33. Hallar la moda en un vector (el dato que más veces se repite). Suponer que hay

varias 34. Eliminar los datos repetidos de un vector de manera que solo quede uno de los

repetidos 35. Eliminar los datos repetidos de un vector de manera que no quede ninguno de los

repetidos

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 117: C# Basico Aplicacion Consola

117

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

36. Leer una Matriz por filas e imprimirla por columnas. 37. Leer, hallar el promedio de sus datos e imprimir una matriz. El programa debe

llamar los subprogramas lee, prome, impre. 38. Imprimir todos los datos de una matriz MAT de orden mxn, menos los primeros k

de la fila P y los ultimas r de la columna S. 39. Imprimir las dos primeras filas de una matriz de orden 10 x 5. 40. Dadas dos matrices de igual orden formar una tercera. La primera columna de la

segunda matriz ira después de la última de la primera matriz. 41. Dada una matriz agregarle una fila con los datos menores de cada columna 42. Ordenar una matriz en orden ascendente por filas 43. Intercambiar todos los datos de una matriz. La primera fila pasa a ser la ultima y la

ultima pasa a ser la primera. El. Proceso se repite con las demás filas. 44. Con los datos de un vector de 80 posiciones formar una matriz de orden 2 x 40. 45. Sumar los datos de la diagonal principal de una matriz 46. Sumar los datos de las diagonales principal y secundaria de una matriz 47. Devolver un uno si una matriz no es simétrica. 48. Devolver un uno si una matriz es triangular inferior.

Ejercicios Funciones • Realizar una función que reciba un dato N , calcule y regrese la sumatoria de 1

hasta N. Utilizando la función anterior realizar un programa que muestre la sumatoria de los N números que ingrese el usuario, y diga cual de los datos tiene la mayor sumatoria

• Realizar una función factorial que reciba un numero N y calcule y regrese el factorial de N Utilizando la función anterior mostrar los números entre 500 y 1000 que tienen un factorial mayor a 2000. Utilizando la función anterior mostrar el factorial de los números impares que hay entre 50 y 100.

• Realizar una función llamada pago nomina que reciba el nombre, número de horas trabajadas y la cantidad de horas trabajadas y calcule y devuelva el pago del trabajador, teniendo en cuenta que las horas extras tienen un recargo del 50% sobre la hora normal.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 118: C# Basico Aplicacion Consola

118

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Utilizando la función anterior realizar un programa que lea los datos de 1000 empleados, calcule y muestre el pago de cada uno de ellos, además muestre el total a pagar y el sueldo mayor.

• Hacer una función que reciba el lado de un cuadrado calcule y devuelva el perímetro . Utilizando la función anterior realizar un programa que lea el lado de 100 cuadrados, y muestre el perímetro de cada uno de ellos y diga cuantos tienen perímetro entre 40 y 50 .

• Hacer una función que reciba el radio de un circulo calcule y devuelva el área. Utilizando la función anterior realizar un programa que lea el radio de 100 círculos, y muestre el área de cada uno de ellos y diga cual es el área menor y la mayor.

• Hacer una función llamada potencia para el cálculo de N elevado a A (por multiplicaciones sucesivas) y utilizarla en un programa para calcular la potencia de las 100 parejas de datos entradas por el usuario, además muestre la sumatoria de las potencias de todas las parejas.

• Realizar una función que reciba un numero N y regrese la sumatoria de sus dígitos.

Utilizando la función anterior realizar un programa que muestre los números entre 500 y 1500 y la suma de dígitos de cada uno, además muestre los números que tienen la mayor suma de dígitos. Utilizando la función anterior realizar un programa que muestre la suma de dígitos de los números pares mayores que 100 y menores que 1000. Además diga cuantos números tienen como suma de dígitos 13. Utilizando la función anterior realizar un programa que lea N datos dados por el usuario y muestre y cuente los números cuya suma de dígitos es 10 y terminan en 5.

Utilizando la función anterior realizar un programa que lea 1000 números dados por el usuario y muestre los numero cuya suma de dígitos es menor a 10.

• Realizar una función que reciba un dato N, determine y devuelva el digito mayor. Utilizando la función anterior realizar un programa que muestre los dígitos mayores de los números entre 2000 y 3000 Utilizando la función anterior realizar un algoritmo que lea 100 datos dados por el usuario y muestre los datos que tengan como mayor digito el 8 ó el 4. Utilizando la función anterior realizar un programa que muestre el digito mayor de los números pares que hay entre 500 y 1000, además muestra la sumatoria de dichos dígitos.

• Realizar una función que reciba un numero N y determine y devuelva la cantidad de dígitos pares que tiene.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 119: C# Basico Aplicacion Consola

119

SISTEMAS Y ENSEÑANZA Tel. 422 39 94 NIT. 900109314-2

MEDELLIN –COLOMBIA www.sisyen.com

Utilizando la función anterior realizar un programa que lea 500 datos dados por el usuario y muestre el número y la cantidad de dígitos pares de cada número. Utilizando la función anterior realizar un programa que muestre los número entre 500 y 100 que tengan 2 dígitos, además muestre el mayor de dichos números.

Utilizando las funciones anteriores: • Hacer un programa que muestre el factorial de los datos entre 100 y 500 que

tienen como suma de dígitos 6 • Hacer un programa que lea N datos dados por el usuario y muestre la

sumatoria de los datos que tienen como suma de dígitos 2 y su mayor dígito es 8.

• Hacer un programa que lea N datos dados por el usuario y muestre la sumatoria de cada uno de los datos que terminan en 4, tienen como suma de dígitos 5 y su mayor dígito es 9.

Bibliografía Lógica de Programación ,Efraín M. Oviedo Regino. Notas de Programación I ,Marta Cuartas. Tutorial de C# l Microsoft C# Lenguaje y aplicaciones, Fco. Javier Ceballos. C#, Christoph Wille http://msdn.microsoft.com/XML/understanding/default.aspx?pull=/library/enus/dnxml/html/understxml.asp

PDF created with pdfFactory Pro trial version www.pdffactory.com