~~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~~
====== 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() =====
if (x > 0) Console.WriteLine("Wartość dodatnia");
{{zajecia:pp1_2021_1:if3.png|}}
===== =====
{{zajecia:pp1_2021_1:if_else3.png|}}
if (x > 0) Console.WriteLine("Wartość dodatnia");
else Console.WriteLine("Wartość ujemna");
if (x > 0)
{
Console.WriteLine("Wartość dodatnia");
}
else
{
Console.WriteLine("Małe");
}
===== Instrukcje zagnieżdżone =====
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");
}
}
===== Instrukca if else if =====
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");
}
===== Ć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 =====
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;
}
===== =====
Możliwe jest przypisanie kilku przypadków do jedne sekcji instrukjci
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;
}
===== Pętla while =====
Składnia:
while(warunek)
{
instrukcje;
}
Przykład:
int a = 0;
while(a < 10)
{
Console.WriteLine(a);
a++;
}
===== Pętla for =====
{{zajecia:cs:for.png?400|}}
Składnia:
for(inicjalizacja; warunek; inkrementacja)
{
instrukcje;
}
===== =====
Przykład:
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);
}
===== =====
Pętla while i for są sobie równoważne
{{zajecia:cs:for2.png|}}
===== Pętla do while =====
Składnia:
do
{
instrukcje;
}
while(warunek);
Przykład:
int i = 0;
do
{
Console.WriteLine("{0}", i);
i++;
}
while (i < 10);
===== =====
Iteracja jest wykonana przynajmniej raz
{{zajecia:cs:do_while.png|}}
===== Pętle zagnieżdżone =====
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
Console.WriteLine(i + j);
}
}
===== Instrukcja break =====
Instrukcja break przerywa działanie pętli
for (int i = 0; i < 10; i++)
{
if (i == 5) break;
Console.WriteLine(i);
}
Wyjście programu
0
1
2
3
4
===== Instrukcja continue =====
Instrukcja continue przechodzi do kolejnej iteracji pętli
for (int i = 0; i < 10; i++)
{
if (i == 5) continue; // pominie krok i==5
Console.WriteLine(i);
}
Wyjście programu
0
1
2
3
4
6
7
8
9
===== Ć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:
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
===== 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:
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%
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]]