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 – jak przekonwertować real na integer do użycia w pętli for?

romantv 18 Cze 2007 23:30 2619 8
REKLAMA
  • #1 3998111
    romantv
    Poziom 17  
    Posty: 328
    Pomógł: 11
    Ocena: 8
    Witam jak zmienić zmienną
    z real na integer
    np.

    Liczba1:real;
    n:integer

    n:=Liczba1; - oczywiście jest błąd

    potrzebuje to do petli for

    For i:=1 to n do
    ...

    jak to zmienić dzięki za pomoc.
  • REKLAMA
  • #3 3998531
    romantv
    Poziom 17  
    Posty: 328
    Pomógł: 11
    Ocena: 8
    Dziękuję za pomoc
    Pozdrawiam.
  • REKLAMA
  • #4 3999164
    spros
    Poziom 17  
    Posty: 186
    Pomógł: 16
    Ocena: 26
    przy okazji: round NIE zaokragla w gore.
  • #5 3999169
    romantv
    Poziom 17  
    Posty: 328
    Pomógł: 11
    Ocena: 8
    Spoko już mam zrobione i działa mi wszystko, bardzo dziękuję za pomoc ! :)
  • #6 4008474
    Xitami
    Poziom 29  
    Posty: 1130
    Pomógł: 118
    Ocena: 31
    spros napisał:
    przy okazji: round NIE zaokragla w gore.

    Eeee, a możesz konkretniej?
    Owszem jest pewna "cienkość", round(1+1/2)==1, ale choćby dla maleńkiej odrobinki round(1+1/2+odrobinka)==2
    ciekawe swoją drogą, $${1\over 10}$$ binarnie okresowe, pomnożone przez 5 już jak najbardziej poprawne. Poprawne?
  • REKLAMA
  • Pomocny post
    #7 4008506
    spros
    Poziom 17  
    Posty: 186
    Pomógł: 16
    Ocena: 26
    Round(x) wartość x zaokrąglona do najbliższej liczby Integer. przynajmniej teoretycznie.
  • REKLAMA
  • Pomocny post
    #8 4057963
    fanick
    Poziom 12  
    Posty: 23
    Pomógł: 1
    Ocena: 1
    trunc(x) obcina czesc ulamkowa z liczby i zostawia czesc calkowita
    round(x) zaokragla w gore, gdy czesc ulamkowa jest z przedzialu <0.5; 1),
    a w dol, gdy jest (1; 0.5)
  • #9 4058202
    romantv
    Poziom 17  
    Posty: 328
    Pomógł: 11
    Ocena: 8
    Dziękuję za pomoc

Podsumowanie tematu

✨ W dyskusji poruszono problem konwersji zmiennej typu real na integer w Turbo Pascal, aby użyć jej jako limitu w pętli for. Podkreślono, że bezpośrednie przypisanie powoduje błąd. Zaproponowano użycie funkcji konwersji takich jak trunc(x) oraz round(x). Funkcja trunc(x) obcina część ułamkową i zwraca część całkowitą, natomiast round(x) zaokrągla wartość do najbliższej liczby całkowitej, choć jej działanie może być subtelne w przypadku wartości dokładnie pośrednich (np. 1.5). Podano link do FAQ z przykładami oraz omówiono różnice w działaniu round i trunc. Ostatecznie potwierdzono, że zastosowanie trunc lub round rozwiązuje problem konwersji real na integer do użycia w pętli for w Turbo Pascal.
REKLAMA