neue Frage < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 11:11 So 22.03.2009 | Autor: | Surfer |
Hallo, habe hier wieder zwei fragen die zu beantworten waren, diesmal ist ein Quellcode gegeben und man soll in einem Satz die Fragen dazu beantworten.
Zur ersten Aufgabe ist es doch so, dass die Schleife einmal durchlaufen wird oder? denn nach den drei ausgeführten if anweisungen hat A den Wert 5 und somit stimmt die Bedingung nicht mehr für einen weiteren durchlauf?
Bei der zweiten Aufgabe muss ich doch um den Wert zu erhalten sprich Teil a) zu lösen, das Hauptprogramm anschauen und sehe es wird der Wert a=5 ausgegeben.
um b) zu beantworten schaue ich mir das Unterprogramm an und sehe für a würde a=2b herauskommen c=4b und b=6b???
Bitte um Kontrolle, bin mir bei so etwas sehr unsicher!
[Dateianhang nicht öffentlich]
[Dateianhang nicht öffentlich]
lg Surfer
Dateianhänge: Anhang Nr. 1 (Typ: jpg) [nicht öffentlich] Anhang Nr. 2 (Typ: jpg) [nicht öffentlich]
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 11:52 So 22.03.2009 | Autor: | bazzzty |
> Hallo, habe hier wieder zwei fragen die zu beantworten
> waren, diesmal ist ein Quellcode gegeben und man soll in
> einem Satz die Fragen dazu beantworten.
> Zur ersten Aufgabe ist es doch so, dass die Schleife
> einmal durchlaufen wird oder? denn nach den drei
> ausgeführten if anweisungen hat A den Wert 5 und somit
> stimmt die Bedingung nicht mehr für einen weiteren
> durchlauf?
Moment! Vor dem ersten Durchlauf ist A=0.0 und index=0.
Im ersten Durchlauf wird index auf 1 gesetzt und deshalb ist nur die erste if-Bedingung erfüllt. A ist nach dem ersten Durchlauf also 1.0. Im zweiten Durchlauf ist index dann 2 usw.
> Bei der zweiten Aufgabe muss ich doch um den Wert zu
> erhalten sprich Teil a) zu lösen, das Hauptprogramm
> anschauen und sehe es wird der Wert a=5 ausgegeben.
Ja.
> um b) zu beantworten schaue ich mir das Unterprogramm an
> und sehe für a würde a=2b herauskommen c=4b und b=6b???
Hmm. Du bringst glaube ich etwas durcheinander.
Im Hauptprogramm hast Du eine Variable "a" mit Wert 5. Die wird
als Referenz an die Methode rechnen(int b) übergeben, heißt innerhalb der Methode also "b"! Während der Methode wird eine neue (!) Variable "a" auf 2b gesetzt, eine neue Variable "c" auf 2a (=4b) und
b wird verändert zu b'=a+c=6b.
Da das "b" in der Methode das "a" im Hauptprogramm ist, wird dieses "a" beim Aufruf von rechnen(a) also insgesamt versechsfacht und ist dann 30. Ist das klar geworden?
>
> Bitte um Kontrolle, bin mir bei so etwas sehr unsicher!
> [Dateianhang nicht öffentlich]
>
> [Dateianhang nicht öffentlich]
>
> lg Surfer
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 14:30 So 22.03.2009 | Autor: | Surfer |
Hi ja ist klar geworden danke!
Aber die obere Schleife wie oft läuft die dann durch? 3 mal oder wie weil bei keinem Index kommt sie ja auf den Wert 5, der sie unterrbricht oder?
lg Surfer
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 07:22 Mo 23.03.2009 | Autor: | bazzzty |
> Hi ja ist klar geworden danke!
>
> Aber die obere Schleife wie oft läuft die dann durch? 3 mal
> oder wie weil bei keinem Index kommt sie ja auf den Wert 5,
> der sie unterrbricht oder?
Doch, natürlich. A wird ja jedesmal erhöht. Im ersten Durchlauf von 0.0 auf 1.0, im zweiten von 1.0 auf 1.9, und im dritten von 1.9 auf 5.0. Dann bricht die Schleife ab.
Wäre das nicht so, würde das Programm nicht terminieren.
|
|
|
|