Angel
Aktives Mitglied
Thread Starter
- Dabei seit
- 30.06.2003
- Beiträge
- 7.503
- Reaktionspunkte
- 237
Ich bin im ersten Semester Medieninformatik und muss daher C++ lernen (ja, ich hätte auch lieber mit Java angefangen).
Solange ich mich damit noch nicht so auskenne, bleibe ich lieber beim in meiner FH verwendeten Programm, sprich: Microsoft Visual Studio 2005. Also bitte verzeiht mir, dass ich (noch) keine native IDE wie Eclipse benutze!
Ich sitze gerade vor der aktuellen Aufgabe, das Thema sind Arrays. Mein Buch (C++ für Spieleprogrammierer) hilft mir dabei zwar super, aber trotzdem werde ich immer wieder vor Stolpersteine gestellt, bei denen ich nicht so recht weiter weiß. Dieses Mal ist es aber etwas anderes: ich habe an meiner Datei so lange rumgebastelt, bis alle bisher implementierten Funktionen auch funktionieren. Allerdings weiß ich nicht so genau, warum das so funktioniert.
Das Programm soll eine per Konstante festgelegte Anzahl an Double-Werten einlesen und in ein Array speichern. Die Werte sollen anschließend in aufsteigender Reihenfolge sortiert werden.
So sieht das ganze bei mir aus (ohne Kommentarkopf):
Die ganzen couts am Ende habe ich nur testweise eingebaut, um zu sehen, ob die richtigen Werte ausgegeben werden.
Was ich nicht verstehe:
In meinem Buch steht, dass der Compiler bei 0 und nicht bei 1 anfängt, zu zählen. Weil der Mensch bei 1 anfängt, würden dabei die meisten Programmierfehler passieren. Bei 10 Werten in dem Array sollte das dann doch eigentlich von 0 bis 9 gehen. Die For-Schleife fängt aber bei 1 an und geht bis 10. Ich kann auch die Variablen 1 bis 10 ausgeben. Aber wieso funktioniert das, die Variable 0 müsste doch ungenutzt und die Variable 10 gar nicht vorhanden sein?
(Das zweite Fragezeichen konnte ich gerade selbst lösen. )
Würde mich freuen, wenn mir das jemand erklären könnte.
Solange ich mich damit noch nicht so auskenne, bleibe ich lieber beim in meiner FH verwendeten Programm, sprich: Microsoft Visual Studio 2005. Also bitte verzeiht mir, dass ich (noch) keine native IDE wie Eclipse benutze!
Ich sitze gerade vor der aktuellen Aufgabe, das Thema sind Arrays. Mein Buch (C++ für Spieleprogrammierer) hilft mir dabei zwar super, aber trotzdem werde ich immer wieder vor Stolpersteine gestellt, bei denen ich nicht so recht weiter weiß. Dieses Mal ist es aber etwas anderes: ich habe an meiner Datei so lange rumgebastelt, bis alle bisher implementierten Funktionen auch funktionieren. Allerdings weiß ich nicht so genau, warum das so funktioniert.
Das Programm soll eine per Konstante festgelegte Anzahl an Double-Werten einlesen und in ein Array speichern. Die Werte sollen anschließend in aufsteigender Reihenfolge sortiert werden.
So sieht das ganze bei mir aus (ohne Kommentarkopf):
Code:
#include <iostream>
using namespace std;
const int Anzahl = 10;
void main()
{
double dZahlenwerte;
double dtemp;
double aZahlenwerte[Anzahl];
cout << "Bitte geben Sie die "
<< Anzahl
<< " Zahlenwerte ein. \n";
for (int i=1; i<=Anzahl; i++)
{
cin >> dZahlenwerte;
aZahlenwerte[i] = dZahlenwerte;
}
for (int a=1; a<=Anzahl; a++)
{
for (int i=a; i<=Anzahl; i++)
{
if(aZahlenwerte[a] > aZahlenwerte[i])
{
dtemp = aZahlenwerte[a];
aZahlenwerte[a] = aZahlenwerte[i];
aZahlenwerte[i] = dtemp;
}
}
}
cout << endl;
cout << aZahlenwerte[1] << endl;
cout << aZahlenwerte[2] << endl;
cout << aZahlenwerte[3] << endl;
cout << aZahlenwerte[4] << endl;
cout << aZahlenwerte[5] << endl;
cout << aZahlenwerte[6] << endl;
cout << aZahlenwerte[7] << endl;
cout << aZahlenwerte[8] << endl;
cout << aZahlenwerte[9] << endl;
cout << aZahlenwerte[10] << endl;
}
Die ganzen couts am Ende habe ich nur testweise eingebaut, um zu sehen, ob die richtigen Werte ausgegeben werden.
Was ich nicht verstehe:
In meinem Buch steht, dass der Compiler bei 0 und nicht bei 1 anfängt, zu zählen. Weil der Mensch bei 1 anfängt, würden dabei die meisten Programmierfehler passieren. Bei 10 Werten in dem Array sollte das dann doch eigentlich von 0 bis 9 gehen. Die For-Schleife fängt aber bei 1 an und geht bis 10. Ich kann auch die Variablen 1 bis 10 ausgeben. Aber wieso funktioniert das, die Variable 0 müsste doch ungenutzt und die Variable 10 gar nicht vorhanden sein?
(Das zweite Fragezeichen konnte ich gerade selbst lösen. )
Würde mich freuen, wenn mir das jemand erklären könnte.