Головна сторінка Випадкова сторінка КАТЕГОРІЇ: АвтомобіліБіологіяБудівництвоВідпочинок і туризмГеографіяДім і садЕкологіяЕкономікаЕлектронікаІноземні мовиІнформатикаІншеІсторіяКультураЛітератураМатематикаМедицинаМеталлургіяМеханікаОсвітаОхорона праціПедагогікаПолітикаПравоПсихологіяРелігіяСоціологіяСпортФізикаФілософіяФінансиХімія |
Завдання першого рівня складностіДата добавления: 2015-10-02; просмотров: 393
Задача №1.В данном варианте программы для каждой цифровой кнопки создана отдельная процедура обработки событий Click. Implementation {$R *.dfm} Var accum: real; // аккумулятор oper: integer; // операция: 1 — '+'; 2 — '-'; // 0 — "выполнить" (кнопка "=") f: integer; // кнопка 0 procedureTForml.ButtonOClick(Sender: TObject); Begin if f = 0 // первая цифра числа Then begin Edit1.Text := '0'; f := 1; // ждем остальные цифры End Else ifEdit1.Text <> '0' // чтобы на индикаторе не было // нескольких нулей в начале числа thenEdit1.Text := Edit1.Text + 'О'; end;
// кнопка 1 procedureTForm1.Button1Click(Sender: TObject); Begin if f = 0 // первая цифра числа Then Begin Edit1.Text := ‘1’; f := 1; // ждем остальные цифры End elseEdit1.Text := Edit1.Text +'1'; end;
// кнопка 2 procedureTForml.Button2Click(Sender: TObject); Begin if (f = 0) // первая цифра числа Then Begin Edit1.Text := '2'; f := 1; // ждем остальные цифры End elseEdit1.Text := Edit1.Text + '2'; end;
// кнопка 3 procedureTForml.Button3Click(Sender: TObject); Begin if f = 0 Then begin Edit1.Text := '3'; f := 1; End elseEdit1.Text := Edit1.Text + '3'; end;
// кнопка 4 procedureTForml.Button4Click(Sender: TObject); Begin if f = 0 then Begin Edit1.Text := '4'; f := 1; End elseEdit1.Text := Edit1.Text + '4'; end; // кнопка 5 procedureTForml.Button5Click(Sender: TObject); Begin if (f = 0) Then begin Edit1.Text := '5'; f := 1; End elseEdit1.Text := Edit1.Text +'5'; end;
// кнопка 6 procedureTForml.Button6Click(Sender: TObject); Begin if f = 0 Then begin Edit1.Text := '6'; f := 1; End elseEdit1.Text := Edit1.Text + '6'; end;
// кнопка 7 procedureTForml.Button7Click(Sender: TObject); Begin if f = 0 Then begin // первая цифра числа Edit1.Text := '7'; f := 1; End elseEdit1.Text := Edit1.Text + '7'; end;
// кнопка 8 procedureTForml.Button8Click(Sender: TObject); Begin if f = 0 Then begin Edit1.Text := '8'; f := 1; End elseEdit1.Text := Edit1.Text + '8'; end;
// кнопка 9 procedureTForml.Button9Click(Sender: TObject); Begin if f = 0 // первая цифра числа Then begin Edit1.Text := '9'; f := 1; // ждем остальные цифры End elseEdit1.Text := Edit1.Text + '9'; end;
// десятичная точка procedureTForm1.ButtonZClick(Sender: TObject); Begin ifEdit1.Text = '0' Then begin Edit1.Text := '0,'; f := 1; end; if Pos(',',Edit1.Text) = 0 Then Edit1.Text := Edit1.Text + ','; end;
// выполнение операции procedureDoOper; Var numb: real; // число на индикаторе Begin // accum содержит результат предыдущей // операции, ореr — код операции, которую // надо выполнить. Операнд находится // на индикаторе. numb := StrToFloat(Form1.Edit1.Text); caseoper of 0: accum := numb; 1: accum := accum + numb; 2: accum := accum — numb; end; Form1.Edit1.Text := FloatToStr(accum); end; // кнопка "+". procedureTForm1.ButtonPlusClick(Sender: TObject); { Надо выполнить предыдущую операцию, вывести результат на индикатор, запомнить текущую операцию и установить режим ожидания первой цифры нового числа } Begin if f = О // ждем первую цифру, но пользователь // щелкнул на кнопке операции then oper :=1 // запомним операцию Else begin // на индикаторе есть число DoOper; // выполнить предыдущую операцию oper:=1; // запомнить текущую операцию f:=0; // ждем первую цифру нового числа end; end; // кнопка "-" procedureTForm1.ButtonMinusClick(Sender: TObject); // см. комментарий к процедуре обработки OnClick на "+" Begin if f = 0 // ждем первую цифру thenoper:= 2
|