Prośba o pomoc z kalkulatorem graficznym.

2013-05-07 20:22
0

Witam
Z założenia wynika iż w trybie graficznym ma się wyświetlać nam kalkulator z funkcjami podstawowymi oraz z obliczaniem wartości
sin/cos/tg/ctg.
Klawisze po naciśnięciu mają się podświetlić na moment (naciskam '9' podświetla się klawisz z '9'),lecz z tym raczej sobie poradzę.
Niestety z założeń nici jak moje "doświadczenie programistyczne" jest bardzo nikłej jakości.
Więc potrzebuję pomocy.
Mianowicie taki program lecz w trybie tekstowym nawet dla takiego idioty jak ja to pestka w kompocie,co innego dzieje się w trybie graficznym.
Nie mam żadnego pomysłu/pojęcia jak wprowadzić do programu liczbę dwu/trzy cyfrową.
Oczywiście tak to musze zrobić,aby było jak w normalnym kalkulatorze,bez potwierdzania enter itd.

Póki co mam coś takiego,graficznie jest ok,tylko nas zasadą działania przesiedziałem już trochę,kombinowałem zmianą zmiennych ze słowa na liczby i inne,lecz nic z tego.

program kalkgraf;
uses
  crt,graph;
var
  karta, tryb, x, y, q, w, k, l, g: integer;
var
  a, b, c, m: char;

  procedure klawiszm(x, y: integer; znak: string);
  Begin
    line(x, y, x + 30, y);
    line(x, y, x, y + 40);
    line(x, y + 40, x + 30, y + 40);
    line(x + 30, y, x + 30, y + 40);
    settextstyle(1, 0, 2);
    outtextxy(x + 6, y + 6, znak);
  end;

  procedure klawiszd(x, y: integer; znak: string);
  Begin
    line(x, y, x + 100, y);
    line(x, y, x, y + 40);
    line(x, y + 40, x + 100, y + 40);
    line(x + 100, y, x + 100, y + 40);
    settextstyle(1, 0, 2);
    outtextxy(x + 7, y + 6, znak);
  end;

  procedure menu;
  Begin
    line(5,   5,   275, 5);
    line(275, 5,   275, 325);
    line(275, 325, 5,   325);
    line(5,   325, 5,   5);
    line(10,  10,  270, 10);
    line(270, 10,  270, 100);
    line(10,  100, 270, 100);
    line(10,  100, 10,  10);
    line(10,  110, 270, 110);
    line(270, 110, 270, 320);
    line(270, 320, 10,  320);
    line(10,  320, 10,  110);
    outtextxy(220, 20, 'Casio');
  end;

  procedure klawisze;
  Begin
    klawiszm(15,  120, '14');
    klawiszm(50,  120, '2');
    klawiszm(85,  120, '3');
    klawiszm(120, 120, '/');
    klawiszm(15,  170, '4');
    klawiszm(50,  170, '5');
    klawiszm(85,  170, '6');
    klawiszm(120, 170, '*');
    klawiszm(15,  220, '7');
    klawiszm(50,  220, '8');
    klawiszm(85,  220, '9');
    klawiszm(120, 220, '-');
    klawiszm(15,  270, 'c');
    klawiszm(50,  270, 'of');
    klawiszm(85,  270, '=');
    klawiszm(120, 270, '+');
    klawiszd(155, 120, 's(s)in');
    klawiszd(155, 170, 'c(c)os');
    klawiszd(155, 220, 't(t)g');
    klawiszd(155, 270, 'c(x)tg');
  end;

  {
  procedure dod;
  Begin
    a := readkey;
    outtextxy(30, 30, a);
    b:=readkey;
    outtextxy(50, 30, b);
    c:=readkey;
    outtextxy(70, 30, c);
  end;

  procedure dzi;
  begin
    g:=q+w;
    outtextxy(100, 30, g);
  end;

  procedure dodd;
  Begin
    case b of
      '+': dzi
    end;
  end;
  }

Begin
  clrscr;
  karta := 9;
  tryb := 2;
  initgraph(karta, tryb, 'c:\tp\bgi');
  menu;
  klawisze;
  readln;
  closegraph;
END.
edytowany 3x, ostatnio: furious programming, 2013-05-07 21:04
Temat poprawiłem, ale jeżeli nie będziesz wstawiał kodu w odpowiednie znaczniki i go formatował, to ja następnym razem nagrodą będzie Kosz. Ludzie się nie mogą nauczyć, że chcąc uzyskać pomoc, sami muszą chociaż od siebie dać kod, ktory jest do ogarnięcia. - olesio 2013-05-07 20:46
Już trochę lepiej, ale nadal jest mnóstwo rzeczy do poprawienia; - furious programming 2013-05-07 21:05

Pozostało 580 znaków

2013-05-07 20:27
0

To jest straszne, boję się nawet wrzucić ten kod do kompilatora.
Zacznij od sformatowania tego kodu po ludzku.


Pozostało 580 znaków

2013-05-07 21:03
0
var V:String;
var X:Double;
var ch:Char;
var Code:Word;

while true do
begin
  ch:=readkey;
  Val(V+ch,X,Code);
  if Code=0 then V:=V+ch
  else
  begin
    // może inny klawisz np +, - itd 
  end;  
end;

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2013-05-07 21:17
0

Dzięki za pomoc.
I wielkie przeprosiny za tak klawo wyglądający kod żródłowy.
_13th_Dragon
Przy zastosowaniu kodu tak jak podałeś,jak to zrobić by w tym samym momencie wyświetlały się te liczby w oknie "kalkulatora"?
Wpisuje '51' pokazuje się '51' wpisuje '+' pokazuje się '+' itd.
Sorry,za głupie pytania.
I z góry dzięki za pomoc.
Pozdrawiam

Pozostało 580 znaków

2013-05-07 23:01
0
OutTextXY(x, y, V);

Dla Ciebie nic nie jest pestką...

Pozostało 580 znaków

2013-05-14 17:18
0
babubabu napisał(a):
OutTextXY(x, y, V);

Dla Ciebie nic nie jest pestką...

Noo się obudziłem dopiero,kompletnie zapomniałem a program na jutro aby zaliczyć rok.

Tylko że przy użyciu tej komendy wyświetlają się liczby ale prawym górnym rogu,zmiana x/y nic nie daje,wtrąca się tryb tekstowy.
Przy użyciu takiego kodu jak podali koledzy wyżej nie mam pojęcia jak użych tych zmiennych później do działań?
Mam zmienną V a do prostego dodawania potrzebuje wprowadzić dwie liczby a i b.

Więc co tu zaradzić?

Nie robił ktoś kiedyś coś podobnego? I ma projekt? Bym zgapił trochę zasadę działania chociaż/
Pozdrawiam z góry dziękuje za pomoc.

edytowany 1x, ostatnio: motosss, 2013-05-14 17:18

Pozostało 580 znaków

2013-05-14 18:22
0

Za 100 zł Ci napiszę.

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0