Автор Тема: ---===СООБЩЕНИЕ ОТ СlasSiC===---  (Прочитано 18190 раз)

0 Пользователей и 1 Гость просматривают эту тему.

ClasSiC

  • Гость
---===СООБЩЕНИЕ ОТ СlasSiC===---
« : 18 Января 2007, 23:03:05 »
Насколько я вижу - топик по программированию здесь практически не используется никем!.
Сколько вопросов здесь было - ответы были практически единицы!.ПОРА БЫ БЫТЬ ПОАКТИВНЕЕ ГОСПОДА ПРОГРАММИСТЫ!.НАЧИНАЙТЕ ПОМОГАТЬ ДРУГ ДРУГУ!.

@le][

  • Гость
Re: ---===СООБЩЕНИЕ ОТ СlasSiC===---
« Ответ #1 : 20 Января 2007, 22:39:59 »
Цитировать
НАЧИНАЙТЕ ПОМОГАТЬ ДРУГ ДРУГУ!.
А где твое начало???
Вноси свои две лепты...
Поддержим!!!

бак

  • Гость
Re: ---===СООБЩЕНИЕ ОТ СlasSiC===---
« Ответ #2 : 21 Января 2007, 01:16:02 »
По прогромированию вопрос вобще тяжелый, помоч разобратся мало кто хочит , программисты заняты другими более важными делами

@le][

  • Гость
Re: ---===СООБЩЕНИЕ ОТ СlasSiC===---
« Ответ #3 : 21 Января 2007, 12:44:26 »
Цитировать
По прогромированию вопрос вобще тяжелый, помоч разобратся мало кто хочит , программисты заняты другими более важными делами
Вот по существу вопросы и просим , будут интересные и тема вырастет...

ClasSiC

  • Гость
Re: ---===СООБЩЕНИЕ ОТ СlasSiC===---
« Ответ #4 : 25 Января 2007, 00:18:58 »
Ну хорошо!.В общем есть такая задача: Нужно сделать калькулятор на Дельфях, но только чтобы он выводил результат "Римскими  цифрами!."Ну что? Какие есть предложения?.
P/S/ I,II,III,IV,V... римские цифры!.

@le][

  • Гость
Re: ---===СООБЩЕНИЕ ОТ СlasSiC===---
« Ответ #5 : 27 Января 2007, 12:41:01 »
Цитировать
Ну хорошо!.В общем есть такая задача: Нужно сделать калькулятор на Дельфях, но только чтобы он выводил результат "Римскими  цифрами!."Ну что? Какие есть предложения?.
P/S/ I,II,III,IV,V... римские цифры!.
Отлично , задача есть . Давай на обозрение свои наработки...

ClasSiC

  • Гость
Re: ---===СООБЩЕНИЕ ОТ СlasSiC===---
« Ответ #6 : 01 Февраля 2007, 00:52:07 »
Отлично , задача есть . Давай на обозрение свои наработки...

unit calc_;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    ButtonPlus: TButton;
    ButtonMinus: TButton;
    ButtonEnter: TButton;
    ButtonC: TButton;
    Button0: TButton;
    ButtonZ: TButton;
    procedure Edit1Change(Sender: TObject; var Key:Char);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button0Click(Sender: TObject);
    procedure ButtonZClick(Sender: TObject);
    procedure ButtonCClick(Sender: TObject);
    procedure ButtonPlusClick(Sender: TObject);
    procedure ButtonMinusClick(Sender: TObject);
    procedure ButtonEnterClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;


implementation

{$R *.dfm}

var
  accum:  real;     // аккумулятор
  oper:   integer;  // операция: 1 - '+' ; 2 - '-';
                    // 0 - "выполнить" (кнопка "=")

  f:      integer;
  { f = 0 ждем первую цифру нового числа, например,
          после выполнения операции, когда на
          индикаторе результат.
    f = 1 ждем остальные цифры. }

// кнопка 0
procedure TForm1.Button0Click(Sender: TObject);
begin
  if f = 0 // первая цифра числа
  then begin
         Edit1.Text := '0';
         f := 1; // ждем остальные цифры
       end
  else
      if Edit1.Text <> '0'
        // чтобы на индикаторе не было
        // нескольких нулей в начале числа
        then  Edit1.Text := Edit1.Text + '0';
end;

// кнопка 1
procedure TForm1.Button1Click(Sender: TObject);
begin
  if f = 0  // первая цифра числа
  then  begin
      Edit1.Text := '1';
      f := 1;  // ждем остальные цифры
    end
  else Edit1.Text := Edit1.Text + '1';
end;

// кнопка 2
procedure TForm1.Button2Click(Sender: TObject);
begin
  if (f = 0) // первая цифра числа
  then begin
         Edit1.Text := '2';
         f := 1;   // ждем остальные цифры
    end
  else Edit1.Text := Edit1.Text + '2';
end;

// кнопка 3
procedure TForm1.Button3Click(Sender: TObject);
begin
  if f = 0
  then begin
         Edit1.Text := '3';
         f := 1;
       end
  else Edit1.Text := Edit1.Text + '3';
end;


// кнопка 4
procedure TForm1.Button4Click(Sender: TObject);
begin
  if f = 0 then
    begin
      Edit1.Text := '4';
      f := 1;
    end
  else Edit1.Text := Edit1.Text + '4';
end;

// кнопка 5
procedure TForm1.Button5Click(Sender: TObject);
begin
  if (f = 0)
  then begin
         Edit1.Text := '5';
         f := 1;
       end
  else Edit1.Text := Edit1.Text + '5';
end;

// кнопка 6
procedure TForm1.Button6Click(Sender: TObject);
begin
  if f = 0
  then begin
         Edit1.Text := '6';
         f := 1;
       end
  else Edit1.Text := Edit1.Text + '6';
end;

// кнопка 7
procedure TForm1.Button7Click(Sender: TObject);
begin
  if f = 0
  then begin
      // первая цифра числа
      Edit1.Text := '7';
      f := 1;
    end
  else Edit1.Text := Edit1.Text + '7';
end;

// кнопка 8
procedure TForm1.Button8Click(Sender: TObject);
begin
  if f = 0
  then begin
         Edit1.Text := '8';
         f := 1;
       end
  else Edit1.Text := Edit1.Text + '8';
end;

// кнопка 9
procedure TForm1.Button9Click(Sender: TObject);
begin
  if f = 0  // первая цифра числа
  then begin
         Edit1.Text := '9';
         f := 1;  // ждем остальные цифры
       end
  else Edit1.Text := Edit1.Text + '9';
end;

// десятичная точка
procedure TForm1.ButtonZClick(Sender: TObject);
begin
  if Edit1.Text = '0' then
    begin
      Edit1.Text := '0,';
      f := 1;
    end;
  if Pos(',',Edit1.Text) = 0 then
      Edit1.Text := Edit1.Text + ',';
end;


// выполнение операции
procedure DoOper;
var
    numb: real; // число на индикаторе
begin
    // accum содержит результат предыдущей
    // операции, oper - код операции, которую
    // надо выполнить. Операнд находится
    // на индикаторе.
    numb := StrToFloat(Form1.Edit1.Text);
    case oper of
    0: accum := numb;
    1: accum := accum + numb;
    2: accum := accum - numb;
    end;
    Form1.Edit1.Text := FloatToStr(accum);
end;

// Кнопка "+".
procedure TForm1.ButtonPlusClick(Sender: TObject);
{  Надо выполнить предыдущую операцию,
  вывести результат на индикатор,
  запомнить текущую операцию и
  установить режим ожидания первой
  цифры нового числа. }
begin
  if f = 0 // ждем первую цифру, но пользователь
           // щелкнул на кнопке операции
    then oper := 1 // запомним операцию
  else begin
    DoOper;   // выполнить предыдущую операцию
    oper :=1; // запомнить текущую операцию
    f:=0;     // ждем первую цифру нового числа
  end;
end;

// кнопка "-"
procedure TForm1.ButtonMinusClick(Sender: TObject);
// см. комментарий к проц. обработки OnClick на "+"
begin
  if f = 0 // ждем первую цифру
    then oper := 2
  else begin
    DoOper;   // выполнить предыдущую операцию
    oper :=2; // запомнить текущую операцию
    f:=0;     // ждем первую цифру нового числа
  end;
end;

// кнопка "="
procedure TForm1.ButtonEnterClick(Sender: TObject);
begin
  if f = 0   // ждем первую цифру
    then oper := 0
  else begin
    DoOper;   // выполнить предыдущую операцию
    oper :=0; // запомнить текущую операцию
    f:=0;     // ждем первую цифру нового числа
  end;
end;

// кнопка "с" - очистка
procedure TForm1.ButtonCClick(Sender: TObject);
begin
  Edit1.Text := '0';
  accum := 0;
  oper := 0;
  f := 0; // ждем первую цифру числа
end;

// нажатие клавиши в поле Edit1
procedure TForm1.Edit1Change(Sender: TObject; var Key:Char);
begin
  Key := Chr(0);  // не отображать символы
end;

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

end.

Вот впринципе просто калькулятор, а мне надо чтобы он работал как с простыми цифрами так и с римкими

@le][

  • Гость
Re: ---===СООБЩЕНИЕ ОТ СlasSiC===---
« Ответ #7 : 04 Февраля 2007, 12:10:54 »
Цитировать
он работал как с простыми цифрами так и с римкими
Да это полный изврат конечно, так как такой калькулятор останется навряд ли  востребованым - расцвет Римской империи уже давно миновал...
Реализовать все можно элементарно: кидаешь на свою форму - заготовку калькулятора ещё одну пимпу ,например радио-буттон или же просто кнопку, далее к этой кнопке привязываешь функцию по переводу калькулятора из обычного состояния в "Римское" - тоесть чтоб циферки выводил Римские, пример тому как в Виндовском калькуляторе из обычного десятиричного состояния переключаешь калькулятор в шестнацатиричный , двоичный или восьмеричный режим .Далее если обратится к стандартным таблицам символов кодировок , как Юникод ,Дос или Виндовс
содержащим основные наборы символов , то конечно же Римского обозначения там не будет и вот тебе надо его реализовать , например в С++ для этого я бы создал инклюдник в котором описал бы используемые клавиши клавиатуры и соответствующие им Римские обозначения , ну а для Паскаля наверно можно это реализовать , как обычный Виндовый файл шрифта TrueType -  используемые системой и расположенные по адресу : WINNT\Fonts ,- именно в нем сделать свое "Римское" видение  символов ну а далее заюзать этот файл в исходном коде для использования твоим калькулятором. И конечно же тебе понадобится своя функция которая бы умела работать как с простым так и с Римским обозначением символов...
Лирическое отступление: этот калькулятор будет очень тормознутым в скорости выполнения операций - по причине того что помимо вычислений ему надо будет ещё дополнительно конвертировать вычисления из обычной в Римскую систему счисления , которая согласно истории и испытанию временем не выжила в борьбе за существование и на сагодняшний день просто мертва, на малых значениях вычислений это может быть будет и не заметно , но при работе с двенадцатью или пятьнадцатью разрядными числами скорей всего будет 100% загрузка процессора , какой бы модели он ни был , а с отрицательными числами вообще будет ступор...
И стоит ли тратить свое время на эту утопическую затею ???
Если и другие твои затеи подобны этой , то не обессудь за не внимание...

ClasSiC

  • Гость
Re: ---===СООБЩЕНИЕ ОТ СlasSiC===---
« Ответ #8 : 08 Февраля 2007, 01:45:00 »
дело в том что это дело нужно не мне!. и потом - пока простой кальулятор, а дальше больше...

informatik

  • Специалист
  • *
  • Оффлайн Оффлайн
  • Сообщений: 550
  • Общая оценка: 2
  • Пол: Мужской
  • Почти я:)
Re: ---===СООБЩЕНИЕ ОТ СlasSiC===---
« Ответ #9 : 01 Февраля 2008, 13:42:38 »
Народ! Нужно помогать друг другу,хотя уговаривать не буду.... Кто хочет тот поможет:)
Все знать невозможно. Возможно знать многое.

informatik

  • Специалист
  • *
  • Оффлайн Оффлайн
  • Сообщений: 550
  • Общая оценка: 2
  • Пол: Мужской
  • Почти я:)
Re: ---===СООБЩЕНИЕ ОТ СlasSiC===---
« Ответ #10 : 17 Апреля 2008, 16:29:40 »
Я бы и рад помощь, но только по определенным языкам (новичкам). Дельфи, Турбо паскаль и т.д.
Если что пишите.
Как будет время отвечу
Все знать невозможно. Возможно знать многое.