Verständnisfrage

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
SueNa
Beiträge: 11
Registriert: Fr Mär 29, 2019 11:28 am

Verständnisfrage

Beitrag von SueNa » Mi Apr 03, 2019 2:23 pm

Hallo,

ich bin in meinem Lehrbuch nun weiter gekommen zum Thema Felder. Im Buch ist folgendes Beispielprogramm beschrieben:

Code: Alles auswählen

#include<stdio.h>
int main()
{
int anzahlFeld[3]={2,7,6};
double preisEinzelFeld[3]={2.45,3.45,1.99};
int index;
double preisGesamt;

printf("Posten   Anzahl   Einzelpreis   Summe\n");
for(index=0; index<3; index++)
{
preisGesamt=anzahlFeld[index]*preisEinzelFeld[index];
printf("%6d%10d%10.2f Euro %10.2f Euro\n", index+1,anzahlFeld[index],preisEinzelFeld[index],preisGesamt);
}
return 0;
}


So . . .

Das Programm läuft genau, wie beschrieben.

Mir ist nur irgendwie unklar, weshalb ich zu Beginn bei der Deklaration die Variable "index" nicht z.B. umbenennen kann in "posten" und im späteren Verlauf diese Variable mit einer Berechnung durch "posten=index+1" definieren kann.

Bzw. ist meine Frage auch noch, ob der Computer die Variable "index" auch als Wert (oder ich weiß nicht, wie ich das nennen soll) "erkennt" und ihn gleichzeitig mit dem index in den Feldern kombiniert . . .

Ich hab das schon ausprobiert. Also ich habe erst oben in der Deklaration angegeben int posten=index+1; und als dann die Warnung kam, dass der Wert index zum ersten mal benutzt würde . .. habe ich oben nur geschrieben int posten; und habe dann eben erst vor der Schleife und dann auch in der Schleife versucht meine Berechnung "unter zu bekommen" . . . also posten=index+1 . . .


das Ganze aber, weil ich nicht verstehe, "wie der Computer rechnet" bzw. denkt ;-) . . .


Danke im Voraus für Antworten

Edit by Xin: CodeTags eingefügt

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Verständnisfrage

Beitrag von Xin » Mi Apr 03, 2019 2:36 pm

SueNa hat geschrieben:
Mi Apr 03, 2019 2:23 pm
Das Programm läuft genau, wie beschrieben.
Sowas ist immer verdächtig... :D
SueNa hat geschrieben:
Mi Apr 03, 2019 2:23 pm
Mir ist nur irgendwie unklar, weshalb ich zu Beginn bei der Deklaration die Variable "index" nicht z.B. umbenennen kann in "posten" und im späteren Verlauf diese Variable mit einer Berechnung durch "posten=index+1" definieren kann.
Weil es index dann nicht mehr gibt?
SueNa hat geschrieben:
Mi Apr 03, 2019 2:23 pm
Bzw. ist meine Frage auch noch, ob der Computer die Variable "index" auch als Wert (oder ich weiß nicht, wie ich das nennen soll) "erkennt" und ihn gleichzeitig mit dem index in den Feldern kombiniert . . .
Index ist nu eine Zahl. Was Du nicht selbst kombinierst, passiert nicht. Computer kombinieren nicht, Computer machen genau das, was Du ihnen sagst. Nicht mehr - nicht weniger.
SueNa hat geschrieben:
Mi Apr 03, 2019 2:23 pm
Ich hab das schon ausprobiert. Also ich habe erst oben in der Deklaration angegeben int posten=index+1; und als dann die Warnung kam, dass der Wert index zum ersten mal benutzt würde . .. habe ich oben nur geschrieben int posten; und habe dann eben erst vor der Schleife und dann auch in der Schleife versucht meine Berechnung "unter zu bekommen" . . . also posten=index+1 . . .
Wenn Du index umbenennst, musst Du das auch überall tun.
SueNa hat geschrieben:
Mi Apr 03, 2019 2:23 pm
das Ganze aber, weil ich nicht verstehe, "wie der Computer rechnet" bzw. denkt ;-) . . .
Gar nicht. Computer tun das, was Du ihnen sagst. Sie denken nicht.
Wenn Du anzahlFeld[index] schreibst, kombinierst Du anzahlFeld und index. Weder versteht der Computer, was Du von ihm willst, noch interessiert er sich dafür, was Du da tust. Er macht das einfach. Und in einem solchen Fall gibt es irgendwo ein Feld "anzahlFeld", wo mehrere Zahlen drin stehen und es gibt den Index und wenn Du beides so kombinierst, wie du das getan hast, geht er zum Feld "anzahlFeld" und von da aus, "index" elemente weiter, bis er dann den Wert aus dem Feld ausliest mit dem Du dann rechnen kannst.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

SueNa
Beiträge: 11
Registriert: Fr Mär 29, 2019 11:28 am

Re: Verständnisfrage

Beitrag von SueNa » Mi Apr 03, 2019 3:24 pm

ok . . . jetzt glaub ich ist mir ein Lichtchen aufgegangen, als ich nochmal das Programm "pur" gelesen habe.


Ich bin durcheinander gekommen weil in dem Buch so viel über Indizes gesprochen wurde zuvor und dass im Feld der Index bei 0 los geht usw. dass ich ganz kirre wurde und gar nicht mehr verstanden habe, warum ich jetzt da index eigentlich stehen habe . . .

gut, dass Computer nicht denken :-)
sehr sympathisch

Antworten