• Nie Znaleziono Wyników

Podstawy programowania

N/A
N/A
Protected

Academic year: 2021

Share "Podstawy programowania"

Copied!
23
0
0

Pełen tekst

(1)

Podstawy programowania

Przywieszka I

Ręczna symulacja

Robert Muszyński KCiR EKA PWr

– Skład FoilTEX –

(2)

Ręczna symulacja

Przykład: zamiana wartości zmiennych A i B

'

&

$

%

A := 5;

B := 10;

A := B;

B := A;

W celu przeprowadzenia ręcznej symulacji należy:

(3)

Wyrażenia i instrukcje, złożoność obliczeniowa ←- ,→ 1

Ręczna symulacja

Przykład: zamiana wartości zmiennych A i B

'

&

$

%

1 A := 5;

2 B := 10;

3 A := B;

4 B := A;

W celu przeprowadzenia ręcznej symulacji należy:

• Ponumerować wszystkie linie badanego fragmentu programu,

– Skład FoilTEX –

(4)

Ręczna symulacja

Przykład: zamiana wartości zmiennych A i B

'

&

$

%

1 A := 5;

2 B := 10;

3 A := B;

4 B := A;

nr linii A B . . . Uwagi

? ?

W celu przeprowadzenia ręcznej symulacji należy:

• Ponumerować wszystkie linie badanego fragmentu programu,

• Utworzyć tabelkę z wszystkimi zmiennymi występującymi w analizowanym fragmencie pro- gramu (przyjmując ich początkowe wartości jako nieznane, jeśli takie są)

(5)

Wyrażenia i instrukcje, złożoność obliczeniowa ←- ,→ 1

Ręczna symulacja

Przykład: zamiana wartości zmiennych A i B

'

&

$

%

1 A := 5;

2 B := 10;

3 A := B;

4 B := A;

nr linii A B . . . Uwagi

? ?

1 5

W celu przeprowadzenia ręcznej symulacji należy:

• Ponumerować wszystkie linie badanego fragmentu programu,

• Utworzyć tabelkę z wszystkimi zmiennymi występującymi w analizowanym fragmencie pro- gramu (przyjmując ich początkowe wartości jako nieznane, jeśli takie są)

• Wykonywać kolejne instrukcje programu odnotowując powodowane przez nie zmiany w ta- belce

– Skład FoilTEX –

(6)

Ręczna symulacja

Przykład: zamiana wartości zmiennych A i B

'

&

$

%

1 A := 5;

2 B := 10;

3 A := B;

4 B := A;

nr linii A B . . . Uwagi

? ?

1 5

2 10

W celu przeprowadzenia ręcznej symulacji należy:

• Ponumerować wszystkie linie badanego fragmentu programu,

• Utworzyć tabelkę z wszystkimi zmiennymi występującymi w analizowanym fragmencie pro- gramu (przyjmując ich początkowe wartości jako nieznane, jeśli takie są)

• Wykonywać kolejne instrukcje programu odnotowując powodowane przez nie zmiany w ta- belce

(7)

Wyrażenia i instrukcje, złożoność obliczeniowa ←- ,→ 1

Ręczna symulacja

Przykład: zamiana wartości zmiennych A i B

'

&

$

%

1 A := 5;

2 B := 10;

3 A := B;

4 B := A;

nr linii A B . . . Uwagi

? ?

1 5

2 10

3 10

W celu przeprowadzenia ręcznej symulacji należy:

• Ponumerować wszystkie linie badanego fragmentu programu,

• Utworzyć tabelkę z wszystkimi zmiennymi występującymi w analizowanym fragmencie pro- gramu (przyjmując ich początkowe wartości jako nieznane, jeśli takie są)

• Wykonywać kolejne instrukcje programu odnotowując powodowane przez nie zmiany w ta- belce

– Skład FoilTEX –

(8)

Ręczna symulacja

Przykład: zamiana wartości zmiennych A i B

'

&

$

%

1 A := 5;

2 B := 10;

3 A := B;

4 B := A;

nr linii A B . . . Uwagi

? ?

1 5

2 10

3 10

4 10

W celu przeprowadzenia ręcznej symulacji należy:

• Ponumerować wszystkie linie badanego fragmentu programu,

• Utworzyć tabelkę z wszystkimi zmiennymi występującymi w analizowanym fragmencie pro- gramu (przyjmując ich początkowe wartości jako nieznane, jeśli takie są)

• Wykonywać kolejne instrukcje programu odnotowując powodowane przez nie zmiany w ta- belce

(9)

Wyrażenia i instrukcje, złożoność obliczeniowa ←- ,→ 1

Ręczna symulacja

Przykład: zamiana wartości zmiennych A i B

'

&

$

%

1 A := 5;

2 B := 10;

3 A := B;

4 B := A;

nr linii A B . . . Uwagi

? ?

1 5

2 10

3 10

4 10

W celu przeprowadzenia ręcznej symulacji należy:

• Ponumerować wszystkie linie badanego fragmentu programu,

• Utworzyć tabelkę z wszystkimi zmiennymi występującymi w analizowanym fragmencie pro- gramu (przyjmując ich początkowe wartości jako nieznane, jeśli takie są)

• Wykonywać kolejne instrukcje programu odnotowując powodowane przez nie zmiany w ta- belce

– Skład FoilTEX –

(10)

& %

pierwsza = 1; /* zakladamy, ze tak */

dzielnik = 2;

while (pierwsza && dzielnik <= N / 2) if (n % dzielnik == 0)

pierwsza = 0; /* jednak nie */

else dzielnik += 1; /* kolejny dzielnik */

...

(11)

Wyrażenia i instrukcje, złożoność obliczeniowa ←- ,→ 2

'

&

$

%

1 n = 27; /* test czy n jest liczba pierwsza */

2 pierwsza = 1; /* zakladamy, ze tak */

3 dzielnik = 2;

4 while (pierwsza && dzielnik <= N / 2) 5 if (n % dzielnik == 0)

6 pierwsza = 0; /* jednak nie */

7 else dzielnik += 1; /* kolejny dzielnik */

8 ...

– Skład FoilTEX –

(12)

& %

1

2 pierwsza = 1; /* zakladamy, ze tak */

3 dzielnik = 2;

4 while (pierwsza && dzielnik <= N / 2) 5 if (n % dzielnik == 0)

6 pierwsza = 0; /* jednak nie */

7 else dzielnik += 1; /* kolejny dzielnik */

8 ...

nr linii n pierwsza dzielnik uwagi

? ? ?

(13)

Wyrażenia i instrukcje, złożoność obliczeniowa ←- ,→ 2

'

&

$

%

1 n = 27; /* test czy n jest liczba pierwsza */

2 pierwsza = 1; /* zakladamy, ze tak */

3 dzielnik = 2;

4 while (pierwsza && dzielnik <= N / 2) 5 if (n % dzielnik == 0)

6 pierwsza = 0; /* jednak nie */

7 else dzielnik += 1; /* kolejny dzielnik */

8 ...

nr linii n pierwsza dzielnik uwagi

? ? ?

1 27

– Skład FoilTEX –

(14)

& %

1

2 pierwsza = 1; /* zakladamy, ze tak */

3 dzielnik = 2;

4 while (pierwsza && dzielnik <= N / 2) 5 if (n % dzielnik == 0)

6 pierwsza = 0; /* jednak nie */

7 else dzielnik += 1; /* kolejny dzielnik */

8 ...

nr linii n pierwsza dzielnik uwagi

? ? ?

1 27

2 1

(15)

Wyrażenia i instrukcje, złożoność obliczeniowa ←- ,→ 2

'

&

$

%

1 n = 27; /* test czy n jest liczba pierwsza */

2 pierwsza = 1; /* zakladamy, ze tak */

3 dzielnik = 2;

4 while (pierwsza && dzielnik <= N / 2) 5 if (n % dzielnik == 0)

6 pierwsza = 0; /* jednak nie */

7 else dzielnik += 1; /* kolejny dzielnik */

8 ...

nr linii n pierwsza dzielnik uwagi

? ? ?

1 27

2 1

3 2

– Skład FoilTEX –

(16)

& %

1

2 pierwsza = 1; /* zakladamy, ze tak */

3 dzielnik = 2;

4 while (pierwsza && dzielnik <= N / 2) 5 if (n % dzielnik == 0)

6 pierwsza = 0; /* jednak nie */

7 else dzielnik += 1; /* kolejny dzielnik */

8 ...

nr linii n pierwsza dzielnik uwagi

? ? ?

1 27

2 1

3 2

4 warunek w while: PRAWDA

(17)

Wyrażenia i instrukcje, złożoność obliczeniowa ←- ,→ 2

'

&

$

%

1 n = 27; /* test czy n jest liczba pierwsza */

2 pierwsza = 1; /* zakladamy, ze tak */

3 dzielnik = 2;

4 while (pierwsza && dzielnik <= N / 2) 5 if (n % dzielnik == 0)

6 pierwsza = 0; /* jednak nie */

7 else dzielnik += 1; /* kolejny dzielnik */

8 ...

nr linii n pierwsza dzielnik uwagi

? ? ?

1 27

2 1

3 2

4 warunek w while: PRAWDA

5 warunek w if: FAŁSZ

– Skład FoilTEX –

(18)

& %

1

2 pierwsza = 1; /* zakladamy, ze tak */

3 dzielnik = 2;

4 while (pierwsza && dzielnik <= N / 2) 5 if (n % dzielnik == 0)

6 pierwsza = 0; /* jednak nie */

7 else dzielnik += 1; /* kolejny dzielnik */

8 ...

nr linii n pierwsza dzielnik uwagi

? ? ?

1 27

2 1

3 2

4 warunek w while: PRAWDA

5 warunek w if: FAŁSZ

7 3

