Algorytmy i struktury danych
Algorytmy z powtórzeniami (Pętle)
Laboratorium 2
1. Pętla while
Kod w C++
Schemat blokowy
while(wyraz_war)
{
instrukcje
}
Przykład
Kod w C++
Schemat blokowy
n=50;
while (n<=1000)
{
n=2*n;
}
2.
Pętla for
Kod w C++
Schemat blokowy
for(instr_pocz; wyraz_warun; instr_krok)
{
instrukcje
}
Wyjaśnienie, oznaczeń w kodzie:
instr_pocz – jest to instrukcja wykonywana zanim
pętla zostanie po raz pierwszy uruchomiona.
wyraz_warun – jest to wyrażenie, które obliczane jest
przed każdym obiegiem pętli. Jeśli jest ono różne od
zera, to wykonywane zostają instrukcje będące
treścią pętli.
instr_krok –instrukcja wykonywana na zakończenie
każdego obiegu pętli. Jest to ostatnia instrukcja,
wykonywana bezpośrednio przed obliczeniem
wyrażenia wyraz_warun.
instrukcje – jedna lub więcej instrukcji.
wyraz_war
instrukcje
instr_pocz
tak
nie
instr_krok
wyraz_war
instrukcje
nie
tak
n<=1000
n=2*n
nie
tak
n=50
Algorytmy i struktury danych
Algorytmy z powtórzeniami (Pętle)
Laboratorium 2
Przykład
Kod w C++
Schemat blokowy
for (i = 0; i < 10; i++)
{
cout<<”Witam ! ”;
}
3. Pętla do...while
Kod w C++
Schemat blokowy
do
{
instrukcje
}
while(wyraz_war);
Przykład
Kod w C++
Schemat blokowy
int c = 1;
do
{
cout << c << „ ”;
c++;
}
while (c <= 10);
i < 10
i = 0
tak
i++
nie
wypisz(
”Witam”)
wyraz_war
instrukcje
tak
nie
c=c+1
tak
nie
c=1
cout<<c<<
” ”
c<=10
Algorytmy i struktury danych
Algorytmy z powtórzeniami (Pętle)
Laboratorium 2
1. Określ jaką wartość będzie mieć zmienna m po wykonaniu następującego algorytmu:
2. Zapisz poniższy fragment algorytmu w pseudokodzie. Przeanalizuj działanie tego algorytmu.
3. Zapisz poniższy fragment algorytmu w pseudokodu. Przeanalizuj działanie programu.
i < n
start
s = 0
n = 3
i = 1
stop
s = s + i
i = i + 1
tak
nie
wypisz(s)
4. Zaproponuj algorytm wczytywania ciągu dziesięciu liczb całkowitych i wyznaczania ilości
liczb ujemnych w tym ciągu.
5. Zaproponuj algorytm obliczania liczby a do potęgi n (liczby a i n są wczytywane z klawiatury).
6. Napisz algorytm wczytywania ciągu liczb aż do momentu, gdy suma liczb dodatnich w tym
ciągu przekroczy wartość 10.
START
m=1
n=2
p=0
p<10
T
N
p=p+1
m=m*n
wypisz(m)
STOP
x=x+m
m=m+1
wypisz( x)
m=1
x=0
tak
nie
m<5