Hallo,
wir haben heute in der Berufschule folgende Aufagbe bekommen:
Planen und schreiben Sie ein Programm, welches eine beliebige Dezimalzahl in eine Binärzahl umwandelt.
Ich habe dann ein PAP (Programmablaufplan) erstellt und einen Schreibtischtest durchgeführt. Schon hier habe ich gemerkt, dass in meiner Planung ein Fehler ist.
Trotzdem habe ich das Programm implementiert, um vllt. so an des Rätsels Lösung zu kommen.
Hier das Programm:
Das Problem ist, dass zwar die Binärzahl berechnet wird, diese allerdings falschrum ausgegeben wird.
Rechnet man von Dezimal in Binär schriftlich, so ist die Leserichtung von unten nach oben und nicht wie in dem Programm von oben nach unten.
Beispiel:
Dezimal: 10
Rechnung:
10/2 = 5 R0
5/2 = 2 R1
2/2 = 1 R0
1/2 = 0 R1
Binär: 1 0 1 0
Mein Programm gibt aber von oben nach unten aus, sprich 0 1 0 1
Vielleicht könnt ihr mir einen Tipp geben, wie ich die Aufgabe lösen könnte.
Ich hatte die Idee die "0"en und "1"en erst in Variablen zu schreiben, doch theoretisch brauche ich ja dann unendliche viele Variablen, die ich Deklarieren muss, da die Eingabe unendlich sein kann.
Die Lösung bitte so einfach wie möglich halten, da wir noch nicht so viel gemacht haben und noch ziemliche Anfänger sind.
Vielen Dank im Vorraus
wir haben heute in der Berufschule folgende Aufagbe bekommen:
Planen und schreiben Sie ein Programm, welches eine beliebige Dezimalzahl in eine Binärzahl umwandelt.
Ich habe dann ein PAP (Programmablaufplan) erstellt und einen Schreibtischtest durchgeführt. Schon hier habe ich gemerkt, dass in meiner Planung ein Fehler ist.
Trotzdem habe ich das Programm implementiert, um vllt. so an des Rätsels Lösung zu kommen.
Hier das Programm:
Code:
//---------------------------------------------------------------------------
/*
Datum: 10.11.2008
Name:
Beschreibung: Umrechnung Dezimal in Binär
*/
//---------------------------------------------------------------------------
#include <stdio.h>
#include <conio.h>
int main(int argc, char* argv[])
{
// Deklaration
int zahl,rest;
// Eingabe
printf("Umrechnung von Dezimal in Binaer");
printf("\n\nBitte geben Sie eine Dezimalzahl ein: ");
scanf("%d",&zahl);
// Verarbeitung
printf("\n\nDie Binaerzahl lautet: ");
do
{
rest=zahl%2;
zahl=zahl/2;
if(rest>=1)
{
printf("1");
}
else
{
printf("0");
}
}
while(zahl>=1);
getch();
return 0;
}
//---------------------------------------------------------------------------
Das Problem ist, dass zwar die Binärzahl berechnet wird, diese allerdings falschrum ausgegeben wird.
Rechnet man von Dezimal in Binär schriftlich, so ist die Leserichtung von unten nach oben und nicht wie in dem Programm von oben nach unten.
Beispiel:
Dezimal: 10
Rechnung:
10/2 = 5 R0
5/2 = 2 R1
2/2 = 1 R0
1/2 = 0 R1
Binär: 1 0 1 0
Mein Programm gibt aber von oben nach unten aus, sprich 0 1 0 1
Vielleicht könnt ihr mir einen Tipp geben, wie ich die Aufgabe lösen könnte.
Ich hatte die Idee die "0"en und "1"en erst in Variablen zu schreiben, doch theoretisch brauche ich ja dann unendliche viele Variablen, die ich Deklarieren muss, da die Eingabe unendlich sein kann.
Die Lösung bitte so einfach wie möglich halten, da wir noch nicht so viel gemacht haben und noch ziemliche Anfänger sind.
Vielen Dank im Vorraus