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
  Środowisko do assemblera Physicist 4 10388 21.04.2019 14:04
Ostatni post: Ajgor
  VBA excel dmjs 6 10655 17.04.2019 10:20
Ostatni post: ptrick
  C++ - sens pogłębiania nauki gbr 5 10349 25.03.2019 12:53
Ostatni post: koneton
  Klasa wewnętrzna w C++ Physicist 4 10002 23.03.2019 18:28
Ostatni post: Physicist
  Ruby on Rails - tutoriale luciussulla 0 9111 23.03.2019 16:49
Ostatni post: luciussulla
Big Grin Czy dostane sie technikum informatycznego klaudiusz20046 6 12748 21.03.2019 01:28
Ostatni post: UnableToSee
  [C#] Program do moderacji czatów gier wiktrom12 0 9605 07.03.2019 15:33
Ostatni post: wiktrom12
  Mój pierwszy projekt - Pomoc rafal12999 1 10039 07.02.2019 22:01
Ostatni post: Szachista
  pomoc projekt scilab piesel18 2 11503 04.02.2019 09:03
Ostatni post: piesel18
  Szkoła Informatyczna Zikinan 1 10333 02.02.2019 17:59
Ostatni post: wojownikhaha
  [Java] Strona z zadaniami do rozwiązania i odpowiedziami rafal12999 2 11129 27.01.2019 13:44
Ostatni post: rafal12999
  kompilacja biblioteki Agui - cmake jurek2 0 10359 10.01.2019 13:12
Ostatni post: jurek2
  Zamiana całego zestawu znaków wg przyporządkowania BarHorab 5 11067 19.12.2018 16:45
Ostatni post: Szachista
  Sumowanie licz excel - problem OxyGenE 2 13740 19.12.2018 16:29
Ostatni post: Szachista
  Jaki kod pod pewne zdarzenia visualbasic 2010 aktywny27 4 11524 07.11.2018 13:41
Ostatni post: Ajgor