Одређивање минимума и максимума


Како одредити максимум (минимум) три бројa?
Прво је потребно да један број од три унета прогласимо максималним, односно минималним. За почетак, то радимо тако што декларишемо једну нову променљиву:

    int max; ( int min; )

Пошто је решење идентично и за минимум, у наредном објашњењу говорићено само о максимуму.
Дакле, тој променљивој доделимо ведност једног од бројева и он постаје тренутни максимум.
Следећи корак је да помоћу наредбе if испитамо да ли је следећи број можда већи од max, тј. нашег тренутног максималног броја. Уколико јесте, променљивој max додељујемо нову вредност, вредност тог броја, уколико није испитујемо да ли је можда трећи унети број већи од тренутног максималног броја. Уколико јесте, променљивој max додељујемо вредност трећег броја, а уколико није, вредност променљиве max остаје колико је била. И тиме смо одредили максимум (минимум) три броја.

Пример 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 и с) :

Слика 6.33. Изглед форме након покретања програма

Пример 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. Написати програм који када унесемо три броја, враћа збир најмањег и највећег од тих бројева.

Решење :

Sorry, the GeoGebra Applet could not be started. Please make sure that Java 1.4.2 (or later) is installed and active in your browser (Click here to install Java now)

*У случају да се анимација не приказује, притиснути дугме Прикажи слику




Да би решили овај задатак, треба да одредимо минимум и максимум од три броја која уносимо, затим да саберемо минимум и максимум који смо одредили и на крају да испишемо решење.

Правимо форму облика:Слика 6.36. Почетни изглед форме
Преименујемо label-e и button1Слика 6.37. Изглед форме након преименовања компоненти

Кликом на дугме, програм треба да нам врати збир најмањег и највећег броја ако смо унели три броја. Да би се то остварило потребно је да функцију дугмета повежемо са подацима које уносимо. Реализација функције дугмета постиже се писањем одговарајућег кода у делу програма које се отвара двоструким кликом на дугме (button1) :


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 и с) :

Слика 6.38. Изглед форме након покретања програма

Пример 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|

Sorry, the GeoGebra Applet could not be started. Please make sure that Java 1.4.2 (or later) is installed and active in your browser (Click here to install Java now)
Анимација 6.5. Изглед функције у у зависности од a, b i x

*У случају да се анимација не приказује, притиснути дугме Прикажи слику





Правимо форму облика:Слика 6.39. Почетни изглед форме
Преименујемо label-e и button1Слика 6.40. Изглед форме након преименовања компоненти

Кликом на дугме, програм треба да нам врати вредност функције y у зависности од вредности x, а и b. Да би се то остварило потребно је да функцију дугмета повежемо са подацима које уносимо. Реализација функције дугмета постиже се писањем одговарајућег кода у делу програма које се отвара двоструким кликом на дугме (button1) :


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) :

Слика 6.41. Изглед форме након покретања програма

Пример 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. Изглед форме након преименовања компоненти

Кликом на прво дугме, програм треба да нам врати минималну запремину квадра. Да би се то остварило потребно је да функцију дугмета повежемо са подацима које уносимо. Реализација функције дугмета постиже се писањем одговарајућег кода у делу програма које се отвара двоструким кликом на дугме (button1) :


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):