Procedury i funkcje

Robson48
Użytkownik
Użytkownik
Posty: 56
Rejestracja: 14 lis 2009, o 17:16
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 4 razy

Procedury i funkcje

Post autor: Robson48 »

Witam, naczytałem się o procedurach i funkcjach i nadal nie znam różnicy.
Czego nie może zrobić procedura co może funkcja, proszę o jakiś praktyczny przykład, co jest za różnica, przecież procedura też może wypisywać różne wyniki?
Awatar użytkownika
klaustrofob
Użytkownik
Użytkownik
Posty: 1984
Rejestracja: 11 lis 2007, o 07:29
Płeć: Mężczyzna
Lokalizacja: inowrocław
Podziękował: 1 raz
Pomógł: 607 razy

Procedury i funkcje

Post autor: klaustrofob »

funkcja to procedura, która dodatkowo zwraca pewną wartość. możliwe jest zatem przypisanie
zmienna = funkja(jej parametry), czego w przypadku procedury nie wolno zrobić. poza tym nie ma żadnych różnic.
Awatar użytkownika
Althorion
Użytkownik
Użytkownik
Posty: 4541
Rejestracja: 5 kwie 2009, o 18:54
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 9 razy
Pomógł: 662 razy

Procedury i funkcje

Post autor: Althorion »

Nie przywiązuj się do tego podziału. Jest dość sztuczny i w innych językach możesz spotkać się z funkcjami, które nic nie zwracają.
Robson48
Użytkownik
Użytkownik
Posty: 56
Rejestracja: 14 lis 2009, o 17:16
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 4 razy

Procedury i funkcje

Post autor: Robson48 »

Teraz takie pytanko, kiedy w procedurze mogę użyć innej procedury? To jest piszę sobie jedną procedurę, a następnie piszę drugą osobną i czy mogę z tej która jest wyżej skorzystać w tej którą właśnie piszę?
np
procedure poprawnosck (k:integer; var n:integer);
begin
instrukcje
end

procedure costam(bla bla:integer)
begin
instrukcje
poprawnosck(k,n)
instrukcje
end
Awatar użytkownika
Althorion
Użytkownik
Użytkownik
Posty: 4541
Rejestracja: 5 kwie 2009, o 18:54
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 9 razy
Pomógł: 662 razy

Procedury i funkcje

Post autor: Althorion »

Nie powinno być problemu (no, może będzie trzeba zachować kolejność funkcji, nie pamiętam czy w Pascalu można było zrobić deklarację bez definicji). Możesz nawet użyć procedury wewnątrz niej samej.
Robson48
Użytkownik
Użytkownik
Posty: 56
Rejestracja: 14 lis 2009, o 17:16
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 4 razy

Procedury i funkcje

Post autor: Robson48 »

Dziękuję, będę miał jeszcze zapewne dwa pytania. Pierwsze jaka była komenda w wierszu poleceń na zaostrzenie warunków kompilacji. Bo normalnie jest fpc nazwa pliku. A wiem że można zrobić tak by się czepiał wszystkiego dopisuje się jakieś -gcl i coś jeszcze gdzieś.(tak sprawdza mój ćwiczeniowiec programy na zaliczenie). A drugie pytanie będzie jak dojdę do tego fragmentu . Dziękuję wszystkim za pomoc.-- 6 gru 2009, o 16:40 --Jest taka sprawa, BARDZO WAŻNA:
Ponieważ robię program który wypisuje coś do pliku tekstowego i ten jest następnie wczytywany przez ghostscript i tam ma być licznik wykonanych ruchów to jest.
Użytkownik wpisał coś to się robi 1, wpisał znowu no to 2, i teraz jak zrobić tak żeby ta 1 była kasowana i pojawiała się 2 na czystym polu.
W programie użytkownik rysuje łąmaną i ten licznik to ilość odcinków składających się na nią, nie iwem jak do końca to zrobić, najwyżej będę jakoś cheatował.
To wazne bardzo.
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

Procedury i funkcje

Post autor: soku11 »

Opcje fps są np. tutaj:


Co do "ważnej sprawy", to jeśli dobrze zrozumiałem:
Nie da się w pliku "kasować" liczb. Trzeba otworzyć plik, wczytać jego zawartość, zmodyfikować i zapisać jeszcze raz.

Pozdrawiam.
ODPOWIEDZ