Está en la página 1de 8

Tema: “Funciones y Procedimientos en C#”.

Objetivos
 Utilizar la sintaxis de las funciones definidas por el usuario (programador) para resolver problemas.
 Identificar la diferencia entre una función y un procedimiento.

Introducción

Un problema complejo se puede dividir en pequeños subproblemas más sencillos. Estos subproblemas se
conocen como módulos y su implementación en un lenguaje se llama subprograma (procedimientos y
funciones).
Un subprograma realiza las mismas acciones que un programa, sin embargo, vamos a utilizar el
subprograma o módulo para una acción u operación específica.
Un subprograma recibe datos de un programa y le devuelve resultados (el programa “llama” o “invoca” al
subprograma, éste ejecuta una tarea específica y devuelve el “control” al programa que lo llamó).
En C# a las funciones o procedimientos se le conocen con el nombre de métodos.

Métodos en C#

Función Procedimiento

Funciones (Retornan un valor)


En el ámbito de la programación, una función es un tipo de subalgoritmo, es el término para describir una
secuencia de órdenes que hacen una tarea específica de una aplicación más grande.
Las declaraciones de las funciones, generalmente son especificadas por:
 Un nombre único en el ámbito. Nombre de la función con el que se identifica y se distingue de
otras. No podrá ser otra función o procedimiento con ese nombre (salvo sobrecarga o polimorfismo en
programación orientada a objetos).
 Un tipo de dato de retorno. Tipo de dato del valor que la función devolverá al terminar su ejecución.
 Una lista de parámetros. Especificación del conjunto de argumentos (pueden ser cero uno o más)
que la función debe recibir para realizar su tarea.
Sintaxis de una Función.
Modificador de acceso_Tipo Devuelto_Nombre Funcion (tipo(s) argumento(s) nombres)
{
// declaración de datos y cuerpo de la función.
return (valor);
}

Procedimientos (No retornan valor)


Fragmento de código (subprograma) que realiza una tarea específica y es relativamente independiente del
resto del código. Los procedimientos suelen utilizarse para reducir la duplicación de códigos en un
programa.
Los procedimientos pueden recibir parámetros, pero no necesitan devolver un valor como es el caso de las
funciones.

Sintaxis Procedimiento
Modificador_de_acceso void Nombre_procedimiento(tipo(s)_argunmento(s) nombres)
{
//declaración de datos y cuerpo de la función.
}

Material y Equipo

 Guía de laboratorio No. 7.


 Computadora con Visual Studio 2013 o superior.
 Dispositivo de almacenamiento (USB).

Procedimiento

G7Ejemplo1:
Programa que permite digitar un número entero positivo y me diga si es par o impar.

1 static void Main(string[] args)


2 {
3 //Inicio del programa principal
4 Console.ForegroundColor = ConsoleColor.Black;
5 Console.BackgroundColor = ConsoleColor.White;
6 Console.Clear();
7 Console.Title = "Uso de un procedimiento";
8 int num;
9 Console.WriteLine("Digitar un numero entero positivo:");
10 num = int.Parse(Console.ReadLine());
11 Par(num);
12 Console.WriteLine("\n");
13 Console.WriteLine("-->Fin del programa");
14 Console.ReadKey();
15 }
16 //Aqui termina el programa principal
17 static void Par(int a)
18 {
19 int x;
20 x = (a % 2);
21 if (x == 0)
22 {
23 Console.WriteLine("\nEs par");
24 }
25 else
26 {
27 Console.WriteLine("\nEs impar");
28 }
29 }

G7Ejemplo2: En nuestro segundo ejemplo, vamos a implementar un procedimiento que sea capaz de
realizar una suma y una resta.

1 static void Main(string[] args)


2 {
3 Console.Title = "Trabajando con Procedimientos";
4 suma(); // llamando al procedimiento llamado suma
5 Console.ReadKey();
6 Console.Clear();
7 resta(); // llamando al procedimiento llamado resta
8 Console.ReadKey();
9 }
10
11 static void suma()
12 {
13 Double r, n1, n2;
14 Console.WriteLine("Digitar primera cantidad");
15 n1 = Double.Parse(Console.ReadLine());
16 Console.WriteLine("Digitar segunda cantidad");
17 n2 = Double.Parse(Console.ReadLine());
18 r = n1 + n2;
19 Console.WriteLine("El resultado de la suma es: " + r);
20 }
21
22 static void resta()
23 {
24 Double r, n1, n2;
25 Console.WriteLine("Digitar primera cantidad");
26 n1 = Double.Parse(Console.ReadLine());
27 Console.WriteLine("Digitar segunda cantidad");
28 n2 = Double.Parse(Console.ReadLine());
29 r = n1 - n2;
30 Console.WriteLine("El resultado de la resta es: " + r);
31 }
Corrida del programa1

Corrida del programa2

G7Ejemplo3: Programa que permite hacer conversión de monedas digitando una cantidad en dólares,
utilizando funciones.

1 static void Main(string[] args)


