Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Allgemeines (OffTopic) » Systematisch Algorithmen entwerfen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
06.12.2004, 23:13 Uhr
derphilipder



Hallo!

So, nachdem ich wieder einen ganzen Tag gebraucht habe, um einen Fehler zu finden, habe ich beschlossen, daß das so nicht weiter geht!

Ich habe selten Probleme, Ansätze für Algorithmen zur Lösung meiner Probleme zu finden. Dann wird das Ding schnell hingeschrieben ... und läuft natuürlich nicht sofort, meistens kommts der Sache aber schon ganz nah.

Die Schwierigkeit aber auch nur den simpelsten Fehler zu finden nimmt mit dem Umfang dramatisch zu. Nach vielen Stunden stellt sich der Bug dann als meist als Trivialität heraus, die man einfach übersehen hat...

Deshalb meine Frage an die Informatiker:

Gibt es Methoden, vielleicht sogar standardisierte Verfahren, systematisch funktionierende Algorithmen zu entwerfen und zu implementieren?
Dieses rumgewurschtel macht mich krank...
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.12.2004, 01:29 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


na den code halt so anlegen das die einzelnen "einheiten" so klein sind das sie relativ problemlos getestet werden können... das ganze ist zwar mehr als die summe seiner teile aber meist kann man sagen das es funzt wenn alle teilroutinen funzen... wenn du also dein code geschickt in teilprobleme zerlegst taucht das problem kaum auf...
Es heisst ja nicht umsonst Divide et Impera (Teile und Herrsche)
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 07.12.2004 um 01:29 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
07.12.2004, 10:50 Uhr
kronos
Quotenfisch
(Operator)


Man kann zwar bestimmt sorgfältiger arbeiten, aber jeder macht mal Leichtsinnsfehler, die einem nicht sofort in's Auge springen. Was dir fehlt ist wohl eher systematisches debuggen.
Wie Windalf schon sagte, die kritischen Schnipsel einzeln auf ihr Funktionalität testen. Ist zwar auf den ersten Blick umständlich, spart aber oft Zeit.
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.12.2004, 15:32 Uhr
RedEagle



Also wenn es sich zwar Kompilieren/Linken lässt, aber nicht das tut, was es soll oder abstürtzt, dann kan man den Fehler mit MessageBox() Einkreisen.

Einfach im code nen Parr verteilen, und gucken, bis zu welcher das Programm durchkommt.
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.12.2004, 15:40 Uhr
mmc20
puss in boots



Zitat von RedEagle:
Also wenn es sich zwar Kompilieren/Linken lässt, aber nicht das tut, was es soll oder abstürtzt, dann kan man den Fehler mit MessageBox() Einkreisen.

Einfach im code nen Parr verteilen, und gucken, bis zu welcher das Programm durchkommt.


[ironie] und ich hab das immer mit haltepunkten gemacht, oh man wenn ich gewusst hätte das es so einfach geht ?! [/ironie]
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.12.2004, 15:58 Uhr
stephanw
localhorst


UnitTesting: Kleine und Kleinstbausteine automatisiert mit einem entsprechenden Framework testen.
Test Driven Development: zuerst den Test schreiben und dann erst implementieren.

Google ist Dein Freund. Siehe z.B. auch JUnit, CppUnit. (Habe mit beidem keine Erfahrung. JUnit soll aber sehr gut sein (für Java, logisch)). Bisher nur Erfahrung mit einem JUnit-Clon für Lingo
--
Reden ist Schweigen und Silber ist Gold.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
07.12.2004, 18:03 Uhr
RedEagle




Zitat von mmc20:

Zitat:
Also wenn es sich zwar Kompilieren/Linken lässt, aber nicht das tut, was es soll oder abstürtzt, dann kan man den Fehler mit MessageBox() Einkreisen.

Einfach im code nen Parr verteilen, und gucken, bis zu welcher das Programm durchkommt.


[ironie] und ich hab das immer mit haltepunkten gemacht, oh man wenn ich gewusst hätte das es so einfach geht ?! [/ironie]


Haltepunkte??
--
MFG RedEagle

Dieser Post wurde am 07.12.2004 um 18:03 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
07.12.2004, 19:00 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:


Zitat von RedEagle:

Also wenn es sich zwar Kompilieren/Linken lässt, aber nicht das tut, was es soll oder abstürtzt, dann kan man den Fehler mit MessageBox() Einkreisen.

Einfach im code nen Parr verteilen, und gucken, bis zu welcher das Programm durchkommt.



[ironie] und ich hab das immer mit haltepunkten gemacht, oh man wenn ich gewusst hätte das es so einfach geht ?!
[/ironie]




--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
07.12.2004, 19:22 Uhr
derphilipder



Ja, das mit dem systematischen Debuggen ist sicher auch ein Problem. Hab mit dem Debugger (VC++6) noch nicht besondes viel Erfahrung und manchmal macht der nicht was ich will

Aber für jedes Minimodul umfangreiche Tests zu schreiben ist auch recht zeitauffwendig und selbst wenn ich das tue, stellen sich später beim eingebundenen, als bugfrei angenommenen, Modul wieder Fehler ein, weil irgendein Sonderfall nicht bedacht wurde.

Klar, irgendwie liegt das natürlich auch in der Natur der Sache...
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
08.12.2004, 00:46 Uhr
Hans
Library Walker
(Operator)



Zitat von RedEagle:


Zitat:

[ironie] und ich hab das immer mit haltepunkten gemacht, oh man wenn ich gewusst hätte das es so einfach geht ?! [/ironie]


Haltepunkte??

Hi,

in der Onlinehilfe von Borland steht dazu unter anderem:
Zitat:

Haltepunkte halten während einer Debug-Sitzung die Programmausführung an festgelegten Positionen an. Sie werden normalerweise vor potentiellen Problembereichen gesetzt. Wenn das Programm auf einen Haltepunkt trifft, wird es angehalten, und die Zeile oder die Speicheradresse mit dem Haltepunkt wird im Code-Editor oder im Fenster CPU angezeigt. Sie können dann mit dem Debugger den Status Ihres Programms untersuchen und gesamte Routinen oder einzelne Anweisungen ausführen.

Ist 'ne tolle Sache, vor allem die Möglichkeit, einzelne Anweisungen ausführen zu lassen, und dann in einem anderen Fenster zu beobachten, wie sich die Werte von Variablen ändern. - Solche Aktionen fallen unter das Stichwort "debugging"...

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 08.12.2004 um 00:48 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ Allgemeines (OffTopic) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: