Уређивање у монотоно неопадајући/нерастући поредак

Примери

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)

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




Пример 1. Написати програм који три унета броја уређује у неопадајући поредак.

Решење :
Да бисмо решили овај задатак одредићемо најпре најмањи од унетих бројева, а затим ћемо преостала два упоредити по величини. Идеја је да најмањи број буде први, зато ћемо упоређивати први и други, па ако је први већи од другог заменићемо им места. Затим ћемо упоређивати први и трећи и ако је први већи, заменићемо им места. Сада је први број најмањи (мањи је и од другог и од трећег), па сада треба упоређивати други и трећи број, ако је други већи од трећег, заменићемо им места. За размену вредности две променљиве користићемо помоћну променљиву, која ће привремено чувати вредност прве променлјиве да би она могла преузети врердност друге, а да се при томе не изгуби њена првобитна вредност.


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

Пишемо одговарајући код у делу програма које се отвара двоструким кликом на дугме (button1) :

private void button1_Click(object sender, EventArgs e)
{
    //Promenljive koje koristimo
    int a, b, c, p;
    a =  int.Parse(textBox1.Text);
    b =  int.Parse(textBox2.Text);
    c =  int.Parse(textBox3.Text);

    //Ako je prva promenljiva veca od druge
    if (a > b) 
    {
        //Pomocna promenljiva uzima vrednost prve
        p = a;
        //Prva promenljiva uzima vrednost druge
        a = b;
        //Druga promenljiva uzima vrednost pomocne promenljive
        //Tj prethodnu vrednost prve promenljive
        b = p;
    }

    //Ako je prva promenljiva veca od trece
    if (a > c) 
    {
        //Pomocna promenljiva uzima vrednost prve
        p = a;
        //Prva promenljiva uzima vrednost trece
        a = c;
        //Treca promenljiva uzima vrednost pomocne promenljive
        //Tj prethodnu vrednost prve promenljive
        c = p;
    }

    //Ako je druga promenljiva veca od trece
    if (b > c) 
    {
        //Pomocna promenljiva uzima vrednost druge
        p = b;
        //Druga promenljiva uzima vrednost trece
        b = c;
        //Treca promenljiva uzima vrednost pomocne promenljive
        //Tj prethodnu vrednost druge promenljive
        c = p;
    }
    //Ispisujemo brojeve u neopadajucem poretku
    label5.Text = "Neopadajuci poredak brojeva je :" + a + ", " + b + ", " + c;
}

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)

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




Пример 2. Написати програм који три унета броја уређује у нерастући поредак.

Решење :
Да бисмо решили овај задатак одредићемо најпре највећи од унетих бројева, а затим ћемо преостала два упоредити по величини. Идеја је да највећи број буде први, зато ћемо упоређивати први и други, па ако је први мањи од другог заменићемо им места. Затим ћемо упоређивати први и трећи и ако је први мањи, заменићемо им места. Сада је први број највећи (већи је и од другог и од трећег), па сада треба упоређивати други и трећи број, ако је други мањи од трећег, заменићемо им места. За размену вредности две променљиве користићемо помоћну променљиву, која ће привремено чувати вредност прве променлјиве да би она могла преузети врердност друге, а да се при томе не изгуби њена првобитна вредност.


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

Пишемо одговарајући код у делу програма које се отвара двоструким кликом на дугме (button1) :

private void button1_Click(object sender, EventArgs e)
{
    //Promenljive koje koristimo
    int a, b, c, p;
    a = int.Parse(textBox1.Text);
    b = int.Parse(textBox2.Text);
    c = int.Parse(textBox3.Text);

    //Ako je prva promenljiva manja od druge
    if (a < b) 
    {
        //Pomocna promenljiva uzima vrednost prve
        p = a;
        //Prva promenljiva uzima vrednost druge
        a = b;
        //Druga promenljiva uzima vrednost pomocne promenljive
        //Tj prethodnu vrednost prve promenljive
        b = p;
    }

    //Ako je prva promenljiva manja od trece
    if (a < c) 
    {
        //Pomocna promenljiva uzima vrednost prve
        p = a;
        //Prva promenljiva uzima vrednost trece
        a = c;
        //Treca promenljiva uzima vrednost pomocne promenljive
        //Tj prethodnu vrednost prve promenljive
        c = p;
    }

    //Ako je druga promenljiva manja od trece
    if (b < c) 
    {
        //Pomocna promenljiva uzima vrednost druge
        p = b;
        //Druga promenljiva uzima vrednost trece
        b = c;
        //Treca promenljiva uzima vrednost pomocne promenljive
        //Tj prethodnu vrednost druge promenljive
        c = p;
    }
    //Ispisujemo brojeve u neopadajucem poretku
    label5.Text = "Nerastuci poredak brojeva je :" + a + ", " + b + ", " + c;
}