Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

[FreePascal]Longint nie obsługuje dzielenia.

#1
[FreePascal]Longint nie obsługuje dzielenia.
Kod:
program test;
uses crt;
var
a,b,c:longint;

begin
        b:=1000000;
        c:=5790;
        a:=b/c;
        writeln(a);
        readln;
end.

Kod:
program.pas(9,13) Error: Incompatible types: got "Extended" expected "LongInt"
program.pas(12,4) Fatal: There were 1 errors compiling module, stopping
program.pas(0) Fatal: Compilation aborted
Dodawanie działa, odejmowanie, mnożenie, dzielenie NIE działa. Gdy longint zmienię na real to działa dzielenie...
 System operacyjny: windows_2000 Przeglądarka: firefox
#2
RE: [FreePascal]Longint nie obsługuje dzielenia.
Rzadko się zdarza aby podzielenie dwóch liczb całkowitych w wyniko dawało liczbę całkowitą. Zadeklaruj :
a:real;
 System operacyjny: windows_98_nt Przeglądarka: opera
#3
RE: [FreePascal]Longint nie obsługuje dzielenia.
Ok, rozumiem. Mam jednak problem z real:
Kod:
var
a,b,c:real;

begin
        b:=1234567890123456789012345678901234567890;
        c:=2;
        a:=b/c;
        writeln(a:1:2);
end.

Wynik: 6.17283945061728E+038

Co zrobić by wyświetlało większą liczbę?

Drugie problem- dlaczego mając małą liczbę (bo jest obsługiwana już poprawnie jeśli dołożę kilka zer): 12345678901234567890 źle ją oblicza? - dzieląc ją przez 2 otrzymuję minusową liczbę i do tego nie poprawną nawet jeśli zabrać minus (-3050532586237490000.00).

Gdy do 12345678901234567890 dodam jedno 0 i jest 123456789012345678900 to już jest wynik prawidłowy i dodatni czyli 61728394506172800000.00
 System operacyjny: windows_2000 Przeglądarka: firefox
#4
RE: [FreePascal]Longint nie obsługuje dzielenia.
Liczby rzeczywiste przechowywane są za pomocą cechy i mantysy, dlatego przy dużym wyniku pojawia się notacja wykładnicza.
Może liczba przekroczyła dopuszczalny zakres, stąd dziwny wynik.
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#5
RE: [FreePascal]Longint nie obsługuje dzielenia.
Co zatem zrobić by działało dobrze?
 System operacyjny: windows_2000 Przeglądarka: firefox
#6
RE: [FreePascal]Longint nie obsługuje dzielenia.
Zamiast LongInt może daj Int64 (wiem, że taki typ jest w Delphi).
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#7
RE: [FreePascal]Longint nie obsługuje dzielenia.
Co do wyniku 6.17283945061728E+038 to musisz wpisać np Writeln(zmienna:10:10). To sformatuje wynik.
A co do zakresu, tu masz coś o typach: http://turbopascal.helion.pl/r-07.htm
 System operacyjny: windows_vista Przeglądarka: firefox
#8
RE: [FreePascal]Longint nie obsługuje dzielenia.
Cytat:Co do wyniku 6.17283945061728E+038 to musisz wpisać np Writeln(zmienna:10:10). To sformatuje wynik.
Kod:
var
a,b,c:real;

begin
        b:=1234567890123456789012345678901234567890;
        c:=2;
        a:=b/c;
        writeln(a:10:10);
end.
I dalej to samo, wynik 6.17283945061728E+038.

Cytat:Zamiast LongInt może daj Int64 (wiem, że taki typ jest w Delphi).
Nie działa.

Cytat:A co do zakresu, tu masz coś o typach: http://turbopascal.helion.pl/r-07.htm
No ta liczba sie mieści jeszcze w real więc nie rozumiem w czym problem. Nawet jak wpisujęextended zamiast real to nie działa jak powinno.
 System operacyjny: windows_2000 Przeglądarka: firefox
Programy: Polecane / Nowe / Inne




Podobne wątki ([FreePascal]Longint nie obsługuje dzielenia.)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  obliczanie pierwiastka nieliniowego metoda bisekcji (dzielenia ocinka wiastka na połowy) babilon12345 6 2640 18.12.2013, 11:00
Ostatni post: babilon12345
  [C++] Problem przy reszta z dzielenia (fmod) igesio 2 2303 15.01.2012, 14:09
Ostatni post: igesio
  Pętla "for to do" w FreePascal Lacze 1 2797 07.12.2011, 21:34
Ostatni post: Szachista

Skocz do:


Wybrane wątki ([FreePascal]Longint nie obsługuje dzielenia.)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Transfer plików via FTP Visual Basic FireBytes 3 7046 15.08.2019 07:41
Ostatni post: Szachista
  Menu wysuwane z boku patryk67 1 7773 07.08.2019 12:43
Ostatni post: aht
  Visual Basic Excel l.całkowitą przedstawić w postaci szesnastkowej fugaz 4 9694 18.06.2019 21:36
Ostatni post: fugaz
  Nauka do Olimpiady Informatycznej? piotr0905 1 9153 08.06.2019 16:50
Ostatni post: wlisik
Ściana Prosta gra w Builder C++ Kiranek1 1 9138 31.05.2019 15:20
Ostatni post: Szachista
  Menu (Nie widoczne długie opisy) wanhelsing 5 11182 28.04.2019 19:31
Ostatni post: koneton
  Skrypt usuwający pliki sylwiaa1 2 4471 28.04.2019 15:20
Ostatni post: sylwiaa1
  Środowisko do assemblera Physicist 4 10407 21.04.2019 14:04
Ostatni post: Ajgor
  VBA excel dmjs 6 10682 17.04.2019 10:20
Ostatni post: ptrick
  C++ - sens pogłębiania nauki gbr 5 10370 25.03.2019 12:53
Ostatni post: koneton
  Klasa wewnętrzna w C++ Physicist 4 10020 23.03.2019 18:28
Ostatni post: Physicist
  Ruby on Rails - tutoriale luciussulla 0 9129 23.03.2019 16:49
Ostatni post: luciussulla
Big Grin Czy dostane sie technikum informatycznego klaudiusz20046 6 12768 21.03.2019 01:28
Ostatni post: UnableToSee
  [C#] Program do moderacji czatów gier wiktrom12 0 9623 07.03.2019 15:33
Ostatni post: wiktrom12
  Mój pierwszy projekt - Pomoc rafal12999 1 10057 07.02.2019 22:01
Ostatni post: Szachista