Documentos de Académico
Documentos de Profesional
Documentos de Cultura
M05
M05
M05
FUNDAMENTOS DE
ALGORITMOS
SEMANA 5
5
ING. Sly Stalim SANCHEZ SAAVEDRA
LOGRO DE LA SESIÓN
Al termino de la sesión los estudiantes estarán en la condición
de:
❖Comprender e implementar funciones definidas de usuarios.
❖ Reconocer los tipos de funciones así como el uso de funciones con parámetros por
valor y referencia.
❖Utiliza variables Globales locales y estáticas demostrando lógica y habilidad en la
implementación de los algoritmos en el lenguaje de programación C#
TEMARIO
Métodos en C#
Un método es un conjunto de instrucciones a las que se les da un
determinado nombre de tal manera que sea posible ejecutarlas en
cualquier momento sin tenerlas que reescribir sino usando solo su
nombre. A estas instrucciones se les denomina cuerpo del método,
y a su ejecución a través de su nombre se le denomina llamada al
método.
Los métodos, también llamados funciones, son trozos de código que
reciben datos, procesan los datos, y a veces devuelven algún valor.
TIPOS DE FUNCIONES
(RETURN, VOID, PARÁMETROS)
Tipos de métodos en C#
ESTRUCTURA DE UN METODO
<modificador> tipoDato nombreFuncion(<argumentos>)
{
... instrucciones ...
}
ESTRUCTURA DE UN METODO
<ambito> tipoDato nombreFuncion(<argumentos>)
{
... instrucciones ...
}
Definición de métodos en C#
<ambito> <static> <tipoRetorno> <nombreMetodo> (<parámetros>)
{
<cuerpo>
}
En <ambito> en valor por default es public, los otros valores son: private y protected.
En <static> es opcional.
En <tipoRetorno> se indica cual es el tipo de dato que va a devolver (int, double, char, string, etc.), y si no devuelve
ninguno se ha de escribir void en su lugar.
Es posible que un método no tomen parámetros, si un método los toma se ha de indicar en <parámetros> cual es
el nombre y tipo de cada uno de ellos, separándolos con coma si son mas de uno.
El <cuerpo> del método también es opcional, pero si el método retorna algún tipo de dato entonces ha de incluir
una instrucción return que indica cual es el dato a devolver.
Tipos de métodos en C#
❖Sin embargo, si el método pertenece al mismo tipo que public static void Main(string[] args)
{
el código que lo llama entonces se puede usar la bienvenida();
Console.ReadKey();
notación abreviada: }
Estructura básica de un programa en C# usando métodos
using System;
public static void Main(string[] args)
namespace Metodos {
{ int s ;
class Program double div, n = 3, d = 2;
{ string msg = "";
public static void bienvenida()
{ Program.bienvenida();
Console.WriteLine("Hola UPN"); msg = saludo("César Edinson");
} Console.WriteLine(msg);
using System;
namespace Ejemplo3
{
class Program
{
static int factorial(int n)
{
int f = 1;
for (int i = 1; i <= n; i++)
{
f = f * i;
}
return f;
}
static int buscarIntermedio(int a, int b, int c, int mayor, Console.WriteLine("El mayor es = {0}", mayor);
int menor) Console.WriteLine("El menor es = {0}", menor);
{ Console.WriteLine("El intermedio es = {0}", inter);
Console.ReadKey();
int inter; }
inter = (a + b + c) - (mayor + menor); }
return inter; }
}
using System;
namespace Ejemplo5 static void Main(string[] args)
{ {
class Program
{ int lim;
static int factorial(int n) double s = 0;
{
int f = 1; Console.Write("Ingresar limite: ");
for (int i = 1; i <= n; i++) lim = int.Parse(Console.ReadLine());
{
f = f * i; for (int i = 1; i <= lim; i++)
} {
return f; double e = (double)exponente(i, i);
} double f = (double)factorial(i);
static int exponente(int n, int expo) s = s + e / f;
{ }
int f = 1;
if (expo == 0) Console.Write("S = {0}", s);
return 1; Console.ReadKey();
else }
{ }
for (int i = 1; i <= expo; i++) }
{
f = f * n;
}
return f;
}
}
ALCANCE DE VARIABLES
Alcance de variables
namespace Ejemplo6
Variables locales {
class Program
Es aquella que sólo es utilizable dentro del código de la función. {
// variable global
Variables globales static int n1 = 10;
Es aquella cuyo ámbito es todo el programa, incluso dentro de una static void Main(string[] args)
{
función. //variable local
int a = 5;
}
}
}
Ejemplo 6
using System;
static void imprimir()
namespace Ejemplo6 {
{ Console.WriteLine("La suma es: {0}", s);
class Program }
{
static void Main(string[] args)
// variable global {
static int n1, n2, s; ingreso();
sumar();
static void ingreso() imprimir();
{ Console.ReadKey();
Console.Write("Ingresar N1: "); }
n1 = int.Parse(Console.ReadLine()); }
Console.Write("Ingresar N2: "); }
n2 = int.Parse(Console.ReadLine());
}
using System;
namespace Ejemplo7
{
class Program
{
static void incremento1(int n1)
{
n1 = n1 + 10;
}
incremento1(a);
Console.WriteLine("a = {0}", a);
incremento2(ref b);
Console.WriteLine("b = {0}", b);
Console.ReadKey();
}
}
}
FUNCIONES DE ENCABEZADO
PROPIAS
Funciones de encabezados propias.
Bibliotecas o librerías en C#
Ejemplo 1
Ejemplo 1
Seleccionamos la opción Clase y a la
clase seleccionada le asignamos el
nombre Libreria.cs
using System;
Ejemplo 1
namespace Ejemplo1
{
class Libreria
{
static public void saludoInicio()
{
Console.WriteLine("*************************");
Console.WriteLine(" Inicio del Programa ");
Console.WriteLine("*************************");
}
}
}
Libreria.cs
using System;
Ejemplo 1
namespace Ejemplo1
{
class Program
{
static void Main(string[] args)
{
int n1, n2, s;
Libreria.saludoInicio();
s = Libreria.sumar2Numeros(n1, n2);
Console.WriteLine("La suma es: {0}",s);
Libreria.saludoFin();
Console.ReadKey();
}
}
}
Program.cs
Ejemplo 2
using System;
namespace Ejemplo2
{
class Calculos
{
static public int potenciaNat(int b, int e)
{
int f = 1;
for (int i = 1; i <= e; i++)
{
f = f * b;
}
return f;
}
using System;
namespace Ejemplo2
{
class Program
{
static void Main(string[] args)
{
int n;
double s = 0;
Console.Write("Ingresar limite (n): ");
n = int.Parse(Console.ReadLine());
00 11 11 22 33 𝑛𝑛
𝑆 = 2 + 3 + 5 + 7 + 11 + ⋯ + 𝑛
2 3 5 7 11 𝑛
Ejemplo 3
using System;
static public int numNFibo(int lim)
namespace Ejemplo3 {
{ int n, x = 0, y = 1, z, nfibo = 0;
class Series for (int i = 1; i <= lim; i++)
{ {
static public int numNprimo(int lim) if (i == 1)
{ {
int k = 1, cont, nPrimo = 0; nfibo = x;
for (int i = 2; k <= lim; i++) }
{ else if (i == 2)
cont = 0; {
for (int j = 1; j <= i; j++) nfibo = y;
{ }
if (i % j == 0) else
{ {
cont++; z = x + y;
} nfibo = z;
} x = y;
if (cont == 2) y = z;
{ }
nPrimo = i; }
k++; return nfibo;
} }
} }
return nPrimo; }
}
Series.cs
Ejemplo 3
using System;
namespace Ejemplo3
{
class Program
{
static void Main(string[] args)
{
int n;
double s = 0;
Console.Write("Ingresar limite (n): ");
n = int.Parse(Console.ReadLine());
Program.cs
¿Preguntas o comentarios?
Bibliografía
• Ferguson, J., Patterson, B. and Beres, J., 2003. La Biblia De C#. 1st ed. Madrid: Grupo Anaya S.A.
• Bell, D., 2020. C# Para Estudiantes. 1st ed. México: PEARSON EDUCACIÓN,.
• Cosio, L. and Arrioja, N., 2010. C#. 1st ed. Buenos Aires: Manual Users.
• Ruiz García, J., 2020. Libro C# Yellow Book. [online] Jesús Ruiz García – Blog. Available at:
<https://jesusruizgarcia.wordpress.com/2018/05/30/libro-c-yellow-book-2016-edicion-8-2-en-espanol/>