Dezimal in Dual Umrechner, funzt nicht?! Why?

Hallo zusammen, ich hoffe ihr könnt mir helfen:

Ich hab folgendes Problem, ich programmiere gerade an einem Deziaml in Dual Rechner, Zahlenbereich bis 5000, beim kompilieren bekomme ich keine warnungen oder Fehler, nur die Dual Zahl wo herauskommt ist falsch. Ich hab bis jetzt nur Fall 1 programmiert, d.h die eingegebene Dezimalzahl muss größer sein als 4096!

Bitte schaut euch mal mein kleines "Problem" an, ich weis echt nicht mehr weiter:

Code:
#include "stdafx.h"
#include <stdio.h>



int main()
{
//Beginn Programm

	int dez,fall,erg,a,b,c,d,e;
	int f,g,h,j,k,l,m,n;

	a=0;
	b=0;
	c=0;
	d=0;
	e=0;
	f=0;
	g=0;
	h=0;
	j=0;
	k=0;
	l=0;
	m=0;
	n=0;

	printf("***************************************\n");
	printf("*   Dezimal in Binaer Rechner V1.1    *\n");
	printf("***************************************\n\n\n\n");
	printf("Geben sie bitte eine Dezimalzahl ein:");
	scanf("%d",&dez);
	fflush(stdin);
	
// Fallunterscheidungen

			if (dez>4096)
			fall = 1;
			else if(dez>2048)
			fall=2;
			else if(dez>1024)
			fall=3;
			else if(dez>512)
			fall=4;
			else if(dez>256)
			fall=5;
			else if(dez>128)
			fall=6;
			else if(dez>64)
			fall=7;
			else if(dez>32)
			fall=8;
			else if(dez>16)
			fall=9;
			else if(dez>8)
			fall=10;
			else if(dez>4)
			fall=11;
			else if(dez>2)
			fall=12;
			else if(dez>1)
			fall=13;
			else 
			{
				printf("Keine Zahl");
				return 0;
			}

			printf ("\nFall:%d\n\n",fall);
	


// Anfang der Berechnung
	switch (fall){
		case 1:	
			erg = dez - 4096;
			a=1;

					

			if (erg>2048){
				erg = erg -2048;
				b = 1;
			}
			else
				b=0;

		
		


			if (erg>1024){
				erg = erg -1024;
				c=1;
				}
			else
				c=0;
			
			if (erg>512){
				erg = erg - 512;
				d=1;
				}
			else
				d = 0;
		

			if (erg>256){
				erg = erg - 256;
				e=1;
				}
			else
				e=0;
		

			if (erg>128){
				erg = erg - 128;
				e=1;
				}
			else
				e=0;
		
			if (erg>64){
				erg = erg - 64;
				f=1;
				}
			else
				f=0;
			
			if (erg>32){
				erg = erg - 32;
				g=1;
				}
			else
				g=0;
			
			if (erg>16){
				erg = erg - 16;
				h=1;
				}
			else
				h=0;
			
			if (erg>8){
				erg = erg - 8;
				j=1;
				}
			else
				j=0;
		
			if (erg>4){
				erg = erg - 4;
				k=1;
				}
			else
				k=0;
			
			if (erg>2){
				erg = erg - 2;
				l=1;
				}
			else
				l=0;
		
			if (erg>1){
				erg = erg - 1;
				m=1;
				}
			else
				m=0;
		

			break;
		
}
	printf("Dual: \t%d%d%d%d%d%d%d%d%d%d%d%d\n\n",a,b,c,d,e,f,g,h,j,k,l,m);
	
	
		
	
		return 0;
}

Gruß Teal'c

EDIT: Ich benutze Microsoft Visual Studio C++ 6.0
 
hm, warum nimmst Du nicht den "naheliegeden" Algo? Also immer schön durch 2 bis nichts mehr übrig bleibt.
http://de.wikipedia.org/wiki/Zahlbasiswechsel#Umrechnen_zwischen_Dezimal_und_Dual

Java:
Code:
public class dual{
  public static void main (String args[]){
    String ergebnis=" "; 
    int zahl=100;

    while (zahl!=0) {
      if((zahl%2)==1) ergebnis="1"+ergebnis;
      else ergebnis="0"+ergebnis;
      zahl=zahl/2;
    }
   
    System.out.println(ergebnis);
  }
}

Für C++ sind eben minimale anpassungen nötig ;)

eine andere Methode währe:
http://www.fun-soft.de/showtopic.php?threadid=6423
 
Probiers mal mit >=
und ob es nicht eine einfachere Methode gibt, dass Problem zu behandeln.

Gruss end4win

@ CDW jetzt hast du ihm, dass selber denken abgenommen.
 
>= hab ich schon geändert^^, ich probiers nochma mit dem restverfahren... vllt. tritt dann eine besserung auf...
 
hier das kannst du dir auch mal angucken

das habe ich mal vor einiger zeit geschrieben

wenn du den rest auch noch haben willst (ausgabe von bin -> hex / komplett kommentiert ... ) dann sag bescheid!

Code:
#include <stdio.h>
int main()
{
    int i,j,safe=0,zahl2=1,rest,array[99];
    unsigned int zahl=0;
    printf("Geben Sie bitte eine Natuerliche Zahl an [max. 2.147.483.647]:  ");
    scanf ("%i",&zahl);
    if (zahl > 2147483647)       //Zahl kann nicht größer sein!
    {
       printf("\n\nZahl ist zu gross!!!!!\n\n>>>F A T A L   E R R O R <<<\n\n");
       return 1;
    }
    safe = zahl;    
    j=2;
    i=0;             //Initialisierung von i
    zahl = safe;     //für die Schleife wird Eingegebene Zahl neu eingelesen
    rest = 16;       //damit der Rest auf jeden Fall > als basis des hex (16)
    while (rest > (j-1))
    {
          rest = zahl % j;      //rechnen   
          array[i] = rest;      //in array schreiben
          zahl = zahl - rest;   //rechnen
          rest = zahl / j;      //rechnen
          zahl = rest;          //rechnen
          i++;                  // ;)
    }
         array[i] = rest;            //in array schreiben
         
    for (;i>=0;i--)             //Ausgabeschleife
    {
          printf("%i",array[i]);  //Ausgabe für die Dualzahlen
    }
    return 0;    
}

mfg bikky


EDIT :

hau BITTE BITTE BITTE das hier weg! >> fflush(stdin); << das ist NICHT DEFINIERT!!!!

stelle dir vor fflush ist die betätigung der klospühlung! du kannst nur das wegspühlen was in der "schüssel" ist. nicht das was du dannach erst "reinmachst".
 
Code:
   if (zahl > 2147483647)       //Zahl kann nicht größer sein!
    {
       printf("\n\nZahl ist zu gross!!!!!\n\n>>>F A T A L   E R R O R <<<\n\n");
       return 1;
    }

geiles Codestück... für die Gallerie :)

für 32 bit signed integer wird die Bedingung _nie_ wahr (ok, steht auch im Kommentar) - wozu also das ganze if überhaupt ;-)
 
Original von darkdieter
für 32 bit signed integer wird die Bedingung _nie_ wahr (ok, steht auch im Kommentar) - wozu also das ganze if überhaupt ;-)

1. ist das schon lange her und anscheinend habe ich da das LONG ausversehen beim editieren rausgenommen ;)

da sollte stehen:
Code:
unsigned long int zahl = 0;
/EDIT

hier das original ;)
Code:
//Erstellen Sie ein Programm, das eine Natürliche Zahl einließt, und dann 
//deren Dastellung in allen Zahlensystemen 2 - 16 ausgibt. 
/* bikky x-y xyz@bg.bib.de 2002-10-05*/

#include <stdio.h>
int main()
{
    int i,j,safe=0,zahl2=1,rest,array[99];
    unsigned long int zahl=0;
    printf("Geben Sie bitte eine Natuerliche Zahl an [max. 2.147.483.647]:  ");
    scanf ("%i",&zahl);
    if (zahl > 2147483647)       //Zahl kann nicht größer sein!
    {
       printf("\n\nZahl ist zu gross!!!!!\n\n>>>F A T A L   E R R O R <<<\n\n");
       return 1;
    }
    safe = zahl;    
    
    for (j=2;j<=16;j++) //Schleife beginnt bei 2 (binär) ->= 16 (hex)
    {
       i=0;             //Initialisierung von i
       zahl = safe;     //für die Schleife wird Eingegebene Zahl neu eingelesen
       rest = 16;       //damit der Rest auf jeden Fall > als basis des hex (16)
         while (rest > (j-1))
         {
               rest = zahl % j;      //rechnen   
               array[i] = rest;      //in array schreiben
               zahl = zahl - rest;   //rechnen
               rest = zahl / j;      //rechnen
               zahl = rest;          //rechnen
               i++;                  // ;)
         }
         array[i] = rest;            //in array schreiben
         
         for (;i>=0;i--)             //Ausgabeschleife
         {
             if(array[i] < 10)       //wenn Zahlensystem < 10
             printf("%i",array[i]);  //Ausgabe für Zahlen von 0 -> 9
             else                    //wenn Zahlensystem > 10
             {
                 if (array[i] == 10)        //für Zahlensystem 10
                    array[i] = 'A';         //ersetze 10 mit A
                 else if (array[i] == 11)   //für Zahlensystem 11
                    array[i] = 'B';         //ersetze 11 mit B
                 else if (array[i] == 12)   //für Zahlensystem 12
                    array[i] = 'C';         //ersetze 12 mit C
                 else if (array[i] == 13)   //für Zahlensystem 13
                    array[i] = 'D';         //ersetze 13 mit D
                 else if (array[i] == 14)   //für Zahlensystem 14
                    array[i] = 'E';         //ersetze 14 mit E
                 else                       //für Zahlensystem > 14
                    array[i] = 'F';         //ersetze Zahl mit F
                 printf("%c",(char)array[i]);         //Ausgabe für Buchstaben
             }
         }
    printf("\t(%i)\n\n",j);                 //Ausgabe des Zahlensystems
    }
    return 0;    
}
mfg bikky
 
Hallo bikky,

danke für deine Antwort,

da ich dieses kleine Projekt für die Schule machen muss, kann ich nur folgende Befehle benutzen: if, if else if, switch und while-Schleife. Leider keine Arrays. Gestern hab ichs mit dem Restverfahren probiert, bei manchen Zahlen scheint das richtige Ergebnis rauszukommen, und bei manchen nicht? *grrr* dieses Programm treibt mich noch zur weissglut. egal, ich mach weiter.

Gibt es eine Möglichkeit in der while schleife eines der beide verfahren (rest,zerlegungsverfahren) ohne arrays zu realiseren, sonst hab ich immer mit den variablen gearbeitet, siehe oben! das wüsste ich nicht in einer while schleife zu implemntieren.
 
hoffe du hast schon mit der math.h gearbeitet! da ist nämlich 'pow(x,y)' definiert

x = Basis
y = Exponent

hier der Code:
Code:
#include <stdio.h>
#include <math.h>

int main()
{
    int dezimal;                                //Integer als eingegebene Zahl
    int i;                                      //0 oder 1 als binäre Ausgabe
    printf("Geben Sie eine Zahl ein:  ");       //Zahl eingeben
    scanf ("%i",&dezimal);                      //Zahl in Variable 'dezimal' speichern
    
    if (dezimal > 5000)                         //Beschränkung nach oben bei 5000
       return 1;                                //Programm Ende
       
    for(i=13;dezimal > 0;i--)                   //Schleife zum Abarbeiten
    {                                           
       if (dezimal >= pow(2,i))                 //Berechnung
       {
          printf("1");                          //eine '1' ausgeben ;)
          dezimal -= pow(2,i);                  //Übertrag abziehen
       }
       else 
            printf("0");                        //eine '0' ausgeben ;)
     }
     
     i++;                                       //weiß auch nicht! muss aber sein!
     for (;i>0;i--)                             //restlichen Nullen ausgeben
         printf("0");      
         
 return 0;
}

und hier nochmal der code OHNE FOR schleife

Code:
#include <stdio.h>
#include <math.h>

int main()
{
    int dezimal;                                //Integer als eingegebene Zahl
    int i=13;                                   //0 oder 1 als binäre Ausgabe
    printf("Geben Sie eine Zahl ein:  ");       //Zahl eingeben
    scanf ("%i",&dezimal);                      //Zahl in Variable 'dezimal' speichern
    
    if (dezimal > 5000)                         //Beschränkung nach oben bei 5000
       return 1;                                //Programm Ende
       
    while (dezimal > 0)                         //Schleife zum Abarbeiten
    {                                           
       if (dezimal >= pow(2,i))                 //Berechnung
       {
          printf("1");                          //eine '1' ausgeben ;)
          dezimal -= pow(2,i);                  //Übertrag abziehen
          i--;
       }
       else 
       {
            printf("0");                        //eine '0' ausgeben ;)
            i--;
       }
     }
     i++;
     while (i>0)
     {                             
         printf("0");                           //restlichen Nullen ausgeben
         i--;
     }
 
 return 0;
}

mfg bikky
 
Dankeschön, für das Codebeispiel^^. Ich habs aber auch alleine hinbekommen:

Ist aber noch nicht ganz fertig:

Code:
// DezProgPProjekt.cpp : Definiert den Einsprungpunkt für die Konsolenanwendung.
// Version 1.1
//Änderungen: Keine Goto Sprünge, switch Befehl eingebaut.



#include "stdafx.h"
#include <stdio.h>



int main()

{
//Beginn Programm

int dez,erg,fall,pruef;
int a,b,c,d,e,f,g,h,i,j,k;
int option,max;



	printf("***********************************************************************\n");
	printf("*			 Dezimal in Binaer Rechner V1.3	              *\n");
	printf("*                                                                     *\n");
	printf("* Programmiert von Teal'C                                       *\n");
	printf("***********************************************************************\n\n\n");

	
	printf("Was moechten sie tun?\n\n");
	printf("1: Hilfe-Datei lesen\n");
	printf("2: Programm in Rechneransicht starten\n");
	printf("3: Programm ohne Rechneransicht starten\n");
	printf("4: Crashtest\n\n");

	printf("Geben sie fuer die jeweilige Option eine Zahl ein\nz.B 1 zum lesen der Hilfedatei: \t\t");



	scanf("%d",&option);
	fflush(stdin);

	switch (option)
	{
	case 2:



	printf("\n\n---------------------------------------------------\n");
	printf("Geben sie bitte eine Dezimalzahl ein: \t");
	scanf("%d",&dez);
	fflush(stdin);
	printf("---------------------------------------------------\n\n\n");
			
			
			if(dez>=
				1024)
			fall=1;
			else if(dez>=512)
			fall=2;
			else if(dez>=256)
			fall=3;
			else if(dez>=128)
			fall=4;
			else if(dez>=64)
			fall=5;
			else if(dez>=32)
			fall=6;
			else if(dez>=16)
			fall=7;
			else if(dez>=8)
			fall=8;
			else if(dez>=4)
			fall=9;
			else if(dez>=2)
			fall=10;
			else if(dez>=1)
			fall=11;
			else if (dez==0)
				fall=12;
			else

			{
				printf("Keine natuerliche Zahl");
				return 0;
			}

		
	

			switch (fall){
			case 1:
			
				if (dez>=1024)
				{
					erg = dez - 1024;
					a = 1;
				
				}
				else
					a = 0;

				printf("%d",dez);
				printf("\t - 1024");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",a);
				
				if (erg>=512)
				{
					erg = erg - 512;
					b = 1;
				}
				else
					b = 0;

				printf("%d",erg);
				printf("\t - 512");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",b);

				if (erg>=256)
				{
					erg = erg - 256;
					c = 1;
				}
				else
					c = 0;

				printf("%d",erg);
				printf("\t - 256");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",c);
				if (erg>=128)
				{
					erg = erg - 128;
					d = 1;
				}
				else
					d = 0;

				printf("%d",erg);
				printf("\t - 128");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",d);

				if (erg>=64)
				{
					erg = erg - 64;
					e = 1;
				}
				else
					e = 0;

				printf("%d",erg);
				printf("\t - 64");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",e);

				if (erg>=32)
				{
					erg = erg - 32;
					f = 1;
				}
				else
					f = 0;

				printf("%d",erg);
				printf("\t - 32");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",f);

				if (erg>=16)
				{
					erg = erg - 16;
					g = 1;
				}
				else
					g = 0;

				printf("%d",erg);
				printf("\t - 16");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",g);

				if (erg>=8)
				{
					erg = erg - 8;
					h = 1;}

				else
					h = 0;

				printf("%d",erg);
				printf("\t - 8");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",h);

				if (erg>=4)
				{
					erg = erg - 4;
					i = 1;
				}
				else
					i = 0;

				printf("%d",erg);
				printf("\t - 4");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",i);

				if (erg>=2)
				{
					erg = erg - 2;
					j = 1;
				}
				else
					j = 0;

				printf("%d",erg);
				printf("\t - 2");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",j);
				if (erg>=1)
				{
					erg = erg - 1;
					k = 1;
				}
				else
					k = 0;

				printf("%d",erg);
				printf("\t - 1");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",k);

				printf("---------------------------------------------------\n");

				printf("Dual: \t\t\t\t\t%d%d%d%d%d%d%d%d%d%d%d\n",a,b,c,d,e,f,g,h,i,j,k);
				printf("---------------------------------------------------\n\n\n");
				break;

				case 2:
					if (dez>=512)
				{
					erg = dez - 512;
					a = 1;
				
				}
				else
					a = 0;

				printf("%d",dez);
				printf("\t - 512");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",a);
				
				if (erg>=256)
				{
					erg = erg - 256;
					b = 1;
				}
				else
					b = 0;

				printf("%d",erg);
				printf("\t - 256");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",b);

				if (erg>=128)
				{
					erg = erg - 128;
					c = 1;
				}
				else
					c = 0;

				printf("%d",erg);
				printf("\t - 128");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",c);
				if (erg>=64)
				{
					erg = erg - 64;
					d = 1;
				}
				else
					d = 0;

				printf("%d",erg);
				printf("\t - 64");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",d);

				if (erg>=32)
				{
					erg = erg - 32;
					e = 1;
				}
				else
					e = 0;

				printf("%d",erg);
				printf("\t - 32");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",e);

				if (erg>=16)
				{
					erg = erg - 16;
					f = 1;
				}
				else
					f = 0;

				printf("%d",erg);
				printf("\t - 16");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",f);

				if (erg>=8)
				{
					erg = erg - 8;
					g = 1;
				}
				else
					g = 0;

				printf("%d",erg);
				printf("\t - 8");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",g);

				if (erg>=4)
				{
					erg = erg - 4;
					h = 1;}

				else
					h = 0;

				printf("%d",erg);
				printf("\t - 4");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",h);

				if (erg>=2)
				{
					erg = erg - 2;
					i = 1;
				}
				else
					i = 0;

				printf("%d",erg);
				printf("\t - 2");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",i);

				if (erg>=1)
				{
					erg = erg - 1 ;
					j = 1;
				}
				else
					j = 0;

				printf("%d",erg);
				printf("\t - 1");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",j);
				

				printf("---------------------------------------------------\n");

				printf("Dual: \t\t\t\t\t%d%d%d%d%d%d%d%d%d%d\n",a,b,c,d,e,f,g,h,i,j);
				printf("---------------------------------------------------\n\n\n");
				break;

				case 3:
				if (dez>=256)
				{
					erg = dez - 256;
					a = 1;
				
				}
				else
					a = 0;

				printf("%d",dez);
				printf("\t - 256");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",a);
				
				if (erg>=128)
				{
					erg = erg - 128;
					b = 1;
				}
				else
					b = 0;

				printf("%d",erg);
				printf("\t - 128");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",b);

				if (erg>=64)
				{
					erg = erg - 64;
					c = 1;
				}
				else
					c = 0;

				printf("%d",erg);
				printf("\t - 64");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",c);
				if (erg>=32)
				{
					erg = erg - 32;
					d = 1;
				}
				else
					d = 0;

				printf("%d",erg);
				printf("\t - 32");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",d);

				if (erg>=16)
				{
					erg = erg - 16;
					e = 1;
				}
				else
					e = 0;

				printf("%d",erg);
				printf("\t - 16");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",e);

				if (erg>=8)
				{
					erg = erg - 8;
					f = 1;
				}
				else
					f = 0;

				printf("%d",erg);
				printf("\t - 8");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",f);

				if (erg>=4)
				{
					erg = erg - 4;
					g = 1;
				}
				else
					g = 0;

				printf("%d",erg);
				printf("\t - 4");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",g);

				if (erg>=2)
				{
					erg = erg - 2;
					h = 1;}

				else
					h = 0;

				printf("%d",erg);
				printf("\t - 2");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",h);

				if (erg>=1)
				{
					erg = erg - 1;
					i = 1;}

				else
					i = 0;

				printf("%d",erg);
				printf("\t - 1");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",h);


			

				printf("---------------------------------------------------\n");

				printf("Dual: \t\t\t\t\t%d%d%d%d%d%d%d%d%d\n",a,b,c,d,e,f,g,h,i);
				printf("---------------------------------------------------\n\n\n");
				break;

				case 4:
					if (dez>=128)
				{
					erg = dez - 128;
					a = 1;
				
				}
				else
					a = 0;

				printf("%d",dez);
				printf("\t - 128");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",a);
				
				if (erg>=64)
				{
					erg = erg - 64;
					b = 1;
				}
				else
					b = 0;

				printf("%d",erg);
				printf("\t - 64");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",b);

				if (erg>=32)
				{
					erg = erg - 32;
					c = 1;
				}
				else
					c = 0;

				printf("%d",erg);
				printf("\t - 32");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",c);
				if (erg>=16)
				{
					erg = erg - 16;
					d = 1;
				}
				else
					d = 0;

				printf("%d",erg);
				printf("\t - 16");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",d);

				if (erg>=8)
				{
					erg = erg - 8;
					e = 1;
				}
				else
					e = 0;

				printf("%d",erg);
				printf("\t - 8");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",e);

				if (erg>=4)
				{
					erg = erg - 4;
					f = 1;
				}
				else
					f = 0;

				printf("%d",erg);
				printf("\t - 4");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",f);

				if (erg>=2)
				{
					erg = erg - 2;
					g = 1;
				}
				else
					g = 0;

				printf("%d",erg);
				printf("\t - 2");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",g);

				if (erg>=1)
				{
					erg = erg - 1;
					h = 1;}

				else
					h = 0;

				printf("%d",erg);
				printf("\t - 1");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",h);


				printf("---------------------------------------------------\n");

				printf("Dual: \t\t\t\t\t%d%d%d%d%d%d%d%d\n",a,b,c,d,e,f,g,h);
				printf("---------------------------------------------------\n\n\n");
				break;

				case 5:
					if (dez>=64)
				{
					erg = dez - 64;
					a = 1;
				
				}
				else
					a = 0;

				printf("%d",dez);
				printf("\t - 64");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",a);
				
				if (erg>=32)
				{
					erg = erg - 32;
					b = 1;
				}
				else
					b = 0;

				printf("%d",erg);
				printf("\t - 32");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",b);

				if (erg>=16)
				{
					erg = erg - 16;
					c = 1;
				}
				else
					c = 0;

				printf("%d",erg);
				printf("\t - 16");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",c);
				if (erg>=8)
				{
					erg = erg - 8;
					d = 1;
				}
				else
					d = 0;

				printf("%d",erg);
				printf("\t - 8");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",d);

				if (erg>=4)
				{
					erg = erg - 4;
					e = 1;
				}
				else
					e = 0;

				printf("%d",erg);
				printf("\t - 4");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",e);

				if (erg>=2)
				{
					erg = erg - 2;
					f = 1;
				}
				else
					f = 0;

				printf("%d",erg);
				printf("\t - 2");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",f);

				if (erg>=1)
				{
					erg = erg - 1;
					g = 1;
				}
				else
					g = 0;

				printf("%d",erg);
				printf("\t - 1");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",g);

				printf("---------------------------------------------------\n");

				printf("Dual: \t\t\t\t\t%d%d%d%d%d%d%d\n",a,b,c,d,e,f,g);
				printf("---------------------------------------------------\n\n\n");
				break;

				case 6:
					if (dez>=32)
				{
					erg = dez - 32;
					a = 1;
				
				}
				else
					a = 0;

				printf("%d",dez);
				printf("\t - 32");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",a);
				
				if (erg>=16)
				{
					erg = erg - 16;
					b = 1;
				}
				else
					b = 0;

				printf("%d",erg);
				printf("\t - 16");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",b);

				if (erg>=8)
				{
					erg = erg - 8;
					c = 1;
				}
				else
					c = 0;

				printf("%d",erg);
				printf("\t - 8");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",c);
				if (erg>=4)
				{
					erg = erg - 4;
					d = 1;
				}
				else
					d = 0;

				printf("%d",erg);
				printf("\t - 4");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",d);

				if (erg>=2)
				{
					erg = erg - 2;
					e = 1;
				}
				else
					e = 0;

				printf("%d",erg);
				printf("\t - 2");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",e);

				if (erg>=1)
				{
					erg = erg - 1;
					f = 1;
				}
				else
					f = 0;

				printf("%d",erg);
				printf("\t - 1");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",f);

				printf("---------------------------------------------------\n");

				printf("Dual: \t\t\t\t\t%d%d%d%d%d%d\n",a,b,c,d,e,f);
				printf("---------------------------------------------------\n\n\n");
				break;

				case 7:
					if (dez>=16)
				{
					erg = dez - 16;
					a = 1;
				
				}
				else
					a = 0;

				printf("%d",dez);
				printf("\t - 16");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",a);
				
				if (erg>=8)
				{
					erg = erg - 8;
					b = 1;
				}
				else
					b = 0;

				printf("%d",erg);
				printf("\t - 8");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",b);

				if (erg>=4)
				{
					erg = erg - 4;
					c = 1;
				}
				else
					c = 0;

				printf("%d",erg);
				printf("\t - 4");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",c);
				if (erg>=2)
				{
					erg = erg - 2;
					d = 1;
				}
				else
					d = 0;

				printf("%d",erg);
				printf("\t - 2");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",d);

				if (erg>=1)
				{
					erg = erg - 1;
					e = 1;
				}
				else
					e = 0;

				printf("%d",erg);
				printf("\t - 1");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",e);

				printf("---------------------------------------------------\n");

				printf("Dual: \t\t\t\t\t%d%d%d%d%d\n",a,b,c,d,e);
				printf("---------------------------------------------------\n\n\n");
				break;

				case 8:
					if (dez>=8)
				{
					erg = dez - 8;
					a = 1;
				
				}
				else
					a = 0;

				printf("%d",dez);
				printf("\t - 8");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",a);
				
				if (erg>=4)
				{
					erg = erg - 4;
					b = 1;
				}
				else
					b = 0;

				printf("%d",erg);
				printf("\t - 4");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",b);

				if (erg>=2)
				{
					erg = erg - 2;
					c = 1;
				}
				else
					c = 0;

				printf("%d",erg);
				printf("\t - 2");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",c);
				if (erg>=1)
				{
					erg = erg - 1;
					d = 1;
				}
				else
					d = 0;

				printf("%d",erg);
				printf("\t - 1");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",d);

				printf("---------------------------------------------------\n");

				printf("Dual: \t\t\t\t\t%d%d%d%d\n",a,b,c,d);
				printf("---------------------------------------------------\n\n\n");
				break;

				case 9:

					if (dez>=4)
				{
					erg = dez - 4;
					a = 1;
				
				}
				else
					a = 0;

				printf("%d",dez);
				printf("\t - 4");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",a);
				
				if (erg>=2)
				{
					erg = erg - 2;
					b = 1;
				}
				else
					b = 0;

				printf("%d",erg);
				printf("\t - 2");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",b);

				if (erg>=1)
				{
					erg = erg - 1;
					c = 1;
				}
				else
					c = 0;

				printf("%d",erg);
				printf("\t - 1");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",c);

				printf("---------------------------------------------------\n");

				printf("Dual: \t\t\t\t\t%d%d%d\n",a,b,c);
				printf("---------------------------------------------------\n\n\n");
				break;

				case 10:
					if (dez>=2)
				{
					erg = dez - 2;
					a = 1;
				
				}
				else
					a = 0;

				printf("%d",dez);
				printf("\t - 2");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",a);
				
				if (erg>=1)
				{
					erg = erg - 1;
					b = 1;
				}
				else
					b = 0;

				printf("%d",erg);
				printf("\t - 1");
				printf("\t\t = %d",erg);
				printf ("\t\t\t%d\n\n",b);

				printf("---------------------------------------------------\n");

				printf("Dual: \t\t\t\t\t%d%d\n",a,b);
				printf("---------------------------------------------------\n\n\n");
				break;

	case 11:
	
	erg = dez;
		printf("---------------------------------------------------\n");
	printf("Dual:\t\t\t\t\t%d\n",erg);
	printf("---------------------------------------------------\n\n\n");
	break;

	case 12:
	erg = dez;
	printf("---------------------------------------------------\n");
	printf("Dual:\t\t\t\t\t%d\n",erg);
	printf("---------------------------------------------------\n\n\n");

	default:
		printf("ERROR");



				



			}

	break;

	case 3:
	printf("\n\n---------------------------------------------------\n");
	printf("Geben sie bitte eine Dezimalzahl ein: \t");
	scanf("%d",&dez);
	fflush(stdin);
	printf("---------------------------------------------------\n\n\n");
			
			
			if(dez>=
				1024)
			fall=1;
			else if(dez>=512)
			fall=2;
			else if(dez>=256)
			fall=3;
			else if(dez>=128)
			fall=4;
			else if(dez>=64)
			fall=5;
			else if(dez>=32)
			fall=6;
			else if(dez>=16)
			fall=7;
			else if(dez>=8)
			fall=8;
			else if(dez>=4)
			fall=9;
			else if(dez>=2)
			fall=10;
			else if(dez>=1)
			fall=11;
			else if (dez==0)
				fall=12;
			else

			{
				printf("Keine natuerliche Zahl");
				return 0;
			}

		
	

			switch (fall){
			case 1:
			
				if (dez>=1024)
				{
					erg = dez - 1024;
					a = 1;
				
				}
				else
					a = 0;
				
				if (erg>=512)
				{
					erg = erg - 512;
					b = 1;
				}
				else
					b = 0;

				if (erg>=256)
				{
					erg = erg - 256;
					c = 1;
				}
				else
					c = 0;

				if (erg>=128)
				{
					erg = erg - 128;
					d = 1;
				}
				else
					d = 0;

			
				if (erg>=64)
				{
					erg = erg - 64;
					e = 1;
				}
				else
					e = 0;


				if (erg>=32)
				{
					erg = erg - 32;
					f = 1;
				}
				else
					f = 0;

			

				if (erg>=16)
				{
					erg = erg - 16;
					g = 1;
				}
				else
					g = 0;

			

				if (erg>=8)
				{
					erg = erg - 8;
					h = 1;}

				else
					h = 0;

			
				if (erg>=4)
				{
					erg = erg - 4;
					i = 1;
				}
				else
					i = 0;

			

				if (erg>=2)
				{
					erg = erg - 2;
					j = 1;
				}
				else
					j = 0;

				if (erg>=1)
				{
					erg = erg - 1;
					k = 1;
				}
				else
					k = 0;


				printf("---------------------------------------------------\n");

				printf("Dual: \t\t\t\t\t%d%d%d%d%d%d%d%d%d%d%d\n",a,b,c,d,e,f,g,h,i,j,k);
				printf("---------------------------------------------------\n\n\n");
				break;

				case 2:
					if (dez>=512)
				{
					erg = dez - 512;
					a = 1;
				
				}
				else
					a = 0;

			
				
				if (erg>=256)
				{
					erg = erg - 256;
					b = 1;
				}
				else
					b = 0;

			
				if (erg>=128)
				{
					erg = erg - 128;
					c = 1;
				}
				else
					c = 0;

				if (erg>=64)
				{
					erg = erg - 64;
					d = 1;
				}
				else
					d = 0;

				

				if (erg>=32)
				{
					erg = erg - 32;
					e = 1;
				}
				else
					e = 0;

			

				if (erg>=16)
				{
					erg = erg - 16;
					f = 1;
				}
				else
					f = 0;

			
				if (erg>=8)
				{
					erg = erg - 8;
					g = 1;
				}
				else
					g = 0;

			

				if (erg>=4)
				{
					erg = erg - 4;
					h = 1;}

				else
					h = 0;

			

				if (erg>=2)
				{
					erg = erg - 2;
					i = 1;
				}
				else
					i = 0;

			
				if (erg>=1)
				{
					erg = erg - 1 ;
					j = 1;
				}
				else
					j = 0;

				

				printf("---------------------------------------------------\n");

				printf("Dual: \t\t\t\t\t%d%d%d%d%d%d%d%d%d%d\n",a,b,c,d,e,f,g,h,i,j);
				printf("---------------------------------------------------\n\n\n");
				break;

				case 3:
				if (dez>=256)
				{
					erg = dez - 256;
					a = 1;
				
				}
				else
					a = 0;

				
				if (erg>=128)
				{
					erg = erg - 128;
					b = 1;
				}
				else
					b = 0;

				

				if (erg>=64)
				{
					erg = erg - 64;
					c = 1;
				}
				else
					c = 0;

			
				if (erg>=32)
				{
					erg = erg - 32;
					d = 1;
				}
				else
					d = 0;

				if (erg>=16)
				{
					erg = erg - 16;
					e = 1;
				}
				else
					e = 0;


				if (erg>=8)
				{
					erg = erg - 8;
					f = 1;
				}
				else
					f = 0;

			
				if (erg>=4)
				{
					erg = erg - 4;
					g = 1;
				}
				else
					g = 0;

			

				if (erg>=2)
				{
					erg = erg - 2;
					h = 1;}

				else
					h = 0;

				
				if (erg>=1)
				{
					erg = erg - 1;
					i = 1;}

				else
					i = 0;

				

			

				printf("---------------------------------------------------\n");

				printf("Dual: \t\t\t\t\t%d%d%d%d%d%d%d%d%d\n",a,b,c,d,e,f,g,h,i);
				printf("---------------------------------------------------\n\n\n");
				break;

				case 4:
					if (dez>=128)
				{
					erg = dez - 128;
					a = 1;
				
				}
				else
					a = 0;

				
				if (erg>=64)
				{
					erg = erg - 64;
					b = 1;
				}
				else
					b = 0;


				if (erg>=32)
				{
					erg = erg - 32;
					c = 1;
				}
				else
					c = 0;

				if (erg>=16)
				{
					erg = erg - 16;
					d = 1;
				}
				else
					d = 0;

			

				if (erg>=8)
				{
					erg = erg - 8;
					e = 1;
				}
				else
					e = 0;

			
				if (erg>=4)
				{
					erg = erg - 4;
					f = 1;
				}
				else
					f = 0;

			
				if (erg>=2)
				{
					erg = erg - 2;
					g = 1;
				}
				else
					g = 0;

			

				if (erg>=1)
				{
					erg = erg - 1;
					h = 1;}

				else
					h = 0;

			


				printf("---------------------------------------------------\n");

				printf("Dual: \t\t\t\t\t%d%d%d%d%d%d%d%d\n",a,b,c,d,e,f,g,h);
				printf("---------------------------------------------------\n\n\n");
				break;

				case 5:
					if (dez>=64)
				{
					erg = dez - 64;
					a = 1;
				
				}
				else
					a = 0;

			
				
				if (erg>=32)
				{
					erg = erg - 32;
					b = 1;
				}
				else
					b = 0;

			
				if (erg>=16)
				{
					erg = erg - 16;
					c = 1;
				}
				else
					c = 0;

			
				if (erg>=8)
				{
					erg = erg - 8;
					d = 1;
				}
				else
					d = 0;

			

				if (erg>=4)
				{
					erg = erg - 4;
					e = 1;
				}
				else
					e = 0;

			

				if (erg>=2)
				{
					erg = erg - 2;
					f = 1;
				}
				else
					f = 0;

				
				if (erg>=1)
				{
					erg = erg - 1;
					g = 1;
				}
				else
					g = 0;

				
				printf("---------------------------------------------------\n");

				printf("Dual: \t\t\t\t\t%d%d%d%d%d%d%d\n",a,b,c,d,e,f,g);
				printf("---------------------------------------------------\n\n\n");
				break;

				case 6:
					if (dez>=32)
				{
					erg = dez - 32;
					a = 1;
				
				}
				else
					a = 0;

			
				
				if (erg>=16)
				{
					erg = erg - 16;
					b = 1;
				}
				else
					b = 0;

				

				if (erg>=8)
				{
					erg = erg - 8;
					c = 1;
				}
				else
					c = 0;

			
				if (erg>=4)
				{
					erg = erg - 4;
					d = 1;
				}
				else
					d = 0;

				if (erg>=2)
				{
					erg = erg - 2;
					e = 1;
				}
				else
					e = 0;

			
				if (erg>=1)
				{
					erg = erg - 1;
					f = 1;
				}
				else
					f = 0;

			

				printf("---------------------------------------------------\n");

				printf("Dual: \t\t\t\t\t%d%d%d%d%d%d\n",a,b,c,d,e,f);
				printf("---------------------------------------------------\n\n\n");
				break;

				case 7:
					if (dez>=16)
				{
					erg = dez - 16;
					a = 1;
				
				}
				else
					a = 0;

			
				if (erg>=8)
				{
					erg = erg - 8;
					b = 1;
				}
				else
					b = 0;

			

				if (erg>=4)
				{
					erg = erg - 4;
					c = 1;
				}
				else
					c = 0;

			
				if (erg>=2)
				{
					erg = erg - 2;
					d = 1;
				}
				else
					d = 0;


				if (erg>=1)
				{
					erg = erg - 1;
					e = 1;
				}
				else
					e = 0;


				printf("---------------------------------------------------\n");

				printf("Dual: \t\t\t\t\t%d%d%d%d%d\n",a,b,c,d,e);
				printf("---------------------------------------------------\n\n\n");
				break;

				case 8:
					if (dez>=8)
				{
					erg = dez - 8;
					a = 1;
				
				}
				else
					a = 0;

			
				
				if (erg>=4)
				{
					erg = erg - 4;
					b = 1;
				}
				else
					b = 0;

			

				if (erg>=2)
				{
					erg = erg - 2;
					c = 1;
				}
				else
					c = 0;

				if (erg>=1)
				{
					erg = erg - 1;
					d = 1;
				}
				else
					d = 0;

			

				printf("---------------------------------------------------\n");

				printf("Dual: \t\t\t\t\t%d%d%d%d\n",a,b,c,d);
				printf("---------------------------------------------------\n\n\n");
				break;

				case 9:

					if (dez>=4)
				{
					erg = dez - 4;
					a = 1;
				
				}
				else
					a = 0;

				if (erg>=2)
				{
					erg = erg - 2;
					b = 1;
				}
				else
					b = 0;

			
				if (erg>=1)
				{
					erg = erg - 1;
					c = 1;
				}
				else
					c = 0;

				

				printf("---------------------------------------------------\n");

				printf("Dual: \t\t\t\t\t%d%d%d\n",a,b,c);
				printf("---------------------------------------------------\n\n\n");
				break;

				case 10:
					if (dez>=2)
				{
					erg = dez - 2;
					a = 1;
				
				}
				else
					a = 0;

				
				
				if (erg>=1)
				{
					erg = erg - 1;
					b = 1;
				}
				else
					b = 0;

				

				printf("---------------------------------------------------\n");

				printf("Dual: \t\t\t\t\t%d%d\n",a,b);
				printf("---------------------------------------------------\n\n\n");
				break;

	case 11:
	
	erg = dez;
		printf("---------------------------------------------------\n");
	printf("Dual:\t\t\t\t\t%d\n",erg);
	printf("---------------------------------------------------\n\n\n");
	break;

	case 12:
	erg = dez;
	printf("---------------------------------------------------\n");
	printf("Dual:\t\t\t\t\t%d\n",erg);
	printf("---------------------------------------------------\n\n\n");
	break;
	default:
		printf("ERROR");
}


	case 4:

	printf("\n\nTestdurchlauf\n");
	printf("Maximale Dezimalzahl:");
	scanf("%d", &max);
	fflush(stdin);

	dez = 1;
	erg = 0;
	while (dez<=max){

			
			
			if(dez>=1024)
			fall=1;
			else if(dez>=512)
			fall=2;
			else if(dez>=256)
			fall=3;
			else if(dez>=128)
			fall=4;
			else if(dez>=64)
			fall=5;
			else if(dez>=32)
			fall=6;
			else if(dez>=16)
			fall=7;
			else if(dez>=8)
			fall=8;
			else if(dez>=4)
			fall=9;
			else if(dez>=2)
			fall=10;
			else if(dez>=1)
			fall=11;
			else if (dez==0)
				fall=12;
			else

			{
				printf("Keine natuerliche Zahl");
				return 0;
			}

		
	

			switch (fall){
			case 1:
			
				if (dez>=1024)
				{
					erg = dez - 1024;
					a = 1;
				
				}
				else
					a = 0;
				
				if (erg>=512)
				{
					erg = erg - 512;
					b = 1;
				}
				else
					b = 0;

				if (erg>=256)
				{
					erg = erg - 256;
					c = 1;
				}
				else
					c = 0;

				if (erg>=128)
				{
					erg = erg - 128;
					d = 1;
				}
				else
					d = 0;

			
				if (erg>=64)
				{
					erg = erg - 64;
					e = 1;
				}
				else
					e = 0;


				if (erg>=32)
				{
					erg = erg - 32;
					f = 1;
				}
				else
					f = 0;

			

				if (erg>=16)
				{
					erg = erg - 16;
					g = 1;
				}
				else
					g = 0;

			

				if (erg>=8)
				{
					erg = erg - 8;
					h = 1;}

				else
					h = 0;

			
				if (erg>=4)
				{
					erg = erg - 4;
					i = 1;
				}
				else
					i = 0;

			

				if (erg>=2)
				{
					erg = erg - 2;
					j = 1;
				}
				else
					j = 0;

				if (erg>=1)
				{
					erg = erg - 1;
					k = 1;
				}
				else
					k = 0;

				pruef = k*1+j*2+i*4+h*8+g*16+f*32+e*64+d*128+c*256+b*512+a*1024;
				printf("%d\t",dez);
				printf("%d%d%d%d%d%d%d%d%d%d%d",a,b,c,d,e,f,g,h,i,j,k);
					printf("\t%d\n", pruef);
					if (pruef==dez)
					printf ("W\t");
				else
					printf("X\t");
			
				break;

				case 2:
					if (dez>=512)
				{
					erg = dez - 512;
					a = 1;
				
				}
				else
					a = 0;

			
				
				if (erg>=256)
				{
					erg = erg - 256;
					b = 1;
				}
				else
					b = 0;

			
				if (erg>=128)
				{
					erg = erg - 128;
					c = 1;
				}
				else
					c = 0;

				if (erg>=64)
				{
					erg = erg - 64;
					d = 1;
				}
				else
					d = 0;

				

				if (erg>=32)
				{
					erg = erg - 32;
					e = 1;
				}
				else
					e = 0;

			

				if (erg>=16)
				{
					erg = erg - 16;
					f = 1;
				}
				else
					f = 0;

			
				if (erg>=8)
				{
					erg = erg - 8;
					g = 1;
				}
				else
					g = 0;

			

				if (erg>=4)
				{
					erg = erg - 4;
					h = 1;}

				else
					h = 0;

			

				if (erg>=2)
				{
					erg = erg - 2;
					i = 1;
				}
				else
					i = 0;

			
				if (erg>=1)
				{
					erg = erg - 1 ;
					j = 1;
				}
				else
					j = 0;

				pruef= (j*1)+(i*2)+(h*4)+(g*8)+(f*16)+(e*32)+(d*64)+(c*128)+(b*256)+(a*512);
				printf("%d\t",dez);
				printf("%d%d%d%d%d%d%d%d%d%d",a,b,c,d,e,f,g,h,i,j);
					printf("\t%d\n", pruef);
				if (pruef==dez)
					printf ("W\t");
				else
					printf("X\t");
				break;

				case 3:
				if (dez>=256)
				{
					erg = dez - 256;
					a = 1;
				
				}
				else
					a = 0;

				
				if (erg>=128)
				{
					erg = erg - 128;
					b = 1;
				}
				else
					b = 0;

				

				if (erg>=64)
				{
					erg = erg - 64;
					c = 1;
				}
				else
					c = 0;

			
				if (erg>=32)
				{
					erg = erg - 32;
					d = 1;
				}
				else
					d = 0;

				if (erg>=16)
				{
					erg = erg - 16;
					e = 1;
				}
				else
					e = 0;


				if (erg>=8)
				{
					erg = erg - 8;
					f = 1;
				}
				else
					f = 0;

			
				if (erg>=4)
				{
					erg = erg - 4;
					g = 1;
				}
				else
					g = 0;

			

				if (erg>=2)
				{
					erg = erg - 2;
					h = 1;}

				else
					h = 0;

				
				if (erg>=1)
				{
					erg = erg - 1;
					i = 1;}

				else
					i = 0;
				pruef= (i*1)+(h*2)+(g*4)+(f*8)+(e*16)+(d*32)+(c*64)+(b*128)+(a*256);
	
				printf("%d\t",dez);
				printf("%d%d%d%d%d%d%d%d%d",a,b,c,d,e,f,g,h,i);
					printf("\t%d\n", pruef);
					if (pruef==dez)
					printf ("W\t");
				else
					printf("X\t");
				break;

				case 4:
					if (dez>=128)
				{
					erg = dez - 128;
					a = 1;
				
				}
				else
					a = 0;

				
				if (erg>=64)
				{
					erg = erg - 64;
					b = 1;
				}
				else
					b = 0;


				if (erg>=32)
				{
					erg = erg - 32;
					c = 1;
				}
				else
					c = 0;

				if (erg>=16)
				{
					erg = erg - 16;
					d = 1;
				}
				else
					d = 0;

			

				if (erg>=8)
				{
					erg = erg - 8;
					e = 1;
				}
				else
					e = 0;

			
				if (erg>=4)
				{
					erg = erg - 4;
					f = 1;
				}
				else
					f = 0;

			
				if (erg>=2)
				{
					erg = erg - 2;
					g = 1;
				}
				else
					g = 0;

			

				if (erg>=1)
				{
					erg = erg - 1;
					h = 1;}

				else
					h = 0;

			

				pruef= (h*1)+(g*2)+(f*4)+(e*8)+(d*16)+(c*32)+(b*64)+(a*128);
				printf("%d\t",dez);
				printf("%d%d%d%d%d%d%d%d",a,b,c,d,e,f,g,h);
					printf("\t%d\n", pruef);
				if (pruef==dez)
					printf ("W\t");
				else
					printf("X\t");
			
				break;

				case 5:
					if (dez>=64)
				{
					erg = dez - 64;
					a = 1;
				
				}
				else
					a = 0;

			
				
				if (erg>=32)
				{
					erg = erg - 32;
					b = 1;
				}
				else
					b = 0;

			
				if (erg>=16)
				{
					erg = erg - 16;
					c = 1;
				}
				else
					c = 0;

			
				if (erg>=8)
				{
					erg = erg - 8;
					d = 1;
				}
				else
					d = 0;

			

				if (erg>=4)
				{
					erg = erg - 4;
					e = 1;
				}
				else
					e = 0;

			

				if (erg>=2)
				{
					erg = erg - 2;
					f = 1;
				}
				else
					f = 0;

				
				if (erg>=1)
				{
					erg = erg - 1;
					g = 1;
				}
				else
					g = 0;
				pruef = g*1+f*2+e*4+d*8+c*16+b*32+a*64;
				printf("%d\t",dez);
				printf("%d%d%d%d%d%d%d",a,b,c,d,e,f,g);
					printf("\t%d\n", pruef);
					if (pruef==dez)
					printf ("W\t");
				else
					printf("X\t");
				
				break;

				case 6:
					if (dez>=32)
				{
					erg = dez - 32;
					a = 1;
				
				}
				else
					a = 0;

			
				
				if (erg>=16)
				{
					erg = erg - 16;
					b = 1;
				}
				else
					b = 0;

				

				if (erg>=8)
				{
					erg = erg - 8;
					c = 1;
				}
				else
					c = 0;

			
				if (erg>=4)
				{
					erg = erg - 4;
					d = 1;
				}
				else
					d = 0;

				if (erg>=2)
				{
					erg = erg - 2;
					e = 1;
				}
				else
					e = 0;

			
				if (erg>=1)
				{
					erg = erg - 1;
					f = 1;
				}
				else
					f = 0;

			
				pruef = f*1+e*2+d*4+c*8+b*16+a*32;
				printf("%d\t",dez);
				printf("%d%d%d%d%d%d",a,b,c,d,e,f);
				printf("\t%d\n", pruef);
					if (pruef==dez)
					printf ("W\t");
				else
					printf("X\t");


				break;

				case 7:
					if (dez>=16)
				{
					erg = dez - 16;
					a = 1;
				
				}
				else
					a = 0;

			
				if (erg>=8)
				{
					erg = erg - 8;
					b = 1;
				}
				else
					b = 0;

			

				if (erg>=4)
				{
					erg = erg - 4;
					c = 1;
				}
				else
					c = 0;

			
				if (erg>=2)
				{
					erg = erg - 2;
					d = 1;
				}
				else
					d = 0;


				if (erg>=1)
				{
					erg = erg - 1;
					e = 1;
				}
				else
					e = 0;
				pruef = e*1+d*2+c*4+b*8+a*16;
				printf("%d\t",dez);
				printf("%d%d%d%d%d",a,b,c,d,e);
					printf("\t%d\n", pruef);
					if (pruef==dez)
					printf ("W\t");
				else
					printf("X\t");
				break;

				case 8:
					if (dez>=8)
				{
					erg = dez - 8;
					a = 1;
				
				}
				else
					a = 0;

			
				
				if (erg>=4)
				{
					erg = erg - 4;
					b = 1;
				}
				else
					b = 0;

			

				if (erg>=2)
				{
					erg = erg - 2;
					c = 1;
				}
				else
					c = 0;

				if (erg>=1)
				{
					erg = erg - 1;
					d = 1;
				}
				else
					d = 0;

			
				pruef = d*1+c*2+b*4+a*8;
				printf("%d\t",dez);
				printf("%d%d%d%d",a,b,c,d);
					printf("\t%d\n", pruef);

					if (pruef==dez)
					printf ("W\t");
				else
					printf("X\t");

				break;

				case 9:

					if (dez>=4)
				{
					erg = dez - 4;
					a = 1;
				
				}
				else
					a = 0;

				if (erg>=2)
				{
					erg = erg - 2;
					b = 1;
				}
				else
					b = 0;

			
				if (erg>=1)
				{
					erg = erg - 1;
					c = 1;
				}
				else
					c = 0;

				pruef= c*1+b*2+a*4;

				printf("%d\t",dez);
				printf("%d%d%d",a,b,c);
					printf("\t%d\n", pruef);
				if (pruef==dez)
					printf ("W\t");
				else
					printf("X\t");


				break;

				case 10:
					if (dez>=2)
				{
					erg = dez - 2;
					a = 1;
				
				}
				else
					a = 0;

				
				
				if (erg>=1)
				{
					erg = erg - 1;
					b = 1;
				}
				else
					b = 0;


				pruef = b*1+a*2;

				printf("%d\t",dez);
				printf("%d%d",a,b);
					printf("\t%d\n", pruef);
				if (pruef==dez)
					printf ("W\t");
				else
					printf("X\t");
				break;

	case 11:
	
	erg = dez;
	
	
	printf("%d\t",dez);
	printf("%d\n",erg);



	break;

	case 12:
		
	
	erg = dez;
	
	printf("%d\t",dez);
	printf("%d\n",erg);



	break;
	default:
		printf("ERROR");
		
			
		}
			dez++;



				



			}
			break;

			default:
				printf("\n\nERROR \n-> Sie haben eine nicht definierte Option gewaehlt\nDas Programm wir nun beendet...\n\n");



Sorry aber das Codeeinfügenteil hat nicht gefunzt.
Gruß teal'c

Gruß
Teal'C
 
Original von Teal'C
Dankeschön, für das Codebeispiel^^. Ich habs aber auch alleine hinbekommen:

Ist aber noch nicht ganz fertig:

ähh guck dir mal bitte an:

ich benötige 35 zeilen (übersichtlichen code)

und du bei über 2600zeilen immer noch kein ende ?

nicht böse gemeint aber meinste nich das schleifen ein "klein" wenig praktischer wären ?

im augenblick ist es eine ratio von ca 1:75 (d.h. ich habe 75x weniger zeilen wie du)

und du bist noch nicht fertig ...

na viel spaß noch aber ich würde dabei die übersicht verlieren ...

mfg bikky
 
hallo bikmaek,

ich muss dir vollkommen recht geben. das über schleifen zu lösen wäre 100pro die bessere lösung, da sie sehr viel schlanker ist.

das programm hab ich angefsngen zu schreiben als wir in der Schule noch keine Schleifen behandelt haben, mittlerweile kann ich zwar schleifen anwenden, aber konnte das Programm aus Zeitgründen nicht umschreiben, da ich mit KA's eingedeckt war/bin.

Gruß
Teal'C

Deine Kritik ist berechtigt.
 
Zurück
Oben