- •Министерство образования и науки Российской Федерации Курский государственный технический университет
- •Задание №1 (Delphi)
- •Код программы
- •Interface
- •Implementation
- •I:integer;
- •I:integer;
- •Задание №2 (Delphi)
- •Код программы
- •Interface
- •I,j,q:integer;
- •I,j,q:integer;
- •Код программы
- •Void fCalcParam(AnsiString s) //обсчёт параметров
- •Void fShowMas() //Вывод массива
- •Void __fastcall tfMain::BtWorkClick(tObject *Sender)
- •Void __fastcall tfMain::BtClearClick(tObject *Sender)
- •Код программы
- •Void __fastcall tForm1::pbMainPaint(tObject *Sender)
- •Void __fastcall tForm1::BtWorkClick(tObject *Sender)
- •Void __fastcall tForm1::pbMainMouseDown(tObject *Sender,
- •Void __fastcall tForm1::BtAutoVClick(tObject *Sender)
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
Implementation
{$R *.dfm}
function CheckValue(s:string):boolean; {функция возвращает значение True, если строка S состоит из чисел (0-9)}
var
I:integer;
begin
try
for i:=1 to Length(s) do
if (Copy(s,i,1)='0') or (Copy(s,i,1)='1') or (Copy(s,i,1)='2') or (Copy(s,i,1)='3') or (Copy(s,i,1)='4') or (Copy(s,i,1)='5') or (Copy(s,i,1)='6') or (Copy(s,i,1)='7') or (Copy(s,i,1)='8') or (Copy(s,i,1)='9') then
result:=true
else
begin
result:=false;
break;
end;
finally
end;
end;
function DecToBin(s:string):string; {функция возвращает двоичный вид (строковый) десятичного числа(строковый)}
var
chis,i:integer;
res:string[12];
begin
chis:=StrToInt(s);
for i:=12 downto 1 do
begin
if (chis mod 2 <> 0) then res[i]:='1'
else res[i]:='0';
chis:=trunc(chis/2);
end;
for i:=1 to 12 do
result:=result+res[i];
end;
function Kolich1(s:string):integer; {функция возвращает количество единиц в строке S}
var
I:integer;
begin
result:=0;
for i:=1 to 12 do
if Copy(s,i,1)='1' then result:=result+1;
end;
procedure TFMain.acWorkExecute(Sender: TObject);
var
chis, i:integer;
begin
if CheckValue(EdInput.Text)=false then
showmessage('!Недопустимое значение!')
else
if not((StrToInt(FMain.EdInput.Text)>2) and (StrToInt(FMain.EdInput.Text)<2130)) then
showmessage('Введите целое число от 2 до 2130')
else
begin
chis:=masProst[1];
for i:=2 to 320 do
begin
if masProst[i]<StrToInt(EdInput.Text) then
begin
if kolich1(DecToBin(IntToStr(chis)))<kolich1(DecToBin(IntToStr(masProst[i]))) then chis:=masProst[i];
end
else
break;
end;
LbOutput.Caption:='Простое максимальное число с максимальным количеством единиц в двоичном коде = '+IntToStr(chis);
Lb2.Caption:='Двоичный вид числа = '+DecToBin(IntToStr(chis));
end;
end;
procedure TFMain.BtClearClick(Sender: TObject);
begin
EdInput.Text:='';
LbOutput.Caption:='Простое максимальное число с максимальным количеством единиц в двоичном коде =';
Lb2.Caption:='Двоичный вид числа =';
end;
end.
Задание №2 (Delphi)
Для заданной матрицы размером 10*10 найти такие k, что k-я строка матрицы совпадает с k-м столбцом.
Код программы
Unit UnMain;
Interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TFMain = class(TForm)
LbYsl: TLabel;
SGMatr: TStringGrid;
BtWork: TButton;
BtVvod: TButton;
BtAuto: TButton;
LbOtvet: TLabel;
BtCancel: TButton;
procedure FormCreate(Sender: TObject);
procedure BtAutoClick(Sender: TObject);
procedure BtCancelClick(Sender: TObject);
procedure BtVvodClick(Sender: TObject);
procedure BtWorkClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
function CheckValue(s:string):boolean; {функция возвращает значение True, если строка S состоит из чисел (0-9)}
function CheckLength(s:string):boolean; {функция возвращает значение True, если в строке S кол-во символов не больше N}
var
FMain: TFMain;
mas: array [1..10, 1..10] of integer;
implementation
{$R *.dfm}
procedure TFMain.FormCreate(Sender: TObject);
var
i:integer;
begin
for i:=1 to 10 do
begin
SGMatr.Cells[i,0]:=IntToStr(i);
SGMatr.Cells[0,i]:=IntToStr(i);
end;
end;
procedure TFMain.BtAutoClick(Sender: TObject);
var
i,j:integer;
begin
Randomize;
for i:=1 to 10 do
for j:=1 to 10 do
begin
mas[i,j]:=random(9)+1;
SGMatr.Cells[j,i]:=IntToStr(mas[i,j]);
end;
BtAuto.Enabled:=false;
BtVvod.Enabled:=false;
BtCancel.Enabled:=true;
BtWork.Enabled:=true;
SGMatr.Enabled:=false;
end;
procedure TFMain.BtCancelClick(Sender: TObject);
var
i,j:integer;
begin
for i:=1 to 10 do
for j:=1 to 10 do
SGMatr.Cells[j,i]:='';
BtAuto.Enabled:=true;
BtVvod.Enabled:=true;
BtCancel.Enabled:=false;
BtWork.Enabled:=false;
SGMatr.Enabled:=true;
LbOtvet.Caption:='Строка\ Столбец\ Число\; ';
end;
function CheckValue(s:string):boolean; {функция возвращает значение True, если строка S состоит из чисел (0-9)}
var
i:integer;
begin
try
for i:=1 to Length(s) do
if (Copy(s,i,1)='0') or (Copy(s,i,1)='1') or (Copy(s,i,1)='2') or (Copy(s,i,1)='3') or (Copy(s,i,1)='4') or (Copy(s,i,1)='5') or (Copy(s,i,1)='6') or (Copy(s,i,1)='7') or (Copy(s,i,1)='8') or (Copy(s,i,1)='9') then
result:=true
else
begin
result:=false;
break;
end;
finally
end;
end;
function CheckLength(s:string):boolean; {функция возвращает значение True, если в строке S кол-во символов не больше N}
const N=2;
begin
if Length(S)<=N then
result:=true
else
result:=false;
end;
procedure TFMain.BtVvodClick(Sender: TObject);
var