|
Pierwszą linię programu możemy traktować jako ozdobnik, jednak wymagany przez składnię języka pascal. Każdy program w pascalu musi się zaczynać słowem kluczowym program poprzedzającym nazwę programu, nie wnosi nic do realizacji algorytmu. Trzecia i czwarta linia mają charakter pomocniczy. Wiemy, że nasz algorytm korzysta z trzech zmiennych przechowujących liczby całkowite i trzech zmiennych przechowujących liczby rzeczywiste. W pascalu wszystkie zmienne muszą być zadeklarowane przed rozpoczęciem bloku kodu. Deklarując zmienną musimy podać jakiego typu dane będą w niej przechowywane. Deklaracja zmiennych rozpoczyna się słowem kluczowym var.
Szósta linia zawierająca słowo kluczowe begin odpowiada blokowi startowemu (1) naszego algorytmu.
Linie 7 i 8 realizują operację wejścia/wyjścia (2), w której pobierane są dane wejściowe - liczba losowanych punktów n.
W linii 9 wywołujemy funkcję biblioteki standardowej randomize. Jest to funkcja inicjująca wbudowany generator liczb pseudolosowych przypadkową wartością tworzoną na podstawie aktualnej w momencie wykonania zawartości zegara systemowego. Gdybyśmy nie wywołali tej funkcji program przy każdym uruchomieniu generowałby ten sam ciąg liczb pseudolosowych i w rezultacie dla określonej liczby losowanych punktów otrzymywalibyśmy zawsze ten sam wynik. W każdym programie w pascalu, w którym wykorzystujemy generator liczb pseudolosowych powinniśmy jeszcze przed pierwszym losowaniem raz wywołać funkcję randomize.
W linii 10 zerujemy k - licznik punktów leżących w kole o promieniu 1 (3).
Linia 11 rozpoczyna instrukcję pętli for. Instrukcje zawarte pomiędzy słowami kluczowymi begin i end zostaną wykonane n razy (zmienna sterująca i pętli zmienia się od 1 do n, za każdym razem zwiększając swą wartość o 1). Linia 11 realizuje część punktu (3) algorytmu inicjując na początku zmienną i wartością 1 oraz punkty (7) i (8) algorytmu, zwiększając po każdym wykonaniu instrukcji pętli zmienną sterującą i o 1 i sprawdzając, czy wartość liczby i nie przekroczyła jeszcze górnej granicy pętli (i<=n). Wewnątrz pętli for wykonywana jest zawsze dokładnie jedna instrukcja. Jeżeli potrzebujemy w tym miejscu, tak jak ma to miejsce w naszym przykładzie, więcej instrukcji, musimy je zapisać pomiędzy słowami kluczowymi begin i end jako instrukcję złożoną.
Instrukcje wykonywane w pętli zawarte są w liniach 12 - 14. Dla każdego losowanego punktu najpierw losujemy jego współrzędne x i y - punkt (4) algorytmu. Do losowania wykorzystujemy biblioteczną funkcję random, której wynikiem jest liczba losowa (pseudolosowa) typu double z zakresu od 0 do 1. Następnie w linii 14 sprawdzamy, czy punkt o wylosowanych współrzędnych x, y leży w kole o promieniu 1 (5). Jeśli tak to dalej w tej samej linii po słowie kluczowym then zwiększamy zawartość zmiennej k o 1 (6).
Po zakończeniu pętli zmienna n zawiera całkowitą liczbę wylosowanych punktów (zawartość zmiennej n nie uległa zmianie), a zmienna k zawiera informację o liczbie wylosowanych punktów leżących w kole o promieniu 1.
W linii 16 przypisujemy do zmiennej p przybliżoną wartość liczby π (9), a następnie w linii 17 wypisujemy otrzymany wynik (blok wejścia-wyjścia (10)).
Instrukcja readln w linii 18 nie ma żadnego związku z wykonaniem algorytmu. Służy ona zatrzymaniu programu do czasu naciśnięcia klawisza enter, co zapobiega natychmiastowemu zamknięciu okienka z programem.
Instrukcja end. z linii 19 kończy działanie programu (blok końca algorytmu (11)).