Ręczna symulacja
Transkrypt
Ręczna symulacja
Podstawy programowania Przywieszka I Ręczna symulacja Robert Muszyński ZPCiR IIAiR PWr – Skład FoilTEX – ←- ,→ 1 Wyrażenia i instrukcje, złożoność obliczeniowa 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: – Skład FoilTEX – ←- ,→ 1 Wyrażenia i instrukcje, złożoność obliczeniowa Ręczna symulacja Przykład: zamiana wartości zmiennych A i B ' $ 1 2 A := 5; B := 10; 3 4 A := B; B := A; & % W celu przeprowadzenia ręcznej symulacji należy: • Ponumerować wszystkie linie badanego fragmentu programu, – Skład FoilTEX – ←- ,→ 1 Wyrażenia i instrukcje, złożoność obliczeniowa Ręczna symulacja Przykład: zamiana wartości zmiennych A i B ' $ 1 2 A := 5; B := 10; 3 4 A := B; 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 programu (przyjmując ich początkowe wartości jako nieznane, jeśli takie są) – Skład FoilTEX – ←- ,→ 1 Wyrażenia i instrukcje, złożoność obliczeniowa Ręczna symulacja Przykład: zamiana wartości zmiennych A i B ' $ 1 2 A := 5; B := 10; 3 4 A := B; B := A; & nr linii 1 A ? 5 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 programu (przyjmując ich początkowe wartości jako nieznane, jeśli takie są) • Wykonywać kolejne instrukcje programu odnotowując powodowane przez nie zmiany w tabelce – Skład FoilTEX – ←- ,→ 1 Wyrażenia i instrukcje, złożoność obliczeniowa Ręczna symulacja Przykład: zamiana wartości zmiennych A i B ' $ 1 2 A := 5; B := 10; 3 4 A := B; B := A; & nr linii 1 2 A ? 5 B ? ... Uwagi 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 programu (przyjmując ich początkowe wartości jako nieznane, jeśli takie są) • Wykonywać kolejne instrukcje programu odnotowując powodowane przez nie zmiany w tabelce – Skład FoilTEX – ←- ,→ 1 Wyrażenia i instrukcje, złożoność obliczeniowa Ręczna symulacja Przykład: zamiana wartości zmiennych A i B ' $ 1 2 A := 5; B := 10; 3 4 A := B; B := A; & nr linii 1 2 3 A ? 5 B ? ... Uwagi 10 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 programu (przyjmując ich początkowe wartości jako nieznane, jeśli takie są) • Wykonywać kolejne instrukcje programu odnotowując powodowane przez nie zmiany w tabelce – Skład FoilTEX – ←- ,→ 1 Wyrażenia i instrukcje, złożoność obliczeniowa Ręczna symulacja Przykład: zamiana wartości zmiennych A i B ' $ 1 2 A := 5; B := 10; 3 4 A := B; B := A; & % nr linii 1 2 3 4 A ? 5 B ? ... Uwagi 10 10 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 programu (przyjmując ich początkowe wartości jako nieznane, jeśli takie są) • Wykonywać kolejne instrukcje programu odnotowując powodowane przez nie zmiany w tabelce – Skład FoilTEX – ←- ,→ 1 Wyrażenia i instrukcje, złożoność obliczeniowa Ręczna symulacja Przykład: zamiana wartości zmiennych A i B ' $ 1 2 A := 5; B := 10; 3 4 A := B; B := A; & % nr linii 1 2 3 4 A ? 5 B ? ... Uwagi 10 10 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 programu (przyjmując ich początkowe wartości jako nieznane, jeśli takie są) • Wykonywać kolejne instrukcje programu odnotowując powodowane przez nie zmiany w tabelce – Skład FoilTEX – Wyrażenia i instrukcje, złożoność obliczeniowa $ ' n = 27; /* test czy n jest liczba pierwsza 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 ... & */ */ */ */ % – Skład FoilTEX – ←- ,→ 2 Wyrażenia i instrukcje, złożoność obliczeniowa $ ' 1 2 3 4 5 6 7 8 n = 27; /* test czy n jest liczba pierwsza 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 ... & */ */ */ */ % – Skład FoilTEX – ←- ,→ 2 Wyrażenia i instrukcje, złożoność obliczeniowa $ ' 1 2 3 4 5 6 7 8 n = 27; /* test czy n jest liczba pierwsza 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 ... & nr linii */ */ */ */ % n ? pierwsza ? dzielnik ? uwagi – Skład FoilTEX – ←- ,→ 2 Wyrażenia i instrukcje, złożoność obliczeniowa $ ' 1 2 3 4 5 6 7 8 n = 27; /* test czy n jest liczba pierwsza 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 ... & nr linii 1 */ */ */ */ % n ? 27 pierwsza ? dzielnik ? uwagi – Skład FoilTEX – ←- ,→ 2 Wyrażenia i instrukcje, złożoność obliczeniowa $ ' 1 2 3 4 5 6 7 8 n = 27; /* test czy n jest liczba pierwsza 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 ... & nr linii 1 2 */ */ */ */ % n ? 27 pierwsza ? dzielnik ? uwagi 1 – Skład FoilTEX – ←- ,→ 2 Wyrażenia i instrukcje, złożoność obliczeniowa $ ' 1 2 3 4 5 6 7 8 n = 27; /* test czy n jest liczba pierwsza 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 ... & nr linii 1 2 3 */ */ */ */ % n ? 27 pierwsza ? dzielnik ? uwagi 1 2 – Skład FoilTEX – ←- ,→ 2 Wyrażenia i instrukcje, złożoność obliczeniowa $ ' 1 2 3 4 5 6 7 8 n = 27; /* test czy n jest liczba pierwsza 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 ... & nr linii 1 2 3 4 */ */ */ */ % n ? 27 pierwsza ? dzielnik ? uwagi 1 2 warunek w while: PRAWDA – Skład FoilTEX – ←- ,→ 2 Wyrażenia i instrukcje, złożoność obliczeniowa $ ' 1 2 3 4 5 6 7 8 n = 27; /* test czy n jest liczba pierwsza 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 ... & nr linii 1 2 3 4 5 */ */ */ */ % n ? 27 pierwsza ? dzielnik ? uwagi 1 2 warunek w while: PRAWDA warunek w if: FAŁSZ – Skład FoilTEX – ←- ,→ 2 Wyrażenia i instrukcje, złożoność obliczeniowa $ ' 1 2 3 4 5 6 7 8 n = 27; /* test czy n jest liczba pierwsza 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 ... & nr linii 1 2 3 4 5 7 */ */ */ */ % n ? 27 pierwsza ? dzielnik ? uwagi 1 2 warunek w while: PRAWDA warunek w if: FAŁSZ 3 – Skład FoilTEX – ←- ,→ 2 Wyrażenia i instrukcje, złożoność obliczeniowa $ ' 1 2 3 4 5 6 7 8 n = 27; /* test czy n jest liczba pierwsza 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 ... & nr linii 1 2 3 4 5 7 4 */ */ */ */ % n ? 27 pierwsza ? dzielnik ? uwagi 1 2 warunek w while: PRAWDA warunek w if: FAŁSZ 3 warunek w while: PRAWDA – Skład FoilTEX – ←- ,→ 2 Wyrażenia i instrukcje, złożoność obliczeniowa $ ' 1 2 3 4 5 6 7 8 n = 27; /* test czy n jest liczba pierwsza 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 ... & nr linii 1 2 3 4 5 7 4 5 */ */ */ */ % n ? 27 pierwsza ? dzielnik ? uwagi 1 2 warunek w while: PRAWDA warunek w if: FAŁSZ 3 warunek w while: PRAWDA warunek w if: PRAWDA – Skład FoilTEX – ←- ,→ 2 Wyrażenia i instrukcje, złożoność obliczeniowa $ ' 1 2 3 4 5 6 7 8 n = 27; /* test czy n jest liczba pierwsza 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 ... & nr linii 1 2 3 4 5 7 4 5 6 */ */ */ */ % n ? 27 pierwsza ? dzielnik ? uwagi 1 2 warunek w while: PRAWDA warunek w if: FAŁSZ 3 warunek w while: PRAWDA warunek w if: PRAWDA 0 – Skład FoilTEX – ←- ,→ 2 Wyrażenia i instrukcje, złożoność obliczeniowa $ ' 1 2 3 4 5 6 7 8 n = 27; /* test czy n jest liczba pierwsza 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 ... & nr linii 1 2 3 4 5 7 4 5 6 4 */ */ */ */ % n ? 27 pierwsza ? dzielnik ? uwagi 1 2 warunek w while: PRAWDA warunek w if: FAŁSZ 3 warunek w while: PRAWDA warunek w if: PRAWDA 0 warunek w while: FAŁSZ – Skład FoilTEX – ←- ,→ 2 Wyrażenia i instrukcje, złożoność obliczeniowa $ ' 1 2 3 4 5 6 7 8 n = 27; /* test czy n jest liczba pierwsza 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 ... & nr linii 1 2 3 4 5 7 4 5 6 4 8 */ */ */ */ % n ? 27 pierwsza ? dzielnik ? uwagi 1 2 warunek w while: PRAWDA warunek w if: FAŁSZ 3 warunek w while: PRAWDA warunek w if: PRAWDA 0 warunek w while: FAŁSZ – Skład FoilTEX – ←- ,→ 2