Avatar billede jonasr Nybegynder
20. august 2004 - 20:37 Der er 17 kommentarer og
2 løsninger

hvad har ejg gjort galt?

når jeg kører mit program kommer jeg ind i min menu... ved at trykke 2 som leder mig videre ind i Dec - Hex udregning... alle udregninger er rigtige osv... men jeg har et problem... under min udregning i valg2 (case '2') kommer der en række nuller.... og det er jo ikke helt holdbart... har spurgt min programmerings lære men han kan heller ikke finde ud af hvad det er... håber i kan hjælpe.

(her er mit program)

/* Jonas Rasmussen DFT Uddannelse 2004 */
#include <conio.h>
#include <stdio.h>

void dectobin();
void dectohex();
void bintodec();
void menuet();
void ramme();
void menuto();


char decibina;
int i;
int a;
int l;
int b;
int hex;

unsigned dec;
unsigned bin;
unsigned bum;
unsigned ciffer;
unsigned bit;

int main(void)
{

clrscr();
ramme();
menuet();
menuto();
dectobin();
return 0;

}

void ramme()

{

_setcursortype(_NOCURSOR);
textbackground(WHITE);
textcolor(561);

      clrscr();

      for(int i=21;i<58;i++)
      {
      gotoxy(i,5);
      cprintf("%c",205);
      }

      for(int a=6;a<21;a++)
      {
      gotoxy(20,a);
      cprintf("%c",186);
      }

      for(int l=21;l<58;l++)
      {
      gotoxy(l,21);
      cprintf("%c",205);
      }

      for(int b=5;b<21;b++)
      {
      gotoxy(58,b+1);
      cprintf("%c",186);
      }

      gotoxy(20,5);
      cprintf("%c",201);

      gotoxy(20,21);
      cprintf("%c",200);

      gotoxy(58,5);
      cprintf("%c",187);

      gotoxy(58,21);
      cprintf("%c",188);
      }

void menuet()
{
gotoxy(22,6);
cprintf("Tryk 1 for at regne decimal til bin");
gotoxy(22,7);
cprintf("Tryk 2 for at regne decimal til hex");
}

void menuto()
{

  decibina=getch();
  switch(decibina)

      {
      case '1':

      clrscr();
      ramme();

    gotoxy(22,6);
    cprintf("Dec til Bin: ");
    gotoxy(35,6);
    cscanf("%u",&dec);

        gotoxy(22,8);
        cprintf("Dit tal i Bin: ");
        dectobin();
        break;

      case '2':

      clrscr();
    ramme();

    gotoxy(22,6);
    cprintf("Dec til Hex: ");
    cscanf("%u",&hex);
        gotoxy(35,7);
        cprintf("Dit tal i Hex: %X",hex);
        getch();
        break;
}

}
void dectobin()
{

bit=0x8000;

  gotoxy(36,8);
  for(bum = 0; bum < 16; bum++)
  {
  ciffer = (bit & dec) ?1:0;
  cprintf("%u",ciffer);
  bit /= 2;
  }
  getch();
  }
Avatar billede arne_v Ekspert
20. august 2004 - 20:44 #1
int main(void)
{

clrscr();
ramme();
menuet();
menuto();
dectobin(); // <---- her kalder du dectobin uanset valg og den laver nuller
return 0;

}
Avatar billede jonasr Nybegynder
20. august 2004 - 20:47 #2
den må du lige uddybe... det er 2. uge jeg programmerer så du må lige tage den langsomt!
Avatar billede arne_v Ekspert
20. august 2004 - 20:49 #3
Jeg tror bare at du skal slette den linie !
Avatar billede jonasr Nybegynder
20. august 2004 - 20:53 #4
ja det gjorde jeg, og satte en getch(); ind... så virkede det optimalt :D mange tak skal du havee! jeg går ud fra at du skal lave et "svar" for at du kan få de point ikke?
Avatar billede arne_v Ekspert
20. august 2004 - 20:54 #5
kommer her
Avatar billede jonasr Nybegynder
20. august 2004 - 20:55 #6
ooh og lige en anden ting... hvad skal jeg gøre for at kunne gå tilbage i main menuen igen? (skal nok betale for det spørgsmål også...) altså helst så man kan fortsætte ud i en uendelighed
Avatar billede arne_v Ekspert
20. august 2004 - 20:56 #7
Du skal have en løkke omkring.
Avatar billede arne_v Ekspert
20. august 2004 - 20:58 #8
char cont;
  do
  {
      // de linier der skal udføre sflere gange
      // ...
      // prompt for fortsætte Y/N
      cont = getch();
  } while((cont=='Y') || (cont=='y'));
Avatar billede arne_v Ekspert
20. august 2004 - 20:59 #9
Jeg kan også godt lige merge:

int main(void)
{
  char cont;
  do
  {
    clrscr();
    ramme();
    menuet();
    menuto();
    cprintf("Vil du fortsætte Y/N: ");
    cont = getch();
  } while((cont=='Y') || (cont=='y'));
  return 0;
}
Avatar billede jonasr Nybegynder
20. august 2004 - 21:03 #10
øøøv forstår ikke helt hvad du mener.... det jeg har gjort indtil videre ser sådan her ud:

char cont;
  do
  {

  decibina=getch();
  switch(decibina)

      {
      case '1':

      clrscr();
      ramme();

    gotoxy(22,6);
    cprintf("Dec til Bin: ");
    gotoxy(35,6);
    cscanf("%u",&dec);

        gotoxy(22,8);
        cprintf("Dit tal i Bin: ");
        dectobin();
        break;

      case '2':

      clrscr();
      ramme();

    gotoxy(22,6);
    cprintf("Dec til Hex: ");
    cscanf("%u",&hex);
    gotoxy(22


        gotoxy(22,8);
        cprintf("Dit tal i Hex: %X",hex);
        getch();
        break;

  cont = getch();
  } while((cont=='Y') || (cont=='y'));

/* hvad skal der ske ud over dette? :) */
Avatar billede jonasr Nybegynder
20. august 2004 - 21:10 #11
ok.. accepterer lige igen... mange tak for hjælpen
Avatar billede jonasr Nybegynder
20. august 2004 - 21:11 #12
hmm kan ikke acceptere igen... forklar mig lige hvordan du så kan få dem
Avatar billede arne_v Ekspert
20. august 2004 - 21:16 #13
Du skal markere mit navn så det bliver blåt og så klikke accepter
Avatar billede arne_v Ekspert
20. august 2004 - 21:17 #14
Put løkken ude i main som i mit 20:59:47 eksempel
Avatar billede jonasr Nybegynder
20. august 2004 - 23:05 #15
sorry arne men forstår ikke lige hvordan jeg skal give dig de der point... kan jeg evt. lave en tråd hvor du svarer og jeg giver dig pointene?
Avatar billede arne_v Ekspert
20. august 2004 - 23:07 #16
Ja

Men lad os lige prøve en sidste gang

Jeg ligger et svar igen

Du klikker på mit navn ude i combo boxen så det bliver blåt

Du klikker accepter
Avatar billede jonasr Nybegynder
20. august 2004 - 23:21 #17
ok.... har du fået dem nu? :D
Avatar billede arne_v Ekspert
20. august 2004 - 23:21 #18
Jeps !
Avatar billede jonasr Nybegynder
20. august 2004 - 23:36 #19
fint jeg takker mange gange og fortsætter med mit projekt her ;) snakkes
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester