Автор работы: Пользователь скрыл имя, 11 Мая 2012 в 21:28, курсовая работа
Данная курсовая работа выполнена в среде программирования Delphi. Delphi — результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль.
Введение……………………………………………………………….…………..3
1 Задание на курсовую работу……………………………………………..….....5
2 Разработка программы……...………………………………..………………....6
3 Описание данных ...………………………………………………..…………....7
4 Разбиение задачи на подзадачи (структуризация)……………………..……..8
5 Блок схемы………………………………………………………………..……..9
6 Текст программы………………………………………………………………11
Рекомендуемая литература..…………………..………………………….….….23
Button18: TButton;
Button19: TButton;
Button20: TButton;
Button21: TButton;
Button22: TButton;
Button23: TButton;
Button24: TButton;
Button25: TButton;
Button26: TButton;
Button27: TButton;
Button28: TButton;
Button29: TButton;
Button30: TButton;
Button31: TButton;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure Button19Click(Sender: TObject);
procedure Button20Click(Sender: TObject);
procedure Button21Click(Sender: TObject);
procedure Button23Click(Sender: TObject);
procedure Button24Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button22Click(Sender: TObject);
procedure Button25Click(Sender: TObject);
procedure Button26Click(Sender: TObject);
procedure Button27Click(Sender: TObject);
procedure Button28Click(Sender: TObject);
procedure Button29Click(Sender: TObject);
procedure BackClick(Sender: TObject);
procedure Button31Click(Sender: TObject);
procedure Button30Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1; ch:char; n,i,t:longint; a:longint;
implementation
{$R *.dfm}
function RomanToDec(Value: string): longint;
var
i, lastValue, curValue: longint; minus:integer;
begin
Result := 0;
lastValue := 0;
minus:=0;
if value[1]='-' then begin minus:=1; delete(value,1,1); end
else if value[1]='+' then delete(value,1,1);
for i := Length(Value) downto 1 do
begin
case UpCase(Value[i]) of
'C':
curValue := 100;
'D':
curValue := 500;
'I':
curValue := 1;
'L':
curValue := 50;
'M':
curValue := 1000;
'V':
curValue := 5;
'X':
curValue := 10;
else
raise Exception.CreateFmt('Invalid character: %s', [Value[i]]);
end;
if curValue < lastValue then
Dec(Result, curValue)
else
Inc(Result, curValue);
lastValue := curValue;
end;
if minus=1 then result:=result*(-1);
end;
function DecToRoman(num: longint): string; {returns num in capital roman digits}
const
Nvals = 13;
vals: array[1..Nvals] of word = (1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500,
900, 1000);
roms: array[1..Nvals] of string[2] = ('I', 'IV', 'V', 'IX', 'X', 'XL', 'L',
'XC', 'C', 'CD', 'D', 'CM', 'M');
var
b: 1..Nvals;
num_znak:string;
begin
result := '';
b := Nvals;
num_znak:=intToStr(num);
if num_znak[1]='-' then begin result:='-'; delete(num_znak,1,1) end
else if num_znak[1]='+' then delete(num_znak,1,1);
num:=StrToInt(num_znak);
while num > 0 do
begin
while vals[b] > num do
dec(b);
dec(num, vals[b]);
result := result + roms[b]
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Edit1.Clear;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
if Edit1.text<>'' then begin
ch:='-';
a:=RomanToDec(Edit1.Text);
Edit1.Clear; end
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
if Edit1.text<>'' then begin
case ch of
'-': Edit1.Text:=IntToStr(a-
'+': Edit1.Text:=IntToStr(a+
'*': Edit1.Text:=IntToStr(a*
'H': Edit1.Text:=IntToStr(a div (RomanToDec(Edit1.Text)));
'O': Edit1.Text:=IntToStr(a mod (RomanToDec(Edit1.Text)))
end;
edit1.Text:=DecToRoman(
end;
procedure TForm1.Button14Click(Sender: TObject);
begin
if Edit1.text<>'' then begin
ch:='+';
a:=RomanToDec(Edit1.Text);
Edit1.Clear end;
end;
procedure TForm1.Button15Click(Sender: TObject);
begin
if Edit1.text<>'' then begin
ch:='*';
a:=RomanToDec(Edit1.Text);
Edit1.Clear end
end;
procedure TForm1.Button16Click(Sender: TObject);
begin
if Edit1.text<>'' then begin
ch:='H';
a:=RomanToDec(Edit1.Text);
Edit1.Clear end
end;
procedure TForm1.Button17Click(Sender: TObject);
label metka;
var minus:string;
begin
if Edit1.text<>'' then begin
minus:=Edit1.Text;
if (minus[1]<>'-') and (minus[1]<>'+') then
begin Edit1.Text:='-'+minus; goto metka end;
if minus[1]='+' then begin delete(minus,1,1);
Edit1.Text:='-'+minus; goto metka end;
if minus[1]='-' then begin delete(minus,1,1);
Edit1.Text:='+'+minus; goto metka end; end;
metka:end;
procedure TForm1.Button18Click(Sender: TObject);
begin
if (Edit2.Text<>'') and (StrToInt(edit2.Text)>0) then
Edit2.Text:=Edit2.Text+'0';
end;
procedure TForm1.Button19Click(Sender: TObject);
begin
Edit2.Text:=Edit2.Text+'1';
end;
procedure TForm1.Button20Click(Sender: TObject);
begin
Edit2.Text:=Edit2.Text+'2';
end;
procedure TForm1.Button21Click(Sender: TObject);
begin
Edit2.Text:=Edit2.Text+'3';
end;
procedure TForm1.Button23Click(Sender: TObject);
begin
Edit2.Text:=Edit2.Text+'5';
end;
procedure TForm1.Button24Click(Sender: TObject);
begin
Edit2.Text:=Edit2.Text+'6';
end;
procedure TForm1.Button11Click(Sender: TObject);
begin
Edit1.Text:=Edit1.Text+'M';
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
Edit1.Text:=Edit1.Text+'L';
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
Edit1.Text:=Edit1.Text+'C';
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
Edit1.Text:=Edit1.Text+'D';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Text:=Edit1.Text+'I';
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Edit1.Text:=Edit1.Text+'V';
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
Edit1.Text:=Edit1.Text+'X';
end;
procedure TForm1.Button12Click(Sender: TObject);
begin
if Edit1.Text<>'' then
Edit2.Text:=IntToStr(
else
ShowMessage('Невозможно перевести пустоту в арабское число');
end;
procedure TForm1.Button13Click(Sender: TObject);
begin
if Edit2.Text<>'' then
Edit1.Text:=DecToRoman(
else
ShowMessage('Невозможно перевести пустоту в римское число');
end;
procedure TForm1.Button22Click(Sender: TObject);
begin
Edit2.Text:=Edit2.Text+'4';
end;
procedure TForm1.Button25Click(Sender: TObject);
begin
Edit2.Text:=Edit2.Text+'7';
end;
procedure TForm1.Button26Click(Sender: TObject);
begin
Edit2.Text:=Edit2.Text+'8';
end;
procedure TForm1.Button27Click(Sender: TObject);
begin
Edit2.Text:=Edit2.Text+'9';