Powrót   Forum CDRinfo.pl > Różne > Off topic

Off topic Forum poświęcone wszelkim innym tematom.



Witaj Nieznajomy! Zaloguj się lub Zarejestruj

Zarejestrowani użytkownicy mają dostęp do dodatkowych opcji, lepszej wyszukiwarki oraz mniejszej ilości reklam. Rejestracja jest całkowicie darmowa!

Odpowiedz na post
 
Opcje związane z dyskusją Tryby wyświetlania
Stary 09.01.2005, 14:23   #1
pablocoo
Darkly dreaming...
 
Avatar użytkownika pablocoo
 
Data rejestracji: 10.08.2004
Lokalizacja: małopolska
Posty: 1,677
pablocoo niedługo stanie się sławny ;) <50 - 149 pkt>
Potrzebuje pomocy... z Pascalem

Na srode musze zrobic w Pascalu kalkulator jak prace zaliczeniowa na semest i wogole nie wiem jak sie za to zabrac...
Chetnie przeczytalbym jakies pomysly, moze ktos ma cos gotowego?
pablocoo jest offline   Odpowiedz cytując ten post

  #ads
CDRinfo.pl
Reklamowiec
 
 
 
Data rejestracji: 29.12.2008
Lokalizacja: Sieć globalna
Wiek: 31
Posty: 1227
 

CDRinfo.pl is online  
Stary 09.01.2005, 14:27   #2
Predi
Niezarejestrowany
 
Avatar użytkownika Predi
 
Data rejestracji: 16.04.2002
Lokalizacja: Gliwice
Posty: 2,778
Predi niedługo stanie się sławny ;) <50 - 149 pkt>
nie wiem jaki masz problem
jezeli znasz podstawy to najprostszy mozna zrobic
"Podaj dzialanie" tu 4 ify i else odnoszace do danych funccji, lub nawet na zywo po ifie intrukcje zeby podac dwie liczyby, cos z nimi robisz (dodajesz, odejmujesz itd)
a potem wypisujesz wynik....

ps. mase taki kalkulatorow na pewno jest w sieci to to czesty temat
Predi jest offline   Odpowiedz cytując ten post
Stary 09.01.2005, 14:39   #3
andy
logged out
CDRinfo VIP
 
Avatar użytkownika andy
 
Data rejestracji: 12.07.2003
Lokalizacja: /home
Posty: 12,518
andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>
Dokladnie znjac podstawy mozna zrobic bardzo przyzwoity kalkulator
Jak kcesz jakies zrodla to wejdz tu: 4programmers.net
__________________
XMPP: andrzej(at)czerniak.info.pl
andy jest offline   Odpowiedz cytując ten post
Stary 09.01.2005, 18:22   #4
luminat
Gość
 
Data rejestracji: 12.12.2002
Posty: 437
luminat zaczyna zdobywać reputację <1 - 49 pkt>
Polecam stronke www.komputery-internet.net - bardzo duzo o programowaniu m. in. pascal. PS kallkulator to jedna z najprostszych rzeczy jaka mozna zrobic w pascalu...
luminat jest offline   Odpowiedz cytując ten post
Stary 09.01.2005, 20:17   #5
MacGyver
Team Member
 
Avatar użytkownika MacGyver
 
Data rejestracji: 14.05.2002
Lokalizacja: Cheyenne Mountain Complex
Posty: 5,320
MacGyver jak się przyłoży ma szansę zostać specem <150 - 249 pkt>MacGyver jak się przyłoży ma szansę zostać specem <150 - 249 pkt>MacGyver jak się przyłoży ma szansę zostać specem <150 - 249 pkt>
Cytat:
Napisany przez luminat
Polecam stronke www.komputery-internet.net - bardzo duzo o programowaniu m. in. pascal. PS kallkulator to jedna z najprostszych rzeczy jaka mozna zrobic w pascalu...
...i napisanie zajmuje doslownie 5 minut...

..::Update::..
Wynik 2-minutowej pracy (nie mam Pascala wiec napisalem to w Delphi...ale w Pascalu chyba bedzie wygladać podobnie)
Programik robi podstawowe obliczenia (trzeba jeszcze dodac obsluge dzielenie przez zero)

Kod:
program kalkulatorek;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var a,b,w: integer;
    d: char;
begin
    write ('Podaj pierwsza liczbe: ');
    readln (a);
    write ('Podaj druga liczbe: ');
    readln (b) ;
    write ('Podaj znak dzialania (+,-,*,/): ');
    readln (d);
    if d='+' then w:=a+b;
    if d='-' then w:=a-b;
    if d='*' then w:=a*b;
    if d='/' then w:=a mod b;
    writeln ('Wynik dzialania wynosi: ',w);
    readln;
end.
__________________
We all know how these things work, so when you hear the beep, go for it...

Ostatnio zmieniany przez MacGyver : 09.01.2005 o godz. 20:22
MacGyver jest offline   Odpowiedz cytując ten post
Stary 09.01.2005, 20:54   #6
luminat
Gość
 
Data rejestracji: 12.12.2002
Posty: 437
luminat zaczyna zdobywać reputację <1 - 49 pkt>
Cytat:
Napisany przez MacGyver
program kalkulatorek;

....
if d='/' then w:=a mod b;
....
Oj nie, tym razem pomyliles sie MacGyver, w pascalu dzielenie okresla sie zwykly znakiem dzielenia '/'. A instrukcja mod o ktorej tu wspomniales zwraca reszte z dzielenia. Aby mi tu ktos nie wyskoczyl czasem z div'em to wspomne, ze to jest dzielenie calkowite a nie zwykle dzielenie.
luminat jest offline   Odpowiedz cytując ten post
Stary 09.01.2005, 21:06   #7
MacGyver
Team Member
 
Avatar użytkownika MacGyver
 
Data rejestracji: 14.05.2002
Lokalizacja: Cheyenne Mountain Complex
Posty: 5,320
MacGyver jak się przyłoży ma szansę zostać specem <150 - 249 pkt>MacGyver jak się przyłoży ma szansę zostać specem <150 - 249 pkt>MacGyver jak się przyłoży ma szansę zostać specem <150 - 249 pkt>
Cytat:
Napisany przez luminat
Oj nie, tym razem pomyliles sie MacGyver, w pascalu dzielenie okresla sie zwykly znakiem dzielenia '/'. A instrukcja mod o ktorej tu wspomniales zwraca reszte z dzielenia. Aby mi tu ktos nie wyskoczyl czasem z div'em to wspomne, ze to jest dzielenie calkowite a nie zwykle dzielenie.
No fakt wkradł się mały bład Pisałem to na szybko
__________________
We all know how these things work, so when you hear the beep, go for it...
MacGyver jest offline   Odpowiedz cytując ten post
Stary 09.01.2005, 21:14   #8
47
Veni, Vidi, Vici.
 
Avatar użytkownika 47
 
Data rejestracji: 03.11.2003
Lokalizacja: ﯜﯣﱠﺋﺝﭚﯝﺿﻃﻉﻕﻘﮎﻻﻲﻯﻈﺺﺟﺻﻺﺨﺳ
Posty: 620
47 w tym momencie nie ma Reputacji dodatnich ani ujemnych <0  pkt>
Cytat:
Napisany przez MacGyver
...i napisanie zajmuje doslownie 5 minut...

..::Update::..
Wynik 2-minutowej pracy (nie mam Pascala wiec napisalem to w Delphi...ale w Pascalu chyba bedzie wygladać podobnie)
Programik robi podstawowe obliczenia (trzeba jeszcze dodac obsluge dzielenie przez zero)
Pozwoliłem sobie troszki przerobić.

Kod:
program kalkulatorek;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var a,b,w: integer;
    d: char;
begin
    write ('Podaj pierwsza liczbe: ');
    readln (a);
    write ('Podaj druga liczbe: ');
    readln (b) ;
    write ('Podaj znak dzialania (+,-,*,/): ');
    readln (d);
    case d of
     '+'  : w:=a+b;
     '-'   : w:=a-b;
     '*'   : w:=a*b;
     '/'    :
      Begin
         if b=0 then 
            Writeln('Dzielenie przez 0' ) 
               else
                  w:=a/b;
             end;
          end;
 writeln ('Wynik dzialania wynosi: ', w);
    readln;
end.
__________________
"Czy świat bardzo się zmieni jak z młodych gniewnych powstaną starzy wqrwieni??"

Hitman Blood Money


Moj status w Americas Army
47 jest offline   Odpowiedz cytując ten post
Stary 09.01.2005, 22:05   #9
luminat
Gość
 
Data rejestracji: 12.12.2002
Posty: 437
luminat zaczyna zdobywać reputację <1 - 49 pkt>
Nie bede cytal calego, ale ja bym zastapił readln(d) na read(d); lub d:=readkey; - nie trzeba nacisnac klawisza enter w celu potwierdzenia wyboru. Dodałbym jeszcze modul crt (standard przy programach pascalowych) i komende crt na samym poczatku po begin oraz petle repeat ktora na samym koncu pytala by sie czy zakonczyc dzialanie programu. Ale cos nie wierze, ze taki prosty programik mialby by na zaliczenie semestru autorowi tematu pewnie chodzilo o cos bardziej skomplikowanego z bajerami i jaka szata graficzna .
luminat jest offline   Odpowiedz cytując ten post
Stary 09.01.2005, 22:11   #10
MacGyver
Team Member
 
Avatar użytkownika MacGyver
 
Data rejestracji: 14.05.2002
Lokalizacja: Cheyenne Mountain Complex
Posty: 5,320
MacGyver jak się przyłoży ma szansę zostać specem <150 - 249 pkt>MacGyver jak się przyłoży ma szansę zostać specem <150 - 249 pkt>MacGyver jak się przyłoży ma szansę zostać specem <150 - 249 pkt>
Co do wspomnianej pętelki

Kod:
program kalkulatorek;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var a,b,w: integer;
    d, k: char;
begin
    repeat
    write ('Podaj pierwsza liczbe: ');
    readln (a);
    write ('Podaj druga liczbe: ');
    readln (b) ;
    write ('Podaj znak dzialania (+,-,*,/): ');
    readln (d);
    case d of
     '+'  : w:=a+b;
     '-'   : w:=a-b;
     '*'   : w:=a*b;
     '/'    :
      Begin
         if b=0 then 
            Writeln('Dzielenie przez 0' ) 
               else
                  w:=a/b;
             end;
          end;
 writeln ('Wynik dzialania wynosi: ', w);
    writeln ('Wcisnij W aby wyjsc lub dowolny klawisz aby podac nowe liczby');
    read (k);
  until k='w';
end.
...lub podobnie (na to jest masa sposobów)
__________________
We all know how these things work, so when you hear the beep, go for it...
MacGyver jest offline   Odpowiedz cytując ten post
Stary 11.01.2005, 18:09   #11
pablocoo
Darkly dreaming...
 
Avatar użytkownika pablocoo
 
Data rejestracji: 10.08.2004
Lokalizacja: małopolska
Posty: 1,677
pablocoo niedługo stanie się sławny ;) <50 - 149 pkt>
Dzieki wszystkim za odpowiedz

Mam jeszcze pytanie: kiedy ustawiam typ zmiennej jako 'real' to wyniki wychodza np. 2.000000000E +0000
A kiedy ustawie typ jako 'integer' to wywala blad z dzieleniem.
Jakiego typu mam uzyc?
pablocoo jest offline   Odpowiedz cytując ten post
Stary 11.01.2005, 18:16   #12
Predi
Niezarejestrowany
 
