początkowych z zakresu i zaobserwujesz to samo. Przeprowadźmy teraz ciekawy eksperyment. Zmień wiersz liczący kolejny wyraz ciągu na:
Wartość 2*Wartosc*Wartosc-l;
Ciąg, który teraz będziemy rozpatrywać, ma postać: xn+i = 2xn2-l, czyli niewiele bardziej skomplikowaną. Uruchom program dla kilku różnych danych i... nie próbuj szukać porządku w wynikach. Właśnie otarłeś się o Chaos...
■ i c z e
W pierwszej kolejności wczytamy, ile liczb chce podać użytkownik. Sprawdzimy, czy wpisana wartość jest poprawna i jeżeli tak — wykorzystamy ją jako górne ograniczenie liczby iteracji. Aby policzyć średnią, program musi pamiętać jedynie sumę wpisanych wyrazów. Po wpisaniu wszystkich po prostu podzieli ją przez liczbę składników.
program cw3_35;
{ Program oblicza średnia N podanych przez użytkownika liczb. }
{ Katalog r3_08 : 3_35.pas }
const
Suma : Real - 0; var
Liczba, 1 : Byte;
Wartość : Real;
begin
Write ('Podaj liczbę liczb: '); Readln (Liczba); if (Liczba<l) then
Writeln ('Nie można policzyć średniej Liczba, ' liczb.') else begin
for I 1 to Liczba do begin
Write ('Podaj liczbę ', I, ': '); Readln (Wartość);
Suma Suma + Wartość; end;
Writeln ('Średnia podanych Liczba, ' liczb to: ',
Suma/Liczba:10:2);
end;
Readln; end.
Zauważ, że zmienną Suma zadeklarowaliśmy z określoną wartością początkową (zgodnie z tym, co pisałem w podrozdziale 3.4, odbywa się to w sekcji const).
UCZENIE
3.36
Zerknijmy do ćwiczeń 1.8 i 2.5. Na szczęście nie wiemy na razie, jak rozwiązać problem rekurencyjnie. Zrobimy to więc iteracyjnie, czyli w jedyny dobry sposób (w ćwiczeniu 3.61 będziesz mógł zobaczyć, jak pracuje rekurencyjna wersja tego programu).