Neueinsteiger in C++
-
Codebeispiel für Eingabe einer Zahl.
Hallo, ich bin gänzlicher Neueinsteiger in der Programmierung mit C++. Ich habe beim Googeln folgende Aufgabe gefunden:
Aufgabe 1:- Eingabe einer Zahl
- Zählen von 0 bis "Zahl"
z. B. Bitte Zahl eingeben: 5
Die selbe Aufgabe soll dann in Aufgabe 2 mit einer for Schleife realisiert werden.
Wie sieht das Beispiel in korrektem Code aus und wo ist der Unterschied in den beiden Aufgaben bei Verwendung der for Schleife? Wie gesagt ich bin kompletter Neueinsteiger und möchte mal den grundlegenden Aufbau derartiger Aufgaben verstehen.
Ich danke vorab für Eure Hilfe.
-
Du hast doch bestimmt irgendwelche Lernunterlagen, wenn du Programmierung mit C++ lernen möchtest; ein Buch, ein Vorlesungsskript oder ein Online Tutorial?
Irgendwas wird dazu da doch drinnen stehen. Versuch das doch mal damit selbst? Das sind ganz typische Dinge, die du an 1000 Stellen online nachlesen kannst.
Wenn du dann mit deinen Versuchen nicht weiter kommst, kannst du hier gerne alles fragen, am besten anhand eines konkreten Problems, aber einen C++ Kurs wirst du hier wahrscheinlich nicht bekommen.
-
Ich würde hier sogar Aufgabe 1 weglassen. Das lehrt dich nichts und ist komisch und schwierig im Vergleich zur Schleife (oder du hast die Aufgabe falsch wiedergegeben). Aufgabe 2 musst du alleine hinbekommen, das ist simpel.
-
@SeppJ ja, ist eben doch nicht so simpel für einen Einsteiger. Darum frage ich ja bezüglich eines Denkanstoßes nach, um auf die richtige Herangehensweise zu kommen.
-
Aufgabe 1 lautet tatsächlich so:
- Eingabe einer Zahl
- Zählen Sie bis zu der eingegebenen Zahl.
Leider habe ich in Google von den 1000 Stellen wo das beschrieben sein soll noch keine gefunden.
-
@Spider67 sagte in Neueinsteiger in C++:
Aufgabe 1 lautet tatsächlich so:
- Eingabe einer Zahl
- Zählen Sie bis zu der eingegebenen Zahl.
Leider habe ich in Google von den 1000 Stellen wo das beschrieben sein soll noch keine gefunden.
Das ist eine komische Aufgabe. Entweder hast du wichtigen Kontext weggelassen, oder sie ist doof und zum Lernen ungeeignet.
Allgemein ist Google keine gute Hilfe, wenn man gutes Lehrmaterial sucht. Ganz besonders seit Google seine Philosophie geändert hat und statt Information lieber Antworten liefert. Zum Thema Bücher zu C++. (Vermeide alles von Jürgen Wolf!)
-
@SeppJ Genau heißt es
- Eingabe einer Zahl
- Zählen von 0 bis Zahl
Starten würde ich mal so:
#include <iostream>
using namespace std;int main()
{
int zahl;
cout << "Eingabe einer Zahl" << endl;
cin >> zahl;
}So habe ich glaube ich mal die Eingabe der Zahl realisiert. Wie programmiere ich jetzt, dass das Programm bis zu der eingebenen Zahl zählt und dann stoppt? Realisiert man das mit der count Funktion?
Danke für die Hilfe.
-
@Spider67 Bitte pack deinen Code in entsprechende Tags, um ein Syntax-Highlighting zu bekommen. Das macht das lesen einfacher:
#include <iostream> using namespace std; int main() { int zahl; cout << "Eingabe einer Zahl" << endl; cin >> zahl; }
Ok, soweit so gut. Du hast deinen Endzustand (
zahl
), kennst deinen Startzustand (0
) und kennst die entsprechende Schrittweite (1
).
Jetzt hast du bereits das Stichwort "for-Schleife" bekommen, welche von einem Startpunkt so lange weiter läuft, bis eine Bedingung nicht mehr erfüllt ist. Wie könnte es jetzt weiter gehen?
-
@Spider67 sagte in Neueinsteiger in C++:
So habe ich glaube ich mal die Eingabe der Zahl realisiert. Wie programmiere ich jetzt, dass das Programm bis zu der eingebenen Zahl zählt und dann stoppt? Realisiert man das mit der count Funktion?
Eigentlich halt mit einer Schleife, wie in Aufgabe 2, daher sag ich doch die ganze Zeit, dass du diese Aufgabe vergessen solltest und stattdessen Aufgabe 2 machen sollst. Dies ohne eine Schleife zu machen ist eher eine extra Herausforderung für erfahrene Programmierer.
-
@Spider67 Nein,
std::count
ist dafür da, bestimme Elemente zu zählen, die eine Bedingung erfüllen (==value
): Zum Beispiel alle Einsen in einem Vektor.Jedes Einsteigerbeispiel für eine
for
Schleife ist eine einfache Zählschleife: z.B. https://www.w3schools.com/cpp/cpp_for_loop.aspMan kann das auch mit einer anderen Schleife realisieren. Vlt hast du, wo auch immer die Aufgabe her ist, mit einer
while
Schleife angefangen und das ist die Idee von Aufgabe 1.Eine Funktion aus der Standardbibliothek dafür gibt es nicht, denn "Hochzählen" an und für sich macht ja erstmal wenig Sinn. Die Aufgabe ist ja wahrscheinlich auch, "alle Zahlen zwischen 0 und Eingabe ausgeben"
Wenn man expliziet keine Schleife haben möchte, kann man natürlich über eine rekursive Lösung nachdenken, aber das ist nicht, was du als Einsteiger als erstes machen möchtest.
-
@Schlangenmensch genau darum soll es gehen.
In beiden Beispielen wird verlangt bis zur eingegebenen Zahl hochzuzählen. Im ersten Fall ohne for Schleife im zweiten halt mit for Schleife. Da es sich um eine der ersten Übungen in meinem Kurs handelt, dürfte Aufgabe 1 nicht sonderlich kompliziert sein.
Ich versuche es mal wie ich es mir jetzt zusammengereimt habe:
Bitte um Feedback ob es so passt:
using namespace std; int main() { int zahl; cout << "Eingabe einer Zahl" << endl; cin >> zahl; } for (int i = 0; i ≤ zahl; i++) { cout << i << "\n"; }
Wie weit liege ich da daneben?
-
Dieser Beitrag wurde gelöscht!
-
Was hast du denn in deinem Kurs gemacht? Da wird es ja auch Beispiele geben. Die wirst du wahrscheinlich nur minimal ändern müssen.
Tut mir leid, dass hier niemand die Lösung hinschreibt. Aber programmieren lernt man nur, wenn man das auch macht und Dinge probiert.
Für die
for
Schleife kannst du einfach das Beispiel aus meinem Link kopieren und minimal anpassen. Dann kannst du das selbe mit einer anderen Schleife, z.B. der von mir angesprochenenwhile
Schleife lösen.Das Einlesen hast du ja schon, wie könnte dann die Schleife dazu aussehen.
-
Hallo,
dann wäre das Aufgabe 1 mit der while Schleife, oder nicht?
using namespace std; int main() { int zahl; cout << "Eingabe einer Zahl" << endl; cin >> zahl; } int i = 0; while (i ≤ zahl) { cout << i << "\n"; i++; }``` Habe ich es jetzt halbwegs begriffen?
-
@Spider67 sagte in Neueinsteiger in C++:
Wie weit liege ich da daneben?
Tut es denn, was du willst?
@Spider67 sagte in Neueinsteiger in C++:
dann wäre das Aufgabe 1 mit der while Schleife, oder nicht?
Gleiche Antwort: Kannst du nicht selber beurteilen, ob dein Code a) eine while-Schleife enthält und b) tut was du willst? Festzustellen, ob ein Programm korrekt ist, gehört zum Programmieren dazu!
Heißer Tipp: Du programmierst sicher nicht nur auf Papier. Den Code auch mal auszuführen ist offensichtlich extrem hilfreich, wenn man feststellen will, ob der Code das richtige tut. Das hast du offensichtlich nicht einmal ausprobiert, denn dein Code enthält noch Fehler, die dich ihn noch nicht einmal ausführen ließen. Durch Ausprobieren hättest du diese sofort gefunden.
Zweiter Tipp: Du programmierst sicher nicht nur auf Papier. Jeder minimal schlaue Editor oder IDE schreit sofort, wenn man ihm deinen Code zeigt, über die Syntaxfehler darin, und zeigt dir wahrscheinlich sogar halbwegs genau, was wo warum falsch ist. Programmier nicht mit Steinzeitmitteln! Geh mit der Zeit! Die 1990er sollten sogar locker reichen, um ausreichend schlaue Entwicklungsumgebungen zu finden.
-
In meinem Kurs wird Notepad++ vorgeschlagen. Ist das ein halbwegs guter Editor mit dem ich den Code/das Programm auch testen kann?
-
@Spider67
Lass Notepad++ sein und nimm Visual Studio Community.
-
-
@Spider67
Ein Editor ist fast nicht vergleichbar zu einer IDE.Mit einem Editor kannst du alle schönen Dinge mit Texte machen, schreiben, manipulieren,... Dinge welche die Entwicklung betreffen sind da nur spärlich vorhanden,
Bei einer IDE ist dies anders. Du kommst relativ schnell mit Projekte in Verbindung. Bauen, also der Vorgang Quellcode -> Programm, funktioniert da auch problemlos. Ebenso die Fehlersuche bzw. Debugging. Etwas was du unbedingt üben musst! Einfach dein Programm Schritt für Schritt ausführen.
Auch eine sehr angenehmen Sache, das Intellisense. Du suchst eine Funktion "Set..."? Kein Problem Intellisense zeigt dir alle Funktionen hierzu!
Wie war die Funktion "XYZ" definiert? Unter Visual Studio drückt man hierzu F12 und schon landest du in der Funktion.
...
-
@Spider67 sagte in Neueinsteiger in C++:
In meinem Kurs wird Notepad++ vorgeschlagen. Ist das ein halbwegs guter Editor mit dem ich den Code/das Programm auch testen kann?
Guter allgemeiner Editor, aber braucht einiges an Expertise in der Einrichtung, um dich gezielt beim Programmieren zu unterstützen. In der Standardeinstellung macht er glaube ich nur Klammerprüfung und ein bisschen Einrückung, was hier tatsächlich nicht gereicht hätte. Die anderen Programme, die hier vorgeschlagen wurden, sind gleich von Haus aus spezialisierte Programmierwerkzeuge, aber umgekehrt würde ich mit denen kein Kochrezept tippen wollen.
-
@Quiche-Lorraine sagte in Neueinsteiger in C++:
@Spider67
Lass Notepad++ sein und nimm Visual Studio Community.Ich häng mich nur kurz dran, weil es hier sowieso angesprochen wurde.
Welche Entwicklungsumgebungen für CPP gäbe es denn noch neben VS Community?