Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Zahl Umwandlung binär/Hexal (https://www.delphipraxis.net/125665-zahl-umwandlung-binaer-hexal.html)

Zuckermaul 9. Dez 2008 21:25


Zahl Umwandlung binär/Hexal
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Leute,

Ich soll das Programm programmieren, aber ich hab keine ahnung wie das funktionieren soll.
mein problem is das ja mit dieser radio group, wie man das eben mit ins delphi program einbaut bzw. der pc dann weiß wenn ich ein anderes anklicke.
wie gebe ich das überhaupt mit dieser umwandlung der zahlensysteme ein? ist das nicht für jede zahl anders? oder gibt es da eine einheitliche formel?
mein lehrer gab uns als tipp, dass wir eine schleife nehmen sollen, aber um welche soll es sich denn handeln?

liebe grüße

http://img293.imageshack.us/img293/5820/delphiias4.png
http://img293.imageshack.us/img293/d...png/1/w917.png ][/url]

quendolineDD 9. Dez 2008 21:49

Re: Zahl Umwandlung binär/Hexal
 
Herzlich willkommen in der DP :dp:
Wir machen hier keine Hausaufgaben, aber helfen dir gerne den passenden Ansatz für deine Lösung zu finden und dich auf den richtigen Weg zu bringen.

Zu deiner Frage:
In Form einer Tabelle lässt sich manches gut erkennen.
Erstmal geht das hexadezimale Zahlensystem von 0 bis F, d.h. von 0 (repräsentiert durch 0) bis 15 (repräsentiert durch F).
1 ist binär ja (8-bit) 00000001 bzw. 2^0. 16 entspricht 2^4 bzw. 000010000.

Hexadezimal speicherst du am besten als String mit der Konvention $ vor dem Wert. Binär könntest du in einem Array of Byte speichern und jeweils pro Index den Wert Dezimal speichern (natürlich in 2-er-Basis).

So hoffe ich doch, nichts falsches geschrieben zu haben. ;-) Les dir am besten das hier dazu nochmal durch.

Auf den ausgewählen Index eines Radiobuttons gelangst du mit Radiobutton.ItemIndex. Dieser ist bei keiner Auswahl -1, das 1. Element ist mit 0 indiziert.
Einbauen tust du die Radiogroup, indem du die Komponente aus der Leiste auf dein Projekt ziehst.
Du wirst jeweils eine Funktion schreiben müssen, welche als Übergabewert einen Binärwert erwartet und diesen in einen hexadezimalen umwandelt und wiederum eine 2. Funktion, welche einen hexadezimalen Wert erwartet und einen binären Wert zurück gibt.

Googlest du mal nach dem Horner-Schema wirst du schon recht schnell nach Delphi Code fündig ;-) Selbst hier in der DP. :dp: :love:
Jedoch bringt der Quellcode dir allein nichts, wenn du ihn nicht verstehst. Un das Verständnis resultiert meist aus alleiniger Aufarbeitung des Sachverhalts.

Viel Spaß, beim zusammenbauen deiner Hausaufgabe :-)
Schönen abend noch.
Lg

Edit:Fehler beseitigt, war wohl doch zu spät.

DeddyH 10. Dez 2008 07:43

Re: Zahl Umwandlung binär/Hexal
 
Öhmm... F entspricht 15 und nicht 16, sonst würdest Du die falsche Basis benutzen ;)

Volle 10. Dez 2008 07:55

Re: Zahl Umwandlung binär/Hexal
 
1 entspricht 0000 0001
und 16 entspricht 0001 0000

Klaus01 10. Dez 2008 08:23

Re: Zahl Umwandlung binär/Hexal
 
Guten Morgen,

OT: zur Überschrift "Hexal" /OT



Zitat:

Zitat von quendolineDD
Hexadezimal speicherst du am besten als String mit der Konvention $ vor dem Wert. Binär könntest du in einem Array of Byte speichern und jeweils pro Index den Wert Dezimal speichern (natürlich in 2-er-Basis).

Wenn Du die Werte speichern willst, speicher sie als Byte.
Wenn Du die Werte in der GUI darstellen willst, kannst Du
für die Hexdarstellung ein $ Zeichen oder auch 0x vor den
Hexwert schreiben. Diese sind üblich für die Hexdarstellung.

Für die binäre Darstellung fällt mir jetzt nichts ein -
aber eine binäre Darstellung ist sowieso recht augenfällig.
Wenn es sich um größere Zahlen handelt die Du binär darstellen willst
ist es hilfreich die Ausgabe in 4er oder 8er Gruppen zu bündeln.

Grüße
Klaus

DeddyH 10. Dez 2008 08:27

Re: Zahl Umwandlung binär/Hexal
 
[Späßchen] Wie sieht denn 27 in Ratiopharm aus? :mrgreen: [/Späßchen]

Luckie 10. Dez 2008 08:47

Re: Zahl Umwandlung binär/Hexal
 
Irgendwie antwortet ihr alle an seibner Frage vorbei. Es geht ihm um die Benutzung der Radiogroup und nicht um die Umwandlung der Zahlen.
Welcher Item in einer Radiogroup ausgewählt ist, kannst du so feststellen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  case RadioGroup1.ItemIndex of
  0: ShowMessage('Der erste Radiobutton ist ausgewählt');
  1: ShowMessage('Der zweite Radiobutton ist ausgewählt');
  end;
end;

DeddyH 10. Dez 2008 09:00

Re: Zahl Umwandlung binär/Hexal
 
Du hast nur die erste Frage gelesen. @TE: hier gibt es irgendwo eine allgemeingültige Funktion zur Umrechnung von Zahlensystemen mit einer anzugebenden Basis (2 für binär, 16 für hexadezimal). Leider weiß ich im Moment keinen sicheren Suchbegriff, wühl Dich halt mal durch.

Luckie 10. Dez 2008 09:09

Re: Zahl Umwandlung binär/Hexal
 
Zitat:

Zitat von DeddyH
Du hast nur die erste Frage gelesen.

Noch ein Grund nur eine Frage pro Beitrag zu zulassen. :roll:

guidok 10. Dez 2008 10:24

Re: Zahl Umwandlung binär/Hexal
 
Zitat:

Welcher Item in einer Radiogroup ausgewählt ist, kannst du so feststellen:
Delphi-Quellcode:
  case RadioGroup1.ItemIndex of
  0: UmrechnenNachBinaer;
  1: UmrechnenNachHex;
  end;

Ergänzend würde ich vorschlagen den Code von Luckie in das OnClick Ereignis der RadioGroup zu schreiben. Dieses wird jedesmal ausgelöst, wenn du auf einen Radiobutton klickst. Je nachdem, ob BINÄR oder HEXADEZIMAL ausgewählt wurde (siehe oben) führst du die entsprechende Umrechnung aus.

Wie du die Werte umrechnen sollst ist ja in der Aufgabenstellung bereits vorgegeben. Also einfach mal nach Horner-Schema googeln und das ganze in Programm umsetzen. Ich würde vor dem Programmieren vorschlagen, das Hornerschema einfach mal "von Hand" auf dem Papier durchzurechnen, dann fällt die Umsetzung vermutlich einfacher aus.

Grundsätzlich gilt beim Programmieren: Erst mal überlegen, bevor man los legt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz