61 - Parámetros por valor


Un método puede recibir datos cuando lo llamamos. Si los datos llegan para ser utilizados en dicho método utilizamos parámetros por valor.

Problema 1:

Implementar un método que reciba dos enteros y luego imprima de uno en uno desde el valor menor hasta el valor mayor.

Programa:


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

namespace ParametrosValor1
{
    class Program
    {
        public void MostrarRango(int menor, int mayor)
        {
            for (var x = menor; x <= mayor; x++)
            {
                Console.Write(x + " ");
            }
        }

        static void Main(string[] args)
        {
            Program p = new Program();
            p.MostrarRango(1, 25);
            Console.ReadKey();
        }
    }
}

Como podemos ver los parámetros se separan por coma y son utilizados en el método (en este método los dos parámetros por valor se llaman menor y mayor):

        public void MostrarRango(int menor, int mayor)

Dentro del método se utilizan los parámetros cual si fueran variables locales:


            for (var x = menor; x <= mayor; x++)
            {
                Console.Write(x + " ");
            }

Problema 2:

Confeccionar un método que reciba como parámetros tres valores enteros y retorne el mayor de los mismos.

Programa:


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

namespace ParametrosValor2
{
    class Program
    {
        public int Mayor(int v1, int v2, int v3)
        {
            if (v1 >= v2 && v1 >= v3)
            {
                return v1;
            }
            else
            {
                if (v2 >= v3)
                {
                    return v2;
                }
                else
                {
                    return v3;
                }
            }
        }

        static void Main(string[] args)
        {
            Program p = new Program();
            Console.Write("Ingrese primer valor:");
            int x1 = int.Parse(Console.ReadLine());
            Console.Write("Ingrese segundo valor:");
            int x2 = int.Parse(Console.ReadLine());
            Console.Write("Ingrese tercer valor:");
            int x3 = int.Parse(Console.ReadLine());
            Console.Write("El mayor valor de los tres es:" + p.Mayor(x1, x2, x3));
            Console.ReadKey();
        }
    }
}

El método Mayor recibe tres parámetros y retorna un entero. Se inicializa con public ya que lo llamamos desde donde definimos un objeto desde la Main:


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

El dato devuelto del método lo indicamos con la palabra clave return.

Desde la Main llamamos al método pasando tres variables enteras e imprimimos el entero que retorna:

            Console.Write("El mayor valor de los tres es:" + p.Mayor(x1, x2, x3));

Problema propuesto

  1. Confeccionar un método que reciba un entero entre 1 y 10 y retorne el valor en castellano.
Solución

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

namespace ParametrosValor3
{
    class Program
    {
        public string RetornarCastellano(int x)
        {
            string valor;
            switch (x)
            {
                case 1: valor = "uno";
                    break;
                case 2: valor = "dos";
                    break;
                case 3: valor = "tres";
                    break;
                case 4: valor = "cuatro";
                    break;
                case 5: valor = "cinco";
                    break;
                case 6: valor = "seis";
                    break;
                case 7: valor = "siete";
                    break;
                case 8: valor = "ocho";
                    break;
                case 9: valor = "nueve";
                    break;
                case 10: valor = "diez";
                    break;
                default: valor = "valor fuera de rango";
                    break;
            }
            return valor;
        }

        static void Main(string[] args)
        {
            Program p = new Program();
            Console.Write("Ingrese un valor entre 1 y 10:");
            int x = int.Parse(Console.ReadLine());
            Console.Write(p.RetornarCastellano(x));
            Console.ReadKey();
        }
    }
}

Retornar