• Ir al contenido
  • Ir a la navegación
  • Ir al buscador
 
Portada Boludo
ING English
Directorio WAP para móvil, Tablet, iPhone o Smartphone

Centro de Noticias de la Universidad de Oriente

Categorías

 

Inicio  |  Contacto  |  Posts  |  TIENDA PUBLISHOP  |  Sobre nosotros  |  Registro y Planes  |  Pagos  |  Donaciones

Ver Código QR de esta página

Campaña #AyudemosaYuli  |  Campaña #AyudemosaStephany.  |  ¿Interesado(a) en cursos y resolución de ejercicios de materias prácticas? Para más información, contáctenos por: Teléfono: +58 (412) - 8226575. WhatsApp y Telegram: +58 (426) - 6836955 o escriba al correo: [email protected]. Únete al grupo: SISTEMAS (UDOMO).

[»] **Musica para tu celular

WEB TRANSLATOR

LINK for English Language

Use this link for translate into English


+ Buscar en BolUDO

 

Sintaxis de un método

Tweet
 

lunes julio 11, 2016

Cuando uno plantea una clase en lugar de especificar todo el algoritmo en la main (lo que hicimos en los primeros pasos de este tutorial) es dividir todas las responsabilidades de las clase en un conjunto de métodos.

Un método hemos visto que tiene la siguiente sintaxis:

void [nombre de la clase]:nombre del método]() 
{
    [algoritmo]
}

Veremos que hay varios tipos de métodos:

Métodos con parámetros.

Un método puede tener parámetros:

void [nombre de la clase]:nombre del método]([parámetros]) 
{
    [algoritmo]
}

Los parámetros los podemos imaginar como variables locales al método, pero su valor se inicializa con datos que llegan cuando lo llamamos.

Problema 1:

Confeccionar una clase que permita ingresar valores enteros por teclado y nos muestre la tabla de multiplicar de dicho valor. Finalizar el programa al ingresar el -1.

Programa:

#include<iostream>

using namespace std;

class TablaMultiplicar {
private:
    void calcular(int v);
public:
    void cargarValor();
};

void TablaMultiplicar::calcular(int v)
{
    for(int f=v;f<=v*10;f=f+v) 
    {
        cout <<f;
        cout <<"-";
    }
    cout <<"";
}

void TablaMultiplicar::cargarValor()
{
    int valor;
    do
    {
        cout <<"Ingrese un valor (-1 para finalizar):";
        cin >>valor;
        if (valor != -1)
        {
            calcular(valor);
        }
    } while (valor != -1);
}

void main()
{
    TablaMultiplicar tabla1;
    tabla1.cargarValor();
}

Este proyecto lo puede descargar en un zip desde este enlace :

MetodosConParametros

En esta clase no hemos definido ningún atributo. Hemos declarado el método calcular en la zona private (ya que no lo llamaremos desde la main) Luego iremos viendo cuando conviene definir métodos públicos y privados (los métodos públicos son aquellos que podemos llamar desde fuera de la clase, por ahora desde la main pero luego veremos que un problema puede tener más de una clase)

El método calcular recibe un parámetro de tipo entero, luego lo utilizamos dentro del método para mostrar la tabla de multiplicar de dicho valor, para esto inicializamos la variable f con el valor que llega en el parámetro. Luego de cada ejecución del for incrementamos el contador f con el valor del parámetro v.

void TablaMultiplicar::calcular(int v)
{
    for(int f=v;f<=v*10;f=f+v) 
    {
        cout <<f;
        cout <<"-";
    }
    cout <<"";
}

Un método puede no tener parámetros como hemos visto en problemas anteriores o puede tener uno o más parámetros (en caso de tener más de un parámetro los mismos se separan por coma)

El método cargarValores no tiene parámetros y tiene por objetivo cargar un valor entero por teclado y llamar al método calcular para que muestre la tabla de multiplicar del valor que le pasamos por teclado:

void TablaMultiplicar::cargarValor()
{
    int valor;
    do
    {
        cout <<"Ingrese un valor (-1 para finalizar):";
        cin >>valor;
        if (valor != -1)
        {
            calcular(valor);
        }
    } while (valor != -1);
}

Como vemos al método calcular lo llamamos por su nombre y entre paréntesis le pasamos el dato a enviar (debe ser un valor o variable entera)

En este problema en la main solo llamamos al método cargarValor, ya que el método calcular luego es llamado por el método cargarValor (tampoco podríamos llamar al método calcular desde la main esto debido a que está definido en la parte private de la clase):

void main()
{
    TablaMultiplicar tabla1;
    tabla1.cargarValor();
}

Métodos que retornan un dato.

