Quelltext strukturieren

Benutzeravatar
Tapion
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 220
Registriert: 14. Okt 2006 19:16
Wohnort: Darmstadt

Quelltext strukturieren

Beitrag von Tapion » 29. Okt 2006 00:29

Bei Aufgabe 9 fällt ja mitlerweile doch einiges an Zeilen Quelltext an. Will man innerhalb einer Prozedur den Überblick behalten, sind Einrückungen ja unerlässlich, allerdings wird dadurch der Quelltext wieder sehr lang - ich bin mitlerweile schon bei über 120 Zeilen (inklusive Kommentaren und Leerzeilen).

Die verschiedenen Abstraktionsebenen haben nun dazu geführt, dass ich wohl etwa 10 Prozeduren benötigen werde. Mitlerweile bin ich aber innerhalb des Quelltextes mehr am suchen als am Coden, da ich noch keine Ordnung in die ganzen Definitionen gebracht habe.

Wie kann ich die (eine) Datei so strukturieren, dass ich möglichst wenig suchen muss?

Benutzeravatar
Maradatscha
Computerversteher
Computerversteher
Beiträge: 353
Registriert: 2. Okt 2006 18:53

Beitrag von Maradatscha » 29. Okt 2006 10:29

hm ich komm mit etwa 7 prozeduren aus und bin bei 110 zeilen mit allem drum und dran
ich weiss nicht ob meine lösung schon schön ist, aber sie funktioniert auf jeden fall und tut alles was sie soll. Benenn deine prozeduren vernünftig und es sollte kein problem sein

banshee
Nerd
Nerd
Beiträge: 684
Registriert: 22. Okt 2006 18:46

Beitrag von banshee » 29. Okt 2006 11:13

wenn dir der tutor dumm kommt sagste einfach blackbox abstraktion, ihn hat nicht zu interessieren was da drin steht :D

Benutzeravatar
DC-GS
Computerversteher
Computerversteher
Beiträge: 330
Registriert: 2. Mär 2006 13:18

Beitrag von DC-GS » 29. Okt 2006 13:31

banshee hat geschrieben:wenn dir der tutor dumm kommt sagste einfach blackbox abstraktion, ihn hat nicht zu interessieren was da drin steht :D
Schlechter Vorschlag.
Eines der Ziele am Anfang ist es, den Neulingen einen guten Programmierstil beizubringen. Dazu gehört sauberer Quelcode, den man gut strukturiert, um ihn auch schnell zu verstehen. Schließlich werden Programmierprojekte nicht nur von einer Person, sondern von Team erledigt, da sollten andere im programmcode sehen können, wie es funktioniert.

Aber da ich kein Tutor bin... :roll:
... soll das vorhin nur ein Tipp und keine Anweisung gewesen sein.

banshee
Nerd
Nerd
Beiträge: 684
Registriert: 22. Okt 2006 18:46

Beitrag von banshee » 29. Okt 2006 13:58

das war auch nicht ernst gemeint -.-

aber ich finde die argumentation hat was und zeigt dass man in der vorlesung aufgepasst hat ;)

Benutzeravatar
Alarion
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 159
Registriert: 18. Mai 2005 12:09
Wohnort: Darmstadt
Kontaktdaten:

Re: Quelltext strukturieren

Beitrag von Alarion » 29. Okt 2006 15:05

torstensillus hat geschrieben:Wie kann ich die (eine) Datei so strukturieren, dass ich möglichst wenig suchen muss?
Leider gibt es dafür kein Patentrezept. Es gibt dazu viele Tips: Aussagekräftige Namen für Prozeduren, viele Kommentare... etc. Trotzdem mußt Du Deine eigene Lösung dafür finden... Code, den der eine mit einem Blick erkennt, wird ein anderer erst genauer ansehen müssen, bis er ihn durchschaut. Möglicherweise reicht aber auch einfach nur: oft und viel programmieren. Schließlich sind am Anfang der einzelnen Prozeduren die schönen Kommentarblöcke... und mit etwas Übung überblickt man diese recht schnell.