Avatar użytkownika Predi
 
Data rejestracji: 16.04.2002
Lokalizacja: Gliwice
Posty: 2,778
Predi niedługo stanie się sławny ;) <50 - 149 pkt>
zeby nie bylo "2.000000000E +0000" wypisuj zmienne np tak: writeln(zmienna:2:2); te dwojki znacza ze bedzie wyswietlana po dwoch polach z dwoma miejscami po przecinku
Predi jest offline   Odpowiedz cytując ten post
Stary 11.01.2005, 18:19   #13
MacGyver
Team Member
 
Avatar użytkownika MacGyver
 
Data rejestracji: 14.05.2002
Lokalizacja: Cheyenne Mountain Complex
Posty: 5,320
MacGyver jak się przyłoży ma szansę zostać specem <150 - 249 pkt>MacGyver jak się przyłoży ma szansę zostać specem <150 - 249 pkt>MacGyver jak się przyłoży ma szansę zostać specem <150 - 249 pkt>
Cytat:
Napisany przez pablocoo
Dzieki wszystkim za odpowiedz

Mam jeszcze pytanie: kiedy ustawiam typ zmiennej jako 'real' to wyniki wychodza np. 2.000000000E +0000
A kiedy ustawie typ jako 'integer' to wywala blad z dzieleniem.
Jakiego typu mam uzyc?
Daj zmienną w jako real a linijke odpowiedzialną za wyswietlanie wyniku zmodyfikuj np tak:
Kod:
writeln ('Wynik dzialania wynosi: ', w:0:2);
..::Update::..
@Predi był szybszy
__________________
We all know how these things work, so when you hear the beep, go for it...
MacGyver jest offline   Odpowiedz cytując ten post
Stary 11.01.2005, 18:22   #14
pablocoo
Darkly dreaming...
 
Avatar użytkownika pablocoo
 
Data rejestracji: 10.08.2004
Lokalizacja: małopolska
Posty: 1,677
pablocoo niedługo stanie się sławny ;) <50 - 149 pkt>
A da sie tak zrobic, zeby liczby calkowite wyswietlal normalnie bez miejsc po przecinku, a ulamki po 2 miejsca po przecinku, jak wynik przechowuje w tej samej zmiennej?
pablocoo jest offline   Odpowiedz cytując ten post
Stary 11.01.2005, 18:26   #15
Predi
Niezarejestrowany
 
Avatar użytkownika Predi
 
Data rejestracji: 16.04.2002
Lokalizacja: Gliwice
Posty: 2,778
Predi niedługo stanie się sławny ;) <50 - 149 pkt>
napewno sie da np. masz

var a, b, d : integer;
var f : real;

begin
writeln ('podaj a');
readln(a);
writeln ('podaj b');
readln(b);

f:=a/b;

d:=a div b;

if d < f then writeln (f:2:2) else writeln (d);
end.

musisz to teraz tylko wstawic w ten fragment programu gdzie kalkulator dzieli, polega to na tym, ze f jest typu real i przechowuje rzeczywista wratosc dzielenia, natomiast d przechowuje wartosc calkowita, po odcieciu cyfr po kropce, jezeli f jest wieksze od d (a bedzie tak tylko wtedy jezeli bedzie cos mialo po kropce) to wypisywane jest np. 2.11 jezeli sa rowne, to wyswietla d jako normalna liczbe, bez kropki
Predi jest offline   Odpowiedz cytując ten post
Odpowiedz na post


Twoje uprawnienia:
Nie możesz rozpoczynać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz umieszczać załączników
Nie możesz edytować swoich postów

BB codeWłączone
EmotikonkiWłączone
Kody [IMG]Włączone
Kody HTML są Wyłączone

Teleport


Wszystkie czasy w strefie CET. Aktualna godzina: 21:48.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.