Un método puede retornar un dato:

[tipo de dato] [nombre de la clase]:nombre del método]([parámetros]) 
{
  [algoritmo]
  return [tipo de dato]
}

Cuando un método retorna un dato en vez de indicar la palabra clave void (que significa vacío) previo al nombre del método indicamos el tipo de dato que retorna. Luego dentro del algoritmo en el momento que queremos que finalice el mismo y retorne el dato empleamos la palabra clave return con el valor respectivo.

Problema 2:

Confeccionar una clase que permita ingresar tres valores por teclado. Luego mostrar el mayor y el menor. Retornar dichos valores mediante el return.

Programa:

#include<iostream>

using namespace std;

class MayorMenor {
private:
    int calcularMayor(int v1,int v2,int v3);
    int calcularMenor(int v1,int v2,int v3);
public:
    void cargarValores();
};

int MayorMenor::calcularMayor(int v1,int v2,int v3)
{
    int m;
    if (v1 > v2 && v1 > v3)
    {
        m = v1;
    }
    else
    {
        if (v2 > v3)
        {
            m = v2;
        }
        else
        {
            m = v3;
        }
    }
    return m;
}

int MayorMenor::calcularMenor(int v1,int v2,int v3)
{
    int m;
    if (v1 < v2 && v1 < v3)
    {
        m = v1;
    }
    else
    {
        if (v2 < v3)
        {
            m = v2;
        }
        else
        {
            m = v3;
        }
    }
    return m;
}

void MayorMenor::cargarValores()
{
    int valor1,valor2,valor3;
    cout <<"Ingrese primer valor:";
    cin >>valor1;
    cout <<"Ingrese segundo valor:";
    cin >>valor2;
    cout <<"Ingrese tercer valor:";
    cin >>valor3;
    int mayor, menor;
    mayor = calcularMayor(valor1, valor2, valor3);
    menor = calcularMenor(valor1, valor2, valor3);
    cout <<"El valor mayor de los tres es:";
    cout <<mayor;
    cout <<"";
    cout <<"El valor menor de los tres es:";
    cout <<menor;
    cin.get();
    cin.get();
}

void main()
{
    MayorMenor mayormenor1;
    mayormenor1.cargarValores();
}

Este proyecto lo puede descargar en un zip desde este enlace :

MetodosRetornanDato

Si vemos la sintaxis que calcula el mayor de tres valores enteros es similar al algoritmo visto en conceptos anteriores:


Lo primero que podemos observar que el método retorna un entero y recibe tres parámetros:

int MayorMenor::calcularMayor(int v1,int v2,int v3)

Dentro del método verificamos cual de los tres parámetros almacena un valor mayor, a este valor lo almacenamos en una variable local llamada "m", al valor almacenado en esta variable lo retornamos al final con un return.

La llamada al método calcularMayor lo hacemos desde dentro del método cargarCalores:

    mayor = calcularMayor(valor1, valor2, valor3);

Debemos asignar a una variable el valor devuelto por el método calcularMayor. Luego el contenido de la variable mayor lo mostramos:

    cout <<"El valor mayor de los tres es:";
    cout <<mayor;

La lógica es similar para el cálculo del menor.

Es importante notar que definimos los dos métodos calcularMayor y calcularMenor en la zona private (esto hace que no podamos llamarlos desde la main (significa que estos dos métodos solo pueden ser llamados desde otros métodos de la misma clase)

class MayorMenor {
private:
    int calcularMayor(int v1,int v2,int v3);
    int calcularMenor(int v1,int v2,int v3);
public:
    void cargarValores();
};

Si los definimos en la zona public el programa sigue funcionando pero si queremos que no puedan ser llamados desde la main y queden encapsulados en la clase debemos definirlos en la zona private.

  1. Plantear una clase que permita cargar un valor entero por teclado. Definir un método que solicite la carga del entero y llame a otro método al que le pasamos el valor ingresado y proceda a mostrar los valores enteros desde el 1 hasta el valor que llega como parámetro (es decir el ingresado por teclado)
  2. Desarrollar una clase con dos métodos, uno para la carga de dos enteros. Definir un método privado que le enviemos los valores ingresados por teclado y nos retorne el mayor de ellos.
Solución
#include<iostream>

using namespace std;

class MostrarHasta {
private:
    void mostrarEnteros(int valor);
public:
    void cargar();
};

void MostrarHasta::mostrarEnteros(int valor)
{
    for (int f = 1; f <= valor; f++)
    {
        cout << f;
        cout << "-";
    }
}

void MostrarHasta::cargar()
{
    int val;
    cout << "Ingresar un valor entero:";
    cin >> val;
    mostrarEnteros(val);
}

void main()
{
    MostrarHasta mostrarHasta1;
    mostrarHasta1.cargar();
    cin.get();
    cin.get();
}

Este proyecto lo puede descargar en un zip desde este enlace :MetodosMostrarEnteros

#include<iostream> using namespace std; class MayorDos { private: int mayor(int v1, int v2); public: void cargar(); }; int MayorDos::mayor(int v1, int v2) { if (v1 > v2) { return v1; } else { return v2; } } void MayorDos::cargar() { int valor1, valor2; cout <<"Ingrese primer valor:"; cin >> valor1; cout << "Ingrese segundo valor:"; cin >> valor2; int resu = mayor(valor1, valor2); cout << "El valor mayor de los numeros ingresados es:"; cout << resu; cin.get(); cin.get(); } void main() { MayorDos mayordos1; mayordos1.cargar(); }

Este proyecto lo puede descargar en un zip desde este enlace :MetodosRetornarMayor

— @bolUDOoficial

— Síguenos en Twitter@bolUDOoficial

Categorías: #C++, #


[0] Atrás | Directorio
« Inicio
Apps Infoudo
Apps Infoudo ¡Descarga el icono directo en el menú de tu equipo!
[»] Las mejores Apps para tu celular
[»] Imágenes Gratis


Comenta o lee lo que otros opinan

COMPÁRTELO:

Indica que te gusta y comparte

Me Gusta :)Facebook Tuiteame :)Twitter .WhatsApp .Telegram . LinkedIn

También te puede interesar:

NOCIONES BÁSICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS.
Material de Apoyo del Curso de Programación - Lenguaje C++ - Periodo (Feb - May) del año en curso
Parámetros por valor y por referencia de objetos
Parámetros por valor y por referencia de datos simples
Métodos constantes (const)
Parámetros de un método constante (const)
Definición de constantes (const)
Directiva #define
Puntero this
Métodos estáticos de una clase


« Declaración de una clase y definición de objetos  |  Estructura de datos tipo vector en C++ »
 
Apps Infoudo
 
Buscador:
Powered by Google:


Web móvil
Imágenes
La Web

 

Síguenos por RSS


Puedes leerlos mediante el navegador Firefox, lectores de noticias en la computadora o el móvil o usando el servicio de Feedburner de Google para recibir las notificaciones por correo electrónico.
RSS - Suscribirse usando Feedburner de Google

email Recibir las nuevas publicaciones de Boludo por email

Atom


»Ir a URL
.....
Registra Gratis Tu Negocio
....
Sugerir un nuevo sitio WAP

...
¡Bloguea Ya!

..
Registro de Profesionales(Abogados, escritores, doctores, licenciados, ingenieros, etc.)
.
Soporte

Síguenos en las redes sociales

Síguenos en Facebook facebook.com/boludooficial Síguenos en Twitter @bolUDOoficial Síguenos en Instagram @boludooficial Síguenos en Telegram t.me/Boludooficial
Síguenos en WhatsApp BolUDOoficial Síguenos en YouTube youtube.com/@boludo.oficial
Síguenos en Facebook facebook.com/SergioAlemanFans Síguenos en Twitter @SergioAleman1 Síguenos en Instagram @sergioalemanfans
Síguenos en WhatsApp wa.me/qr/Y7Q232VLZPR5O1 Síguenos en Tiktok @sergioalemanoficial Síguenos en Tiktok @sergioalemanfans
Síguenos en Telegram t.me/SergioAlemanOficial Síguenos en YouTube youtube.com/@sergioaleman
Síguenos en Facebook facebook.com/INFOUDO.OFICIAL Síguenos en Twitter @infoudomon Síguenos en Instagram @infoudooficial Síguenos en Telegram t.me/Infoudooficial
Síguenos en Facebook facebook.com/tuinfou Síguenos en Twitter @infoudomonagas
Síguenos en WhatsApp INFO UDO Síguenos en YouTube youtube.com/@infoudooficial

Mis cuentas sociales

FB
Twitter
Pinterest
Instagram
Otras

Móvil: (0426 683 6955 - 0412 8226575) - E-mail: [email protected] - [email protected] - WhatsApp: +58 (0426) 683.69.55


Copyscape
Volver arriba

Protocolo  |  Mapa del Sitio  |  Report Abuse - DMCA  |  Términos y Condiciones  |  Ayuda  |  Privacidad de Datos  |  Política de Cookies  |  Reportar un bug  |  Licencia: CC BY-NC-ND 3.0

Copyright ©2023 Boludo. Todos los derechos reservados. Diseñado y Desarrollado por Sergio Alemán Mi perfil en GitHub


SUBIR