Liste von Quadratzahlen in C++
-
Hi Leute,
ich bin gerade im 1.Semester und ich sitze gerde an einer Aufgabe, die ich einfach nicht so ganz kapiere wie das gehen soll.
Die Aufgabe lautet:
Implementieren Sie das in der Vorlesung besprochene Programm zur Ausgabe
der ersten 20 Quadratzahlen (QuadratZahlen.cpp) als formatierte Tabelle
mit zwei Spalten.Hier ist der Code der Quadratzahlen:
#include <iostream> #include <cstddef> using namespace std; int main() { // --- Listenkopf cout << " Liste der ersten Quadratzahlen" << endl << " Zahl " << "\t\t" << "Quadrat" << endl; // --- Die Einträge erzeugen size_t n(5); // Variable für natürliche Zahlen cout << " " << n << "\t\t " << n*n << endl; cout << " " << n << "\t\t " << n*n << endl; cout << " " << n << "\t\t " << n*n << endl; cout << " " << n << "\t\t " << n*n << endl; cout << " " << n << "\t\t " << n*n << endl; // --- Zeilenvorschub und neutraler Endecode cout << endl; return 0; }
Wäre cool wenn ihr mir dazu was sagen könnt, da ich gerade total auf dem Schlauch stehe. Was ist denn genau der Unterschied zwischen "size_t" und einfach nur "int"? Ist das nicht "fast" das gleiche? Könnte ich die Aufgabe auch mit "int" lösen?
gruß bigbootykilla
-
Meist ist size_t und unsigned int das gleiche. Je nach Platform und Compiler. Lösen kannst du die wohl auch mit int, wenn die Aufgabe es nicht anders verlangt. Oder unsigned int. Oder unsigned long. Oder long long. Gar unsigned long long. Oder float. Oder double. Oder long double...
-
ok danke, aber ich würde sie gerne lösen wie es der Prof will. Die Vorlage der Quadratzahlen.cpp Datei habe ich gepostet, jedoch bekomme ich es nicht hin das er 20 Zeilen Quadratzahlen ausgibt und mit 1 anfängt und bei 20 aufhört!
Ich hab irgendwie versucht das mit ++n hinzubekommen bzw. ++i, da sich damit ja immer eins erhöht, aber ich bekomme es nicht hin.
gruß bigbootykilla
-
Stichwort: Schleifen, versuch dich doch durch ein Tutorial zu arbeiten, danach wird es vielleicht etwas klarer.
-
Versuch es mit einer Schleife. Steht sicher was zu in deinem Vorlesungs-Skript.
-
hier mal die lösung kannst es zur übung noch mit einer while oder do while schleife probieren
#include <iostream> using namespace std; int main () { cout << "Zahl" << "\t" << "Quadrat\n"; for(int i=1;i<=20;i++) { cout << i << "\t" << i*i << "\n"; } cout << endl; return 0; }
-
Danke für die Antworiten, aber wie würde es denn ohne Schleifen funktionieren? Die Schleifen wurden erst im nächsten Kapitel besprochen.
Ich glaube der Sinn dieser Übung ist es mit size_t umzugehen und genau das ist es was ich nicht verstehe. Ich weiß nicht wann ich size_t einsetzen soll.
Wäre cool wenn mir das jemand erklären könnte? Dann würde ich auch verstehen warum der Prof. hier size_t verwendet hat und es nicht mit einem int gelöst hat!
Naja und vielleicht auch gleich die Lösung (code), da ich weitermachen muß...
gruß
-
bigbootykilla schrieb:
Ich glaube der Sinn dieser Übung ist es mit size_t umzugehen und genau das ist es was ich nicht verstehe. Ich weiß nicht wann ich size_t einsetzen soll.
Hmmm... ich verstehe nicht so ganz dein Problem, vielleicht ist es ja einfach die folgende Zeile:
size_t n(5);
Das könnte man auch ohne Klammern schreiben:
size_t n = 5;
Und wie Fellhuhn schon sagte:
Fellhuhn schrieb:
Meist ist size_t und unsigned int das gleiche.
wäre auch sowas möglich:
unsigned int n = 5;
oder so:
unsigned int n(5);
Bei deinem Code würden alle 4 von mir geposteten Codezeilen praktisch zum gleichen Ergebnis führen. Vielleicht hat dir das schon etwas Klarheit verschafft :).
-
okay alles klar, ich war mir nur unsicher bezgl. dem size_t hier in der Aufgabe! Aber wenn unsigned int und size_t das gleiche ist, dann is ja alles subba :xmas1:
Ich hab die Aufgabe jetzt einfach folgendermaßen gelöst und ich denke auch das es so richtig ist:
#include <iostream> #include <cstddef> using namespace std; int main() { // --- Listenkopf cout << " Liste der ersten Quadratzahlen" << endl << " Zahl " << "\t\t" << "Quadrat" << endl; // --- Die Einträge erzeugen size_t n(5); // Variable für natürliche Zahlen cout << " " << n << "\t\t " << n*n << endl; n+=1; cout << " " << n << "\t\t " << n*n << endl; n+=1; cout << " " << n << "\t\t " << n*n << endl; n+=1; cout << " " << n << "\t\t " << n*n << endl; n+=1; cout << " " << n << "\t\t " << n*n << endl; n+=1; // --- Zeilenvorschub und neutraler Endecode cout << endl; return 0; }
mit n+=1; an der Stelle hinzugefügt und schon erhöht er jedesmal um eins. Man könnte es jetzt natürlich bis 20 fortsetzen, jedoch hatte ich da jetzt keine Lust drauf.
gruß bigbootykilla
-
Sagt dir das Stichwort:Schleifen etwas? Warum alles so statisch wenn du es doch schän dynamisch über eine Schleife lösen kannst?
-
Firefighter schrieb:
Sagt dir das Stichwort:Schleifen etwas? Warum alles so statisch wenn du es doch schän dynamisch über eine Schleife lösen kannst?
Er sagte doch bereits, dass sie das noch nicht in der Vorlesung besprochen haben. Dann ist es durchaus möglich, dass sie es so lösen sollten
-
Autsch...wieder nicht alles gelesen. Ok dann wars mein Fehler, aber dann kann er sich mit eigen Studium ja Fleißpunkte verdienen und es mit einer Schleife umsetzen
-
Wenn wir gerade dabei sind, könnte man auch Funktionen empfehlen...
-
Ja bei den Schleifen bin ich gerade.
Bei Fragen werd ich mich in einem anderen Thread melden denke ich.
gruß bigbootykilla