hi das ist meine hausaugabe für python ich habe es net so richtig es verstanden aber kann einer mir weiter helfen??
Schreibe ein Programm, dass die ersten 10 Quadratzahlen in der Form: 1 zum Quadrat = 1
2 zum Quadrat = 4
3 zum Quadrat = 9
usw. ausgibt. Schreibe dazu ein Programm, welches die for-Schleife verwendet und eines, welches die while-Schleife benutzt.
Ergänze das Programm noch dadurch, dass es am Ende die Summe der ausgegebenen Quadratzahlen ausgibt. Benutze hierfür eine Variable Summe.
also vielen dank in voraus!
Werbung
05.12.2008, 09:05
#
2
shader
Registriert seit: 26.11.2007
Ort: Halle S.
Beiträge: 1.176
Zitat:
for i:=1 to 10 do
begin
summe:= sqr(i); //sqr ist ne fertige Funktion
end;
Zitat:
i:=1;
while i<11 do
begin
summe:= sqr(i);
i:=i+1;
end;
so ist es in Delphi.
05.12.2008, 09:06
#
3
RealMario_MayhemFan
Review-Redakteur
Registriert seit: 21.05.2008
Ort: Wien
Beiträge: 4.015
rofl, und jetzt soll dir wer das programm schreiben, oder?
05.12.2008, 12:41
#
4
Ex-Dynasty-Warriors
Gesperrt
Threadstarter
Registriert seit: 22.10.2008
Ort: Hinter der Mülltonne!
Beiträge: 774
ja vielen dank! aber kann einer es rein posten??? oder nur mir es ansatz weise zeigen!
ich habe das programm python! vielen dank in voraus!
05.12.2008, 12:44
#
5
Ex-Dynasty-Warriors
Gesperrt
Threadstarter
Registriert seit: 22.10.2008
Ort: Hinter der Mülltonne!
Beiträge: 774
Zitat:
Zitat von shader
so ist es in Delphi.
viele dank! aber weißt du wie es in python geht!???
05.12.2008, 12:55
#
6
RealMario_MayhemFan
Review-Redakteur
Registriert seit: 21.05.2008
Ort: Wien
Beiträge: 4.015
genauso. brauchst ja nur die syntax ändern, an der schleife ändert sich ja nichts
05.12.2008, 13:20
#
7
shader
Registriert seit: 26.11.2007
Ort: Halle S.
Beiträge: 1.176
Zitat:
genauso. brauchst ja nur die syntax ändern, an der schleife ändert sich ja nichts
jep so siehts aus. du kennst die syntax doch von python von daher sollte es ein leichtes sein den code umzuschreiben. eventuell könnte es die quadrat funktion nicht geben. muss dann einfach i*i schreiben.
05.12.2008, 13:38
#
8
waldvogel
Registriert seit: 27.03.2007
Beiträge: 4.903
Zitat:
Zitat von Ex-Dynasty-Warriors
ich habe das programm python!
made my day
Aber sag mal, hast du im Unterricht wenigstens etwas aufgepasst?
Ihr werdet doch Schleifen im Unterricht besprochen haben und dann ist die Aufgabe wirklich kein Problem.
05.12.2008, 14:13
#
9
shader
Registriert seit: 26.11.2007
Ort: Halle S.
Beiträge: 1.176
Hab mir grad mal die Syntax angeguckt, man da bekommt man ja's grauen. Sorry hätte es dir gemacht aber ähnelt zu sehr C, ich hasse C.
05.12.2008, 15:21
#
10
Sefyu
Gastposter
so würde e in java sein
Code:
int ergebnis;
for(int i=1;i<11;i++) {
ergebnis=i*i;
System.out.println(i+" zum Quadrat = " +ergebnis);
}
und einmal mit der while
Code:
int i=1;
int ergebnis;
while (i<11) {
ergebnis=i*i;
System.out.println(i+" zum Quadrat = " +ergebnis);
i++;
}
soweit ich mich erinnere muss man in python aber keine Datentypen festlegen.
05.12.2008, 15:43
#
11
Atombender
Registriert seit: 26.01.2008
Beiträge: 200
Das ist jetzt nicht Dein Ernst, oder? Eine einfachere Programmieraufgabe kann man sich ja kaum vorstellen (von 'Hello world!' mal abgesehen).
Na ja, mir soll's recht sein. Je mehr Typen wie Dich es gibt, desto kleiner ist meine Konkurrenz auf dem Arbeitsmarkt und desto höher mein Gehalt. :-H
Und damit das auch so bleibt, werde ich Dir jetzt das Denken abnehmen und Dir eine Lösung zum ersten Teil der Aufgabe verraten.
Code:
#!/usr/bin/env python
summe = 0
for n in range(1, 11):
quadrat = n*n
summe += quadrat
print n, 'zum Quadrat =', quadrat
print 'Summe:', summe
Die Ableitung der zweiten Lösung überlasse ich Dir.
Ergänzung:
Zitat:
Zitat von shader
Hab mir grad mal die Syntax angeguckt, man da bekommt man ja's grauen. Sorry hätte es dir gemacht aber ähnelt zu sehr C, ich hasse C.
Daß Leute die in Pascal programmieren C hassen ist ja nichts Neues. Andersrum ist's genauso. C-Programmierer (mich eingeschlossen) finden Pascal in allen Varianten grausig.
Aber das ausgerechnet Python C ähnlich sein soll kann man doch nun wirklich nicht behaupten.
Vergleich doch bitte mal den obigen Python-Code mit dem C-Programm hier und sag mir bitte wo Du da Ähnlichkeiten siehst.
Übrigens ist Dein Delphi-Code oben ein wenig sinnfrei. Nach Durchlaufen der Schleife hast Du in Summe nur den Wert des letzten Quadrats stehen (also 100). Wenn eine Variable summe heißt, sollte vielleicht auch irgendwo summiert werden.
05.12.2008, 18:07
#
12
Ex-Dynasty-Warriors
Gesperrt
Threadstarter
Registriert seit: 22.10.2008
Ort: Hinter der Mülltonne!
Beiträge: 774
Zitat:
Zitat von Atombender
Das ist jetzt nicht Dein Ernst, oder? Eine einfachere Programmieraufgabe kann man sich ja kaum vorstellen (von 'Hello world!' mal abgesehen).
Na ja, mir soll's recht sein. Je mehr Typen wie Dich es gibt, desto kleiner ist meine Konkurrenz auf dem Arbeitsmarkt und desto höher mein Gehalt. :-H
Und damit das auch so bleibt, werde ich Dir jetzt das Denken abnehmen und Dir eine Lösung zum ersten Teil der Aufgabe verraten.
Code:
#!/usr/bin/env python
summe = 0
for n in range(1, 11):
quadrat = n*n
summe += quadrat
print n, 'zum Quadrat =', quadrat
print 'Summe:', summe
Die Ableitung der zweiten Lösung überlasse ich Dir.
Ergänzung:
Daß Leute die in Pascal programmieren C hassen ist ja nichts Neues. Andersrum ist's genauso. C-Programmierer (mich eingeschlossen) finden Pascal in allen Varianten grausig.
Aber das ausgerechnet Python C ähnlich sein soll kann man doch nun wirklich nicht behaupten.
Vergleich doch bitte mal den obigen Python-Code mit dem C-Programm hier und sag mir bitte wo Du da Ähnlichkeiten siehst.
Übrigens ist Dein Delphi-Code oben ein wenig sinnfrei. Nach Durchlaufen der Schleife hast Du in Summe nur den Wert des letzten Quadrats stehen (also 100). Wenn eine Variable summe heißt, sollte vielleicht auch irgendwo summiert werden.
jop! vielen dank! du bist der beste!!!!!!!!!!
p.s. keiner im meinem kurs hat wirklich ahnung, der lehrer meinte wir sollte nur mal es testen und versuchen! also nochmals vielen dank!
@ atombendner noch ne frage kannst du es mir auch mit while zeigen! ansonsten habe ich es verstanden!
05.12.2008, 18:52
#
13
Ex-Dynasty-Warriors
Gesperrt
Threadstarter
Registriert seit: 22.10.2008
Ort: Hinter der Mülltonne!
Beiträge: 774
ist das für while so?ß
summe = 0
while summe<11:
quadrat = n*n
summe += quadrat
print n, 'zum Quadrat =', quadrat
print 'Summe:', summe
05.12.2008, 19:42
#
14
waldvogel
Registriert seit: 27.03.2007
Beiträge: 4.903
Ich hab noch nie in Python programmiert, du wirst aber wohl 10mal
1 zum Quadrat = 1
ausbekommen.
(wenn es überhaupt läuft)
Aber warum gibst du es nicht einfach im Computer ein und dann siehst du es doch obs richtig ist oder nicht.
Im übrigen liegt dein Fehler, dass du für eine Schleife einen Zähler brauchst. In der For-Schleife ist der schon mit drin (n), bei der While musst du eine Variable setzen und diese im jeden Durchlauf erhöhen, bis das Kriterium zum Abbruch erfüllt ist.
Aber überleg dir doch einfach was der PC macht. Programmiersprachen sind logisch aufgebaut und gerade solche einfachsten Programme kann man sehr gut im Kopf durchgehen.
Und was ist das für ein komischer Kurs? Die Aufgabe hat man normal auch in wenige als eine Minute gelöst. Und gibs dazu nicht irgendwann mal eine Prüfung?
(bin mal gespannt, ob nächste Woche eine Aufgabe zu if und else kommt )
05.12.2008, 19:57
#
15
Atombender
Registriert seit: 26.01.2008
Beiträge: 200
Zitat:
Zitat von Ex-Dynasty-Warriors
p.s. keiner im meinem kurs hat wirklich ahnung, der lehrer meinte wir sollte nur mal es testen und versuchen! also nochmals vielen dank!
Kunststück! Wenn ihr alle Ahnung hättet bräuchtet ihr den Kurs nicht
Zitat:
Zitat von Ex-Dynasty-Warriors
ansonsten habe ich es verstanden!
Nein, hast Du ganz offensichtlich nicht. Dein Programm ist zwar syntaktisch richtig, aber semantisch falsch.
Warum folgst Du nicht einfach der Empfehlung Deines Lehrers und probierst den Code aus? Dann siehst Du doch, ob es funktioniert oder nicht.
05.12.2008, 19:58
#
16
Ex-Dynasty-Warriors
Gesperrt
Threadstarter
Registriert seit: 22.10.2008
Ort: Hinter der Mülltonne!
Beiträge: 774
also kannst du mir es zeigen mit while ist das richtig was ich mit while gemacht habe! es wäre wirklich sehr nett
05.12.2008, 20:14
#
17
Atombender
Registriert seit: 26.01.2008
Beiträge: 200
Zitat:
Zitat von waldvogel
Ich hab noch nie in Python programmiert, du wirst aber wohl 10mal
1 zum Quadrat = 1
ausbekommen.
(wenn es überhaupt läuft)
Nö, wird er nicht. Das Progarmm wird die Quadrate der Zahlen von 1 bis 3 ausgeben und am Ende die Summe der Quadrate von 1 bis 3.
Edit: Stimmt nicht, siehe unten.
Zitat:
Zitat von waldvogel
Aber überleg dir doch einfach was der PC macht. Programmiersprachen sind logisch aufgebaut und gerade solche einfachsten Programme kann man sehr gut im Kopf durchgehen.
Du hast ja schon bei diesem einfachen Stück Code selbst danebengetippt. Wie soll das dann ein Anfänger können?
Einem Anfänger würde ich empfehlen, sein Programm auszuprobieren. Sollte die Ausgabe nicht dem entsprechen, was man erwartet hat, dann sollte man versuchen zu verstehen, warum das Programm anders reagiert als erwartet.
Das Verhalten von Programmcode im Kopf durchzuspielen lernt man mit der Zeit, das braucht schlichtweg Übung. Und selbst dann sollte man die erdachten Resultate mit einem Testlauf des Programms gegenprüfen.
Zitat:
Zitat von waldvogel
Und was ist das für ein komischer Kurs? Die Aufgabe hat man normal auch in wenige als eine Minute gelöst.
Sicher, wenn man denn programmieren kann. Für solche Leute dürfte der Kurs aber wohl kaum gedacht sein.
Und für einen Anfängerkurs ist diese Aufgabe vollkommen in Ordnung. Die soll eigentlich nur zeigen, ob die Teilnehmer das Prinzip von For- und While-Schleifen verstanden haben.
Zitat:
Zitat von waldvogel
(bin mal gespannt, ob nächste Woche eine Aufgabe zu if und else kommt )
Na ja, Conditionals sollte man eigentlich vor Schleifen behandeln. Wenn ich das Konzept der bedingten Code-Ausführung nicht verstanden habe, werde ich auch Schleifen nicht verstehen (Stichwort Abbruchbedingung).
Edit:
Und da sieht mans. Nun habe ich voll daneben gelegen. Da n nirgens belegt wird, bricht das Programm schlicht und ergreifend ab. Das hat man nun davon, wenn an klugscheißen will.
05.12.2008, 21:13
#
18
Ex-Dynasty-Warriors
Gesperrt
Threadstarter
Registriert seit: 22.10.2008
Ort: Hinter der Mülltonne!
Beiträge: 774
also! ich bin ja ein anfänger ich habe seit einer 2wochen das thema python! wir haben je 2 stunden in der woche! kein wunder das ich net so viel ahnung habe! also kann einer mir sagen wie es mit der while schleife geht?
05.12.2008, 22:40
#
19
waldvogel
Registriert seit: 27.03.2007
Beiträge: 4.903
Zitat:
Zitat von Atombender
Du hast ja schon bei diesem einfachen Stück Code selbst danebengetippt. Wie soll das dann ein Anfänger können?
Da ich noch nie in Python programmiert habe, weiß ich nicht ob man Variablen deklarieren muss, bzw was er macht, wenn mitten drin eine neue Variable einführt (deswegen auch meine Anmerkung wenn es überhaupt läuft).
Aber das n wird auf jedenfall nicht erhöht und so ist der Code auf jeden Fall Falsch. Wär n am Anfang 0 wäre es eine Endlosschleife und das Quadrat immer 0, bei n=1 wäre das Quadrat immer 1.
Und nachdem einem erklärt wurde, was eine while und for-Schleife ist sollte man auch wissen, was im Programm logisch abläuft.
@Ex-Dynasty-Warriors:
Eine While-Schleife ist wie es der NAme schon vermuten lässt eine Schlefe, die einen Anweisungsblock so lange ausführt, bis die gegebene Bedingung erfüllt ist.
Ich kann kein Python, die Logik ist aber immer die selbe:
while <Bedingung>
{Anweisungsblock}
In Python heißt es glaub ich zB:
Zahlenwert=0
while Zahlenwert < 12:
print "Der Teil wird so lange ausgegeben bis Zahlenwert>=12"
Zahlenwert++
In deutschen Sätzen würde das heißen:
Gib solange die Ausgabe aus und erhöhe Zahlenwert um eins, bis Zahlenwert < 12
Also wird hier solange die Ausgabe ausgegeben, bis der Zahlenwert bis auf 12 erhöht wurde.
(ich hoffe der Python Code stimmt so; wie gesagt kann ich kein Python)
05.12.2008, 23:37
#
20
Ex-Dynasty-Warriors
Gesperrt
Threadstarter
Registriert seit: 22.10.2008
Ort: Hinter der Mülltonne!
Beiträge: 774
vielen dank! aber kan atom. das für mich machen! bittte!