(19)

Wyrażenia i instrukcje, złożoność obliczeniowa ←- ,→ 2

'

&

$

%

1 n = 27; /* test czy n jest liczba pierwsza */

2 pierwsza = 1; /* zakladamy, ze tak */

3 dzielnik = 2;

4 while (pierwsza && dzielnik <= N / 2) 5 if (n % dzielnik == 0)

6 pierwsza = 0; /* jednak nie */

7 else dzielnik += 1; /* kolejny dzielnik */

8 ...

nr linii n pierwsza dzielnik uwagi

? ? ?

1 27

2 1

3 2

4 warunek w while: PRAWDA

5 warunek w if: FAŁSZ

7 3

4 warunek w while: PRAWDA

– Skład FoilTEX –

(20)

& %

1

2 pierwsza = 1; /* zakladamy, ze tak */

3 dzielnik = 2;

4 while (pierwsza && dzielnik <= N / 2) 5 if (n % dzielnik == 0)

6 pierwsza = 0; /* jednak nie */

7 else dzielnik += 1; /* kolejny dzielnik */

8 ...

nr linii n pierwsza dzielnik uwagi

? ? ?

1 27

2 1

3 2

4 warunek w while: PRAWDA

5 warunek w if: FAŁSZ

7 3

4 warunek w while: PRAWDA

5 warunek w if: PRAWDA

(21)

Wyrażenia i instrukcje, złożoność obliczeniowa ←- ,→ 2

'

&

$

%

1 n = 27; /* test czy n jest liczba pierwsza */

2 pierwsza = 1; /* zakladamy, ze tak */

3 dzielnik = 2;

4 while (pierwsza && dzielnik <= N / 2) 5 if (n % dzielnik == 0)

6 pierwsza = 0; /* jednak nie */

7 else dzielnik += 1; /* kolejny dzielnik */

8 ...

nr linii n pierwsza dzielnik uwagi

? ? ?

1 27

2 1

3 2

4 warunek w while: PRAWDA

5 warunek w if: FAŁSZ

7 3

4 warunek w while: PRAWDA

5 warunek w if: PRAWDA

6 0

– Skład FoilTEX –

(22)

& %

1

2 pierwsza = 1; /* zakladamy, ze tak */

3 dzielnik = 2;

4 while (pierwsza && dzielnik <= N / 2) 5 if (n % dzielnik == 0)

6 pierwsza = 0; /* jednak nie */

7 else dzielnik += 1; /* kolejny dzielnik */

8 ...

nr linii n pierwsza dzielnik uwagi

? ? ?

1 27

2 1

3 2

4 warunek w while: PRAWDA

5 warunek w if: FAŁSZ

7 3

4 warunek w while: PRAWDA

5 warunek w if: PRAWDA

6 0

4 warunek w while: FAŁSZ

(23)

Wyrażenia i instrukcje, złożoność obliczeniowa ←- ,→ 2

'

&

$

%

1 n = 27; /* test czy n jest liczba pierwsza */

2 pierwsza = 1; /* zakladamy, ze tak */

3 dzielnik = 2;

4 while (pierwsza && dzielnik <= N / 2) 5 if (n % dzielnik == 0)

6 pierwsza = 0; /* jednak nie */

7 else dzielnik += 1; /* kolejny dzielnik */

8 ...

nr linii n pierwsza dzielnik uwagi

? ? ?

1 27

2 1

3 2

4 warunek w while: PRAWDA

5 warunek w if: FAŁSZ

7 3

4 warunek w while: PRAWDA

5 warunek w if: PRAWDA

6 0

4 warunek w while: FAŁSZ

8

– Skład FoilTEX –

Cytaty

Powiązane dokumenty

• Wyświetl ekran logowania, pobierz login i hasło,. • Poprawny login: admin, poprawne

• Tablice tworzone na stosie jako zmienne lokalne muszą być deklarowane z rozmiarem, który jest znany w czasie kompilacji. • Tam gdzie widoczna jest deklaracja tablicy tab, nazwa

Każdy program powinien zawierać informację o przeznaczeniu oraz sprawdzać czy użytkownik wpisuje dobre dane (do momentu wpisania przez użytkownika poprawnej wartości ma

Jest jednak kilka istotnych różnic pomiędzy referencją a wskaźnikiem: po pierwsze referencja tuż przy swoim powstaniu musi wiedzieć na co ona będzie referencją, wskaźnik

(2) referencja przez całe swoje istnienie jest referencją dla jednej i tej samej zmiennej i nie da się tego zmienić w trakcie działania programu, zaś wskaźnik może zmieniać

wysokość drzewa – długość najdłuższej ścieżki drzewa waga drzewa – całkowita liczba węzłów w

Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada 80–20, ocena efektywności algo- rytmów, ocena złożoności

• Kod źródłowy napisany w języku Python najpierw kompilowany jest do postaci pośredniej (byte-code), która następnie wykonywana jest przez wirtualną maszynę Python'a