Algorithmen Informatik Struktogramm?


18.03.2021, 16:29

Und was passiert, wenn ich n=4 einsetze

1 Antwort

Also die Ergänzung sieht nach Hausaufgabe aus ;) Bei A2 hast du ja schon ne Antwort hingeschrieben oder? Wie kamst du da drauf und wie kannst du A1 lösen?
Aber setz doch mal 4 ein und gehe die Schleife Schritt für Schritt durch.

Aber zu der eigentlichen Frage: Wieso summe=0 setzen?

Weiter unten steht ja summe = summe + i
Das bedeutet soviel wie, nimm den Wert, der in summe gespeichert ist und addiere Wert in i dazu.
Aber welchen Wert hat summe beim ersten Mal ausführen? Deshalb setzt man summe = 0, damit ein initialer Wert drin steht auf den der Wert von i addiert werden kann.

Zusatz:
Wenn man das nun mal noch mit Programmiersprachen in Verbindung bringt, dann würde Java z.B. gar nicht erlauben, dass summe uninitialisiert bleibt, d.h. du musst zeingen summe=X setzen. Bei Summen sollte das auch meistens 0 sein, da ansonsten das Ergebnis nicht stimmt. Wenn du multiplizierst statt addierst, dann sollte das meist 1 sein (0 wär doof, weil 0*irgendwas immer 0 ist).
C würde dir erlauben summe uninitialisert zu lassen; aber in summe kann dann ein beliebieger Wert stehen und das würde bei jedem Durchlauf des Programms vielleicht zu unterschiedlichen Ergebnissen führen.

Und da man das nicht will, setzt man das einfach auf 0 als Startwert, denn 0 ändert beim summieren nichts: 0+1+2 = 3 oder 0+5 = 5

Woher ich das weiß:Studium / Ausbildung
Shadowstella 
Fragesteller
 18.03.2021, 17:13

Ist keine Hausaufgabe, ich habe die Ergebnisse tatsächlich schon (i=1 Summe=1; i=2 summe=3 usw.), nur konnte die 0 nicht ganz nachvollziehen, vielen Dank :)

1
Shadowstella 
Fragesteller
 18.03.2021, 20:57

Ich hätte doch noch eine Frage und zwar; warum ändert sich das "summe=0"das ist doch in keiner Schleife. Oder läuft das einfach immer wieder von vorne?

0
SirNik  18.03.2021, 22:05
@Shadowstella

Doch bei dem Teil Wiederhole. Das ist eins Schleife und da steht summe=summe+i eingerückt, also in der Schleife

0
Shadowstella 
Fragesteller
 19.03.2021, 01:58
@SirNik

Warum steht das "Deklarieren und Initialisieren:summe=0"nicht in der Schleife drinne sondern nur davor?

0
SirNik  19.03.2021, 10:34
@Shadowstella

Würde es in der Schleife stehen, dann würde ja bei jedem Schleifendurchgang summe wieder auf 0 gesetzt werden. Du würdest also das zuvor berechnete einfach resetten.

Zusatz:

Außerdem musst die Variable bekannt machen (deklarieren), um sie benutzen zu können. Wenn wir das wieder mal versuchen auf Implementierung dieses Algorithmus in einer Programmietsprache zusätzlich zu betrachten: Je nach Sprache ist hier der Scope wichtig. Variablen, die innerhalb eines Blocks (geschweifte Klammer auf und zu:

{

//Code

})

stehen sind auch nur zwischen diesen gültig. Der Schleifenkörper ist so ein Block. Würdest du also die Variable innerhalb der Schleife deklarieren, dann kannst du auf diese Variable NACH der Schleife nicht mehr zugreifen, für z.B. den Wert ausgeben. DIES MAG NICHT FÜR ALLE PROGRAMMIERSPRACHEN GELTEN, aber es gilt für Java, C, C#, etc.

0