C++ назначение справки по созданию кодов для повторного использования?

У меня были проблемы с выполнением этого задания. Мне просто трудно понять, и я не совсем уверен, что делать. Я исследовал и смотрел видео и не смог найти нужную, конкретную информацию. Это куча вопросов, поэтому я надеюсь, что кто-то не только даст мне ответы, но и объяснит мне, чтобы у меня было сильное понимание:) . Вот вопросы:

1) В этом упражнении нам дали некоторый программный код, который будет принимать два целых числа в качестве входных данных и оценивать, какое из них содержит большее значение. Эта оценка происходит в нескольких местах по всему коду. Напишите функцию, которую программа могла бы использовать для выполнения этой же оценки вместо дублирования кода снова и снова. Начните с написания подходящего объявления функции в начале файла кода. Вам нужно решить, будет ли ваша функция возвращать какой-либо вывод или нет.

2) После написания декларации перейдите к определению функции, включая соответствующие фрагменты кода, которые будут оценивать, какое из двух целых чисел является наибольшим. Если вы заявили ранее, что ваша функция будет возвращать значение, обязательно определите, что оно будет возвращать здесь.

3) Используйте свой результат из частей (1) и (2), чтобы уменьшить количество дублирующегося кода в основной функции, предоставленной путем замены нескольких экземпляров целочисленного сравнения вызовом для вызова функции, которую вы создали. Помните, что функция потребует, чтобы в качестве аргументов были переданы два целых числа, и если вы возвращаете какое-то значение из функции, ее следует использовать (сохранить в переменной, вывести на экран и т. Д.). Как совет, после замены только одной из оценок проверьте, что ваша функция работает правильно, не заменяйте их все сразу (если функция корректно работает при первой замене, она должна работать и для остальных).

4) Поскольку созданная вами функция сравнивает только значения своих параметров и не записывает в них (то есть изменяет значение, хранящееся в них), мы должны указать в объявлении и определении функции, что эти параметры должны рассматриваться как константы. Внесите необходимые изменения в функцию и повторите тестирование, чтобы убедиться, что функция все еще работает. Подтвердите, что функция не позволит вам изменять данные параметров, пытаясь включить в функцию операцию, которая изменила бы значение одной из переменных (например, число2 + = 10;)

- Вот код (прошу прощения за долгое написание):

#include <iostream>

int main(void)
{
using std::cout;
using std::cin;
using std::endl;

int nNum1 = 10, nNum2 = 11;

cout << "This program will compare two numbers and report which one is larger.\n\n"
    << "Proceeding with evaluation...\n" << endl;

cout << "\nUsing numbers: " << nNum1 << " and " << nNum2 << ", the larger one is: ";
if (nNum1 > nNum2)
    cout << nNum1 << endl;
else if (nNum1 < nNum2)
    cout << nNum2 << endl;
else
    cout << "Neither of them! It's a draw." << endl;

int numberA = 234;
int numberB = 234;
cout << "\nUsing numbers: " << numberA << " and " << numberB << ", the larger one is: ";
if (numberA > numberB)
    cout << numberA << endl;
else if (numberA < numberB)
    cout << numberB << endl;
else
    cout << "Neither of them! It's a draw." << endl;

int one = 'a';
int two = 'A';
cout << "\nUsing numbers: " << one << " and " << two << ", the larger one is: ";
if (one > two)
    cout << one << endl;
else if (one < two)
    cout << two << endl;
else
    cout << "Neither of them! It's a draw." << endl;

cout << "\nUsing numbers: " << 13 << " and " << 84 << ", the larger one is: ";
if (13 > 84)
    cout << 13 << endl;
else if (13 < 84)
    cout << 84 << endl;
else
    cout << "Neither of them! It's a draw." << endl;

int input1 = 0;
int input2 = 0;
cout << "\nPlease enter a number: ";
cin >> input1;
cout << "\nPlease enter a second number: ";
cin >> input2;

cout << "\nUsing numbers: " << input1 << " and " << input2 << ", the larger one is: ";
if (input1 > input2)
    cout << input1 << endl;
else if (input1 < input2)
    cout << input2 << endl;
else
    cout << "Neither of them! It's a draw." << endl;

cout << "\n\tThank you for running me :3\n" << endl;
return 0;

}

1 ответ

Решение

Вы в основном должны реорганизовать код, чтобы заменить дублирующуюся часть кода в вашем main функция.

Если вы посмотрите внимательно, вы увидите, что этот код повторяется:

cout << "\nUsing numbers: " << nNum1 << " and " << nNum2 << ", the larger one is: ";
if (nNum1 > nNum2)
    cout << nNum1 << endl;
else if (nNum1 < nNum2)
    cout << nNum2 << endl;
else
    cout << "Neither of them! It's a draw." << endl;

Так что поместите это в функцию:

void CompareNumbers(int nNum1, int nNum2)
{
    cout << "\nUsing numbers: " << nNum1 << " and " << nNum2 << ", the larger one is: ";
    if (nNum1 > nNum2)
        cout << nNum1 << endl;
    else if (nNum1 < nNum2)
        cout << nNum2 << endl;
    else
        cout << "Neither of them! It's a draw." << endl;
}

И вызовите это в своей основной функции вместо дублирования указанного блока кода.

Другие вопросы по тегам