Avatar billede strahd Nybegynder
15. august 2003 - 09:25 Der er 16 kommentarer og
1 løsning

Skal lave en lodret bar i tekstmode

Jeg skal lave en lodret bar i tekstmode som skal stige og falde afhængig af en bestemt variabel
Den skal gå fra bund til top i højre side af skærmen.
Har kun arbejdet lidt med C/C++ så det er lidt sort for mig.
Avatar billede mcgoat Nybegynder
15. august 2003 - 09:34 #1
Er i gang med at lave den... håber jeg... hehe....
Avatar billede mcgoat Nybegynder
15. august 2003 - 09:46 #2
Hvordan ser koden ud til den anden du har?? den i vandret??
Avatar billede mcgoat Nybegynder
15. august 2003 - 10:06 #3
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <graphics.h>

void TEGN(int tal);

void main(void)
{
    clrscr();
    TEGN(100/10);    // % / 10
    getch();
    textbackground(BLACK);
}

void TEGN(int tal)
{

    if(tal >= 1)
    {
        for(int j=0;j<4;j++)
        {
        gotoxy(75+j,44);
        textcolor(GREEN);
        cprintf("x");
        }
        cprintf("\n\r");
    }

    if(tal >= 2)
    {
        for(int j=0;j<4;j++)
        {
        gotoxy(75+j,43);
        textcolor(GREEN);
        cprintf("x");
        }
        cprintf("\n\r");
    }

    if(tal >= 3)
    {
        for(int j=0;j<4;j++)
        {
        gotoxy(75+j,42);
        textcolor(GREEN);
        cprintf("x");
        }
        cprintf("\n\r");
    }

    if(tal >= 4)
    {
        for(int j=0;j<4;j++)
        {
        gotoxy(75+j,41);
        textcolor(GREEN);
        cprintf("x");
        }
        cprintf("\n\r");
    }

    if(tal >= 5)
    {
        for(int j=0;j<4;j++)
        {
        gotoxy(75+j,40);
        textcolor(GREEN);
        cprintf("x");
        }
        cprintf("\n\r");
    }

    if(tal >= 6)
    {
        for(int j=0;j<4;j++)
        {
        gotoxy(75+j,39);
        textcolor(YELLOW);
        cprintf("x");
        }
        cprintf("\n\r");
    }

    if(tal >= 7)
    {
        for(int j=0;j<4;j++)
        {
        gotoxy(75+j,38);
        textcolor(YELLOW);
        cprintf("x");
        }
        cprintf("\n\r");
    }

    if(tal >= 8)
    {
        for(int j=0;j<4;j++)
        {
        gotoxy(75+j,37);
        textcolor(RED);
        cprintf("x");
        }
        cprintf("\n\r");
    }

    if(tal >= 9)
    {
        for(int j=0;j<4;j++)
        {
        gotoxy(75+j,36);
        textcolor(RED);
        cprintf("x");
        }
        cprintf("\n\r");
    }

    if(tal >= 10)
    {
        for(int j=0;j<4;j++)
        {
        gotoxy(75+j,35);
        textcolor(RED);
        cprintf("x");
        }
        cprintf("\n\r");
    }

}
Avatar billede mcgoat Nybegynder
15. august 2003 - 10:13 #4
Hvor har du egentlig klasseværelse?? har lige været oppe på øverste sal, var ihvertfald ikke der vi var dengang....
Avatar billede strahd Nybegynder
15. august 2003 - 10:19 #5
vi er i 326 bygning c. har en ide med at opbygge det hele i en case. sidder lige og eksperimenterer lidt med det.
Avatar billede mcgoat Nybegynder
15. august 2003 - 10:23 #6
en noget nemmere og mindre kode:

#include <stdlib.h>
#include <conio.h>

void TEGN(int tal);

void main(void)
{
    clrscr();
    TEGN(100);
    getch();
}


void TEGN(int tal)
{
tal = tal/10;
    for(int i=0;i<tal;i++)
    {
        for(int j=0;j<4;j++)
        {
        gotoxy(75+j,44-i);
            if(i <= 4)
            textcolor(GREEN);
            if(i > 4 && i <= 7)
            textcolor(YELLOW);
            if(i >= 8)
            textcolor(RED);
        cprintf("x");
        }
    }
}
Avatar billede mcgoat Nybegynder
15. august 2003 - 10:30 #7
bygning c?? er det ikke der HTX er?? hvad sal er det så på?
Avatar billede strahd Nybegynder
15. august 2003 - 10:31 #8
øverst oppe i lokale 326.
Avatar billede strahd Nybegynder
15. august 2003 - 10:32 #9
sorry bygning E..
Avatar billede mcgoat Nybegynder
15. august 2003 - 11:25 #10
Det her burde være mere kompatibelt, alt afhængig af om skærmen er 80*25 eller 80*50, bare ændre MAXY..

#include <stdlib.h>
#include <conio.h>
#include <stdio.h>

void TEGN(int tal);

void main(void)
{
    clrscr();
    TEGN(100);
    getch();
}


void TEGN(int tal)
{
int MAXX = 80;
float MAXY = 25;    // S&#8216;t til 25 ell 50 alt afh&#8216;ngig af sk&#8216;rmst&#8250;rrelse
tal = (tal/10);
float g = (tal*(MAXY/10));

    for(int i=0;i< g ;i++)
    {
        for(int j=0;j<4;j++)
        {
        gotoxy(75+j,MAXY-i);
            if(i <= (MAXY-15))
            textcolor(GREEN);
            if(i > (MAXY-14) && i <= (MAXY-5))
            textcolor(YELLOW);
            if(i >= (MAXY-4))
            textcolor(RED);
        cprintf("²");
        }
    }
}
Avatar billede mcgoat Nybegynder
15. august 2003 - 11:25 #11
bare spørg videre hvis du vil have hjælp :o)
Avatar billede arne_v Ekspert
15. august 2003 - 12:41 #12
Her er en noget ændret udgave af programmet:

#include <stdlib.h>
#include <conio.h>
#include <stdio.h>

#define MAXX 80
#define MAXY 25

void tegn(int tal[3])
{
    int i,sum;
    int x,y;
    float frac[3];
    sum=0;
    for(i=0;i<3;i++) sum+=tal[i];
    for(i=0;i<3;i++) frac[i]=((double)tal[i])/sum+((i>0)?frac[i-1]:0.0);
    for(x=MAXX-4;x<=MAXX;x++)
    {
        for(y=1;y<=MAXY;y++)
        {
            gotoxy(x,y);
            if(y<frac[0]*MAXY)
              textbackground(GREEN);
            else if(y<frac[1]*MAXY)
              textbackground(YELLOW);
            else if(y<frac[2]*MAXY)
              textbackground(RED);
            cprintf(" ");
        }
    }
}

int main()
{
    int tal[3] = { 5, 10, 15 };
    clrscr();
    tegn(tal);
    getch();
}
Avatar billede mcgoat Nybegynder
15. august 2003 - 14:37 #13
hehe, blærerøv :o)....
Meen, når der står han ikke kender så meget til C++, så ville det måske være smart med noget nemt, især da hans lærer også skal se det...
Avatar billede mcgoat Nybegynder
15. august 2003 - 14:38 #14
hvad er det helt de 3 tal i tal[3] bliver brugt til?? hehe
Avatar billede mcgoat Nybegynder
15. august 2003 - 14:38 #15
er det ikke nemmere at man skriver TEGN(97); hvor det så er i % ??
Avatar billede arne_v Ekspert
15. august 2003 - 14:48 #16
tal er bare en fordeling som i frac bliver omregnet til andel.

Og det var kun for at illustrere forskellige ting:
  - background og space til at tegne med
  - #define
  - lidt anden måde at håndtere X,Y koordinaterne på
Avatar billede strahd Nybegynder
21. august 2003 - 09:36 #17
Kan ikke lige følge med i arne's forklaring men forstår din mcgoat....
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