Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » formale Sprachen » Html Schleife Berechnung » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Html Schleife Berechnung
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Mr.Kuhl
Grünschnabel


Dabei seit: 11.09.2013
Beiträge: 7

Html Schleife Berechnung Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Guten Tag erst einmal, ich bin hier der Neue und habe da so die ein oder andere Frage. Hoffe ihr könnt mir helfen. =)





Verstehe die Rechnung nicht ganz. Wenn i durch die erste Schleife läuft, kann sie das bis 4. ABer wie soll 7 noch durch die zweite laufen?

Habe absolut keine Ahnung traurig ,deswegen wäre eine detailierte Erklärung ganz gut.


Vielen Dank schon einmal. =)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Mr.Kuhl: 11.09.2013 21:53.

11.09.2013 21:52 Mr.Kuhl ist offline Beiträge von Mr.Kuhl suchen Nehmen Sie Mr.Kuhl in Ihre Freundesliste auf
Mr.Kuhl
Grünschnabel


Dabei seit: 11.09.2013
Beiträge: 7

re Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Mr.Kuhl hat dieses Bild (verkleinerte Version) angehängt:
schleife.jpg

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Mr.Kuhl: 11.09.2013 21:55.

11.09.2013 21:53 Mr.Kuhl ist offline Beiträge von Mr.Kuhl suchen Nehmen Sie Mr.Kuhl in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Die Zeile 7+2 ist schon beim nächsten Schleifendurchlauf:
ich habe ein paar Ausgaben hinzugefügt:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
#include "stdio.h"

int main(void)
{
	int k=2;
	int i=1;
	while(i<5)
	{
		printf("i = %d\n",i);
		i++;
		printf("   i++ = %d\n",i);
		if(k<5)
		{
			k+=i;
			printf("   if(k<5): addiere %d\n", i);
		}
		else
		{
			k+=2;
				printf("   else: addiere 2\n");
		}
		printf("   k = %d\n",k);
	}
	printf("k = %d",k);
}

Ausgabe:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
i = 1
   i++ = 2
   if(k<5): addiere 2
   k = 4
i = 2
   i++ = 3
   if(k<5): addiere 3
   k = 7
i = 3
   i++ = 4
   else: addiere 2
   k = 9
i = 4
   i++ = 5
   else: addiere 2
   k = 11
k = 11


__________________
Syntax Highlighting fürs Board (Link)
11.09.2013 23:12 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Mr.Kuhl
Grünschnabel


Dabei seit: 11.09.2013
Beiträge: 7

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Vielen Vielen Dank, jetzt verstehe ich es. Wenn K zu Groß für (k<5) ist, macht es bei } else } weiter und das so lange bis, i an das Limit mit 5 kommt.
11.09.2013 23:26 Mr.Kuhl ist offline Beiträge von Mr.Kuhl suchen Nehmen Sie Mr.Kuhl in Ihre Freundesliste auf
Mr.Kuhl
Grünschnabel


Dabei seit: 11.09.2013
Beiträge: 7

Zwei weitere schleifen Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Habe nun zwei weitere Schleifen. Bei dem ersten war das Ergebnis schon vor gegeben und ich konnte ein Schema erkennen. Die Zweite ist die selbe, nur dass "+add" einfach "*multipl"

Meine erste Frage ist nun, ob meine Ergebnisansätze denn so richtig wären? Nur halt bis 16 zu Ende (Siehe Aufgabe 2).

Ich gehe davon aus, dass es diese Funktion auch mit Subtrahieren und Dividieren gibt. Wie heißen diese Kürzel?

Bei GetResult(x,y) Wäre es dann also so, dass x(Add) der Ausgangswert ist mit welchem ich anfange und Y(Step) der jeweilige anstand. Also bei 1 der nächste und bei 3 halt 2 auslassen?

Die letze blöde Frage (vorerst) wäre dann noch: Was kann ich unter den a[0] a[i] oder a[i-1] verstehen?

Ich weiß, dass sind wahrscheinlich banale Fragen und mir ist es sehr unangenehm euch hier damit aus zu fragen, aber mir fehlt da irgendwie der Denkansatz.

Vielen Dank im Vorraus


Mr.Kuhl hat diese Bilder (verkleinerte Versionen) angehängt:
Addition.jpg Aufgabe 2.jpg

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Mr.Kuhl: 12.09.2013 00:09.

12.09.2013 00:02 Mr.Kuhl ist offline Beiträge von Mr.Kuhl suchen Nehmen Sie Mr.Kuhl in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Jeder hat mal bei den Grundlagen angefangen, dafür musst du dich nicht schämen smile
Zitat:
Ich gehe davon aus, dass es diese Funktion auch mit Subtrahieren und Dividieren gibt. Wie heißen diese Kürzel?

Du kannst die Variable nennen, wie du willst, solange du dich an gewisse Regeln hältst (z.B. keine Ziffer an erster Stelle, keine Sonderzeichen). Feste Namen gibt es für sowas höchstens bei deinem Lehrer/Prof.

Zitat:
Was kann ich unter den a[0] a[i] oder a[i-1] verstehen?

Das ist ein Array, eine bequeme Variante, mehrere Variablen auf einmal zu definieren:
Wenn du 16 Variablen haben wolltest, müsstest du sonst schreiben:
a0, a1, a2, a3, ... und könntest sie dann auch nicht in der Schleife befüllen.
a[0] heißt dann einfach: nimm die erste Variable des Arrays (in den meisten Programmiersprachen beginnt man beim Durchzählen mit 0)
a[i] ist das i-te Element, wobei i Teil einer Schleife ist. Dadurch werden alle Variablen im Array durchlaufen.
a[i-1] ist beim Durchlaufen das vorherige Element.
Mit a[15] kriegst du die letzte Variable, bei a[16] kommt nur Unsinn heraus oder das Programm stürzt ganz ab.

Nun konkret zu den Aufgaben:
Aufgabe 1 sieht gut aus, sowohl bei den Zwischenschritten, als auch beim Ergebnis.

Bei Aufgabe 2 verstehe ich deine Anmerkungen nicht, hier mal meine Lösung (deren Richtigkeit ich geprüft habe):
code:
1:
2:
3:
4:
5:
6:
a[0] = 1
a[1] = a[0] * multipl = multipl
a[2] = a[1] * multipl = multipl * multipl
a[3] = a[2] * multipl = multipl * multipl * multipl
...
a[15] = multipl^15      // also multipl hoch 15

also [latex]a[i] = \text{multipl}^i[/latex]
die werden dann - zumindest zu Teilen - aufsummiert.
Für getResult(2, 1):
[latex]\text{ergebnis} = \sum\limits_{i=0}^{15}{2^i} = 2^{16}-1=65535[/latex]

Für getResult(2, 2):
folgende Formel musste ich auch nachschauen, alternativ kann man ja auch aufsummieren:
[latex]\sum\limits_{i=0}^k{n^{2\cdot i+1}} = \frac{n(n^{2\cdot k+2}-1)}{n^2-1}[/latex]
[latex]\text{ergebnis} = a[0] + \sum\limits_{i=0}^{7}{2^{2\cdot i+1}} =1 + \frac{2(2^{2\cdot 7+2}-1)}{2^2-1} = 43691[/latex]

Für getResult(-1, 2):
a[gerade]=1
a[ungerade]=-1
a[0] - 8*a[ungerade] = 1 - 8 = -7

Ach ja: es reicht, wenn du den Anhang hier im Board hochlädtst, du brauchst ihn nicht noch extern verlinken.

__________________
Syntax Highlighting fürs Board (Link)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von eulerscheZahl: 12.09.2013 08:13.

12.09.2013 08:11 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Mr.Kuhl
Grünschnabel


Dabei seit: 11.09.2013
Beiträge: 7

oh mann Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich dachte Anfangs ich hätte es endlich verstanden, aber jetzt verstehe ich noch weniger. =(((

Erst einmal müsste bei Aufgabe 1 doch noch ein Fehler sein, welche mir grade aufgefallen ist. Zwischen 4. und 5. müsste der doch von 35 auf 51 springen?!?

Ich bin grade vollkommen durcheinander. Ich dachte die ganze zeit, dass diese Zwei Schleifen für jeweils eine Spalte Stand (Links & Rechts).

Jetzt habe ich jedoch das Gefühl, die erste Schleife sei da, um die ersten beiden Startzahlen fest zu legen.

Wann starte ich denn nun mit i=1 und wann wird der "Step" aus der Klammer benutzt. Und wie kann ich das verstehen, dass der Step dafür sorgt, dass bei Aufgabe 1.2 nur die "Zweiten" weiter gerechnet werden?

Ich bin ziemlich am verzweifeln, es kann doch nicht so kompliziert sein.
12.09.2013 23:02 Mr.Kuhl ist offline Beiträge von Mr.Kuhl suchen Nehmen Sie Mr.Kuhl in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ja, da sollte eine 51 stehen. Im letzten Schritt (328 + 46 = 376) hat sich derjenige dann nochmal in die andere Richtung verrechnet, weshalb das Endergebnis stimmt. Hatte ich übersehen.

Ich fange nochmal von Vorne an beim erklären:
code:
1:
var a = new Array(16)

reserviert dir Speicherplatz für 16 Variablen
code:
1:
a[0] = 1;

befüllt die erste Variable des Array mit einer 1

In der ersten Schleife werden dann nacheinander a[1] bis a[15] befüllt, jeweils mit a[vorher] + add

In der zweiten Schleife wird dann auf a[0] erst a[1] addiert, dann a[1+step], a[1+2*step], ...

Zitat:
Ich bin grade vollkommen durcheinander. Ich dachte die ganze zeit, dass diese Zwei Schleifen für jeweils eine Spalte Stand (Links & Rechts).
Jetzt habe ich jedoch das Gefühl, die erste Schleife sei da, um die ersten beiden Startzahlen fest zu legen.

Die linke Spalte (4, 7, 10, ...) ist der Inhalt von a nach der ersten Schleife.
rechts (5, 12, 22, ...) ist der Inhalt von a[0] - also die bisherige Summe - für i = ganzLinkeZahl (1,2,3,...)

Zitat:
Wann starte ich denn nun mit i=1 und wann wird der "Step" aus der Klammer benutzt. Und wie kann ich das verstehen, dass der Step dafür sorgt, dass bei Aufgabe 1.2 nur die "Zweiten" weiter gerechnet werden?

gestartet wird immer mit i=1 (direkt VOR der zweiten Schleife). Diese Stelle wird aber nur einmal durchlaufen, da sie eben vor und nicht in der Schleife steht.
Danach wird immer um step erhöht. Ja, deshalb wird bei 1.2 immer nur jede zweite Zahl genommen.

Schau mal, ob du dir einen Debugger besorgen kannst, mit dem du das Programm Zeile für Zeile durchgehen kannst und dir die Variableninhalte ausgeben lassen.
Von JavaScript habe ich nicht wirklich Ahnung, was es da so gibt. Hier ein paar Screenshots von Visual Studio für die Sprache C# (ist bei den Grundlagen recht ähnlich in der Syntax, gibt aber schon deutliche Unterschiede)

eulerscheZahl hat dieses Bild (verkleinerte Version) angehängt:
debug_schleifen.png



__________________
Syntax Highlighting fürs Board (Link)
13.09.2013 07:59 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Mr.Kuhl
Grünschnabel


Dabei seit: 11.09.2013
Beiträge: 7

Daumen hoch! langsam wird es Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich glaube so langsam verstehe ich es. Habe Aufgabe 2 aufaddiert und die Lösungen im Anhang. Sie stimmen mit deinen überein, bis auf Aufgabe 2.2.

Hat das so seine Richtigkeit?

Mr.Kuhl hat dieses Bild (verkleinerte Version) angehängt:
aufgabe 2 lösung.jpg

13.09.2013 21:51 Mr.Kuhl ist offline Beiträge von Mr.Kuhl suchen Nehmen Sie Mr.Kuhl in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zu 2.2:
1+2 ist 3 und nicht 4

der Rest sieht gut aus Daumen hoch

__________________
Syntax Highlighting fürs Board (Link)
13.09.2013 21:58 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Mr.Kuhl
Grünschnabel


Dabei seit: 11.09.2013
Beiträge: 7

re Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ahh Fehler erkannt, danke.

Ich werde Morgen mal noch eine sehr ähnliche Schleife poste, damit ich wirklich sicher gehen kann, dass ich es verstanden habe.

Vielen Dank noch einmal.
13.09.2013 22:25 Mr.Kuhl ist offline Beiträge von Mr.Kuhl suchen Nehmen Sie Mr.Kuhl in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Theoretische Informatik » formale Sprachen » Html Schleife Berechnung