Maradatscha hat geschrieben:hm ich komm mit etwa 7 prozeduren aus und bin bei 110 zeilen mit allem drum und dran
ich weiss nicht ob meine lösung schon schön ist, aber sie funktioniert auf jeden fall und tut alles was sie soll. Benenn deine prozeduren vernünftig und es sollte kein problem sein
Kurze Anmerkung dazu: Es gibt meiner Erinnerung nach keine Anweisung: "Kommen Sie mit so wenig Code wie möglich aus." Ansonsten käme noch einer auf die Idee, einfach sämtliche Kommentare weg zu lassen, um Zeilen zu sparen.

Viele Codezeilen sind nicht notwendigerweise ein Indiz für schlechte Programmierung. Gerade bei mehr Abstraktionen (und damit mehr Prozeduren) kommen zwangsläufig auch mehr Codezeilen zustande.

banshee hat geschrieben:das war auch nicht ernst gemeint -.-

aber ich finde die argumentation hat was und zeigt dass man in der vorlesung aufgepasst hat ;)
Du würdest bei mir mit der Begründung sicher ein Lachen ernten... trotzdem würde ich anschließend auf einer anderen Erklärung bestehen... ;-)
Tutor "Grundlagen der Informatik 1" im WS06/07

Tobias
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 132
Registriert: 20. Okt 2004 14:17
Kontaktdaten:

Re: Quelltext strukturieren

Beitrag von Tobias » 29. Okt 2006 15:39

torstensillus hat geschrieben:Wie kann ich die (eine) Datei so strukturieren, dass ich möglichst wenig suchen muss?
Helfen können Leerzeilen zwischen einzelnen Funktionen, Einrückungen, ein anständiger Editor mit Syntaxhervorhebung und Dateiübersicht (existiert sowas für Scheme?), ein zweiter Monitor, …

(Im Nachhinein (ich hab das alles schon hinter mir) muss ich sagen, dass mir Python lieber gewesen wäre (das finde ich nämlich deutlich übersichtlicher als die endlosen Klammerungen bei Scheme (zum Glück habe ich keine Folgeschäden davongetragen :twisted:)))
Wise people talk, because they have something to say; fools, because they have to say something. (Plato)

Benutzeravatar
blowfish
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 241
Registriert: 18. Okt 2006 16:00

Beitrag von blowfish » 30. Okt 2006 00:39

und zur übersicht mit den klammern:
mach am besten die klammer, die du öffnest, gleich wieder zu und schreib dann dazwischen weiter....das hilft ungemein! sonst kann ich mich nur meinen vorrednern anschließen: einrückungen, nicht so lange zeilen (lieber öfter mal ne neue zeile anfangen) und auch ne gewisse ordnung bei den funktionen (nach abstraktionsebenen ordnen z.b.).
Ein Hemd ist Einstellungssache!

Tutor16
Windoof-User
Windoof-User
Beiträge: 30
Registriert: 25. Okt 2006 16:52

Beitrag von Tutor16 » 30. Okt 2006 00:44

Noch ein Tip, falls ihr mal viel in einem Quelltext herum springen müsst:
Wenn ihr die Funktion Syntaxprüfung aktiviert werden die Aufrufe von Prozeduren mit deren Definition verknüpft und über das Kontextmenü könnt ihr direkt dorthin springen. Bzw. ihr könnt darüber auch zum jeweils nächsten Aufruf einer Prozedur gelangen.

Benutzeravatar
Tapion
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 220
Registriert: 14. Okt 2006 19:16
Wohnort: Darmstadt

Beitrag von Tapion » 30. Okt 2006 01:50

Vielen Dank für die vielen Tipps.
Das Einrücken mache ich bereits, sogar ziemlich konsequent. Auch meine Zeilen gehen selten über die halbe Bildschirmseite (1024er-Auflösung)
deshalb bin ich jetzt auch bei etwa 200 Zeilen ^^.

Nach Abstraktionsebenen sortieren, das ist doch mal ne Idee. *gleich ma umsetzen*

hoffentlich lernen wir bald, mehrere Dateien zu benutzen. Ich denke ja mal nicht, dass die Programmieraufgaben in Zukunft kürzer werden...
WS 2010/11 - Tutor GDI 1
SS 2010 - Tutor FGI 1+2

Benutzeravatar
Robert
Ehemalige Fachschaftler
Beiträge: 511
Registriert: 6. Okt 2004 17:38
Wohnort: DA

Beitrag von Robert » 30. Okt 2006 02:35

ich hoffe sie werden nicht viel länger in scheme .. weil das macht auch keinen Spaß das dann zu korrigieren. Aber bald kommt ja java und in java hat man dank eclipse keine Probleme mehr mit der Übersicht.

Dort gibt es dann die "Outline" .. und die Tasten F3 und Alt + <-

noch was zum navigieren in langen scheme codes: strg+f .. und dann einfach nach dem funktionsnamen suchen

was ich auch noch hilfreich finde ist unter bearbeiten -> einstellungen -> farben -> scheme -> schlüsselwort fett einschalten, damit sieht man defines deutlich besser im code

Drudge
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 158
Registriert: 13. Apr 2004 20:17

Beitrag von Drudge » 30. Okt 2006 12:21

Ich muss zugeben, dass ich nicht eine einzige Prozedur zur Vereinfachung des Programms benutzt habe. Außer es wurde in der Aufgabe verlangt. Gibt es denn Abzüge wenn ich keine zusätzlichen Prozeduren verwende? Ich dachte dass das bei so wenig Code noch nicht notwendig wäre.

Hab bei keinem Programm mehr als 60 Zeilen und nicht alle davon sind Code, sondern teilweise auch der Vertrag, die Beispiele und die Tests.

banshee
Nerd
Nerd
Beiträge: 684
Registriert: 22. Okt 2006 18:46

Beitrag von banshee » 30. Okt 2006 14:22

ich hab mal ne andere frage und stell sie einfach mal hier weil dafür ein neues thema lohnt nicht:

kann man in scheme irgendwie casten?

weil ich hab mit der hausübung das problem gehabt, dass ich aus meiner funktion die die diskriminante berechnet entweder eine zahl oder ein symbol (error) zurückbekommen hab.
und wenn ich in der pq-formel funktion jetzt testen will ob die funktion ne zahl oder error zurückgeliefert hat kann ich ja weder vergleichen ob die diskriminanten funktion einen wert <0 zurückgeliefert hat (weil dann krieg ich die fehlermeldung 'symbol und zahlen kann man net vergleichen) oder ob sie das error symbol zurückgeliefert hat (denn wenn sie dann eine zahl zurückliefert gibts die gleiche fehlermeldung wie im andern fall)

wenn man jetzt die zahl aber in bool casten könnte wäre alles in butter aber (wie) gehts?

Benutzeravatar
blowfish
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 241
Registriert: 18. Okt 2006 16:00

Beitrag von blowfish » 30. Okt 2006 15:38

Drudge hat geschrieben:Ich muss zugeben, dass ich nicht eine einzige Prozedur zur Vereinfachung des Programms benutzt habe. Außer es wurde in der Aufgabe verlangt. Gibt es denn Abzüge wenn ich keine zusätzlichen Prozeduren verwende? Ich dachte dass das bei so wenig Code noch nicht notwendig wäre.
Prof in Aufgabenstellung hat geschrieben: Wichtig: Um die volle Punktzahl zu erreichen müssen sie ihre Prozedur in sinnvolle Hilfsprozeduren aufteilen ...
Ein Hemd ist Einstellungssache!

Benutzeravatar
m0ep
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 189
Registriert: 5. Okt 2006 22:52
Wohnort: Bensheim
Kontaktdaten:

Beitrag von m0ep » 30. Okt 2006 15:38

Teste doch einfach ob ein Symbol zurückgegeben wurde (if (symbol? (discreminant ....)) (discreminant ...) 'keine_lösung)

musste net doof casten.


zum casten allgemein ... das geht glaub ich (symbol->number) oder so

guck mal auf der DrScheme das ist eine API-Docu, da steht so was drin
Lasst mich Arzt, ich bin durch!

Antworten

Zurück zu „Archiv“