Програмирање израчунавања по једноставним математичким формулама

      Сви знамо да израчунамо збир, разлику, производ, количник два или више бројева у математици, знамо да одредимо обим и површину квадрата, правоугаоника, троугла, круга и других геометријских фигура, затим растојање између две тачке које су задате својим координатама и све то коришћењем познатих математичких формула.
      На који начин је могуће у C# програмирати по једноставним математичким формулама, видећемо на следећим примерима. За почетак ћемо узети једноставан пример са основним аритметичким операцијама.

Пример 1. Написати програм који за два цела броја која корисник уноси преко TextBox-a примењује основне аритметичке операције (+, -, *, /, %), а резултат да исписује у ТextBox.

Напомена: Уколико желимо да израчунамо количник унетих бројева, као други број не смемо унети 0, да не би дошло до дељења нулом. Касније, када будемо научили наредбу гранања if, моћи ћемо да проверимо да ли је унети број једнак 0 и ако јесте, исписаће се одговарајућа порука. За сада ћемо се задржати на томе да делилац (други број) буде различит од нуле, у случају дељења.

Решење:

Правимо форму облика:
  1. label1 - у овој лабели ћемо написати prvi broj
  2. textBox1 - У ово поље корисник уноси цео број
  3. label2 - у овој лабели ћемо написати drugi broj
  4. textBox2 - у ово поље корисник уноси цео број
  5. label3 - у овој лабели ћемо написати Aritmeticke operacije
  6. button1 - ово ћемо преименовати у +, button2 - ово ћемо преименовати у -, button3 - ово ћемо преименовати у *, button4 - ово ћемо преименовати у /, button5 - ово ћемо преименовати у %
  7. label4 - у овој лабели ћемо написати Rezultat:
  8. textBox3 - з ово поље ћемо исписати резултат рада програма
Слика 5.20. Почетни изглед форме


Када наша форма има изглед као на слици 5.21 идемо двоструки клик на дугме + и када нам се отвори нови прозор у телу функције button1_Click куцамо код који треба да се извршава када кликнемо на то дугме. Аналогно откуцамо и кодове за преосталу дугмад (-, *, /, %).
Слика 5.21. Изглед форме када смо преименовали компоненте



//Deklarisemo promenljive kao globalne jer cemo da ih koristimo
//u svakoj od narednih funkcija
int x, y;
//U telu ove funkcije kucamo kod koji se izvrsava kada
//kliknemo na dugme +
private void button1_Click(object sender, EventArgs e)
{
    //Promenljiva u koju cemo smestiti zbir unetih brojeva
    int zbir;           
    //Uzimamo celobrojnu vrednost iz prvog textBox-a
    x = int.Parse(textBox1.Text);
    //Uzimamo celobrojnu vrednost iz prvog textBox-a
    y = int.Parse(textBox2.Text);
    //Racunamo zbir
    zbir = x + y;
    //Ispisujemo rezultat (zbir) u textBox
    textBox3.Text = zbir.ToString();  
}
//U telu ove funkcije kucamo kod koji se izvrsava kada
//kliknemo na dugme -, analogno prethodnom, samo umesto zbira
//imamo razliku unetih brojeva
private void button2_Click(object sender, EventArgs e)
{
    int razlika;
    x = int.Parse(textBox1.Text);
    y = int.Parse(textBox2.Text);
    razlika = x - y;
    textBox3.Text = razlika.ToString();
}
//U telu ove funkcije kucamo kod koji se izvrsava kada
//kliknemo na dugme *, analogno prethodnim funkcijama,
//samo sto je u pitanju mnozenje
private void button3_Click(object sender, EventArgs e)
{
    int proizvod;
    x = int.Parse(textBox1.Text);
    y = int.Parse(textBox2.Text);
    proizvod = x * y;
    textBox3.Text = proizvod.ToString();
}
//U telu ove funkcije kucamo kod koji se izvrsava kada
//kliknemo na dugme /
private void button4_Click(object sender, EventArgs e)
{
    //Deklarisemo promenljivu kolicnik kao double
    //jer kolicnik dva broja ne mora biti ceo broj
    double kolicnik;                  
    x = int.Parse(textBox1.Text);
    y = int.Parse(textBox2.Text);
    //Stavili smo double da se ne bi primenjivalo
    //samo celobrojno deljenje, npr. 2/5 je 0.4, a ne 0
    kolicnik = (double)x / y;        
    textBox3.Text = kolicnik.ToString();
}
//U telu ove funkcije kucamo kod koji se izvrsava kada
//kliknemo na dugme %
private void button5_Click(object sender, EventArgs e)
{
    int ostatak;
    x = int.Parse(textBox1.Text);
    y = int.Parse(textBox2.Text);
    //Odredjujemo ostatak pri deljenju prvog operanda drugim,
    //i to je moguce uraditi samo kada su oba celobrojnog tipa
    ostatak = x % y;                  
    textBox3.Text = ostatak.ToString();
}


