Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2010, 14:49   #11
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Я тебе вроде как объяснил кое-какие вещи или первая половина поста #7 не отображается на твоем мониторе?
Бинарные операции кодируются в переменной oper, их расчет осуществляет DoOper. Операции требующие одного параметра (такие, как например синус) работают напрямую со строкой ввода Edit.

Код:
procedure TForm1.Butt_MSClick(Sender: TObject);
процедуры такого образца есть обработчики нажатия на кнопку. Как я понял, в данном случае это запоминание числа.

Цитата:
сам наверно обьяснения знаеш как я
Ну, моего черепа на калькулятор хватает .
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 18.05.2010, 15:24   #12
Ol'ga_new
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 125
По умолчанию

Может требуется объяснение такого рода:
Код:
var
x,y,numb,cyf,m:real;
oper,f:integer;
procedure TForm1.Butt_0Click(Sender: TObject);//процедра
begin
if f = 0 // условие, если... то
then
 begin
   Edit1.Text := '0'; // в компоненте Edit1 запись 0
   f := 1;  //присвоение переменной f значения 1
 end
  else // иначе
    if Edit1.Text <> '0' //проверка текущего текста в Edit1 на неравенство 0   
     then Edit1.Text := Edit1.Text + '0'; // добавление к текущему тексту символ - 0
end;

procedure TForm1.Butt_komaClick(Sender: TObject);
begin
  if (Edit1.Text = '0') then // условие 
    begin
     Edit1.Text := '0,'; // замена текста: 0 на 0,  
     f := 1; 
    end;
  if Pos(',',Edit1.Text) = 0 then
      Edit1.Text := Edit1.Text + ',';
end;

procedure DoOper;
begin
   numb := StrToFloat(Form1.Edit1.Text); //в переменную numb заносится текст из Edit1 значение переводится в тип real 
   case oper of //условие 
      0: cyf:=numb; //если oper =0, то...
      1: cyf:=cyf + numb; // если 1, то...
      2: cyf:=cyf - numb;
      3: cyf:=cyf *numb;
      4: cyf:=cyf / numb;
   end;
  Form1.Edit1.Text := FloatToStr(cyf); //текст в Edit1 меняется на значение cyf
end;

procedure TForm1.Butt_MinusClick(Sender: TObject);
begin
   if (f = 0)
    then oper := 2
  else begin
         DoOper;//вызов процедуры описанной выше
         oper :=2;
         f:=0;
       end;
end;

procedure TForm1.Butt_dorivClick(Sender: TObject);
begin
  if f = 0 // если..., то...
     then oper := 0
   else begin
          DoOper;
          oper :=0;
          f:=0;
        end;
end;

procedure TForm1.Butt_cClick(Sender: TObject);
begin //эта процедура обнуляет все значения
   Edit1.Text := '0';
   cyf := 0;
   oper := 0;
   f := 0;
end;

procedure TForm1.Edit1Change(Sender: TObject; var Key:Char);
begin
  Key := Chr(0);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  oper := 0;
end;

procedure TForm1.Butt_mnojClick(Sender: TObject);
begin
   if (f = 0)
     then oper := 3
   else begin
         DoOper;
         oper :=3;
         f:=0;
        end;
end;

procedure TForm1.Butt_divClick(Sender: TObject);
begin
  if (f = 0)
    then oper := 4
  else begin
        DoOper;
        oper :=4;
        f:=0;
       end;
end;

procedure TForm1.gfhg1Click(Sender: TObject);
begin    //эта процедура обнуляет все значения
    Edit1.Text := '0';
    cyf := 0;
    oper := 0;
    f := 0;
end;

procedure TForm1.N1Click(Sender: TObject);
begin  
   Form1.Close; //закрытие
end;

procedure TForm1.Butt_sqrt_korinClick(Sender: TObject);
begin
    x:=StrToFloat(form1.Edit1.Text);
    if (x<0) then
        begin
          messagedlg('Квадратного кореня з від*ємного числа неіснує!',mtError,[mbOk],0);
          exit;
       end;// сообщение о невозможности проведения операции
    y:=sqrt(x);
   Form1.Edit1.Text:=FloatToStr(y);// вычесление корня и вывод в Edit1
end;
ну и так далее...

Последний раз редактировалось Stilet; 18.05.2010 в 15:44.
Ol'ga_new вне форума Ответить с цитированием
Старый 18.05.2010, 18:36   #13
Programmer20101
Пользователь
 
Регистрация: 12.05.2010
Сообщений: 10
Хорошо

Цитата:
Сообщение от Ol'ga_new Посмотреть сообщение
Может требуется объяснение такого рода:
Код:
var
x,y,numb,cyf,m:real;
oper,f:integer;
procedure TForm1.Butt_0Click(Sender: TObject);//процедра
begin
if f = 0 // условие, если... то
then
 begin
   Edit1.Text := '0'; // в компоненте Edit1 запись 0
   f := 1;  //присвоение переменной f значения 1
 end
  else // иначе
    if Edit1.Text <> '0' //проверка текущего текста в Edit1 на неравенство 0   
     then Edit1.Text := Edit1.Text + '0'; // добавление к текущему тексту символ - 0
end;

procedure TForm1.Butt_komaClick(Sender: TObject);
begin
  if (Edit1.Text = '0') then // условие 
    begin
     Edit1.Text := '0,'; // замена текста: 0 на 0,  
     f := 1; 
    end;
  if Pos(',',Edit1.Text) = 0 then
      Edit1.Text := Edit1.Text + ',';
end;

procedure DoOper;
begin
   numb := StrToFloat(Form1.Edit1.Text); //в переменную numb заносится текст из Edit1 значение переводится в тип real 
   case oper of //условие 
      0: cyf:=numb; //если oper =0, то...
      1: cyf:=cyf + numb; // если 1, то...
      2: cyf:=cyf - numb;
      3: cyf:=cyf *numb;
      4: cyf:=cyf / numb;
   end;
  Form1.Edit1.Text := FloatToStr(cyf); //текст в Edit1 меняется на значение cyf
end;

procedure TForm1.Butt_MinusClick(Sender: TObject);
begin
   if (f = 0)
    then oper := 2
  else begin
         DoOper;//вызов процедуры описанной выше
         oper :=2;
         f:=0;
       end;
end;

procedure TForm1.Butt_dorivClick(Sender: TObject);
begin
  if f = 0 // если..., то...
     then oper := 0
   else begin
          DoOper;
          oper :=0;
          f:=0;
        end;
end;

procedure TForm1.Butt_cClick(Sender: TObject);
begin //эта процедура обнуляет все значения
   Edit1.Text := '0';
   cyf := 0;
   oper := 0;
   f := 0;
end;

procedure TForm1.Edit1Change(Sender: TObject; var Key:Char);
begin
  Key := Chr(0);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  oper := 0;
end;

procedure TForm1.Butt_mnojClick(Sender: TObject);
begin
   if (f = 0)
     then oper := 3
   else begin
         DoOper;
         oper :=3;
         f:=0;
        end;
end;

procedure TForm1.Butt_divClick(Sender: TObject);
begin
  if (f = 0)
    then oper := 4
  else begin
        DoOper;
        oper :=4;
        f:=0;
       end;
end;

procedure TForm1.gfhg1Click(Sender: TObject);
begin    //эта процедура обнуляет все значения
    Edit1.Text := '0';
    cyf := 0;
    oper := 0;
    f := 0;
end;

procedure TForm1.N1Click(Sender: TObject);
begin  
   Form1.Close; //закрытие
end;

procedure TForm1.Butt_sqrt_korinClick(Sender: TObject);
begin
    x:=StrToFloat(form1.Edit1.Text);
    if (x<0) then
        begin
          messagedlg('Квадратного кореня з від*ємного числа неіснує!',mtError,[mbOk],0);
          exit;
       end;// сообщение о невозможности проведения операции
    y:=sqrt(x);
   Form1.Edit1.Text:=FloatToStr(y);// вычесление корня и вывод в Edit1
end;
ну и так далее...
Спасибо то что нада, дальше сам...
Programmer20101 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Коментарии к программе savra Помощь студентам 4 13.01.2010 01:32
C++. нужни коментарии к коду программы Myau Thai Помощь студентам 1 04.06.2009 19:32
многострочные коментарии Vano-sie72 Win Api 2 31.05.2009 21:18
Удалить коментарии Snake08 Паскаль, Turbo Pascal, PascalABC.NET 1 27.11.2008 01:41