Einzelnen Beitrag anzeigen

swkevin08

Registriert seit: 21. Jul 2008
11 Beiträge
 
Delphi XE Professional
 
#22

AW: Konversion von dezimal zu binär

  Alt 1. Jun 2012, 19:46
Hi,
das problem liegt an der 2 while-schleife. abbruchbedingung ist ja wenn "number <> 0". aber genau 0 wirds, mit deinem code, nur bei bestimmten fällen (z.b. bei 2^k). aber selbst dann funktioniert das nicht richtig weil du bei deiner ersten while-schleife nur ">" und nicht ">=" stehen hast.(siehe unten) aber selbst danach gibts noch ein paar fehler

ich glaube du weißt wieso du die erste while-schleife benutzt?? - wenn nicht schau mal nach "euklidischer algorithmus". Du suchst ja den Exponent für den dein 2^k größer(gleich) deiner zahl ist. hier hast du auch einen kleinen fehler. wenn du "while number > power(2,1)" benutzt bekommst du den 2 höchsten exponent. schreib einfach "while number > power(2,i + 1)".

wenn du den gefunden hast weißt du auch deine länge vom array.. nicht, wie du geschrieben hast "setlength(square,k)" sondern "setlength(square,k + 1)".

ignorieren wir jetzt mal deine abbruchbedingung bei deiner while-schleife (while(number <> 0)). Warum hast du da nochmal ne while-schleife die das gleiche macht wie davor?? du hast doch jetzt den höchsten exponenten.

gruß
  Mit Zitat antworten Zitat