logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Turbo Pascal: prosty kalkulator graficzny do działań do 25

czarek1992 18 Gru 2010 20:30 3035 11
REKLAMA
  • #1 8885114
    czarek1992
    Poziom 9  
    Posty: 81
    Mam pytanie, czy posiadacie program w turbo Pascalu w trybie graficznym, żeby liczył mnożenie, dzielenie, dodawanie i odejmowanie w zakresie do 25, najprostszy jaki może być.
    Pozdrawiam :)
  • REKLAMA
  • #2 8885475
    Dżyszla
    Poziom 42  
    Posty: 7075
    Pomógł: 1095
    Ocena: 225
    W trybie graficznym TP to tak nie bardzo. To powinien być pełny Borland Pascal. Bo rozumiem, że to ma być taki tryb, jak np. został zrobiony w tych programach w plikach DNA.PAS lub OBROT.PAS
  • #3 8885856
    czarek1992
    Poziom 9  
    Posty: 81
    tak dokładnie tak jak w tych programach, tylko by był to kalkulator w graficznym...
  • REKLAMA
  • #4 8885912
    azra
    Poziom 17  
    Posty: 108
    Pomógł: 26
    Ocena: 2
    A czy nie było przypadkiem jakiegoś GUI do Free Pascala? Lazarus?
  • #6 8885948
    czarek1992
    Poziom 9  
    Posty: 81
    tak w tekstowym umiem, a w graficznym nie wiem jak kompletnie :/
  • REKLAMA
  • #7 8885980
    Dżyszla
    Poziom 42  
    Posty: 7075
    Pomógł: 1095
    Ocena: 225
    To zobacz kod pliku TP_FILM.PAS z tej paczki, co podałem linka i zamień wszystkie swoje write na stosowne instrukcje wypisujące tekst w trybie graficznym.
  • #8 8886093
    czarek1992
    Poziom 9  
    Posty: 81
    Program kalkulator;
    uses crt;
    var
    liczba1,liczba2,wynik,i:real;znak:char;
    label {menu,poczatek,dodawanie,odejmowanie,dzielenie,mnozenie)koniec;
    procedure MENU; forward;
    procedure DODAWANIE;
    begin
    clrscr;
    writeln('obliczenie wyrazenia');
    write(' ');
    read(liczba1);
    write(' ');
    read(liczba2);
    wynik:=liczba1+liczba2;
    writeln('wynik wynosi',' ',wynik:0:2);
    write('Naci?nij dowolny klawisz');
    readkey;
    MENU;
    end;
    procedure ODEJMOWANIE;
    begin
    clrscr;
    writeln('obliczenie wyrazenia ');
    write(' ');
    read(liczba1);
    write(' ');
    read(liczba2);
    wynik:=liczba1-liczba2;
    writeln('wynik wynosi',' ',wynik:0:2);
    write('Naci?nij dowolny klawisz');
    readkey;
    MENU;
    end;
    procedure MNOZENIE;
    begin
    clrscr;
    writeln('obliczenie wyrazenia ');
    write(' ');
    read(liczba1);
    write(' ');
    read(liczba2);
    wynik:=liczba1*liczba2;
    writeln('wynik wynosi',' ',wynik:0:2);
    gotoxy(10,15);
    write('press any key');
    readkey;
    MENU;
    end;
    procedure DZIELENIE;
    begin
    clrscr;
    writeln('obliczenie wyraľenia a/b');
    write(' ');
    read(liczba1);
    write(' ');
    read(liczba2);
    wynik:=liczba1/liczba2;
    writeln('wynik wynosi',' ',wynik:0:2);
    gotoxy(10,15);
    write('press any key');
    readkey;
    MENU;
    end;
    procedure MENU;
    begin
    clrscr;
    writeln('MENU');
    writeln('1->dodawanie');
    writeln('2->odejmowanie');
    writeln('3->mnozenie');
    writeln('4->dzielenie'); 
    writeln('wyjscie z programu 8');
    writeln('wybierz cyfre dzialania ktore chcesz wykonac ');
    znak:=readkey;
    if znak='1' then dodawanie;
    if znak='2' then odejmowanie;
    if znak='3' then mnozenie;
    if znak='4' then dzielenie; 
    if znak='8' then halt;
    end; {end menu}
    begin
    writeln('KALKULATOR');
    menu;
    end. 

    no taki zrobiłem, tylko nie wiem gdzie mam wkleić ten kod? tam do tamtego :/
  • REKLAMA
  • #9 8886512
    Dżyszla
    Poziom 42  
    Posty: 7075
    Pomógł: 1095
    Ocena: 225
    Na początku zainicjuj tryb graficzny, a potem zamień instrukcje writeln na OutTextXY poprzedzając tekst współrzędnymi. Metodą prób i błędów je dobierzesz.
  • #10 8886570
    piotr5000
    Poziom 21  
    Posty: 393
    Pomógł: 40
    Ocena: 30
    Czarek1992 W załączniku masz przykładowy plik.
    Program powstał w 1992 r , i nie sprawdzałem go z obecnymi kartami graficznymi.
    Po skompilowaniu i uruchomieniu na ekranie powinieneś mieć zegar.
    Niestety nie kalkulator. Jeśli normalnie się uruchomi daj znać.
    Znajdziesz tam jak zainicjować tryb graficzny i wyświetlić tekst na ekranie.
    Nie mam teraz Pascala i nie mogę go sprawdzić.
    Plik ma dzisiejszą datę , bo usunąłem z niego swoje nazwisko
    ( przez skromność , nie ze wstydu )
    Załączniki:
    • ZEGAR2.ZIP (3.82 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #11 8887375
    czarek1992
    Poziom 9  
    Posty: 81
    Program kalkulator;
    uses crt,graph;
    var
    liczba1,liczba2,wynik,i:real;znak:char;
    label {menu,poczatek,dodawanie,odejmowanie,dzielenie,mnozenie)koniec;
    procedure MENU; forward;
    procedure DODAWANIE;
    begin
    driver:=detect;
    initGraph(Driver,Mode,'c:\TP\bgi');
    clrscr;
    outtextxy('obliczenie wyrazenia');
    write(' ');
    read(liczba1);
    write(' ');
    read(liczba2);
    wynik:=liczba1+liczba2;
    outtextxy('wynik wynosi',' ',wynik:0:2);
    write('Naci?nij dowolny klawisz');
    readkey;
    MENU;
    end;
    procedure ODEJMOWANIE;
    begin
    clrscr;
    outtextxy('obliczenie wyrazenia ');
    write(' ');
    read(liczba1);
    write(' ');
    read(liczba2);
    wynik:=liczba1-liczba2;
    outtextxy('wynik wynosi',' ',wynik:0:2);
    write('Naci?nij dowolny klawisz');
    readkey;
    MENU;
    end;
    procedure MNOZENIE;
    begin
    clrscr;
    outtextxy('obliczenie wyrazenia ');
    write(' ');
    read(liczba1);
    write(' ');
    read(liczba2);
    wynik:=liczba1*liczba2;
    outtextxy('wynik wynosi',' ',wynik:0:2);
    gotoxy(10,15);
    write('press any key');
    readkey;
    MENU;
    end;
    procedure DZIELENIE;
    begin
    clrscr;
    outtextxy('obliczenie wyraľenia a/b');
    write(' ');
    read(liczba1);
    write(' ');
    read(liczba2);
    wynik:=liczba1/liczba2;
    outtextxy('wynik wynosi',' ',wynik:0:2);
    gotoxy(10,15);
    write('press any key');
    readkey;
    MENU;
    end;
    procedure MENU;
    begin
    clrscr;
    outtextxy('MENU');
    outtextxy('1->dodawanie');
    outtextxy('2->odejmowanie');
    outtextxy('3->mnozenie');
    outtextxy('4->dzielenie'); 
    outtextxy('wyjscie z programu 5');
    outtextxy('wybierz cyfre dzialania ktore chcesz wykonac ');
    znak:=readkey;
    if znak='1' then dodawanie;
    if znak='2' then odejmowanie;
    if znak='3' then mnozenie;
    if znak='4' then dzielenie; 
    if znak='5' then halt;
    end; {end menu}
    begin
    outtextxy('KALKULATOR');
    menu;
    end. 

    Tak zrobiłem, ale coś nie chodzi, wyskakuje: ERROR 2: Identifier expected

    Dodano po 1 [minuty]:

    piotr5000 napisał:
    Czarek1992 W załączniku masz przykładowy plik.
    Program powstał w 1992 r , i nie sprawdzałem go z obecnymi kartami graficznymi.
    Po skompilowaniu i uruchomieniu na ekranie powinieneś mieć zegar.
    Niestety nie kalkulator. Jeśli normalnie się uruchomi daj znać.
    Znajdziesz tam jak zainicjować tryb graficzny i wyświetlić tekst na ekranie.
    Nie mam teraz Pascala i nie mogę go sprawdzić.
    Plik ma dzisiejszą datę , bo usunąłem z niego swoje nazwisko
    ( przez skromność , nie ze wstydu )


    tak, chodzi na moim, musiałem tylko podać ścieżkę folderu.
  • #12 8887552
    piotr5000
    Poziom 21  
    Posty: 393
    Pomógł: 40
    Ocena: 30
    Skielet programu zrobiłbym tak:



    Podaj Liczbę X
    readln X
    Podaj liczbę Y
    readln Y
    Podaj działanie ( + - / * .. [Esc - koniec)

    znak := readkey;
    Case znak of
    + : DODAWANIE
    - : ODEJMOWANIE
    ......
    .......
    #27 : koniec = TRUE {wcześniej deklaracja koniec : Boolean; i na
    początku pętli repeat ....... until koniec zmienna koniec := False }

    nie pamiętam dokładnie składni Pascala ale powinieneś poznać o co chodzi

Podsumowanie tematu

✨ Użytkownik poszukiwał prostego kalkulatora graficznego w Turbo Pascalu, który obsługiwałby podstawowe operacje matematyczne (dodawanie, odejmowanie, mnożenie, dzielenie) w zakresie do 25. Odpowiedzi wskazywały, że do realizacji tego celu konieczne jest użycie pełnej wersji Borland Pascal, a także zasugerowano wykorzystanie GUI w Free Pascalu, np. Lazarus. Użytkownicy podzielili się fragmentami kodu oraz wskazówkami, jak zainicjować tryb graficzny i zamienić instrukcje tekstowe na graficzne, co pozwoliłoby na stworzenie kalkulatora w trybie graficznym.
Wygenerowane przez model językowy.
REKLAMA