Када покренемо апликацију из радног окружења помоћу тастера F5 отвара нам се форма и потребно је унети бројеве у TextBox и затим притиснути жељено дугме. Након тога ће се исписати резултат у TextBox, као на наредној слици, за произвољне унете бројеве и изабрано дугме (Слика 5.22.)

Слика 5.22. Резултат рада програма за унете вредности и изабране операције

Пример 2. Направимо конзолну апликацију која ће да рачуна растојање између две тачке и резултат да испише у конзоли. Координате обе тачке корисник уноси преко конзоле, као на слици 5.18.

Слика 5.23. Изглед конзоле након извршавања програма


Направимо конзолну апликацију и када се отвори прозор са већ датим костуром апликације и главном функцијом Main, у телу ове функције уписаћемо следећи код који треба да се изврши.

static void Main(string[] args)
{
    //Deklaracija koordinata tacaka A i B
    int x1, y1, x2, y2;
    double rastojanje;
    //U ove promenljive tipa string smestamo unos iz konzole
    string stringAx, stringAy, stringBx, stringBy;
    //Ispisuje u konzoli da korisnik unese x koordinatu tacke A
    Console.WriteLine("Unesite x koordinatu tacke A:");
    //ReadLine metodom dobijamo vrednost koju je korisnik uneo
    stringAx = Console.ReadLine();
    //Metodom int.Parse iz stringa izdvajamo celobrojnu vrednost
    x1 = int.Parse(stringAx);
    //Analogno prethodnom, uradimo isto za preostale tri koordinate, y1, x2 i y2.
    Console.WriteLine("Unesite y koordinatu tacke A:");
    stringAy = Console.ReadLine();
    y1 = int.Parse(stringAy);
    Console.WriteLine("Unesite x koordinatu tacke B:");
    stringBx = Console.ReadLine();
    x2 = int.Parse(stringBx);
    Console.WriteLine("Unesite y koordinatu tacke B:");
    stringBy = Console.ReadLine();
    y2 = int.Parse(stringBy);
    //Odredjujemo rastojanje izmedju tacaka po matematickoj formuli
    rastojanje = Math.Sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
    //Ispisujemo tacke sa koordinatama u konzolu
    Console.WriteLine("Tacke A(" + x1 + ", " + y1 + ") i B(" + x2 + ", " + y2 + ")");           
    //Ispisujemo rastojanje izmedju tacaka u konzolu
    Console.WriteLine("Rastojanje je jednako "  + rastojanje +"."); 
    Console.ReadKey();
}


Када покренемо апликацију помоћу тастера F5 отвара нам се прозор командне линије у коме пише Unesite x koordinatu tacke A:. Унесемо координату и притиснимо Enter на тастатури, након тога се појављује Unesite y koordinatu tacke A: и унесемо другу координату тачке А.Када притиснемо поново Enter писаће Unesite x koordinatu tacke B:, унесемо је и поново Enter, појавиће се Unesite y koordinatu tacke B:. Унесемо и ту координату и када следећи пут притиснемо Enter, исписаће нам се тачке A и B са координатама и растојање између њих.
Ако је све правилно написано, конзола треба да изгледа као на слици 5.23 за унете тачке А(4,6) и B(1,2).