Како одредити максимум (минимум) три бројa? Прво је потребно да један број од три унета прогласимо максималним, односно минималним. За почетак, то радимо тако што декларишемо једну нову променљиву: |
int max; ( int min; )
Пошто је решење идентично и за минимум, у наредном објашњењу говорићено само о максимуму.
Пример 1. Написати програм који за унета три броја браћа њихов минимум.
Решење :
Правимо форму облика:Слика 6.31. Почетни изглед форме |
Преименујемо label-e и button1Слика 6.32. Изглед форме након преименовања компоненти |
private void button1_Click(object sender, EventArgs e)
{
//Promenljive koje koristimo
int a, b, c;
//Deklarisemo novu promenljivu
int min;
a = int.Parse(textBox1.Text);
b = int.Parse(textBox2.Text);
c = int.Parse(textBox3.Text);
//Novoj promenljivoj dodeljujemo vrednost jednog unetog broja
min = a;
//Pitamo se da li je drugi uneti broj manji od naseg trenutnog minimalnog
if (b < min)
//Ako jeste, onda min sada postaje bas taj drugi uneti broj
min = b;
//Ako nije, pitamo se da li je i treci uneti broj mozda manji od naseg trenutnog minimalnog
if (c < min)
//Ako jeste, onda min sada postaje bas taj treci uneti broj
min = c;
//Ispisujemo nas minimum tri broja
label5.Text = "Minimum uneta tri broja je : " + min;
}
Покренемо програм и проверимо (за конкретне вредности а,b и с) :Пример 2. Написати програм који за унета три броја браћа њихов максимум.
Решење :
Правимо форму облика:Слика 6.34. Почетни изглед форме |
Преименујемо label-e и button1Слика 6.35. Изглед форме након преименовања компоненти |
private void button1_Click(object sender, EventArgs e)
{
//Promenljive koje koristimo
int a, b, c;
//Deklarisemo novu promenljivu
int max;
a = int.Parse(textBox1.Text);
b = int.Parse(textBox2.Text);
c = int.Parse(textBox3.Text);
//Novoj promenljivoj dodeljujemo vrednost jednog unetog broja
mаx = a;
//Pitamo se da li je drugi uneti broj veci od naseg trenutnog maksimalnog
if (b > mах)
//Ako jeste, onda max sada postaje bas taj drugi uneti broj
max = b;
//Ako nije, pitamo se da li je i treci uneti broj mozda veci od naseg trenutnog maksimalnog
if (c > max)
//Ako jeste, onda max sada postaje bas taj treci uneti broj
max = c;
//Ispisujemo nas minimum tri broja
label5.Text = "Maksimum uneta tri broja je : " + mах;
}
Примери
Пример 3. Написати програм који када унесемо три броја, враћа збир најмањег и највећег од тих бројева.
Решење :
|
*У случају да се анимација не приказује, притиснути дугме Прикажи слику
Правимо форму облика:Слика 6.36. Почетни изглед форме |
Преименујемо label-e и button1Слика 6.37. Изглед форме након преименовања компоненти |
private void button1_Click(object sender, EventArgs e)
{
//Promenljive koje koristimo
int a, b, c, max, min;
a = int.Parse(textBox1.Text);
b = int.Parse(textBox2.Text);
c = int.Parse(textBox3.Text);
//Neka je a i min i max
min = max = a;
//Ako je b vece od max
if (b > max)
//Onda je b max
max = b;
//Inace ako je b manje od min
else if (b < min)
//Onda je b min
min = b;
//Ako je c vece od max
if (c > max)
//Onda je c max
max = c;
//Inace ako je c manje od min
else if (c < min)
//Onda je c min
min = c;
//Zbir min i max
int zbir = min + max;
//Ispisujemo resenje
label5.Text = "Zbir najmanjeg i najveceg unetog broja je: " + zbir;
}
Покренемо програм и проверимо (за конкретне вредности а, b и с) :
Пример 4. Написати програм којим се за унете вредности x, a и b рачуна вредност функције
y која је задата формулом :
Решење :
Ако изаберемо a и b, мењајући x можемо видети како:
за x једнако 0 исцртава се график функције y=min(a,b),
за x једнако 1 исцртава се график функције y=max(a,b),
a за x различито од 0 и 1 исцртава се график функције y=|a|+|b|
|
*У случају да се анимација не приказује, притиснути дугме Прикажи слику
Правимо форму облика:Слика 6.39. Почетни изглед форме |
Преименујемо label-e и button1Слика 6.40. Изглед форме након преименовања компоненти |
private void button1_Click(object sender, EventArgs e)
{
//Promenljive koje koristimo
float x, a, b, min, max, y;
x = float.Parse(textBox1.Text);
a = float.Parse(textBox2.Text);
b = float.Parse(textBox3.Text);
//Ako nam je x jednako 0
if (x == 0)
//Treba da odredimo min
{
//Neka je min a
min = a;
//Ako je b manje od min od a i b
if (b < min)
{
//Onda je min b
min = b;
//Ispisujemo resenje
label5.Text = "Vrednost y je " + min;
}
//b nije manje od a, a je min, ispisujemo resenje
label5.Text = "Vrednost y je " + min;
}
//Inace, ako je x jednako 1
else if (x == 1)
//Treba da odredimo max od a i b
{
//Neka je max a
max = a;
//Ako je b vece od max
if (b > max)
{
//Onda je max b
max = b;
//Ispisujemo resenje
label5.Text = "Vrednost y je " + max;
}
//b nije vece od a, a je max, ispisujemo resenje
label5.Text = "Vrednost y je " + max;
}
//U suprotnom x je razlicito od 0 i 1
else
{
//y = |a|+|b|, Math.Abs() je ugradjena funkcija
y = Math.Abs(a) + Math.Abs(b);
//Ispisujemo resenje
label5.Text = "Vrednost y je " + y;
}
}
Покренемо програм и проверимо (за конкретне вредности x, a и b) :
Пример 5. Написати програм који рачуна минималну и максималну запремину квадра на следећи начин : ако унесемо четири броја бирају се три која представљају димензије квадра.
Решење :
Запремина квадра рачуна се по формули V=a*b*c, где а, b и c, представљају
дужину, ширину и висину квадра (димензије квадра). Како нам је задатак да одредимо
минималну и максималну запремину квадра, ако су нам дата четири броја, то ћемо урадити на следећи начин.
Нека нпр. имамо бројеве 1, 2, 3 и 6.
Максимум од ова четири броја је број 6, а минимум број 1.
Како је (по формули) запремина квадра производ три броја, видимо да ћемо
најмањи производ добити ако при множењу изоставимо максимум од ова четири броја,
односно ако је V = 1cm*2cm*3cm = 6cm^3 (са слике мањи, зелени, квадар ABCDEFGH,
чија је дужина 2 cm, ширина 1 cm и висина 3 cm),
а највећи ако изоставимо минимум,
односно ако је V = 2cm*3cm*6cm = 36cm^3
(са слике већи, црвени, квадар ABC1D1E1F1G1H1
чија је дужина 2 cm, ширина 3 cm и висина 6 cm).
Правимо форму облика:Слика 6.42. Почетни изглед форме |
Преименујемо label-e, button1 и button2Слика 6.43. Изглед форме након преименовања компоненти |
private void button1_Click(object sender, EventArgs e)
{
//Promenljjive koje koristimo
double a, b, c, d, max, V;
a = double.Parse(textBox1.Text);
b = double.Parse(textBox2.Text);
c = double.Parse(textBox3.Text);
d = double.Parse(textBox4.Text);
//Neka je max a
max = a;
//Ako je b vece od a
if (b > max)
{
//Onda je max b
max = b;
//Ali ako je c vece od b
if (c > max)
{
//Onda je max c
max = c;
//Ali ako je d vece od c
if (d > max)
{
//Onda je max d
max = d;
//Tada je V minimalna zapremina
V = a * b * c;
}
//U suprotnom d je manje od c, max je c
else
//Tada je V minimalna zapremina
V = a * b * d;
}
//U suprotnom c je manje od b
//Ali ako je d vece od b
else if (d > max)
{
//Onda je max d
max = d;
//Tada je V minimalna zapremina
V = a * b * c;
}
//U suprotnom c,d su manji od b, max je b
else
//Tada je V minimalna zapremina
V = a * c * d;
}
//U suprotnom b je manje od a
//Ali ako je c vece od a
else if (c > max)
{
//Onda je max c
max = c;
//Ako je d vece od c
if (d > max)
{
//Onda je max d
max = d;
//Tada je V minimalna zapremina
V = a * b * c;
}
//U suprotnom d je manje od c
else
//Tada je V minimalna zapremina
V = a * b * d;
}
//U suprotnom b,c su manji od a
//Ali ako je d vece od a
else if (d > max)
{
//Onda je max d
max = d;
//Tada je V minimalna zapremina
V = a * b * c;
}
//U suprotnom b,c i d su manji od a, max je a
else
//Tada je V minimalna zapremina
V = b * c * d;
//Ispisujemo resenje
label10.Text = "Minimalna zapremina je: " + V + "cm^3";
}
Други део задатка, аналоган је првом делу и препоручује се ученицима да самостано напишу код за
рачунање максималне запремине квадра.
Кликом на друго дугме, програм треба да нам врати максималну запремину квадра.
Да би се то остварило потребно је да функцију
дугмета повежемо са подацима које уносимо. Реализација функције дугмета постиже
се писањем одговарајућег кода у делу програма које се отвара двоструким кликом на дугме (button2):
private void button2_Click(object sender, EventArgs e)
{
//Promenljive koje koristimo
double a, b, c, d, min, V;
a = double.Parse(textBox1.Text);
b = double.Parse(textBox2.Text);
c = double.Parse(textBox3.Text);
d = double.Parse(textBox4.Text);
//Neka je min a
min = a;
//Ako je b manje od a
if (b < min)
{
//Onda je max b
min = b;
//Ali ako je c manje od b
if (c < min)
{
//Onda je min c
min = c;
//Ali ako je d manje od c
if (d < min)
{
//Onda je min d
min = d;
//Tada je V maksimalna zapremina
V = a * b * c;
}
//U suprotnom d vece od c, min je c
else
//Tada je V maksimalna zapremina
V = a * b * d;
}
//U suprotnom c je vece od b
//Ali ako je d manje od b
else if (d < min)
{
//Onda je min d
min = d;
//Tada je V maksimalna zapremina
V = a * b * c;
}
//U suprotnom c,d su veci od b, min je b
else
//Tada je V maksimalna zapremina
V = a * c * d;
}
//U suprotnom b je vece od a
//Ali ako je c manje od a
else if (c < min)
{
//Onda je min c
min = c;
//Ako je d manje od c
if (d < min)
{
//Onda je min d
min = d;
//Tada je V maksimalna zapremina
V = a * b * c;
}
//U suprotnom d je vece od c
else
//Tada je V maksimalna zapremina
V = a * b * d;
}
//U suprotnom b,c su veci od a
//Ali ako je d manje od a
else if (d < min)
{
//Onda je min d
min = d;
//Tada je V maksimalna zapremina
V = a * b * c;
}
//U suprotnom b,c i d su veci od a, min je a
else
//Tada je V maksimalna zapremina
V = b * c * d;
//ispisujemo resenje
label11.Text = "Maksimalna zapremina je: " + V + "cm^3";
}