czynników wielomianu; pozostaje mieć nadzieję, że nigdy to nie nastąpi). Wykorzystamy pętlę repeat... until, która będzie wczytywała dane i wykonywała kolejne obliczenia, aż do napotkania danych kończących (10e8).
program cw3_46;
{ Program oblicza wartość wielomianu za pomocą }
{ schematu Homera. j
{ Katalog r3_09 : 3_46.pas }
var
X, W : Real;
Wartość : Real;
begin
Write ('Podaj argument X: '); Readln (X);
Wartość 0; repeat
Write ('Podaj kolejny współczynnik wielomianu: '); Readln (W); if (W«10e8) then
Wartość Wartosc*X + W; until (W - 10e8);
Writeln ('Wartość wielomianu w punkcie ', X:0:2, ' wynosi ',
Wartość:0:2);
Readln end.
Przetestuj program dla różnych danych. Równocześnie na kartce zapisuj wielomian w zwykłej postaci, aby móc sprawdzić obliczenia.
Proszę zwrócić uwagę na dziwne formatowanie wypisywanych zmiennych X i Wartość. Zapis : 0:2 oznacza, że liczbę należy wypisać na najmniejszej koniecznej liczbie znaków z dwoma miejscami po przecinku. Taki sposób formatowania jest bardzo wygodny i często stosowany.
Zauważ, że gdybyśmy z góry znali liczbę współczynników wielomianu (na przykład wczytali je na początku programu), można by użyć pętli for. Pozwoliłoby nam to na uniknięcie znacznika końca (10e8) oraz na wypisywanie potęgi X-a wczytywanego współczynnika (co pomogłoby użytkownikowi unikać pomyłek przy wpisywaniu).
Kilkakrotnie mieliśmy możliwość korzystania z funkcji, których dostarcza Pascal. Przypomnę tylko: Sin, Copy, Concat, Suce, Upcase. Jakże praktyczna byłaby możliwość definiowania własnych. Wyobraźmy sobie, że tworzymy program, który wymaga obliczania największego wspólnego podzielnika dwóch liczb wielokrotnie, w różnych miejscach. Czy naprawdę musimy powtarzać ten sam tekst?
Również wtedy, gdy często liczymy silnię, albo sprawdzamy, czy liczba jest pierwsza.
Mam dobrą informację: nie trzeba powtarzać tekstu programu. Można napisać go raz, dobrze przetestować i stworzyć z niego własną funkcję.
Definicja funkcji występuje w bloku deklaracji i ma następującą postać: