Einführung
In diesem Labyrinth (Lab) lernen Sie, wie Sie in C++ feststellen können, ob eine gegebene Zahl eine perfekte Quadratzahl ist. Eine perfekte Quadratzahl ist eine Zahl, die als Produkt einer ganzen Zahl mit sich selbst ausgedrückt werden kann. Beispielsweise sind 1, 4, 9, 16 und 25 perfekte Quadratzahlen, da sie als 1×1, 2×2, 3×3, 4×4 bzw. 5×5 ausgedrückt werden können.
Wir werden ein C++-Programm erstellen, das die sqrt()-Funktion aus der Standardbibliothek verwendet, um die Quadratwurzel einer Zahl zu berechnen und zu bestimmen, ob es sich um eine perfekte Quadratzahl handelt. In diesem Labyrinth werden Sie mit grundlegenden C++-Programmierkonzepten vertraut gemacht, einschließlich Funktionen, bedingten Anweisungen und mathematischen Operationen.
Erstellen Sie eine neue C++-Datei und inkludieren Sie die erforderlichen Bibliotheken
In diesem Schritt werden wir eine neue C++-Datei erstellen und die erforderlichen Bibliotheken für unser Programm einbinden.
Zunächst erstellen wir eine neue Datei namens main.cpp im Projektverzeichnis:
- Klicken Sie im WebIDE auf das Explorer-Symbol in der linken Seitenleiste.
- Klicken Sie mit der rechten Maustaste auf den Ordner
projectund wählen Sie "Neue Datei". - Benennen Sie die Datei
main.cppund drücken Sie die Eingabetaste.
Jetzt fügen wir die erforderlichen Bibliotheken zu unserem Programm hinzu. Wir benötigen zwei Hauptbibliotheken:
iostream: Diese Bibliothek bietet Funktionen für Ein- und Ausgabeoperationen.cmath: Diese Bibliothek enthält mathematische Funktionen, einschließlich dersqrt()-Funktion, die wir verwenden werden.
Fügen Sie den folgenden Code in Ihre main.cpp-Datei ein:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
cout << "\nWelcome to the Perfect Square Checker Program\n\n";
// We will add more code here in the next steps
return 0;
}
Dieser Code:
- Bindet die erforderlichen Bibliotheken ein.
- Nutzt den
namespace std, um nichtstd::vor Standardbibliotheksfunktionen schreiben zu müssen. - Erstellt eine grundlegende
main()-Funktion, die eine Willkommensnachricht anzeigt. - Gibt 0 zurück, um anzuzeigen, dass das Programm erfolgreich ausgeführt wurde.
Speichern Sie Ihre Datei, indem Sie Strg+S drücken oder im Menü "Datei > Speichern" auswählen.
Implementieren Sie die Funktion zur Prüfung auf perfekte Quadratzahlen
Jetzt werden wir eine Funktion erstellen, die feststellt, ob eine Zahl eine perfekte Quadratzahl ist. Eine perfekte Quadratzahl hat eine ganzzahlige Quadratwurzel. Beispielsweise ist 16 eine perfekte Quadratzahl, weil seine Quadratwurzel genau 4 ist.
Fügen Sie die folgende Funktion über der main()-Funktion in Ihrer main.cpp-Datei hinzu:
bool isPerfectSquare(int number) {
// Calculate the square root of the number
double squareRoot = sqrt(number);
// Convert the square root to an integer
int intSquareRoot = static_cast<int>(squareRoot);
// A number is a perfect square if squaring its integer square root gives the original number
return (intSquareRoot * intSquareRoot == number);
}
Lassen Sie uns verstehen, wie diese Funktion funktioniert:
- Die Funktion nimmt einen ganzzahligen Parameter
numberentgegen und gibt einen booleschen Wert (true oder false) zurück. - Wir verwenden die
sqrt()-Funktion aus dercmath-Bibliothek, um die Quadratwurzel der eingegebenen Zahl zu berechnen. - Wir konvertieren die Quadratwurzel in eine Ganzzahl mit
static_cast<int>(), wodurch jeglicher Dezimalanteil entfernt wird. - Wenn die Zahl eine perfekte Quadratzahl ist, dann ergibt die Multiplikation der ganzzahligen Quadratwurzel mit sich selbst die ursprüngliche Zahl.
- Die Funktion gibt
truezurück, wenn die Zahl eine perfekte Quadratzahl ist, undfalsesonst.
Beispiel:
- Für die Zahl 16:
- sqrt(16) = 4.0
- Die Konvertierung von 4.0 in eine Ganzzahl ergibt 4
- 4 × 4 = 16, was der ursprünglichen Zahl entspricht, also ist 16 eine perfekte Quadratzahl.
- Für die Zahl 10:
- sqrt(10) ≈ 3.16227766
- Die Konvertierung von 3.16227766 in eine Ganzzahl ergibt 3
- 3 × 3 = 9, was nicht der ursprünglichen Zahl entspricht, also ist 10 keine perfekte Quadratzahl.
Ihr bisheriger vollständiger Code sollte wie folgt aussehen:
#include <iostream>
#include <cmath>
using namespace std;
bool isPerfectSquare(int number) {
// Calculate the square root of the number
double squareRoot = sqrt(number);
// Convert the square root to an integer
int intSquareRoot = static_cast<int>(squareRoot);
// A number is a perfect square if squaring its integer square root gives the original number
return (intSquareRoot * intSquareRoot == number);
}
int main() {
cout << "\nWelcome to the Perfect Square Checker Program\n\n";
// We will add more code here in the next step
return 0;
}
Speichern Sie Ihre Datei, bevor Sie mit dem nächsten Schritt fortfahren.
Vervollständigen Sie die Hauptfunktion mit Benutzer-Eingabe und -Ausgabe
Jetzt erweitern wir die main()-Funktion so, dass sie:
- Den Benutzer auffordert, eine Zahl einzugeben
- Die Eingabe des Benutzers erhält
- Unsere
isPerfectSquare()-Funktion verwendet, um zu prüfen, ob die Zahl eine perfekte Quadratzahl ist - Eine entsprechende Nachricht basierend auf dem Ergebnis anzeigt
Aktualisieren Sie Ihre main()-Funktion mit dem folgenden Code:
int main() {
cout << "\nWelcome to the Perfect Square Checker Program\n\n";
int userNumber;
// Prompt the user to enter a number
cout << "Please enter a positive integer: ";
cin >> userNumber;
// Check if the entered number is a perfect square
if (isPerfectSquare(userNumber)) {
int squareRoot = static_cast<int>(sqrt(userNumber));
cout << "\nThe number " << userNumber << " is a perfect square!" << endl;
cout << "It is equal to " << squareRoot << " × " << squareRoot << endl;
} else {
cout << "\nThe number " << userNumber << " is not a perfect square." << endl;
}
cout << "\nThank you for using the Perfect Square Checker Program!\n" << endl;
return 0;
}
Lassen Sie uns verstehen, was dieser Code tut:
- Wir deklarieren eine Ganzzahlvariable
userNumber, um die Eingabe des Benutzers zu speichern. - Wir fordern den Benutzer auf, eine positive Ganzzahl einzugeben, indem wir
coutverwenden. - Wir lesen die Eingabe des Benutzers mit
cinund speichern sie inuserNumber. - Wir rufen unsere
isPerfectSquare()-Funktion auf, wobeiuserNumberals Argument übergeben wird. - Wenn die Zahl eine perfekte Quadratzahl ist:
- Wir berechnen ihre Quadratwurzel und speichern sie in
squareRoot. - Wir zeigen eine Nachricht an, die darauf hinweist, dass die Zahl eine perfekte Quadratzahl ist.
- Wir zeigen an, welche zwei identischen Ganzzahlen multipliziert werden müssen, um die ursprüngliche Zahl zu erhalten.
- Wir berechnen ihre Quadratwurzel und speichern sie in
- Wenn die Zahl keine perfekte Quadratzahl ist:
- Wir zeigen eine Nachricht an, die darauf hinweist, dass die Zahl keine perfekte Quadratzahl ist.
- Schließlich zeigen wir eine Dankesnachricht an und verlassen die
main()-Funktion.
Ihr vollständiges Programm sollte jetzt wie folgt aussehen:
#include <iostream>
#include <cmath>
using namespace std;
bool isPerfectSquare(int number) {
// Calculate the square root of the number
double squareRoot = sqrt(number);
// Convert the square root to an integer
int intSquareRoot = static_cast<int>(squareRoot);
// A number is a perfect square if squaring its integer square root gives the original number
return (intSquareRoot * intSquareRoot == number);
}
int main() {
cout << "\nWelcome to the Perfect Square Checker Program\n\n";
int userNumber;
// Prompt the user to enter a number
cout << "Please enter a positive integer: ";
cin >> userNumber;
// Check if the entered number is a perfect square
if (isPerfectSquare(userNumber)) {
int squareRoot = static_cast<int>(sqrt(userNumber));
cout << "\nThe number " << userNumber << " is a perfect square!" << endl;
cout << "It is equal to " << squareRoot << " × " << squareRoot << endl;
} else {
cout << "\nThe number " << userNumber << " is not a perfect square." << endl;
}
cout << "\nThank you for using the Perfect Square Checker Program!\n" << endl;
return 0;
}
Speichern Sie Ihre Datei, bevor Sie mit dem nächsten Schritt fortfahren.
Kompilieren und testen Sie das Programm
Nachdem wir unser C++-Programm fertiggestellt haben, ist es Zeit, es zu kompilieren und auszuführen. Das Kompilieren wandelt unseren menschenlesbaren Code in ein maschinenausführbares Programm um.
Das Programm kompilieren
Öffnen Sie ein Terminal im WebIDE, indem Sie auf "Terminal" im Menü klicken und "Neues Terminal" auswählen.
Navigieren Sie im Terminal zum Projektverzeichnis:
cd ~/project
Kompilieren Sie das Programm mit dem g++-Compiler:
g++ main.cpp -o perfect_square_checker
Dieser Befehl teilt dem Compiler mit:
- Die Quelldatei
main.cppzu nehmen - Sie in ein ausführbares Programm namens
perfect_square_checkerzu kompilieren
Wenn die Kompilierung erfolgreich ist, sehen Sie keine Ausgabe. Wenn es Fehler gibt, lesen Sie die Fehlermeldungen, beheben Sie die Probleme in Ihrem Code und versuchen Sie es erneut, das Programm zu kompilieren.
Das Programm ausführen
Nach erfolgreicher Kompilierung des Programms führen Sie es aus, indem Sie Folgendes eingeben:
./perfect_square_checker
Das Programm startet und fordert Sie auf, eine positive Ganzzahl einzugeben.
Mit verschiedenen Eingaben testen
Lassen Sie uns unser Programm mit verschiedenen Eingaben testen, um sicherzustellen, dass es korrekt funktioniert:
Testfall 1: Eine perfekte Quadratzahl
Geben Sie 16 ein, wenn Sie dazu aufgefordert werden. Sie sollten eine Ausgabe ähnlich der folgenden sehen:
Please enter a positive integer: 16
The number 16 is a perfect square!
It is equal to 4 × 4
Thank you for using the Perfect Square Checker Program!
Testfall 2: Keine perfekte Quadratzahl
Führen Sie das Programm erneut aus und geben Sie 10 ein, wenn Sie dazu aufgefordert werden. Sie sollten eine Ausgabe ähnlich der folgenden sehen:
Please enter a positive integer: 10
The number 10 is not a perfect square.
Thank you for using the Perfect Square Checker Program!
Testfall 3: Eine andere perfekte Quadratzahl
Führen Sie das Programm erneut aus und geben Sie 25 ein, wenn Sie dazu aufgefordert werden. Sie sollten eine Ausgabe ähnlich der folgenden sehen:
Please enter a positive integer: 25
The number 25 is a perfect square!
It is equal to 5 × 5
Thank you for using the Perfect Square Checker Program!
Durch das Testen mit verschiedenen Eingaben können Sie sich vergewissern, dass Ihr Programm korrekt zwischen perfekten Quadratzahlen und nicht-perfekten Quadratzahlen unterscheidet.
Herzlichen Glückwunsch! Sie haben erfolgreich ein C++-Programm erstellt, das feststellt, ob eine Zahl eine perfekte Quadratzahl ist.
Zusammenfassung
In diesem Lab haben Sie erfolgreich ein C++-Programm erstellt, das feststellt, ob eine Zahl eine perfekte Quadratzahl ist. Lassen Sie uns zusammenfassen, was Sie erreicht haben:
Sie haben gelernt, wie man notwendige Bibliotheken in ein C++-Programm einbindet:
iostreamfür Ein- und Ausgabeoperationencmathfür mathematische Funktionen wiesqrt()
Sie haben die
isPerfectSquare()-Funktion implementiert, die einen mathematischen Ansatz verwendet, um zu bestimmen, ob eine Zahl eine perfekte Quadratzahl ist:- Berechnen Sie die Quadratwurzel der Zahl.
- Prüfen Sie, ob das Quadrat des ganzzahligen Teils der Quadratwurzel der ursprünglichen Zahl entspricht.
Sie haben in der
main()-Funktion eine benutzerfreundliche Schnittstelle erstellt, die:- Den Benutzer auffordert, eine Zahl einzugeben
- Die
isPerfectSquare()-Funktion verwendet, um zu prüfen, ob die Zahl eine perfekte Quadratzahl ist - Eine entsprechende Nachricht basierend auf dem Ergebnis anzeigt
Sie haben Ihr Programm mit verschiedenen Eingaben kompiliert und getestet, um seine Funktionalität zu überprüfen.
Durch dieses Lab haben Sie praktische Erfahrung mit mehreren wichtigen C++-Programmierkonzepten gesammelt:
- Erstellen und Aufrufen von Funktionen
- Verwenden von bedingten Anweisungen (if-else)
- Arbeiten mit Benutzer-Eingabe und -Ausgabe
- Durchführen von Typkonvertierungen
- Verwenden von mathematischen Funktionen aus der Standardbibliothek
- Kompilieren und Ausführen eines C++-Programms
Sie können dieses Programm weiter verbessern, indem Sie Funktionen hinzufügen, wie z. B.:
- Eingabevalidierung, um sicherzustellen, dass der Benutzer eine positive Ganzzahl eingibt
- Die Möglichkeit, mehrere Zahlen zu prüfen, ohne das Programm neu zu starten
- Finden der nächsten perfekten Quadratzahl zu einer nicht-perfekten Quadratzahl
Indem Sie diese grundlegenden Konzepte weiter üben und erweitern, werden Sie stärkere C++-Programmierfähigkeiten entwickeln, die Sie auf komplexere Probleme anwenden können.



