Hallo, ich möchte mal wieder für den 'rekursiven Abstieg' werben. Hier ist zwar keine Rekursion nötig, aber die Anwendung des Prinzips. Vorteil: Der unbedarfte Anwender erhält bei fehlerhafter Eingabe die genaue Angabe, was er falsch gemacht hat oder auch eine Warnung, wenn beispielsweise die Jahres...
@ Michael, Hyperion, Leonidas. Habe bei mir soeben Knoppix installiert. Quelle: Die neueste c't (magazin für computertechnik) Heft 6 vom 3.3.3008, Seite 164 Auf DVD neben Knoppix massenweise Software, darunter auch Python. Zur Beschleunigung kann man (Seite 165 rechte Spalte) das Knoppix-Image auf F...
Hallo Leonidas, Dank fürs Verschieben. Nach ersten Versuchen mit der Methode grid() bekomme ich ein Fenster mit einer 9*9 Tabelle, in die ich auch Daten (Zahlen) schreiben kann. Doch ich habe zwei Probleme: - die Tabelle ist nicht quadratisch, jede Zelle ist 20 Zeichen breit. - die Tabelle möchte ic...
Hallo putone, danke für den Link, werde mich dort mal schlau (machen) lassen. In meinem Buch 'Python GE-PACKT' wird der grid-Manager nur sehr knapp beschrieben.
Hallo Leonidas, danke, werde es mit tkinter versuchen, es sei denn, Du hast gewichtige Gründe für gtk.
Hallo, mein Problem ist die grafische Oberfläche. (Den Algorithmus zu Sudoku hatte ich bereits für StarOffice/StarCalc programmiert) Wie erzeuge ich mit tkinter ein Gittermuster, in das ich per Mausklick Zahlen eintragen kann? Fernziel ist die interaktive Lösung von Sudoku, Kakura, Arukone oder Masy...
@ Blackjack, ja da fiel mir die Bezeichnung nicht ein. Ich meine die kleinen oft exotischen Beispielgrammatiken, die in der Literatur für alles mögliche herangezogen werden. Zu den logischen und arithmetischen Ausdrücken: Da die Semantik, insbesondere die Vorrangregeln bekannt sind, kann man alles i...
@ Blackjack, da hast Du wohl Recht. Aber das betrifft meines Wissens nur 'formale Sprachen', nicht aber die üblichen Programmiersprachen. Beispiel: Parameterlisten oder Statementfolgen werden in BNF rekursiv definiert. Programmiert (beim rekursiven Abstieg) werden sie aber iterativ z.B. in einer Whi...
Tut mir leid, aber ich habe den Einzeiler unter IDLE getestet, daher die Unterschiede. Mein Test lief also nicht unter realen Bedingungen. Doch das Problem ist nicht das Fehlerverhalten von Python, sondern ich möchte aufzeigen, dass Parser nach dem 'rekursiven Abstieg' ein exzellentes Fehlerverhalte...
@ Birkenfeld, ein kleines Beispiel: x = {2*3 + 4**5) mit der Fehlermeldung: 'invalid Syntax' vor dem x. Bei einem längeren Programmtext ist insbesondere für den Anfänger nicht klar, ob er den Fehler vor dieser Zeile oder ab dieser Zeile suchen muss. Beim Parsen nach dem 'recursive descent' kann eine...
Ich hab mir die bis jetzt noch nicht wirklich angetan, weil die meisten *grausigen* Code generieren. Warum nicht Parser selber schreiben? :-) Darüberhinaus zeigen Parser- oder Codegeneratoren ein grausiges Fehlerverhalten. Ein gutes Beispiel ist Python selbst. Wohl in der Hälfte aller Fälle führen ...
Aus dem Buch 'Python2.x' (Das Einsteigerseminar, Martin Uzak, bhv) entnahm ich, dass man Programme mit Tkinter interaktiv testen kann. Das klappt bei mir aber nicht, erst wenn ich root.mainloop() aufrufe, erscheint das tk-Fenster. Ich benutze Release 2.4. Das Problem ist zwar nicht ganz so wichtig, ...
@Leonidas, HWK, Blackjack : Vielen Dank! Wieder etwas gelernt. @Blackjack: Habe jetzt gerade meine 4. Version der Fakultät geschrieben: Endrekursiv. Ich brauchte sie ja nur von Deinem Link "Tail Call Optimazation Decoration" abschreiben. Die Rechenzeiten für 100! bei 100 000 Durchläufen si...
Hallo Blackjack, was ist das denn für eine Programmiersprache (Link)? Habe ich das mit der Endrekursion richtig verstanden, wenn ich die Fakultät so programmiere def fak(n) : if n == 1 : return(1) else : return(n*fak(n-1) # statt return(fak(n-1)*n) # # Heißt endrekursiv auch rechtsrekursiv? Habe abe...
Hallo Gerold, darf ich als Neuling auch meinen Senf dazu geben? Meiner Meinung nach sollte man die Rekursion nur dann verwenden, wenn das Programm dadurch leichter zu verstehen ist. Das mag in Deinem Beispiel für Dich persönlich gelten, aber ich kapiere Leonidas' Programm leichter. Ich ärgere mich i...