Edytuj stronę Odnośniki Fold/unfold all ODT export Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić. ~~NOCACHE~~ ~~REVEAL theme=simple&disableLayout=0&transition=none&controls=1&show_progress_bar=1&build_all_lists=0&show_image_borders=0&horizontal_slide_level=2&enlarge_vertical_slide_headers=0&show_slide_details=1&open_in_new_window=1&size=1024x768~~ <html> <style type="text/css"> p { text-align: left;} .reveal pre code { height: 100%; max-height: 100%; box-sizing: border-box; } </style> </html> ====== Instrukcje sterujące ====== ===== ===== * Instrukcje warunkowe * ''if'', ''else'' * ''switch'' - wybór wielokrotny * Pętle warunkowe *'' while'' * ''do while'' * ''for'' * ''foreach'' - iteracja po elementach kolekcji * ''break, continue'' * ''goto'' instrukcja skoku ===== Instrukcja if() ===== <code C#> if (x > 0) Console.WriteLine("Wartość dodatnia"); </code> {{zajecia:pp1_2021_1:if3.png|}} ===== ===== {{zajecia:pp1_2021_1:if_else3.png|}} <code C#> if (x > 0) Console.WriteLine("Wartość dodatnia"); else Console.WriteLine("Wartość ujemna"); </code> <code C#> if (x > 0) { Console.WriteLine("Wartość dodatnia"); } else { Console.WriteLine("Małe"); } </code> ===== Instrukcje zagnieżdżone ===== <code C#> if (a > 0) { if (a % 2 == 0) { Console.WriteLine("Wartość zmiennej a jest dodatnia i parzysta"); } else { Console.WriteLine("Wartość zmiennej a jest dodatnia i nieparzysta"); } } </code> ===== Instrukca if else if ===== <code C#> if (kolor == "czerwony") { // Kod zostanie wykonany, jeżeli warunek jest spełniony Console.WriteLine("Wybrałeś kolor czerwony"); } else if (kolor == "zielony") { // Kod zostanie wykonany, jeżeli warunek else if jest spełniony Console.WriteLine("Wybrałeś kolor zielony"); } else if (kolor == "niebieski") { // Kod zostanie wykonany, jeżeli warunek else if jest spełniony Console.WriteLine("Wybrałeś kolor niebieski"); } else { // Kod zostanie wykonany, jeżeli żaden powyższy warunek nie jest spełniony Console.WriteLine("Nie znam tego koloru"); } </code> ===== Ćwiczenie - miejsca zerowe paraboli ===== Napisz program do wyznaczania miejsc zerowych równania kwadratowego $$ y = a x^2 + bx +c$$ Program wczytuje trzy liczby rzeczywiste określające równanie kwadratowe: $a$, $b$, $c$ a następnie wypisuje informację o ilości miejsc zerowych (lub ich braku) oraz wartości miejsc zerowych $x_1$, $x_2$\\ ===== ===== Potrzebne do wykonania: * klasa funkcji matematycznych [[https://learn.microsoft.com/pl-pl/dotnet/api/system.math?view=netcore-3.1|System.Math]] * obliczenie pierwiastka kwadratowego [[https://learn.microsoft.com/pl-pl/dotnet/api/system.math.sqrt?view=netcore-3.1|Math.Sqrt(Double)]] * [[https://matfiz24.pl/funkcja-kwadratowa/miejsca-zerowe|Jak wyznaczyć miejsca zerowe funkcji kwadratowej?]] ===== Instrukcja wyboru switch ===== <code C#> string kolor = Console.WriteLine(); switch (kolor) { case "czerwony": Console.WriteLine("Wybrałeś kolor czerwony"); break; case "zielony": Console.WriteLine("Wybrałeś kolor zielony"); break; case "niebieski": Console.WriteLine("Wybrałeś kolor niebieski"); break; default: Console.WriteLine("Nie znam tego koloru"); break; } </code> ===== ===== Możliwe jest przypisanie kilku przypadków do jedne sekcji instrukjci <code C#> string kolor = Console.WriteLine(); switch (kolor) { case "czerwony": case "zielony": Console.WriteLine("Wybrałeś kolor zielony lub czerwony"); break; case "niebieski": Console.WriteLine("Wybrałeś kolor niebieski"); break; default: Console.WriteLine("Nie znam tego koloru"); break; } </code> ===== Pętla while ===== Składnia: <code C#> while(warunek) { instrukcje; } </code> Przykład: <code C#> int a = 0; while(a < 10) { Console.WriteLine(a); a++; } </code> ===== Pętla for ===== {{zajecia:cs:for.png?400|}} Składnia: <code C#> for(inicjalizacja; warunek; inkrementacja) { instrukcje; } </code> ===== ===== Przykład: <code C#> for (int i = 0; i < 10; i++) { Console.WriteLine(i); } </code> ===== ===== Pętla while i for są sobie równoważne {{zajecia:cs:for2.png|}} ===== Pętla do while ===== Składnia: <code C#> do { instrukcje; } while(warunek); </code> Przykład: <code C#> int i = 0; do { Console.WriteLine("{0}", i); i++; } while (i < 10); </code> ===== ===== Iteracja jest wykonana przynajmniej raz {{zajecia:cs:do_while.png|}} ===== Pętle zagnieżdżone ===== <code C#> for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { Console.WriteLine(i + j); } } </code> ===== Instrukcja break ===== Instrukcja break przerywa działanie pętli <code C#> for (int i = 0; i < 10; i++) { if (i == 5) break; Console.WriteLine(i); } </code> Wyjście programu <file> 0 1 2 3 4 </file> ===== Instrukcja continue ===== Instrukcja continue przechodzi do kolejnej iteracji pętli <code C#> for (int i = 0; i < 10; i++) { if (i == 5) continue; // pominie krok i==5 Console.WriteLine(i); } </code> Wyjście programu <file> 0 1 2 3 4 6 7 8 9 </file> ===== Ćwiczenie ===== Napisz program, który wyświetli tabliczkę mnożenia dla liczb od 1 do $N$, gdzie $N$ podaje użytkownik. Przykład działania: <file> Podaj liczbę N=4 1 2 3 4 1 1 2 3 4 2 2 4 6 8 3 3 6 9 12 4 4 8 12 16 </file> ===== Zadanie 3: Procent składany ===== Napisz program, który wyznacza wartość zgromadzonego kapitału w kolejnych latach inwestycji zgodnie z zasadą procentu składanego. Program wczytuje następujące dane wejściowe: * wartość początkowa kapitału $V_0$ w momencie rozpoczęcia inwestycji w PLN * średnioroczne oprocentowanie $R$ (wartość rzeczywista podana w procentach) * ilość lat inwestycji (wartość całkowita dodatnia) ===== ===== Zakładamy, że odsetki naliczane na koniec roku są całkowicie reinwestowane i powiększają kapitał oprocentowany w kolejnych latach. Wartość kapitału $V_k$ w roku $k$ wynosi: $$ V_k = V_{k-1} + R\cdot V_{k-1}$$ gdzie $R$ jest stopą rocznego oprocentowania. Dla podanych wartości wejściowych program wypisuje w kolejnych liniach 3 wartości: * numer kolejnego roku * aktualną wartość kapitału na koniec roku * całkowity zysk względem kapitału początkowego $\frac{V_k-V_0}{V_0}$ w procentach ===== ===== Przykład działania programu: <code> Kapitał początkowy: 100 Oprocentowanie roczne: 5,1 Ile lat: 10 1 105,10 zł 5,1% 2 110,46 zł 10,5% 3 116,09 zł 16,1% 4 122,01 zł 22,0% 5 128,24 zł 28,2% 6 134,78 zł 34,8% 7 141,65 zł 41,7% 8 148,87 zł 48,9% 9 156,47 zł 56,5% 10 164,45 zł 64,4% </code> Zadbaj o formatowanie wyjścia tak aby wyglądalo podobnie do powyższego przykładu. Link aktywujący zadanie [[https://moodle.umk.pl/mod/assign/view.php?id=120995]]