2 {
3 //Inicia el programa principal
4 Console.ForegroundColor = ConsoleColor.Black;
5 Console.BackgroundColor = ConsoleColor.White;
6 Console.Clear();
7 Console.Title = "Ejemplo3 utilizando la sintaxis de funciones";
8 Double x,p,r;
9 Console.WriteLine("Digitar la cantidad en dólares:");
10 x = Double.Parse(Console.ReadLine());
11 // llamadas a las funciones
12 p = euros(x);
13 Console.WriteLine("Los {0} dolares son {1} euros ", x, p);
14 r = libras(x);
15 Console.WriteLine("Los {0} dolares son {1} libras ", x, r);
16 Console.WriteLine("\n");
17 Console.WriteLine("-->Fin del programa");
18 Console.ReadKey();
19 }
20
21 static Double euros(Double a)
22 {
23 Double g;
24 g = a * 1.15;
25 return g;
26 }
27 static Double libras(Double a)
28 {
29 Double v;
30 v = a * 3.15;
31 return v;
32 }

G7Ejemplo4: Utilización de un menú principal con la estructura Switch-Case y su facilidad al unirse con
los procedimientos

1 static void Main(string[] args)


2 {
3 Console.ForegroundColor = ConsoleColor.Black;
4 Console.BackgroundColor = ConsoleColor.Yellow;
5 Console.Clear();
6 Console.Title = "Ejemplo4 de Procedimientos en un menú";
7 Int32 num1, num2;
8 int opcion;
9 Console.WriteLine("\n MENU PRINCIPAL DE OPERACIONES MATEMATICAS:");
10 Console.WriteLine("\n");
11 Console.Write("\tDigitar el primer número: ");
12 num1 = Int32.Parse(Console.ReadLine());
13 Console.WriteLine("\n");
14 Console.Write("\tDigitar el segundo numero: ");
15 num2 = Int32.Parse(Console.ReadLine());
16 Console.Clear();
17 Console.WriteLine("\n MENU PRINCIPAL DE OPERACIONES MATEMATICAS:");
18 Console.ForegroundColor = ConsoleColor.Blue;
19 Console.WriteLine("\n ===============================================");
20 Console.WriteLine("\n");
21 Console.WriteLine("\t1) Mayor de los 2");
22 Console.WriteLine("\t2) Multiplo");
23 Console.WriteLine("\t3) Potencia");
24 Console.WriteLine("\n ===============================================");
25 Console.ForegroundColor = ConsoleColor.Red;
26 Console.WriteLine("\n");
27 Console.Write("\tDigitar la opción deseada [1..3]: ");
28 opcion = int.Parse(Console.ReadLine());
29 Console.WriteLine("\n");
30 switch (opcion)
31 {
32 case 1:
33 mayor(num1,num2);
34 break;
35 case 2:
36 multiplo(num1,num2);
37 break;
38 case 3:
39 potencia(num1,num2);
40 break;
41 default:
42 Console.WriteLine("\tSe ha equivocado de opcion, solo acepta[1..3]");
43 break;
44 }
45 Console.WriteLine("\n");
46 Console.WriteLine("\t-->Fin del programa");
47 Console.ReadKey();
48 }
49
50 static void mayor(Int32 a, Int32 b)
51 {
52 if (a > b)
53 {
54 Console.WriteLine("\tEl numero {0} es mayor que {1} ", a, b);
55 }
56 else
57 {
58 Console.WriteLine("\tEl numero {0} es mayor que {1} ", b, a);
59 }
60 }
61 static void multiplo(Int32 a, Int32 b)
62 {
63 Int32 w;
64 w = (a%b);
65 if (w == 0)
66 {
67 Console.WriteLine("\tEl numero {0} es multiplo de {1} ", a, b);
68 }
69 else
70 {
71 Console.WriteLine("\tEl numero {0} no es multiplo de {1} ", b, a);
72 }
73 }
74 static void potencia(Int32 a, Int32 b)
75 {
76 Double s;
77 s = Math.Pow(a,b);
78 Console.WriteLine("\tEl numero {0} a la potencia de {1} es: {2}",a,b,s);
79 }
Análisis de Resultados
1. Crear un programa que solicite el año de nacimiento de una persona y retorne la edad haciendo
uso de procedimientos.
2. Desarrollar un programa que implemente una función para convertir coordenadas polares a
rectangulares. Debe tener en cuenta lo siguiente:
x = rcos(θ) ; y = rsen(θ)
3. Cree un programa que contenga el siguiente menú:
a) Dividir.
b) Obtener cubo.
c) Cálculo de IMC (Índice de Masa Corporal).
d) Salir.
Consideraciones:
 El menú debe permanecer disponible hasta que el usuario elija la opción d.
 Utilizar una función o procedimiento para cada opción.
 Para la opción d, utilice la fórmula: IMC = Peso[Kg] / Altura2[Metros].

Investigación Complementaria

1. Escribir un programa que lea dos números desde teclado (x y n) e implemente una función para
calcular la siguiente progresión:
1 + X + X2 + X3 +… + Xn
2. Escribir un programa que permita al usuario elegir el cálculo del área de cualquiera de las figuras
geométricas: circulo, cuadrado, rectángulo o triangulo, mediante procedimientos o funciones.
No se le olvide presentarlo en un menú.

Bibliografía
 Deitel, Harvey M. y Paul J. Deitel, Cómo Programar en C#, Segunda Edición, México, 2007.

También podría gustarte