PODSTAWY PROGRAMOWANIA
Laboratorium
Temat 3: Zastosowania instrukcji powtarzających
Zadania do wykonania:
Narysuj na ekranie ramkę o zadanych współrzędnych lewego górnego oraz prawego dolnego rogu.
Wprowadź z klawiatury N liczb i oblicz ich średnią wartość.
Stosując funkcję Readkey, wpisz z klawiatury na ekran pionowo, w wyznaczonej kolumnie, swoje imię i nazwisko.
Napisz program, który generuje i wyprowadza na ekran 100 nieparzystych liczb losowych z przedziału A..B.
Napisz program, który wypisuje na ekranie tablicę wartości pierwiastków kwadratowych z kolejnych liczb naturalnych 1, 2, 3, … 20.
Oblicz metodą prostokątów przybliżoną wartość całki z funkcji y=sin(x) w przedziale od 0 do π.
Oblicz wartość pierwiastka kwadratowego z X metodą iteracyjną Newtona.
Oblicz dziesiętną wartość wprowadzonej z klawiatury czterocyfrowej liczby szesnastkowej. Liczbę wprowadzaj znakowo, cyfra po cyfrze, za pomocą Readkey.
Znajdź binarny zapis danej liczby dziesiętnej.
Znajdź przybliżoną wartość sumy szeregu: 1+1/3+1/5+1/7 + …
Oblicz i wyprowadź na ekran N kolejnych wyrazów szeregu Fibonacci: 1, 1, 2, 3, 5, 8, 13, 21, …
Napisz program, który podnosi liczbę rzeczywistą X do potęgi W. (W jest całkowite, ujemne lub dodatnie)
Uwaga: Wszystkie zadania należy rozwiązać w trzech wersjach, z zastosowaniem różnych instrukcji powtarzających.
Materiał pomocniczy
1 Instrukcja while-do
Poniżej podano przykład zastosowania instrukcji while-do do znalezienia sumy początkowych liczb naturalnych: 1 + 2 + … + N.
Suma:=0; J:=1;
while J<=N do begin
Suma:=Suma+J;
J:=J+1;
end;
Zmienna Suma służy do pamiętania przejściowej i ostatecznej wartości szukanej sumy liczb. Przed rozpoczęciem obliczeń musi być wyzerowana.
Zmienna J, o wartości początkowej 1, służy jako licznik kroków. Zmienna ta jest w każdym kroku, za pomocą instrukcji J:=J+1, zwiększana o 1, przyjmując kolejno wartości 2, 3, 4 itd, Zmienna J jest jednocześnie wykorzystana jako argument, dodawany do sumy cząstkowej za pomocą instrukcji Suma:=Suma+J.
Warunkiem kontynuacji powtarzania dwóch instrukcja wewnętrznych jest tutaj J<=N. Instrukcja while-do zakończy swoje działanie, gdy w kolejnym kroku obliczeń zmienna J przyjmie wartość N+1. Ta wartość nie zostanie już dodana do sumy przejściowej.
2. Instrukcja repeat-until
To samo zadanie, które wykonuje pokazana powyżej instrukcja while-do, można wykonać za pomocą instrukcji powtarzającej repeat-until.
Suma:=0; J:=1;
repeat
Suma:=Suma+J;
J:=J+1;
until J>N;
W tym przypadku warunek jest sprawdzany nie na początku, lecz na końcu każdego kroku obliczeń. W pętli while-do występował warunek kontynuacji działania instrukcji powtarzającej, tutaj natomiast mamy warunek zakończenia instrukcji. Ponieważ ostatnią dodaną do sumy przejściowej liczbą jest N, warunek zakończenia ma postać J>N.
3. Instrukcje for-to-do oraz for-downto-do
Zadanie sumowania N początkowych liczb naturalnych można także wykonać za pomocą instrukcji for:
Suma:=0;
for J:=1 to N do begin
Suma:=Suma+J;
end;
W tym przypadku zmienna J jest inicjowana wartością 1 po słowie for. Przyrost wartości J o 1 jest wykonywany samoczynnie po zakończeniu każdego kolejnego kroku instrukcji. Warunkiem zakończenia instrukcji jest J=N+1, zatem ostatnią dodaną do sumy przejściowej liczbą będzie liczba N.
Ten sam rezultat można uzyskać, dodając liczby w porządku odwrotnym: N, N-1, N-2 …, 1. Wtedy trzeba by było zastosować inną wersję instrukcji for, w której zamiast słowa to występuje słowo downto. W tego typu instrukcji zmienna sterująca J nie przyrasta po każdym kroku, lecz jest automatycznie zmniejszana o jeden. Warunkiem zakończenia jest tutaj J=0. Poniżej pokazano odpowiednią postać instrukcji;
Suma:=0;
for J:=N downto 1 do begin
Suma:=Suma+J;
end;
Pamiętajmy, że jako zmienna wpisana po słowie for (tzw. zmienna sterująca) może być użyta tylko zmienna typu porządkowego (całkowitoliczbowego, znakowego, logicznego). Najczęściej stosowanym typem zmiennej sterującej jest Integer.