Zahlenkonvertier. in java < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
|
Aufgabe 1:
Gesucht ist ein Algorithmus convertDec2Dual(↓int dec, ↑int dual), welcher eine positive ganze Dezimalzahl in eine Dualzahl mit gleichem Wert umwandelt.
run:
Decimal:1 = Dual:1
Decimal:10 = Dual:1010
Decimal:1000 = Dual:1111101000
Aufgabe 2:
Gesucht ist ein Algorithmus convertDual2Dec(↓int dual, ↑int dec), welcher eine positive ganze Dualzahl in eine Dezimalzahl mit gleichem Wert umwandelt.
Dual:1 = Decimal:1
Dual:10 = Decimal:2
Dual:100000 = Decimal:32
Dual:1100100 = Decimal:100
Hallo Leute, ich bin euch echt dankbar, wenn ihr mir da weiter helfen könntet.
Hier mein Lösungsvorschlag:
Aufgabe 1
convertDec2Dual (↓int dec, ↑int dual){
if (int % 2 ==rest 0) set rest int=1
else rest int=0}
return oder so was
beim Beispiel 2 habe ich leider überhaupt keine ahnung. Ich danke euch nochmals für eure Hilfe.
mfg narutochen
|
|
|
|
hi wie wär's damit:
Aufg1.
convertDec2Dual (int dec, int dual){
//angenommen deine Dualzahl wird nicht länger als 50 zeichen;
int dualzahl[50];
int rest, wert,i=49;
wert=dec;
rest=0;
while(wert!=0){
rest=wert%2; wert=wert/2;
dualzahl[i]=rest;
i--;
}
}
Aufgabe zwei ist noch viel einfacher. Dort musst du einfach in einer schleife alle Binären zahlen immer dazu addieren und die Summe immer wieder mal zwei multiplizieren. z.B. 110101 = ((((((1)*2+1)*2+0)*2+1)*2+0)*2+1)*2
|
|
|
|
|
Hallo viktory_hh!
Vielen Dank für deine Hilfe.
Zum Beispiel 2:
Also ich weiß, wie man die binären Zahlen in dezimalen Ziffern umwandelt, nur stellt man sich die Frage, wie sich das ganze in einen Algrorithmus darstellen lässt?
mfg narutochen
|
|
|
|
|
also abstract:
x=0
while(noch binärstellen vorhanden)
x=x*2 +binär(i);
end
|
|
|
|
|
Hallo!
Sorry, dass ich so lästig bin, aber was heißt eigentlich das "x=0"? und warum binär (i) und was bedeutet das?
Sorry aber ich habe leider vorher noch nie programmiert.
Danke für deine Zeit.
mfg narutochen
|
|
|
|
|
Hi,
x=0 damit es wirklich null ist, weil je nach Prog.Sprache ist eine Initialisierung am Anfang nicht vorhanden.
binär(i) bedeutet den Zugriff auf einzelen Binärstellen, ich weiß ja nicht wie die Binärzahl bei Dir gegeben ist.
bis dann
|
|
|
|
|
Hallo!
Danke mal für die Antwort.
Also es sind eigenlicht gar keine Binärzahlen gegeben. Die Aufgabenstellung ist, dass man eine Funktion (Algorithmus) erstellt, dass Binärzahlen in ganz normale dezimale Zahlen umwandelt.
Oder verstehe ich das ganze alles falsch? :-(
mfg narutochen
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 09:34 Di 20.03.2007 | Autor: | Ankh |
> Also es sind eigenlicht gar keine Binärzahlen gegeben. Die
> Aufgabenstellung ist, dass man eine Funktion (Algorithmus)
> erstellt, dass Binärzahlen in ganz normale dezimale Zahlen
> umwandelt.
In jeder algorithmischen Funktion wird einem oder mehreren Eingabewerten ein Ausgabewert zugeordnet. In diesem Beispiel ist der Eingabewert eine Binärzahl und der Ausgabewert eine Dezimalzahl.
Man soll die Funktion etwa so benutzen können:
convertDual2Dec(0110101, x)
x ist dann die Zahl 43.
Man gibt also eine beliebige Binärzahl an und erwartet als Ergebnis eine Dezimalzahl.
Da der Eingabeparameter also eine beliebige Binärzahl ist, kann man auch sagen, dass innerhalb der Funktion, eine Binärzahl (abstrakt) gegeben ist, die du dann umwandeln musst.
|
|
|
|
|
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
heißt also abstrakt irgendeine Binärzahl?
Und könntest du mir vielleicht die folgende Funktion erklären? also was int=rest, wert, i=49 heißt, usw.?
int binär[50]
int rest, wert, i=49
wert=dec;
rest=0;
while(wert!=0){
rest=wert%2; wert=wert/2;
dualzahl[i]=rest
i--
Danke vielmals
mfg narutochen
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 23:57 Di 20.03.2007 | Autor: | viktory_hh |
Nein, das mußt Du selbst im Internet oder einem Buch für JAVA nachlesen.
Es hilft auch nichts, wenn ich das erkläre.
Es sei denn ich werde dein Nachhilfelehrer. Wo wohnst Du?
bis dann
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 19:15 Mi 21.03.2007 | Autor: | viktory_hh |
Sei bitte nicht beleidigt über meine letzte Mitteilung. So wie ich sehe musst du demnächst eine Reihe von aufgaben in Java lösen, bestimmt ein Kurs oder Seminar?
Deswegen mein Ratschlag, schnappe Dir ein Buch und lege los . Du wirst nicht weiter kommen, wenn Du hier nach jeder Kleinigkeit wie z.B. was bedeutet dies Schlüsselwort und welche Bedeutung hat jenes. Bis du (teilweise möglich einige Stunden) zu jeder Solchen Frage eine Antwort bekommst hättest Du es bestimmt in einem Buch zehn mal lesen können.
Algorithmen abstrakt zu beschreiben, das werde ich Dir auch weiter können.
Aber Schlüsselwörter einer Prog.Sprache sollte man sowieso ganz schnell selbst lernen, oder wenn man keine Lust dazu hat, na ja dann . . . vorbei der Kurs. Bitte verstehe das richtig.
bis dann
|
|
|
|
|
Nein, ich bin dir überhaupt nicht böse und ich bin auch nicht beleidigt. Ich bin dir sogar dankbar, dass du mir so oft geholfen hast. Ich bin einfach dankbar, wenn irgendwer mir hilft. Denn es ist schon brutal, wenn man noch nie programmiert und dann gleich am Anfang mit solchen Aufgaben konfrontiert ist. Wobei ich sagen muss, dass ich mich jetzt doch a bissal besser auskenne als vor einer Woche, als ich die Aufgaben bekommen habe.
Ich habe schon ein Buch über Java gekauft. Es heißt "Sprechen Sie java?" Nur das ganze alleine zu lernen, ist schon a wengal hart. Und ich bin noch nicht so weit gekommen. abstrct habe ich jetzt nachgeschaut, dieser Begriff wird erst auf der Seite 191 erklärt. Deswegen habe ich nicht mal gewusst, dass das im Buch vorkommt.
Ach übrigens ich bin aus Österreich.
mfg Yi
|
|
|
|
|
Ich werde Dir auch weiterhin helfen, solange ich Zeit habe und es noch kann.
Ich bin aus Hamburg und ursprünglich aus dem Land, aus dem auch der berühmte "Borat" kommt. Allerdings ist dort jetzt alles wirklich ganz anders.
bis demnächst.
Tipp: schaue Dir in deiner Bib. auch mal das Buch: Java als erste Programmiersprache. Gerade für deinen Fall da beste denke ich.
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 09:13 Mi 21.03.2007 | Autor: | Ankh |
> convertDec2Dual (int dec, int dual){
ConvertDec2Dual ist der Name der Funktion/Methode,
dec ist der Eingabeparameter, dual der Ausgabeparameter
> int dualzahl[50];
Das ist ein Array (Feld), das aus 50 Integervariablen besteht (dualzahl[0], ..., dualzahl[49]). Hier wird das Ergebnis gespeichert.
> int rest, wert,i=49;
rest und wert und i sind 3 Integervariablen.
i bekommt den Wert 49, das heißt, wir fangen bei der letzten Stelle an und gehen dann immer einen Schritt nach vorn bis zur ersten Stelle.
> wert=dec;
"wert" bekommt den Wert des Eingabeparameters, also der Dezimalzahl.
> rest=0;
"rest" bekommt den Wert 0.
> while(wert!=0){
Solange die Variable "wert" nicht Null ist,
> rest=wert%2; wert=wert/2;
"rest" ist der Rest von "wert" bei Teilung durch 2, also entweder 0 oder 1.
"wert" wird halbiert, der Rest wird abgeschnitten
> dualzahl[i]=rest;
Der Rest (0 oder 1) wird in das Ergebnisfeld geschrieben.
> i--;
Der Zähler i wird um 1 reduziert. Wir machen also mit dem nächstlinkeren Feld (dualzahl[i]) weiter.
>}
>
>}
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 21:23 Mi 21.03.2007 | Autor: | narutochen |
Hallo!
He, super danke, ich glaube ich kapiere's jetzt das mit dem Konvertieren von dualzahlen.
nochmals vielen Dank,
mfg narutochen
|
|
|
|