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

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

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2012, 22:37   #1
Олесенька
Пользователь
 
Регистрация: 12.11.2012
Сообщений: 12
По умолчанию из Delphi переобразовать в Pascal программу

уважаемые программисты,специалисты )
помогите пожалуйста преобразовать программу с Дельфи в Паскаль

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TMainForm = class(TForm)
Panel1: TPanel;
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;
Button16: TButton;
Button17: TButton;
Button18: TButton;
Button19: TButton;
Text: TEdit;
Button20: TButton;
Button21: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button19Click(Sender: TObject);
procedure Button20Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button21Click(Sender: TObject);
procedure TextChange(Sender: TObject);
procedure Panel1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Const HexTab : array[0..15] of char = ('0','1','2','3','4','5','6','7',
'8','9','A','B','C','D','E','F');
var
MainForm: TMainForm;
LastAdd:string;
PosR:integer;
Res : Array[1..17] of integer;
I : Integer;
S : String;
F : Text;
flag:boolean;
PosR1 : Integer;
implementation
{$R *.dfm}
Procedure Sum(V : String); { Процедура, которая прибавляет к результату новое значение }
Var A : Byte;
PosR : Integer;
Begin
For I := 1 to Length(V) do { Переводим все буквы в верхний регистр и ищем ошибки }
Begin
If V[i] in['a'..'f'] then Dec(V[i],32); { Если этот симвл - маленькая буква, то уменьшаем ее значение на 32 (переводим в верхний регистр) }
If not(V[i] in['0'..'9','A'..'F']) then { Если это не шестнадцатиричное значение, то ошибка }
Begin
WriteLn(V,' is not hex!');
Exit;
End;
End;
For I := Length(V) downto 1 do
Begin
If V[i]>'9' then
A := Ord(V[i])-48-7
else
A := Ord(V[i])-48;
PosR := 16-Length(V)+I; { Выщитываем текущую позицию в массиве Res }
Res[PosR] := Res[PosR] + A; { Прибавляем значение к текущей позиции } //uhuihiu
If Res[PosR]>15 then { ГДе то в этой части кода находится баг }
Begin
Res[PosR-1] := Res[PosR-1] + 1; { Увеличиваем на 1 старшую позицию }
Res[PosR] := Res[PosR] - 16; { А в этой оставляем только остаток }
End;
End;
For I := 16 downto 2 do
Begin
If Res[I]>15 then
Begin
Res[I-1] := Res[I-1] + 1;
Res[I] := Res[I] - 16;
End;
End;
End;
Procedure UnSum(V : String); { Процедура, которая вычитает из результата новое значение }
Var A,j : integer;
Begin
For I := 1 to Length(V) do { Переводим все буквы в верхний регистр и ищем ошибки }
Begin
If V[i] in['a'..'f'] then Dec(V[i],32); { Если этот симвл - маленькая буква, то уменьшаем ее значение на 32 (переводим в верхний регистр) }
If not(V[i] in['0'..'9','A'..'F']) then { Если это не шестнадцатиричное значение, то ошибка }
Begin
WriteLn(V,' is not hex!');
Exit;
End;
End;
Олесенька вне форума Ответить с цитированием
Старый 12.11.2012, 22:38   #2
Олесенька
Пользователь
 
Регистрация: 12.11.2012
Сообщений: 12
По умолчанию

For I := Length(V) downto 1 do
Begin
If V[i]>'9' then
A := Ord(V[i])-48-7
else
A := Ord(V[i])-48;
if(Res[PosR] >= A) then
begin
Res[PosR] := Res[PosR] - A;
end
else begin
Res[PosR] :=Res[PosR] + 16;
Res[PosR] := Res[PosR] - A;
for j := PosR-1 downto 1 do
begin
if(Res[j]>0)then
begin
Res[j]:=Res[j]-1;
break;
end
else begin
Res[j]:=15;
end;
end;
end;
PosR:=PosR - 1;
End;
End;
procedure TMainForm.Button10Click(Sender: TObject);
begin
Text.Text:=Text.Text + 'D';
LastAdd:='D';
end;
procedure TMainForm.Button11Click(Sender: TObject);
begin
LastAdd:='7';
Text.Text:=Text.Text + '7';
end;
procedure TMainForm.Button12Click(Sender: TObject);
begin
LastAdd:='6';
Text.Text:=Text.Text + '6';
end;
procedure TMainForm.Button13Click(Sender: TObject);
begin
LastAdd:='5';
Text.Text:=Text.Text + '5';
end;
procedure TMainForm.Button14Click(Sender: TObject);
begin
LastAdd:='4';
Text.Text:=Text.Text + '4';
end;
procedure TMainForm.Button15Click(Sender: TObject);
begin
LastAdd:='9';
Text.Text:=Text.Text + '9';
end;
procedure TMainForm.Button16Click(Sender: TObject);
begin
LastAdd:='8';
Text.Text:=Text.Text + '8';
end;
procedure TMainForm.Button17Click(Sender: TObject);
var DelOp:string;
begin
if((LastAdd = '+') or (LastAdd = '-')) then
begin
DelOp:=Text.Text;
delete(DelOp, length(DelOp), 1);
Text.Text := DelOp;
end;
Text.Text:=Text.Text + '+';
LastAdd:='+';
end;
procedure TMainForm.Button18Click(Sender: TObject);
var DelOp:string;
begin
if((LastAdd = '+') or (LastAdd = '-')) then
begin
DelOp:=Text.Text;
delete(DelOp, length(DelOp), 1);
Text.Text := DelOp;
end;
Text.Text:=Text.Text + '-';
LastAdd:='-';
end;
procedure TMainForm.Button19Click(Sender: TObject);
var i,k,j,znak:integer;
F,Digit:string;
flag_sim:boolean;
begin
if(Text.Text = '')then
begin
ShowMessage('Введите пример для рассчета!');
end
else if(Text.Text='0') then
begin
Text.Text:='0';
end
else begin
znak:=0;
PosR:=16;
For i := 1 to 17 do Res[i] := 0; { Обнуляем результат }
F:=Text.Text;
k:=1;
if(F[1] = '+')then znak:=1;
if(F[1] = '-')then znak:=2;
if(znak<>0) then inc(k);
While k<=Length(F) do
Begin
if(F[k]='+') then begin break; end;
if(F[k]='-') then begin break; end;
Digit:=Digit+F[k];
inc(k);
End;
if(znak <> 2) then Sum(Digit);
if(znak = 2) then UnSum(Digit);
j:=0;
While k<=Length(F) do
Begin
PosR:=16;
Digit:='';
while(true) do
begin
if(k>Length(F)) then begin break;end;
if((F[k]='+') ) then begin j:=1;inc(k);break; end;
if((F[k]='-') ) then begin j:=2;inc(k);break; end;
inc(k);
end;
while(true) do
begin
if(k>Length(F)) then begin break;end;
if((F[k]='+') ) then begin break; end;
if((F[k]='-') ) then begin break; end;
Digit:=Digit+F[k];
inc(k);
end;
if(j=1)then begin Sum(Digit);end;
if(j=2)then begin UnSum(Digit);end;
End;
S := '';
For I := 1 to 16 do
Begin
S := S + HexTab[Res[i]]; { Перевести из вида целого числа 0..15 в строковый вид '0'..'F' }
End;
While (S<>'') and (S[1]='0') do Delete(S,1,1); { Убираем все нули из начала }
Text.Text:='';
ShowMessage('Ответ: ' + S);
end;
end;
procedure TMainForm.Button1Click(Sender: TObject);
begin
LastAdd:='A';
Text.Text:=Text.Text + 'A';
end;
procedure TMainForm.Button20Click(Sender: TObject);
begin
Text.Text:='0';
end;
procedure TMainForm.Button21Click(Sender: TObject);
var DelOp:string;
begin
DelOp:=Text.Text;
delete(DelOp, length(DelOp), 1);
Text.Text := DelOp;
end;
procedure TMainForm.Button2Click(Sender: TObject);
begin
LastAdd:='B';
Text.Text:=Text.Text + 'B';
end;
procedure TMainForm.Button3Click(Sender: TObject);
begin
LastAdd:='C';
Text.Text:=Text.Text + 'C';
end;
procedure TMainForm.Button4Click(Sender: TObject);
begin
LastAdd:='3';
Text.Text:=Text.Text + '3';
end;
procedure TMainForm.Button5Click(Sender: TObject);
begin
LastAdd:='2';
Text.Text:=Text.Text + '2';
end;
Олесенька вне форума Ответить с цитированием
Старый 12.11.2012, 22:38   #3
Олесенька
Пользователь
 
Регистрация: 12.11.2012
Сообщений: 12
По умолчанию

procedure TMainForm.Button6Click(Sender: TObject);
begin
LastAdd:='1';
Text.Text:=Text.Text + '1';
end;
procedure TMainForm.Button7Click(Sender: TObject);
begin
LastAdd:='E';
Text.Text:=Text.Text + 'E';
end;
procedure TMainForm.Button8Click(Sender: TObject);
begin
LastAdd:='0';
Text.Text:=Text.Text + '0';
end;
procedure TMainForm.Button9Click(Sender: TObject);
begin
LastAdd:='F';
Text.Text:=Text.Text + 'F';
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
Text.Text:='';
end;
procedure TMainForm.TextChange(Sender: TObject);
begin
end;
procedure TMainForm.Panel1Click(Sender: TObject);
begin
end;
end.
Олесенька вне форума Ответить с цитированием
Старый 13.11.2012, 00:01   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,864
По умолчанию

Размер оплаты?
Arigato вне форума Ответить с цитированием
Старый 13.11.2012, 00:57   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Обалдеть... Я бы сказал что это не возможно...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.11.2012, 08:06   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,184
По умолчанию

возможно все.... может ей только сами функции и алгоритм работы... без интерфейса? .. .а если конечно же весь интерфейс еще в Паскаль .. то это пипец как долго и не нужно никому... когда в делфях все уже есть
ADSoft вне форума Ответить с цитированием
Старый 13.11.2012, 09:24   #7
Gevs
Пользователь
 
Регистрация: 22.04.2011
Сообщений: 10
По умолчанию

619544736 пишите обсудим
Gevs вне форума Ответить с цитированием
Старый 13.11.2012, 13:23   #8
Petrovi4
Новичок
Джуниор
 
Регистрация: 16.06.2007
Сообщений: 0
По умолчанию

ICQ: 324-783-266
e-mail: Petrovi486@gmail.com
Делаю быстро, качественно, не дорого.
Предоплаты не требую!!!

Свяжитесь со мной, тут нужно обсудить некоторые моменты
Petrovi4 вне форума Ответить с цитированием
Старый 13.11.2012, 16:33   #9
MansMI
Пользователь
 
Регистрация: 04.07.2012
Сообщений: 32
По умолчанию

mansmi@rambler.ru
пишите если еще актуально
MansMI вне форума Ответить с цитированием
Старый 14.11.2012, 00:38   #10
liljob
Новичок
Джуниор
 
Регистрация: 10.11.2012
Сообщений: 0
По умолчанию

Обращайся,сделаю быстро
icq 3176006
e-mail ; liljob@ukr.net
liljob вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перевести программу рисования графиков с Pascal на Delphi DooD Помощь студентам 5 19.05.2011 23:15
нужно перевести программу из Turbo Pascal в Delphi Insensible Doll Помощь студентам 3 27.05.2010 13:41
записать программу с Pascal на Delphi aiktz Помощь студентам 3 05.02.2010 19:30
перевести программу из Pascal с использованием компонента Stringgrid в delphi. evrey Компоненты Delphi 4 02.06.2008 18:57
ПОМОГИТЕ ПЕРЕДЕЛАТЬ ПРОГРАММУ ИЗ PASCAL В DELPHI Solny6ko YasnoE Помощь студентам 11 11.08.2007 15:24