1 Креирање апликација-калкулатор Сабирање стрингова 1. Поставити на форму три поља за едитовање и једно дугме са натписом Сабери. 2. Кликом на дугме, треба да се у последњем пољу појави резултат сабирања прва два поља. Код за то: a, b, c: string; a:=edit1.text; b:=edit2.text; Edit3.Text:=c;
2 Калкулатор У предходном задатку смо имали прилику да видимо како у програмирању можемо да надовезујемо ( сабирамо ) речи. Шта се дешава ако у поља за текст убацимо бројеве? Да ли ће програм успети да препозна нови тип података и да их сабере онако како очекујемо? 5 4 9 У овом случају, програм и бројеве посматра као да су текст и надовезује један на други. Пробајмо да прерадимо предходни код тако да програм стварно сабира бројеве. Логично би било да прво пробамо да изменимо код у одељку за декларисање поменљивих: a, b, c: integer; a:=edit1.text; b:=edit2.text; Edit3.Text:=c; На овај начин смо саопштили програму да наше променљиве садрже целе бројеве. Проблем који се сада јавља је да програм уопште неће да се изврши. Компајлер нам шаље поруку : Incompatibile types: got AnsiString, expected LongInt (негде се уместо очекиваног целог броја појављује неки стринг) Поља за едитовање увек садрже искључиво стрингове и да би смо податке који се налазе у њима превели у целе бројеве користимо функцију StrToInt(). StrToInt() преводи стринг у цео број IntToStr() преводи цео број у стринг
3 a, b, c: integer; a:=strtoint(edit1.text); // преводи стринг који се налази у Edit1.Text у цео број Edit3.Text:=IntToStr(c); //преводи цео број с у стринг и уписује га у Edit3.Text. Код се, иначе, не мора написати баш на овај начин. Можете уместо променљивих a, b, c користити x, y, z или Sabirak1, Sabirak2, Zbir. Овај код можемо написати и без увођења нових променљивих, користећи оне које су нам већ у самом програму: Edit1.Text, Edit2.Text и Edit3.Text. Edit3.Text:=IntToStr(StrToInt(Edit1.Text)+StrToInt(Edit2.Text)); Допунићемо предходну апликацију тако да осим сабирања може да извршава и друге операције: одузимање, множење и дељење. Додаћемо још три дугмета: Одузми, Помножи, Подели. За дугме Подели подесићемо својствa: Hint: nemojte deliti sa nulom, и ShowHint: true Код за дугме Одузми, се од предходног за сабирање, разликује само што ћемо знак + заменити са -. procedure TForm1.Button2Click(Sender: TObject); //Програмски језик Delphi није case sensitive, што c:=a-b; // значи да је све једно да ли пишете великим или // малим словима : х и Х су једна иста променљива //, BEGIN, begin су исте наредбе Слично је и за множење. Обзиром да код целих бројева имамо само целобројно дељење у коду за дугме Подели користимо оператор div.
4 procedure TForm1.Button4Click(Sender: TObject); Edit3.Text:=IntToStr(c); Да би смо приказали и остатак код целобројног дељења додаћемо и једну лабелу која ће постајати видљива само у случају да смо притиснули дугме Подели. Допуна кода : procedure TForm1.Button4Click(Sender: TObject); d:=a mod b; Edit3.Text:=IntToStr(c); Label1.Caption:='i ostatak je '+inttostr(d); Label1.Visible:=true; Изглед форме и код за цео задатак
5 procedure TForm1.SaberiClick(Sender: TObject); Label1.Visible:=false; procedure TForm1.OduzmiClick(Sender: TObject); c:=a-b; Label1.Visible:=false; procedure TForm1.PomnoziClick(Sender: TObject); c:=a*b; Label1.visible:=false; procedure TForm1.PodeliClick(Sender: TObject); d:=a mod b; Label1.Caption:='i ostatak je '+inttostr(d); Label1.Visible:=true;