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 7.0 - wykres x,y - błąd TYPE MISMATCH przy zmiennej real

123frytki 09 Lip 2009 22:08 2345 8
REKLAMA
  • #1 6760330
    123frytki
    Poziom 10  
    Posty: 44
    Ocena: 2
    Witam!

    Napisałem program w Turbo Pascalu 7.0. Program oblicza mi pewny y na podstawie kilku zmiennych. y jest typu real bo obliczam go ze złożonego wzoru i wynik jest liczbą przecinkową. Kiedy chce już programować wykres x,y to kompilator mi wywala błąd TYPE MISMATCH. Jest jakaś możliwość wykonania takiego wykresu w Pascalu? może jakoś trzeba zamienić w programie ten y na typ integer albo zaokrąglić go jakoś albo coś takiego? pomoże ktoś :?: :D
  • REKLAMA
  • #2 6760363
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #3 6760445
    123frytki
    Poziom 10  
    Posty: 44
    Ocena: 2
    dzięki za pomoc ale to rzutowanie nie pomaga... Wywala błąd Error 61: Invalid type cast. dla zainteresowanych moge podesłać kod programu bo raczej zamieścić tutaj nie moge :D
  • REKLAMA
  • Pomocny post
    #4 6760659
    SPAWN17
    Poziom 16  
    Posty: 151
    Pomógł: 13
    Ocena: 4
    Nigdy nie używałem rzutowania w pascalu gdyż nie było potrzebne. Wystarczała funkcja round(). Shift + F1. Bardzo przydatne narzędzie w Pascal IDE.
  • #5 6761756
    123frytki
    Poziom 10  
    Posty: 44
    Ocena: 2
    suuuper. funkcja round() pomogła. wykresy robi mi pięknie. dziękuje za pomoc zainteresowanym. pozdrawiam :D
  • REKLAMA
  • #7 6762006
    123frytki
    Poziom 10  
    Posty: 44
    Ocena: 2
    a czy mógłby mi ktoś podpowiedzieć dlaczego sie dzieje tak że jak rysuje wykres (sinusoide) poleceniem:

    for i:=-180 to 180
    line(x,y,x1,y1);


    to sinusoida jest odwrotna tzn. tam gdzie powinna mieć wartości dodatnie to ma ujemne i odwrotnie. dane z obliczeń zapisują mi się w pliku i tam wszystko sie zgadza wiec nie rozumiem dlaczego przyjmuje wartości przeciwne

    gdy dopiero dokonam zamiany y:=-y to dopiero działa i jest sinusoida. troche dziwne. jak to wyjaśnić??
  • #8 6762209
    SPAWN17
    Poziom 16  
    Posty: 151
    Pomógł: 13
    Ocena: 4
    To bardzo proste. Układ współrzędnych na ekranie jest zupełnie inny niż na kartce.

    Turbo Pascal 7.0 - wykres x,y - błąd TYPE MISMATCH przy zmiennej real
  • #9 6762449
    123frytki
    Poziom 10  
    Posty: 44
    Ocena: 2
    Tak ja dobrze rozumiem że układ na ekranie różni się od takiego na kartce i dokonałem w programie przekształceń swoich współrzędnych do "układu ekranowego" ale zamiast wykresu:

    Turbo Pascal 7.0 - wykres x,y - błąd TYPE MISMATCH przy zmiennej real

    ja otrzymuje taki

    Turbo Pascal 7.0 - wykres x,y - błąd TYPE MISMATCH przy zmiennej real

    Sprawdzałem program ze 3 razy i nigdzie nie widze błędu w obliczeniach. zresztą z pliku do którego program importuje wyniki obliczeń widze przecież że np. dla i=-170 wartość y[-170] jest również ujemna a program wykreśla mi ten punkt jakby od prawej strony zaczynał rysować hehe :D

    wporządku. rozumiem już dlaczego tak się dzieje. rozrysowałem sobie wszystko na kartce. dzięki za pomoc. programik działa jak należy. dzięki pozdrawiam.:D

Podsumowanie tematu

LABEL_AI_GENERATED
W dyskusji poruszono problem błędu TYPE MISMATCH w Turbo Pascalu 7.0 podczas próby rysowania wykresu punktów (x,y), gdzie y jest typu real. Próba rzutowania typu real na integer za pomocą rzutowania typów (cast) zakończyła się błędem Invalid type cast. Rozwiązaniem okazało się użycie funkcji round(), która zaokrągla wartość real do najbliższej liczby całkowitej, co umożliwiło poprawne rysowanie wykresu. Dodatkowo wyjaśniono, że układ współrzędnych na ekranie różni się od klasycznego układu kartezjańskiego (np. oś Y jest odwrócona), co powodowało odwrócenie wykresu sinusoida. Konieczne było odwrócenie wartości y (y := -y) aby uzyskać poprawny wykres. Dyskusja zawierała także przykłady kodu i linki do ilustracji obrazujących różnice układów współrzędnych.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA