Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.06.19;
Скачать: CL | DM;

Вниз

Интересный алгоритм в обычном калькуляторе.   Найти похожие ветки 

 
KilkennyCat ©   (2011-02-26 14:56) [80]


> Fergo ©   (26.02.11 14:25) [79]
>
>  пока только я код привел более
> менее рабочий

да. он правда очень сильно напоминает мой, но это, наверное, совпадение?


 
boriskb ©   (2011-02-26 14:56) [81]


> Fergo ©  


Скажи пожалуйста, как ты сам оцениваешь:
1) Ты типичный представитель программистов такого возраста;
2) Ты Выше среднего уровня;
3) Ты чуть ниже среднего уровня.


 
KilkennyCat ©   (2011-02-26 14:58) [82]


> boriskb ©   (26.02.11 14:56) [81]

там нет графы для него.
4) выше высшего уровня туповатый плагиатор.


 
Fergo ©   (2011-02-26 15:14) [83]

Удалено модератором


 
Fergo ©   (2011-02-26 15:16) [84]

Удалено модератором


 
Inovet ©   (2011-02-26 15:18) [85]

> [82] KilkennyCat ©   (26.02.11 14:58)
> там нет графы для него.

Я думал автору интересно самому сделать, а всё как всегда: "Дайте! Не даёте? Да вы ничё не можете, только теории задвигать можете, я сам так можу, у-а-а, у-а-а."


 
boriskb ©   (2011-02-26 15:32) [86]


> KilkennyCat ©   (26.02.11 14:58) [82]


> Inovet ©   (26.02.11 15:18) [85]


Меня собственно насторожила фраза:

> ваши эти теории я и сам знаю. ты сделай а потом говори
.
.
.
> теории я и сам могу выводить кучами а когда делать начинаешь
> ( для тех кто в танке - ставить компоненты на форму и код
> писать) вот там то и ваши теории н катят на 100%.


То есть абсолютно с ног на голову всё ставит и гордится.
Вот и хотелось узнать - это типично?


 
KilkennyCat ©   (2011-02-26 15:49) [87]


> boriskb ©   (26.02.11 15:32) [86]

наверняка типично. Возможно, у социологов даже есть категория.


 
Fergo ©   (2011-02-26 16:12) [88]

фиг знает народ вот если меня когда просят я не парю мозги теориями я беру и сам делаю а потом обьясняю что и как с РЕАЛЬНО РАБОЧИМ ПРИМЕРОМ.


 
Fergo ©   (2011-02-26 16:14) [89]

ладно бы если бы я ниче не сделав просил бы ответ тупо. я ваши все варианты перепробовал да и до этого еще много раз пытался по своему сделать... ну не получается у меня тупо в логике тут...


 
KilkennyCat ©   (2011-02-26 16:25) [90]


> Fergo ©   (26.02.11 16:12) [88]

это личное дело каждого, как тратить время и каким принципам следовать.

> Fergo ©   (26.02.11 16:14) [89]

Inovet привел прекрасную табличку, не увидеть и не переложить алгоритм по которой...


 
Sha ©   (2011-02-26 20:55) [91]

Как-то так получается

type
 TOper= (opEq, opAdd, opSub, opMul, opDiv);

type
 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   Button3: TButton;
   Button4: TButton;
   Button5: TButton;
   Button6: TButton;
   Button7: TButton;
   Button8: TButton;
   Button9: TButton;
   Button10: TButton;
   Button11: TButton;
   Button12: TButton;
   Button13: TButton;
   Button14: TButton;
   Button15: TButton;
   Edit1: TEdit;
   Button16: TButton;
   Button17: TButton;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure Button3Click(Sender: TObject);
   procedure Button4Click(Sender: TObject);
   procedure Button5Click(Sender: TObject);
   procedure Button6Click(Sender: TObject);
   procedure Button7Click(Sender: TObject);
   procedure Button8Click(Sender: TObject);
   procedure Button9Click(Sender: TObject);
   procedure Button10Click(Sender: TObject);
   procedure Button11Click(Sender: TObject);
   procedure Button12Click(Sender: TObject);
   procedure Button13Click(Sender: TObject);
   procedure Button14Click(Sender: TObject);
   procedure Button15Click(Sender: TObject);
   procedure Button16Click(Sender: TObject);
   procedure Button17Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
 private
   Value1: double;
   Value2: double;
   Oper: TOper;
   HasData: boolean;
   Fractional: boolean;
   EqPressed: boolean;
   procedure Reset;
   procedure Cipher(ch: char);
   procedure Calculate(NextOper: TOper);
 public
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Reset;
begin;
 HasData:=false;
 Fractional:=false;
 EqPressed:=false;
 Value1:=0;
 Value2:=0;
 Oper:=opAdd;
 Edit1.Text:="0"+DecimalSeparator;
 end;

procedure TForm1.Cipher(ch: char);
var
 s : string;
begin;
 s:=Edit1.Text;
 if (not HasData) or (s="0"+DecimalSeparator) then begin;
   s:=ch+DecimalSeparator;
   Fractional:=false;
   end
 else if Fractional then s:=s+ch
 else Insert(ch,s,pos(DecimalSeparator,s));
 Edit1.Text:=s;
 HasData:=true;
 end;

procedure TForm1.Calculate(NextOper: TOper);
label
 SkipOperation;
begin;
 if EqPressed
 then if NextOper<>opEq
      then goto SkipOperation
      else // Value2 OK
 else Value2:=StrToFloat(Edit1.Text);

 case Oper of
   opAdd: Value1:=Value1 + Value2;
   opSub: Value1:=Value1 - Value2;
   opMul: Value1:=Value1 * Value2;
   opDiv: Value1:=Value1 / Value2;
   else Value1:=0;
   end;

SkipOperation:
 EqPressed:=true;
 if NextOper<>opEq then begin;
   EqPressed:=false;
   Value2:=Value1;
   Oper:=NextOper;
   end;
 Edit1.Text:=FloatToStr(Value1);
 HasData:=false;
 end;

procedure TForm1.FormCreate(Sender: TObject);
begin;
 Reset;
 end;

procedure TForm1.Button10Click(Sender: TObject);
begin;
 Cipher("0");
 end;

procedure TForm1.Button1Click(Sender: TObject);
begin;
 Cipher("1");
 end;

procedure TForm1.Button2Click(Sender: TObject);
begin;
 Cipher("2");
 end;

procedure TForm1.Button3Click(Sender: TObject);
begin;
 Cipher("3");
 end;

procedure TForm1.Button4Click(Sender: TObject);
begin;
 Cipher("4");
 end;

procedure TForm1.Button5Click(Sender: TObject);
begin;
 Cipher("5");
 end;

procedure TForm1.Button6Click(Sender: TObject);
begin;
 Cipher("6");
 end;

procedure TForm1.Button7Click(Sender: TObject);
begin;
 Cipher("7");
 end;

procedure TForm1.Button8Click(Sender: TObject);
begin;
 Cipher("8");
 end;

procedure TForm1.Button9Click(Sender: TObject);
begin;
 Cipher("9");
 end;

procedure TForm1.Button11Click(Sender: TObject);
begin;
 Calculate(opDiv);
 end;

procedure TForm1.Button12Click(Sender: TObject);
begin;
 Calculate(opMul);
 end;

procedure TForm1.Button13Click(Sender: TObject);
begin;
 Calculate(opSub);
 end;

procedure TForm1.Button14Click(Sender: TObject);
begin;
 Calculate(opAdd);
 end;

procedure TForm1.Button15Click(Sender: TObject);
begin;
 Reset;
 end;

procedure TForm1.Button16Click(Sender: TObject);
begin;
 Calculate(opEq);
 end;

procedure TForm1.Button17Click(Sender: TObject);
begin;
 Fractional:=true;
 end;


 
Fergo ©   (2011-02-26 21:53) [92]

я тож решил наконец. проверил по всякому всё работает. ща опять начнете говорить что что то тут не рационально паршивцы)))


var
 Form1: TForm1;
 x,y: Extended;
 oper: Byte;
 Check1, Check2, Check3: boolean;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 case (sender as TComponent).tag of
   0..9    : Begin
               if Check1=true then Edit1.Text:="0";
               if Edit1.text ="0" then Edit1.Text:=IntToStr((sender as TComponent).tag) else Edit1.text:= Edit1.text + IntToStr((sender as TComponent).tag);
               Check1:=false;
               if (Check2=false) and (Check3=false)then x:=StrToFloat(Edit1.Text);
               if (Check2=true) and (Check3=false)then y:=StrToFloat(Edit1.Text);
               if (Check2=true) and (Check3=true)then y:=StrToFloat(Edit1.Text);
             End;
     10    : if  pos(".",Edit1.text) < 1 then Edit1.text := Edit1.text + ".";
 11..14    : Begin
               oper:=(sender as TComponent).tag;
               Check1:=true;
               Check2:=true;
               if Check3=true then y:=StrToFloat(Edit1.Text);
             End;
     15    : Begin
               if oper<>0 then
                 Begin
                   case oper of
                     11 : x:=x*y;
                     12 : x:=x/y;
                     13 : x:=x+y;
                     14 : x:=x-y;
                   End;
                   Edit1.Text:=FloatToStr(x);
                   Check1:=true;
                   Check2:=false;
                   Check3:=true;
                 End;

             End;
 end;
end;


 
Fergo ©   (2011-02-26 21:55) [93]


> Sha ©

спс за кодец наконец то) ща проверю мож тож нормик будет...


 
Игорь Шевченко ©   (2011-02-26 22:10) [94]

http://www.delphimaster.ru/forums.shtml#rule

изучай



Страницы: 1 2 3 вся ветка

Текущий архив: 2011.06.19;
Скачать: CL | DM;

Наверх




Память: 0.64 MB
Время: 0.01 c
15-1298035148
Palladin
2011-02-18 16:19
2011.06.19
Почему у Спока


15-1298928603
Юрий
2011-03-01 00:30
2011.06.19
С днем рождения ! 1 марта 2011 вторник


2-1300117377
HannibalSmith23
2011-03-14 18:42
2011.06.19
Задача Delphi


2-1299837557
i7
2011-03-11 12:59
2011.06.19
Как избавиться от ошибок сокетов


2-1299761604
картман
2011-03-10 15:53
2011.06.19
почему точка останова не активна?