Fragen zu Übung 11

Moderator: Eingebettete Systeme 1

BlackBrowny1
Mausschubser
Mausschubser
Beiträge: 50
Registriert: 1. Mai 2007 17:44

Fragen zu Übung 11

Beitrag von BlackBrowny1 »

Bei der Aufgabe 2 c) bekomme ich bei der Anzahl von ":="und "+" in der Schleife 2 andere Zahlen. Dort ist die rede von 100 + 149 für "+" und 101 + 2 * 100 für "=".

Für "+" bekomme ich 100 (for schleife) + 51 (m++) + 49 (m>50). Also insgesamt 200

Für "=" bekomme ich 101 (for schleife) + 2*51 (wegen n=...und m++-->m=m+1) +50 (m>50).


Wo ist mein Fehler.

Danke

momoto
Nichts ist wie es scheint
Beiträge: 23
Registriert: 14. Feb 2008 21:43

Re: Fragen zu Übung 11

Beitrag von momoto »

Hallo,

for ( i=100 ; i>0 ; i--) { //I--; heißt i = i-1; => 100 mal + und 100 mal =, für i = 100, noch eine =
if ( m>50 )
n=n+m; // wird 49 mal ausgeführt => 49 mal + und 49mal =
else
n=n*m; // hier noch 51 mal =
m++; //m++; heißt m = m+1; => 100 mal + und 100 mal =
}

Gruß

db
DON'T PANIC
Beiträge: 42
Registriert: 18. Apr 2007 00:37

Re: Fragen zu Übung 11

Beitrag von db »

Der Fehler ist wohl, dass m++ immer durchgeführt wird (nicht nur im else-Teil).

vkrastev
Neuling
Neuling
Beiträge: 2
Registriert: 3. Jan 2005 11:18

Re: Fragen zu Übung 11

Beitrag von vkrastev »

Hallo,
meiner meinung nach, wenn m=0 dabb

for ( i=100 ; i>0 ; i--) { //I--; heißt i = i-1; => 100 mal + und 100 mal =, für i = 100, noch eine =
if ( m>50 )
n=n+m; // wird 50 mal ausgeführt
else
n=n*m; // hier 50 mal
m++; //m++; heißt m = m+1; => 100 mal
}

dass bedutet fehler in musterlösung. Ist dass korrect??

Gruß

db
DON'T PANIC
Beiträge: 42
Registriert: 18. Apr 2007 00:37

Re: Fragen zu Übung 11

Beitrag von db »

Die MuLö ist korrekt.
Die Schleife wird von i=100 bis i=1 100mal ausgeführt (100 Vergleiche true und 1 Vergleich Abbruch bei i=0).
Der if-Teil wird von m=51 bis m=99 49mal ausgeführt.
Der else-Teil wird von m=0 bis m=50 51mal ausgeführt.

EDIT: Korrektur des if-Teils

Felix Madlener
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 114
Registriert: 14. Okt 2005 10:01
Kontaktdaten:

Re: Fragen zu Übung 11

Beitrag von Felix Madlener »

Wenn ich die Frage richtige verstehe hat db mit seiner Antwort recht:

Code: Alles auswählen

if ( m>50 )
    n=n+m; // wird 49 mal ausgeführt => 49 mal + und 49mal =
else
    n=n*m; // hier noch 51 mal =
m++; //
Es gibt keine geschweiften Klammern. Damit wird im if-Zweig nur "n=n+m" und im else-Zweig "n=n*m" ausgeführt. Das "m++" befindet sich hinter der gesamten if-Verschachtelung und wird in jedem Fall 100 mal ausgeführt.

db
DON'T PANIC
Beiträge: 42
Registriert: 18. Apr 2007 00:37

Re: Fragen zu Übung 11

Beitrag von db »

Keine geschweiften Klammern... gruselig... :lol:

Antworten

Zurück zu „Eingebettete Systeme 1“