OpenGL Ćwiczenia - Helion

Odpowiedz Nowy wątek
2006-10-04 17:51
Endik
0

Witajcie:)

Kupiłem książkę Helionu OpenGL Ćwiczenia autorstwa W. Pokuty, no i mam następuący problem, mianowicie otwieram ćwiczenie z :

Cwiczenia\R04_00_Poczatek\Material.dpr

Próbuje kompilować i wyskakują mi błędy, błędy te wyskakują już w każdym następnym ćwiczeniu (w kolejnych ćw jest i więcej).

[Error]Unit1.pas(141):Left side cannot be assigned to

klikam dwukrotnie na ten komunikat i czepia się :

kat := kat + 1;

jest jeszcze jeden błąd :

[Fatal Error] Material.dpr(5): Could not compile used unit 'Unit1.pas'

Kody źródłowe pobrałem zgodnie z wskazówkami zawartymi w książce ze strony Helionu.
Czy jest to możliwe że jest w tych kodach jakiś błąd ?
Wydaje mi sie że to mało prawdopodobnei raczej coś z moim DELPHIM 7 (30 dniowa wersja Enterprise) (też od Helionu bo z książkom był Kompedium Programisty DELPHI 7 A. Boducha)

Czy zna ktoś rozwiązanie tego problemu ? jeśli tak to bardzo proszę o pomoc.

Pozostało 580 znaków

2006-10-04 18:44
0

byćmoze kat to stała? pokaż deklarację tej zmiennej.


Piszę programy w językach: C, C++, Java, Python, Bash, PHP, SQL.
Przyjmuję zlecenia

Pozostało 580 znaków

2006-10-04 21:20
Endik
0

Procedure ...........
Var
i: integer;
const
kat: real = 0;
begin
....
....

To jest deklaracja tej nieszczęsnej zmiennej.... ale czy jest to możliwe że autor się pomylił ?

Doczytałem sie na początku książki że kody źródłowe były tworzone w DELPHI 3.0 (autor dopisał - ćwiczenia powinny być również zgodne z kolejnymi wersjami tego oprogramowania)
Moim zdaniem mogą być niezgodne...

Pozostało 580 znaków

2006-10-04 21:44
0

Kąt jest zadeklarowany po słowie const czyli jest to stała a nie zmienna. Nie jestem, ale to nie jestem na sto procent pewien ale spróbuj zaznaczyć opcję Project->Project Options->Compiler->Assignable typed constants.


wiem, że nic nie wiem

Pozostało 580 znaków

2006-10-04 21:47
0

Spróbuj przenieść kat do zmiennych, np.

var
i:integer;
kat:real=0;

może to pomoże?

Pozostało 580 znaków

2006-10-04 22:07
Endik
0
Odysseus napisał(a)

Kąt jest zadeklarowany po słowie const czyli jest to stała a nie zmienna. Nie jestem, ale to nie jestem na sto procent pewien ale spróbuj zaznaczyć opcję Project->Project Options->Compiler->Assignable typed constants.

Dzięki Odysseus

To jest genialne, pomogło jak na razie wszystko się kompiluje :) zobaczymy czy wszystkie przykłady ale to z czasem... :)

A tak jako początkujący programista zapytam... Dlaczego to pomogło, co było przyczyną tego błędu, chciałbym zrozumieć dlaczego program się sypał....

POZDRAWIAM

Pozostało 580 znaków

2006-10-04 22:35
0

Autor książki użył dla ułatwienia const, bo lokalnym zmiennym nie można przypisywać w ten sposób wartości początkowych (globalnym można).

Powyższe ustawienie kompilatora pozwala stałe, którym podało się typ, traktować jak zmienne o wartości początkowej, a nie jako klasyczne stałe. W Delphi 3 o ile się nie mylę, ustawienie to było domyślnie włączone, później z tego zrezygnowano, ponieważ z punktu widzenia inżynierii oprogramowania, nie było to eleganckie rozwiązanie (bo stała z założenia nie powinna się zmieniać), ale widocznie ułatwiało kodowanie (choć mógł przecież ręcznie przypisać wartość na początku procedury).


<font color="red">Konto porzucone</span>

Dzięki wszystkim forumowiczom za lata wspólnych dyskusji; miłej zabawy w programowanie!
Sławomir 'Szczawik' Włodkowski

Pozostało 580 znaków

2006-10-22 21:38
0

Sorki za offtop, (dawno tu nie zaglądałem) ale uznałem że trzeba by nieco sprostować sprawę.

Deklaracja w procedurze/funkcji

const
 identyfikator:typ=wartosc;

to nie stała, tylko zmienna statyczna, która nie traci wartości po zwolnieniu pamięci przydzielonej dla funkcji. Podczas pierwszego wywołania procedury/funkcji jest inicjowana z określoną wartością.


Nie łam się, i tak ktoś zrobił to za ciebie
<hr style="color: #B10C0C; width: 10%; margin-left: 0" />
LUDZIE goto NIE UŻYWA SIĘ WSZĘDZIE GDZIE MOŻNA, TYLKO TAM GDZIE TRZEBA

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0