for (int i=0;i<10;i++) -> Frage!
-
#include <iostream> using namespace std; void main() { cout << endl; int zahlen[10] = {1,2,3,4,5,6,7,8,9,10}; int a; cout << "Gib einen Multiplikator/Faktor ein! "; cin >> a; for (int i=0;i<10;i++) { zahlen[i] = zahlen[i]*a; cout << " " << zahlen[i] << endl << "..." << endl; } cout << endl; }
Hallo ich habe obiges Programm zum Teil selbst geschrieben, zum Teil von einer Aufgabe, die mir gestellt wurde übernommen. Folgende 3 Zeilen Code sind von mir HINZUGEFÜGT worden
int a; cout << "Gib einen Multiplikator/Faktor ein! "; cin >> a;
Vorher war das Programm dazu bestimmt, die Integer-Zahlen von 1 - 10 mit 2 zu multiplizieren. Nun habe ich mit diesen 3 zusätzlichen Zeilen dem User die Möglichkeit geschaffen, einen (ganzzahligen) Faktor festzulegen mit dem nach Eingabe dieses Faktors die Zahlen 1 - 10 multipliziert und die Ergebnisse ausgegeben werden.
Zusätzlich war eine kleine Codeänderung nötig:
Alt
[cpp]
zahlen[i] = zahlen[i]*2;
[/cpp]Neu
zahlen[i] = zahlen[i]*a;
(Änderung hier fett gedruckt!)
Nun die Frage : Ich werde hier nicht dumm und ungebildet tun und fragen was das und das bedeutet, sondern zu 2 Zeilen Code eine VERMUTUNG was sie bedeuten und bewirken aufstellen und ich hoffe, dass diese Vermutung wahr oder wenigstens teilweise wahr ist. Sollte dies nicht der Fall sein, bitte ich um Verbesserung und Aufklärung!!
.:Zeile 1:.
int zahlen[10] = {1,2,3,4,5,6,7,8,9,10};
int steht für Integer und bedeutet dass "zahlen" (Ist "zahlen" hier eine Variable?) immer eine Ganze Zeil sein muss, sollte dies nicht so sein wird die eingegebene Zahl abgerundet auf die nächstkleinere Zahl! (Bedenkt, bitte dass dies alles VERMUTUNGEN sind, sollten sie nicht stimmen BELEHRT mich eines Besseren! Danke!)
.:Zeile 2:.
for (int i=0;i<10;i++)
for = für und es leitet so etwas wie eine Einschränkung ein, die da lautet, dass die Variable (ist i eine Variable?) entweder 0 (i=0) , kleiner als 10 (i<10) und positiv(i++) sein soll.
Stimmen diese 3 VERMUTUNGEN?
Dann habe ich noch eine Frage und zwar werden die Klammern immer bei for gesetzt oder ist das nur weil hier mehrere Einschränkungen sind?Das wars auch schon *g* und ich hoffe ihr könnt mir hier helfen und es ist verständlich geworden was ich möchte
Gruß Schnittenhainy und danke für die Hilfe
P.S. : Ich habe das Programm nun noch so verändert, dass nicht nur das Ergebnis sondern auch die Rechnung aufgelistet wird:
#include <iostream> using namespace std; void main() { cout << endl; int zahlen[10] = {1,2,3,4,5,6,7,8,9,10}; int a; cout << "Gib einen Multiplikator/Faktor ein! "; cin >> a; cout << endl; for (int i=0;i<10;i++) { cout << zahlen[i] << " * " << a << " = " << zahlen[i]*a << endl; } cout << endl; }
-
Hallo
nein, deine Vermutungen sind falsch.
1. Das ist ein Array mit 10 Werten (Index von 0 bis 9), die mit den Werten in den Klammern vorbelegt werden
2. Das ist eine Schleife mit 10 Durchgängen.Ich empfehle dir dringend ein Tutorial zu C++, zu finden über den Links im Menü auf dieser Seite oben rechts. Denn das sind alles Grundkenntnisse.
bis bald
akari
-
akari schrieb:
Hallo
nein, deine Vermutungen sind falsch.
1. Das ist ein Array mit 10 Werten (Index von 0 bis 9), die mit den Werten in den Klammern vorbelegt werden
2. Das ist eine Schleife mit 10 Durchgängen.Ich empfehle dir dringend ein Tutorial zu C++, zu finden über den Links im Menü auf dieser Seite oben rechts. Denn das sind alles Grundkenntnisse.
bis bald
akariZum Fettgedruckten : 0-9 oder 1-10?
Gruß
-
Hallo
siehe einschlägige Tutorials.
In C/C++ bedeutet bei einer Arraygröße von x, das der Index von 0 bis (x-1) verwendet werden kann.bis bald
akari
-
Schnittenhainy schrieb:
.:Zeile 2:.
for (int i=0;i<10;i++)
for = für und es leitet so etwas wie eine Einschränkung ein, die da lautet, dass die Variable (ist i eine Variable?) entweder 0 (i=0) , kleiner als 10 (i<10) und positiv(i++) sein soll.
Der Code zwischen
for (..) { // der hier }
wird so oft ausgeführt, wie die Bedingung innerhalb von for(..) definiert ist.
Der 1. Parameter
int i = 0
initialisiert i mit der Zahl 0, der 2. Parameter
i < 10
setzt die Durchlauf-Bedingung fest (solange i kleiner als 10 bleibt, durchlaufe die Schleife).
i++
wird bei jedem Schleifendurchlauf ausgeführt und erhöht i um 1 (i++ ist gleichzusetzen mit i = i + 1).
for (int i = 0; i < 5; i++) { cout << "i = " << i << endl; }
..wird also 5x (0-4 sind kleiner als 5) ausgeführt und schreibt damit
i = 0
i = 1
i = 2
i = 3
i = 4in den Ausgabestream (Console).
-
Cpt_Future schrieb:
Der Code zwischen
for (..) { // der hier }
wird so oft ausgeführt, wie die Bedingung innerhalb von for(..) definiert ist.
Das "definiert" sagt nicht viel aus.
Bsp:for(;;){ std::cout << "Ich laufe für immer!" << std::endl; }
Definiert ist die Bedingung im übrigen auch bei der Bedingung "0==1" und trotzdem wird die Schleife nicht ein einziges Mal durchlaufen.
Cpt_Future schrieb:
i++
wird bei jedem Schleifendurchlauf ausgeführt und erhöht i um 1 (i++ ist gleichzusetzen mit i = i + 1).
Schreib lieber "nach jedem Schleifendurchlauf", das beugt mißverständnissen vor.
-
Dann vielleicht besser ausgedrückt: Solange die Bedingung innerhalb des for(...) als wahr ausgewertet werden kann. (und eine leere Abbruchbedingung gilt per Definition der for()-Schleife als true)