PODSTAWY PROGRAMOWANIA

Laboratorium

Temat 3: Zastosowania instrukcji powtarzających

Zadania do wykonania:

  1. Narysuj na ekranie ramkę o zadanych współrzędnych lewego górnego oraz prawego dolnego rogu.

  2. Wprowadź z klawiatury N liczb i oblicz ich średnią wartość.

  3. Stosując funkcję Readkey, wpisz z klawiatury na ekran pionowo, w wyznaczonej kolumnie, swoje imię i nazwisko.

  4. Napisz program, który generuje i wyprowadza na ekran 100 nieparzystych liczb losowych z przedziału A..B.

  5. Napisz program, który wypisuje na ekranie tablicę wartości pierwiastków kwadratowych z kolejnych liczb naturalnych 1, 2, 3, … 20.

  6. Oblicz metodą prostokątów przybliżoną wartość całki z funkcji y=sin(x) w przedziale od 0 do π.

  7. Oblicz wartość pierwiastka kwadratowego z X metodą iteracyjną Newtona.

  8. Oblicz dziesiętną wartość wprowadzonej z klawiatury czterocyfrowej liczby szesnastkowej. Liczbę wprowadzaj znakowo, cyfra po cyfrze, za pomocą Readkey.

  9. Znajdź binarny zapis danej liczby dziesiętnej.

  10. Znajdź przybliżoną wartość sumy szeregu: 1+1/3+1/5+1/7 + …

  11. Oblicz i wyprowadź na ekran N kolejnych wyrazów szeregu Fibonacci: 1, 1, 2, 3, 5, 8, 13, 21, …

  12. 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.