2015-09-13 3 views
-3

J'ai eu du mal à faire cette tâche. J'ai juste du mal à comprendre et je ne sais pas trop quoi faire. J'ai fait des recherches et regardé des vidéos et n'ai pas été en mesure de trouver les bonnes informations spécifiques. C'est un tas de questions, donc j'espère que quelqu'un peut non seulement donner les réponses, mais aussi m'expliquer pour que je comprenne bien :). Voici les questions:Aide d'affectation C++ sur la création de codes pour la réutilisabilité?

1) Dans cet exercice nous avons reçu un code de programme qui acceptera deux entiers comme entrées et évaluera lequel contient la plus grande valeur. Cette évaluation se produit à plusieurs endroits dans tout le code. Ecrire une fonction que le programme pourrait utiliser pour effectuer cette même évaluation au lieu de dupliquer le code encore et encore. Commencez par écrire une déclaration de fonction appropriée vers le début du fichier de code. Vous devrez décider si votre fonction retournera une sortie ou non.

2) Avec votre déclaration écrite, passez à la définition de la fonction, y compris les parties appropriées du code qui évaluera lequel des deux entiers est le plus grand. Si vous avez indiqué plus tôt que votre fonction renverra une valeur, veillez à définir ce qu'elle renverra ici.

3) Utiliser le résultat à partir de pièces (1) et (2) réduire la quantité de code en double dans la fonction principale fournie par le remplacement des instances multiples de la comparaison de nombre entier avec un appel pour appeler la fonction vous créé. Rappelez-vous que la fonction demandera deux entiers à comme arguments et que si vous renvoyez une valeur de la fonction, elle doit être utilisée (stockée dans une variable, sortie vers l'écran, etc.). En guise de conseil, testez votre fonction correctement après en remplaçant juste l'une des évaluations, ne les remplacez pas toutes en même temps (si la fonction fonctionne correctement pour le premier remplacement alors cela devrait marcher pour les autres).

4) Étant donné que la fonction que vous avez créé ne compare les valeurs de ses paramètres et ne pas écrire à eux (changer la valeur stockée dans les), nous devons préciser dans la déclaration de fonction et définition que ces paramètres doivent être traité comme des constantes. Effectuez les modifications nécessaires à la fonction et effectuez un nouveau test pour vérifier que la fonction fonctionne toujours. Confirmez la fonction ne vous laissera pas modifier les données des paramètres en essayant d'inclure une opération dans la fonction qui changerait la valeur d'une des variables (par exemple number2 + = 10;)

- Voici le code (je présente mes excuses pour le long écrit):

#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; 

}

+0

Utiliser le modèle pour généraliser la mise en œuvre –

Répondre

0

Vous avez essentiellement à factoriser le code pour remplacer la partie de code en double dans votre fonction main.

Si vous regardez attentivement, vous verrez que le code comme ceci se répète:

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; 

mis donc cela en fonction:

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; 
} 

Et appelez dans votre fonction principale au lieu de dupliquer ledit bloc de code.

+0

Répond-t-il à toutes les questions ou au premier? Je suis si confus! – Moe

+0

"J'ai fait des recherches et regardé des vidéos", et j'essaie maintenant SO. Arrêtez tout ceci: * relisez le matériel de votre classe, et vos notes *. Il doit y avoir quelque chose à propos des fonctions. Le but de l'exercice est que vous compreniez pourquoi les fonctions sont utiles, le code un et le mettre à profit. Je ne vois aucun moyen de répondre à vos questions sans vous donner une solution complète, ce qui ne vous aidera pas à comprendre de quoi il s'agit. Cherchez "fonction" dans votre matériel de classe. – jbm