unit Geo8N1;

interface

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

type
  TForm10 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Image1: TImage;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    Button3: TButton;
    Edit2: TEdit;
    Button4: TButton;
    GroupBox1: TGroupBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    procedure Button1Click(Sender: TObject);
    procedure vzz;
    procedure vzz2;
    procedure perfo;
    procedure FormCreate(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure RadioButton3Click(Sender: TObject);
    procedure RadioButton4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form10: TForm10;
  b1,b2,b3,b11,b22,b33,storona1,kyt1,storona2,kyt2:string;
  s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,storona3,kyt3:string;
  i,j1,j2,j3,ku1,ku2,ku3,k,lpr,flag,lev,protv3,protv4,x:integer;
  j4,j5,j6,j7,protv3a,protv3b,protv4a,protv4b:integer;
  kpcolor:integer;
  mb,m1r,m2r,mu:array[1..20] of integer;
  mlev,mpf:array[1..20] of integer;
  f1,f2:text;
  protv1,protv2,protv5,kpo,kvo,co,ztu,ko,kdo,j,nvo,les:integer;
  protv6,protv7,protv7a,protv7b,protv8,n,m,nod,protv9,protv10:integer;
  tvn,tvp:longint;
  tb,te,tt:longint;
  date1:Tdatetime;
  fp:text;
  tbg,dbg:string;
  np:array[1..7] of string[10];
  alfa,beta,k1,k2,gamma:array[1..600] of integer;
  bul1,bul2,bul3:boolean;


implementation

{$R *.dfm}

function slvibor(ng,vg:integer):integer;
var prv:integer;
begin
prv:=random((vg-ng)*10+9)+ng*10;
prv:=trunc(prv/10);
slvibor:=prv;
end;

procedure evklid;
begin
while n<>m do
begin
if n>m then n:=n-m;
if n<m then m:=m-n;
end;
nod:=n;
end;

procedure opgvf;
begin
date1:=now;
dbg:=datetostr(date1);
tbg:=timetostr(date1);
end;

procedure optv;  // определение текущего времени
begin
date1:=now;
s2:=timetostr(date1);
if copy(s2,2,1)=':' then
begin
s3:=copy(s2,1,1);s4:=copy(s2,3,2);s5:=copy(s2,6,2);
end
else
begin
s3:=copy(s2,1,2);s4:=copy(s2,4,2);s5:=copy(s2,7,2);
end;
val(s3,k,co);
tt:=k*3600;
val(s4,k,co);
tt:=tt+k*60;
val(s5,k,co);
tt:=tt+k;
end;

procedure deltt;
var aa7,bb7,cc7:integer;
begin
for cc7:=1 to 100 do
begin
for aa7:=1 to 2000000000 do bb7:=1;
end;
end;

procedure zmpf;
begin
mpf[1]:=2;mpf[2]:=3;mpf[3]:=5;mpf[4]:=7;mpf[5]:=11;mpf[6]:=13;mpf[7]:=17;
mpf[8]:=19;mpf[9]:=23;mpf[10]:=29;
end;

procedure TForm10.vzz;
var ncol,xv,yv,vrx,vry,lprv,kst,i:integer;
mkb:array[1..200] of string[100];
sv,sv1:string;
begin
//
lprv:=random(600);
//lprv:=450;
if lprv<100 then
begin
if kpo=1 then assignfile(fp,'god\rose1blue.IFF');
if kpo=2 then assignfile(fp,'god\rose1red.IFF');
if kpo=3 then assignfile(fp,'god\rose1thre.IFF');
if kpo=4 then assignfile(fp,'god\rose1four.IFF');
end;
if lprv>=500 then
begin
if kpo=1 then assignfile(fp,'god\rose2blue.IFF');
if kpo=2 then assignfile(fp,'god\rose2red.IFF');
if kpo=3 then assignfile(fp,'god\rose2thre.IFF');
if kpo=4 then assignfile(fp,'god\rose2four.IFF');
end;
if (100<=lprv)and(lprv<200) then
begin
if kpo=1 then assignfile(fp,'god\rose3blue.IFF');
if kpo=2 then assignfile(fp,'god\rose3red.IFF');
if kpo=3 then assignfile(fp,'god\rose3thre.IFF');
if kpo=4 then assignfile(fp,'god\rose3four.IFF');
end;
if (200<=lprv)and(lprv<300) then
begin
if kpo=1 then assignfile(fp,'god\rose11blue.IFF');
if kpo=2 then assignfile(fp,'god\rose11red.IFF');
if kpo=3 then assignfile(fp,'god\rose11thre.IFF');
if kpo=4 then assignfile(fp,'god\rose11four.IFF');
end;
if (300<=lprv)and(lprv<400) then
begin
if kpo=1 then assignfile(fp,'god\rose21blue.IFF');
if kpo=2 then assignfile(fp,'god\rose21red.IFF');
if kpo=3 then assignfile(fp,'god\rose21thre.IFF');
if kpo=4 then assignfile(fp,'god\rose21four.IFF');
end;
if (400<=lprv)and(lprv<500) then
begin
if kpo=1 then assignfile(fp,'god\rose31blue.IFF');
if kpo=2 then assignfile(fp,'god\rose31red.IFF');
if kpo=3 then assignfile(fp,'god\rose31thre.IFF');
if kpo=4 then assignfile(fp,'god\rose31four.IFF');
end;
reset(fp);
i:=1;
while not(eof(FP)) do
begin
readln(fp,mkb[i]);inc(i);
end;
kst:=i-1;

with form10.Canvas do
begin
if kpo<3 then begin xv:=600;yv:=550;end
else begin xv:=600;yv:=400;end;
vrx:=2;vry:=2;
//assignfile(fp1,'otl.txt');
//rewrite(fp1);
for i:=1 to kst do
begin
sv1:=mkb[i];
//writeln(fp1,sv1);
for j:=1 to length(sv1) do
begin
sv:=copy(sv1,j,1);
if sv='A' then ncol:=10;
   if sv='B' then ncol:=11;
   if sv='C' then ncol:=12;
   if sv='D' then ncol:=13;
   if sv='E' then ncol:=14;
   if sv='F' then ncol:=15;
   if sv='0' then ncol:=0;
   if sv='1' then ncol:=1;
   if sv='2' then ncol:=2;
   if sv='3' then ncol:=3;
   if sv='4' then ncol:=4;
   if sv='5' then ncol:=5;
   if sv='6' then ncol:=6;
   if sv='7' then ncol:=7;
   if sv='8' then ncol:=8;
   if sv='9' then ncol:=9;
case ncol of
0:begin pen.Color:=$000000;brush.Color:=$000000;end; // black
1:begin pen.Color:=$ff8000;brush.Color:=$ff8000;end; // darkblue
2:begin pen.Color:=clgreen;brush.Color:=clgreen;end; // green
3:begin pen.Color:=claqua;brush.Color:=claqua;end;   // biruza
4:begin pen.Color:=$a000ff;brush.Color:=$a000ff;end; // red
5:begin pen.Color:=$FF00ff;brush.Color:=$FF00ff;end; // fiolet
6:begin pen.Color:=$0080ff;brush.Color:=$0080ff;end; // brown
7:begin pen.Color:=$d0d0d0;brush.Color:=$d0d0d0;end; // gray
8:begin pen.Color:=$a0a0a0;brush.Color:=$a0a0a0;end; // darkgreay
9:begin pen.Color:=$ff0000;brush.Color:=$ff0000;end; // blue
10:begin pen.Color:=$00ff00;brush.Color:=$00ff00;end;// green
11:begin pen.Color:=clskyblue;brush.Color:=clskyblue;end;
12:begin pen.Color:=$0000ff;brush.Color:=$0000ff;end; // red
13:begin pen.Color:=$FFc0ff;brush.Color:=$FFc0ff;end; // fiolet
14:begin pen.Color:=$00FFff;brush.Color:=$00FFff;end; // yellow
15:begin pen.Color:=$ffffff;brush.Color:=$ffffff;end; // white
END;  //  CASE
{
}
rectangle(xv+(j-1)*vrx,yv,xv+j*vrx,yv+vry);
end; // j
inc(yv,vry);
end;// i
//closefile(fp1);
end;  //  canvas

end;

procedure TForm10.vzz2;
var ncol,xv,yv,vrx,vry,lprv,kst,i:integer;
mkb:array[1..200] of string[100];
sv,sv1:string;
begin
lprv:=random(600);
//lprv:=450;
if lprv<100 then
begin
if kpo=1 then assignfile(fp,'god\rose1yyy.IFF');
if kpo=2 then assignfile(fp,'god\rose1gray.IFF');
if kpo=3 then assignfile(fp,'god\rose1thre2.IFF');
if kpo=4 then assignfile(fp,'god\rose1four2.IFF');
end;
if lprv>=500 then
begin
if kpo=1 then assignfile(fp,'god\rose2yyy.IFF');
if kpo=2 then assignfile(fp,'god\rose2gray.IFF');
if kpo=3 then assignfile(fp,'god\rose2thre2.IFF');
if kpo=4 then assignfile(fp,'god\rose2four2.IFF');
end;
if (100<=lprv)and(lprv<200) then
begin
if kpo=1 then assignfile(fp,'god\rose3yyy.IFF');
if kpo=2 then assignfile(fp,'god\rose3gray.IFF');
if kpo=3 then assignfile(fp,'god\rose3thre2.IFF');
if kpo=4 then assignfile(fp,'god\rose3four2.IFF');
end;
if (200<=lprv)and(lprv<300) then
begin
if kpo=1 then assignfile(fp,'god\rose11yyy.IFF');
if kpo=2 then assignfile(fp,'god\rose11gray.IFF');
if kpo=3 then assignfile(fp,'god\rose11thre2.IFF');
if kpo=4 then assignfile(fp,'god\rose11four2.IFF');
end;
if (300<=lprv)and(lprv<400) then
begin
if kpo=1 then assignfile(fp,'god\rose21yyy.IFF');
if kpo=2 then assignfile(fp,'god\rose21gray.IFF');
if kpo=3 then assignfile(fp,'god\rose21thre2.IFF');
if kpo=4 then assignfile(fp,'god\rose21four2.IFF');
end;
if (400<=lprv)and(lprv<500) then
begin
if kpo=1 then assignfile(fp,'god\rose31yyy.IFF');
if kpo=2 then assignfile(fp,'god\rose31gray.IFF');
if kpo=3 then assignfile(fp,'god\rose31thre2.IFF');
if kpo=4 then assignfile(fp,'god\rose31four2.IFF');
end;

reset(fp);
i:=1;
while not(eof(FP)) do
begin
readln(fp,mkb[i]);inc(i);
end;
kst:=i-1;

with form10.Canvas do
begin
if kpo<3 then begin xv:=950;yv:=400;end
else begin xv:=950;yv:=550;end;
vrx:=2;vry:=2;
//assignfile(fp1,'otl.txt');
//rewrite(fp1);
for i:=1 to kst do
begin
sv1:=mkb[i];
//writeln(fp1,sv1);
for j:=1 to length(sv1) do
begin
sv:=copy(sv1,j,1);
if sv='A' then ncol:=10;
   if sv='B' then ncol:=11;
   if sv='C' then ncol:=12;
   if sv='D' then ncol:=13;
   if sv='E' then ncol:=14;
   if sv='F' then ncol:=15;
   if sv='0' then ncol:=0;
   if sv='1' then ncol:=1;
   if sv='2' then ncol:=2;
   if sv='3' then ncol:=3;
   if sv='4' then ncol:=4;
   if sv='5' then ncol:=5;
   if sv='6' then ncol:=6;
   if sv='7' then ncol:=7;
   if sv='8' then ncol:=8;
   if sv='9' then ncol:=9;
case ncol of
0:begin pen.Color:=$000000;brush.Color:=$000000;end; // black
1:begin pen.Color:=$ff8000;brush.Color:=$ff8000;end; // darkblue
2:begin pen.Color:=clgreen;brush.Color:=clgreen;end; // green
3:begin pen.Color:=claqua;brush.Color:=claqua;end;   // biruza
4:begin pen.Color:=$a000ff;brush.Color:=$a000ff;end; // red
5:begin pen.Color:=$FF00ff;brush.Color:=$FF00ff;end; // fiolet
6:begin pen.Color:=$0080ff;brush.Color:=$0080ff;end; // brown
7:begin pen.Color:=$d0d0d0;brush.Color:=$d0d0d0;end; // gray
8:begin pen.Color:=$a0a0a0;brush.Color:=$a0a0a0;end; // darkgreay
9:begin pen.Color:=$ff0000;brush.Color:=$ff0000;end; // blue
10:begin pen.Color:=$00ff00;brush.Color:=$00ff00;end;// green
11:begin pen.Color:=clskyblue;brush.Color:=clskyblue;end;
12:begin pen.Color:=$0000ff;brush.Color:=$0000ff;end; // red
13:begin pen.Color:=$FFc0ff;brush.Color:=$FFc0ff;end; // fiolet
14:begin pen.Color:=$00FFff;brush.Color:=$00FFff;end; // yellow
15:begin pen.Color:=$ffffff;brush.Color:=$ffffff;end; // white
END;  //  CASE
{
}
rectangle(xv+(j-1)*vrx,yv,xv+j*vrx,yv+vry);
end; // j
inc(yv,vry);
end;// i
//closefile(fp1);
end;  //  canvas

end;

procedure delt;
var pa,pb:integer;
begin
for pa:=1 to 5000000 do pb:=1;
end;

procedure deltzi;
var a,b:integer;
begin
for a:=1 to 20000000 do b:=1;
end;

procedure TForm10.perfo;
var x,y,rx,ry,tx,ty:integer;
begin
x:=500;y:=350;rx:=700;ry:=350;//kpo:=3;
with form10.Canvas do
begin
pen.Color:=cllime;
rectangle(x,y,x+rx,y+ry);
ty:=y;
if kpo=1 then
begin
for tx:=x to x+rx do
begin
pen.Color:=clyellow;
moveto(tx,y);
lineto(tx,y+ry);
pen.Color:=clblue;
moveto(x,ty);
lineto(x+rx,ty);
ty:=y+trunc((tx-x)*ry/rx);
delt;
end;
vzz;vzz2;
end;  //  kpo=1
if kpo=2 then
begin
for tx:=x+rx downto x do
begin
pen.Color:=clred;
moveto(tx,y);
lineto(tx,y+ry);
//pen.Color:=clsilver;
pen.Color:=$D0D0D0;
moveto(x,ty);
lineto(x+rx,ty);
ty:=y+trunc((tx-x)*ry/rx);
delt;
end;
vzz;vzz2;
end;  //  kpo=2
if kpo=3 then
begin
for tx:=x to x+rx do
begin
pen.Color:=clfuchsia;
moveto(tx,y);
lineto(tx,y+ry);
pen.Color:=$D0D0D0;
//pen.Color:=clscrollbar;
moveto(x,ty);
lineto(x+rx,ty);
ty:=y+ry-trunc((tx-x)*ry/rx);
delt;
end;
vzz;vzz2;
end;  //  kpo=3
if kpo=4 then
begin
for tx:=x+rx downto x do
begin
pen.Color:=clred;
moveto(tx,y);
lineto(tx,y+ry);
pen.Color:=clgreen;
moveto(x,ty);
lineto(x+rx,ty);
ty:=y+ry-trunc((tx-x)*ry/rx);
delt;
end;
vzz;vzz2;
end;  //  kpo=4


end;
end;

procedure level1;  //778
var iv,lprv:integer;
begin
lev:=1;
//10(j1j3+j2(j3+j4))=j3j5(j3+j4)
lprv:=slvibor(1,155);
assignfile(fp,'Ida\Alg8_18.txt');
reset(fp);
for iv:=1 to lprv-1 do readln(fp,s1);
read(fp,j1);read(fp,j2);read(fp,j3);read(fp,j4);read(fp,j5);
closefile(fp);
str(j1,s1);str(j2,s2);str(j3,s3);str(j4,s4);str(j5,s5);s5:=s5+'0%';
protv1:=j3+j4;
s8:='Одному маляру треба на '+s4+' год більше, ніж другому, щоб пофарбувати фасад';
s9:='будинку. Коли перший маляр пропрацював '+s1+' год, а потім його змінив другий,';
s10:='який пропрацював '+s2+' год, то виявилось, що пофарбовано '+s5+' фасаду. За';
s11:='скільки годин може пофарбувати фасад перший маляр?'

end;


procedure level2;    //780
var iv,lprv:integer;
begin
lev:=2;
//100j1j3=j2j4(j2+j3)
lprv:=slvibor(1,2023);
assignfile(fp,'Ida\Alg8_19.txt');
reset(fp);
for iv:=1 to lprv-1 do readln(fp,s1);
read(fp,j1);read(fp,j2);read(fp,j3);read(fp,j4);
closefile(fp);
str(j1,s1);str(j2,s2);str(j3,s3);str(j4,s4);s4:=s4+'%';
protv2:=j2-j1;
s8:='До розчину, який містить '+s1+' г солі, додали '+s3+' г води, після чого концентрація';
s9:='солі зменшилась на '+s4+'. Скільки грамів води містив розчин спочатку?';


end;

procedure level4;     //781
var iv,lprv:integer;
begin
lev:=4;
// 100j2j4=j1j3(j1+j4)
assignfile(fp,'Ida\Alg8_20.txt');
reset(fp);
lprv:=slvibor(1,401);
for iv:=1 to lprv-1 do readln(fp,s1);
read(fp,j1);read(fp,j2);read(fp,j3);read(fp,j4);
closefile(fp);
str(j1,s1);str(j2,s2);str(j3,s3);str(j4,s4);
protv4:=j1-j2;
                                                                      
s8:='Сплав міді й цинку, який містив '+s2+' кг цинку, сплавили з '+s4+' кг міді. Одержаний';
s9:='сплав містить на '+s3+'% міді більше, ніж початковий. Скільки кілограмів міді';
s10:='містив початковий сплав?';
//s11:='';


end;

procedure level3;  //777
var iv,lprv:integer;
begin
lev:=3;
//  j1(2j2+j3)=j2(j2+j3)
lprv:=slvibor(1,25);
//lprv:=12;
assignfile(fp,'Ida\Alg8_17.txt');
reset(fp);
for iv:=1 to lprv-1 do readln(fp,s1);
read(fp,j1);read(fp,j2);read(fp,j3);

closefile(fp);
protv3b:=j2;
protv3a:=protv3b+j3;
str(j1,s1);str(j3,s3);
case j1 of
10,11,12,13,14,15,16,17,18,19,20,25,26,27,28,29,30,35,36,37,38,39,40:s1:=s1+' днів';
21,31,41,51:s1:=s1+' день';
22,23,24,32,33,34,42,43,44,52,53,54:s1:=s1+' дні';
45,46,47,48,49,50,55,56,57,58,59,60:s1:=s1+' днів';
end;
case j3 of
2,3,4:s3:=s3+' дні';
else s3:=s3+' днів';
end;

s8:='Два робітники, працюючи разом, можуть виконати виробниче завдання за '+s1+'.';
s9:='За скільки днів може виконати це завдання кожен з них, працюючи самостійно, якщо';
s10:='другому для цього потрібно на '+s3+' більше ніж першому?';


end;

procedure level5;  //782
var iv,lprv:integer;
begin
lev:=5;
//6j5(j1-j4)=(j2-j5)(6j4-j3j5)
lprv:=slvibor(1,11249);
//lprv:=11249;
assignfile(fp,'Ida\Alg8_21.txt');
reset(fp);
for iv:=1 to lprv-1 do readln(fp,s1);
read(fp,j1);read(fp,j2);read(fp,j3);read(fp,j4);read(fp,j5);
closefile(fp);
str(j1,s1);str(j2,s2);str(trunc(j3/6),s3);j6:=j3-6*trunc(j3/6);str(j6,s6);
s3:=s3+' год '+s6+'0 хв';
str(j4,s4);str(j5,s5);
protv5:=j5;
                                                                       
s8:='Через '+s3+' після відправлення плоту від пристані А за течією річки назустріч';
s9:='йому від пристані В відійшов катер. Знайдіть швидкість течії річки, якщо пліт і ';
s10:='катер зустрілись на відстані '+s4+' км від пристані А, швидкість катера в стоячій';
s11:='воді дорівнює '+s2+' км/год, а відстань між А і В '+s1+' км.';

end;

procedure level6; //783
var iv,lprv:integer;
begin
lev:=6;
//j2j3=j1j2-j1j1
lprv:=slvibor(1,26);
//lprv:=3843;
assignfile(fp,'Ida\Alg8_22.txt');
reset(fp);
for iv:=1 to lprv-1 do readln(fp,s1);
read(fp,j1);read(fp,j2);read(fp,j3);
closefile(fp);
str(j1,s1);str(j2,s2);str(j3,s3);
protv6:=j1;


s8:='До басейну підведено дві труби. Через одну трубу басейн наповнюють водою, а через';
s9:='другу спорожнюють, причому на спорожнення треба на '+s2+' год більше, ніж на наповнення. ';
s10:='Якщо відкрити дві труби одночасно, то басейн наповниться за '+s3+' год. За скільки ';
s11:='годин можна наповнити порожній басейн водою через першу трубу?';

end;


procedure level7;   //779
var lprv,iv:integer;
begin
lev:=7;
//  j1j4+2j2j4+j1j3+j2j3=j4j4+j3j4
lprv:=slvibor(1,23);
assignfile(fp,'Ida\Alg8_24.txt');
reset(fp);
for iv:=1 to lprv-1 do readln(fp,s1);
read(fp,j1);read(fp,j2);read(fp,j3);read(fp,j4);
protv7a:=j4+j3;protv7b:=j4;
closefile(fp);
str(j1,s1);str(j2,s2);str(j3,s3);str(j4,s4);

s8:='Першого дня тракторист працював на оранці поля '+s1+' год. Другого дня до нього';
s9:='приєднався другий тракторист, і через '+s2+' год спільної роботи вони закінчили';
s10:='оранку. За скільки годин може зорати це поле кожен тракторист, працюючи окремо,';
s11:='якщо першому для цього потрібно на '+s3+' год менше, ніж другому?';


end;

procedure level8;  //784
var iv,lprv:integer;
begin
lev:=8;
//  j1*j1=j3*j2
lprv:=slvibor(1,40);
assignfile(fp,'Ida\Alg8_23.txt');
reset(fp);
for iv:=1 to lprv-1 do readln(fp,s1);
read(fp,j1);read(fp,j2);read(fp,j3);
closefile(fp);
protv8:=j1;
str(j1,s1);str(j2,s2);str(j3,s3);

s8:='Для наповнення басейну через першу трубу треба стільки часу, як і для наповнення';
s9:='через другу і третю трубу одночасно. Через першу трубу басейн наповнюється на '+s2+' год';
s10:='швидше, ніж через другу, і на '+s3+' год швидше ніж через третю. Скільки часу потрібно';
s11:='для наповнення басейну через першу трубу?';
end;





procedure TForm10.Button1Click(Sender: TObject);
begin
close;
end;

procedure TForm10.FormCreate(Sender: TObject);
begin
randomize;
kpcolor:=0;
kpo:=0;
kvo:=0;
ko:=0;
button1.Caption:='Повернення';
button2.Caption:='Початок';
button3.Caption:='Перевірка';
button4.Caption:='Продовження';
label11.Caption:='Оберіть рівень складності';
for i:=1 to 20 do
begin
mlev[i]:=0;
m1r[i]:=0;
m2r[i]:=0;
mu[i]:=0;
end;
edit1.Visible:=false;
edit2.Visible:=false;
button2.Visible:=false;
button3.Visible:=false;
button4.Visible:=false;
label1.Caption:='';
label2.Caption:='';
label3.Caption:='';
label4.Caption:='';
label5.Caption:='';
label6.Caption:='';
label7.Caption:='';
label8.Caption:='';
label9.Caption:='';
label10.Caption:='';
end;

procedure TForm10.Button4Click(Sender: TObject);
begin
button4.Visible:=false;
button3.Visible:=true;
edit1.Enabled:=true;
edit1.Color:=clwhite;
edit1.Text:='';
edit1.Visible:=false;
edit2.Enabled:=true;
edit2.Color:=clwhite;
edit2.Text:='';
edit2.Visible:=false;
image1.Visible:=false;
label3.Caption:='';
label4.Caption:='';
label5.Caption:='';
label6.Caption:='';
label7.Caption:='';
label10.Caption:='';
//button3.Visible:=true;
//image3.Visible:=false;
str(ko+1,s1);
label1.Caption:='Завдання № '+s1;
flag:=5;
while flag=5 do
begin
lpr:=random(79)+10;
lpr:=trunc(lpr/10);
if mlev[lpr]=0 then begin mlev[lpr]:=1;flag:=9;end;
end;
//lpr:=6;
//lev:=1;
case lpr of
1:level1;
2:level2;
3:level3;
4:level4;
5:level5;
6:level6;
7:level7;
8:level8;
end;
if lev=1 then
begin
edit1.Visible:=true;
label2.Caption:=s8;
label3.Caption:=s9;
label4.Caption:=s10;
label10.Caption:=s11;
end;
if lev=2 then
begin
edit1.Visible:=true;
label2.Caption:=s8;
label3.Caption:=s9;
//label4.Caption:=s10;
end;
if lev=7 then
begin
edit1.Visible:=true;
edit2.Visible:=true;
label2.Caption:=s8;
label3.Caption:=s9;
label4.Caption:=s10;
label10.Caption:=s11;
label6.Caption:='Перший';
label7.Caption:='Другий';
end;
if (lev=3) then
begin
edit1.Visible:=true;
edit2.Visible:=true;
label2.Caption:=s8;
label3.Caption:=s9;
label4.Caption:=s10;
label6.Caption:='Першому';
label7.Caption:='Другому';
end;
if lev=4 then
begin
edit1.Visible:=true;
label2.Caption:=s8;
label3.Caption:=s9;
label4.Caption:=s10;

end;
if lev=5 then
begin
edit1.Visible:=true;
label2.Caption:=s8;
label3.Caption:=s9;
label4.Caption:=s10;
label10.Caption:=s11;
end;
if lev=6 then
begin                     
edit1.Visible:=true;
image1.Visible:=true;
label2.Caption:=s8;
label3.Caption:=s9;
label4.Caption:=s10;
label10.Caption:=s11;
end;
if lev=8 then
begin
edit1.Visible:=true;
label2.Caption:=s8;
label3.Caption:=s9;
label4.Caption:=s10;
label10.Caption:=s11;
end;
end;

procedure TForm10.Button3Click(Sender: TObject);
begin
inc(ko);
button3.Visible:=false;
if ko<les then button4.Visible:=true;
if lev=1 then
begin
s1:=edit1.Text;
str(protv1,s2);
if s1=s2 then
begin
label5.Caption:='Правильно';
inc(kpo);
perfo;
end
else
begin
label5.Caption:='Неправильно';
edit1.Color:=clred;
label6.Caption:=s2;
inc(kpo);
perfo;
end;
edit1.Enabled:=false;
end;
if lev=2 then
begin
s1:=edit1.Text;
str(protv2,s2);
if s1=s2 then
begin
label5.Caption:='Правильно';
inc(kpo);
perfo;
end
else
begin
label5.Caption:='Неправильно';
edit1.Color:=clred;
label6.Caption:=s2;
end;
edit1.Enabled:=false;
end;

if lev=3 then
begin
s1:=edit1.Text;
s2:=edit2.Text;
str(protv3b,s3);str(protv3a,s4);
if (s1=s3)and(s2=s4) then
begin
label5.Caption:='Правильно';
inc(kpo);
perfo;
end
else
begin
label5.Caption:='Неправильно';
if s1<>s3 then begin edit1.Color:=clred;label6.Caption:=s3;end;
if s2<>s4 then begin edit2.Color:=clred;label7.Caption:=s4;end;
end;
edit1.Enabled:=false;
edit2.Enabled:=false;
end;

if lev=4 then
begin
s1:=edit1.Text;
str(protv4,s3);
if (s1=s3) then
begin
label5.Caption:='Правильно';
inc(kpo);
perfo;
end
else
begin
label5.Caption:='Неправильно';
edit1.Color:=clred;
label6.Caption:=s3;
end;
edit1.Enabled:=false;
end;
if lev=5 then
begin
s1:=edit1.Text;
str(protv5,s2);
if s1=s2 then
begin
label5.Caption:='Правильно';
inc(kpo);
perfo;
end
else
begin
label5.Caption:='Неправильно';
edit1.Color:=clred;
label6.Caption:=s2;
end;
edit1.Enabled:=false;
end;

if lev=6 then
begin
s1:=edit1.Text;
str(protv6,s2);
if s1=s2 then
begin
label5.Caption:='Правильно';
inc(kpo);
perfo;
end
else
begin
label5.Caption:='Неправильно';
edit1.Color:=clred;
label6.Caption:=s2;
end;
edit1.Enabled:=false;
end;

if lev=7 then
begin
s1:=edit1.Text;
s2:=edit2.Text;
str(protv7b,s3);str(protv7a,s4);
if (s1=s3)and(s2=s4) then
begin
label5.Caption:='Правильно';
inc(kpo);
perfo;
end
else
begin
label5.Caption:='Неправильно';
if s1<>s3 then begin edit1.Color:=clred;label6.Caption:=s3;end;
if s2<>s4 then begin edit2.Color:=clred;label7.Caption:=s4;end;
end;
edit1.Enabled:=false;
edit2.Enabled:=false;
end;


if lev=8 then
begin
s1:=edit1.Text;
str(protv8,s2);
if s1=s2 then
begin
label5.Caption:='Правильно';
inc(kpo);
perfo;
end
else
begin
label5.Caption:='Неправильно';
edit1.Color:=clred;
label6.Caption:=s2;
end;
edit1.Enabled:=false;
end;

if lev=9 then
begin
s1:=edit1.Text;
str(protv9,s2);
if s1=s2 then
begin
label5.Caption:='Правильно';
inc(kpo);
perfo;
end
else
begin
label5.Caption:='Неправильно';
edit1.Color:=clred;
label6.Caption:=s2;
end;
edit1.Enabled:=false;
end;

if lev=10 then
begin
s1:=edit1.Text;
str(protv10,s2);
if s1=s2 then
begin
label5.Caption:='Правильно';
inc(kpo);
perfo;
end
else
begin
label5.Caption:='Неправильно';
edit1.Color:=clred;
label6.Caption:=s2;
end;
edit1.Enabled:=false;
end;

if ko=les then
begin

case les of
1:str(12*kpo,s1);
2:str(6*kpo,s1);
3:str(4*kpo,s1);
4:str(3*kpo,s1);
end; //case
if s1='0' then s1:='1';
label8.Caption:='Ваша оцінка '+s1;
optv;te:=tt;
//tt:=te-tb;
if tb<te then tt:=te-tb;
if tb>te then tt:=te+86400-tb;
str(tt,s3);str(ko-kpo,s7);//str(ztu+20,s4);
str(les,s11);
  s2:=' Складність '+s11+'  Урок 1 Загальний час '+s3+' сек. Помилок '+s7;
  assignfile(fp,'statalg.txt');
  append(fp);
  s4:='Розпочато '+dbg+' o '+tbg+s2;
  writeln(fp,'  ');
  writeln(fp,s4);
  closefile(fp);
  str(4*kpo,s7);
  label9.Caption:='Час '+s3+' cек.';
end;
end;

procedure TForm10.Button2Click(Sender: TObject);
begin
opgvf;
optv;tb:=tt;ztu:=1;
button2.Visible:=false;
button3.Visible:=true;
//image3.Visible:=false;
label1.Caption:='Завдання № 1';
flag:=5;
while flag=5 do
begin
lpr:=random(79)+10;
lpr:=trunc(lpr/10);
if mlev[lpr]=0 then begin mlev[lpr]:=1;flag:=9;end;
end;
lpr:=1;
//lev:=5;
case lpr of
1:level1;
2:level2;
3:level3;
4:level4;
5:level5;
6:level6;
7:level7;
8:level8;
end;
//str(lev,s9);label7.Caption:=s9;
if lev=1 then
begin
edit1.Visible:=true;
label2.Caption:=s8;
label3.Caption:=s9;
label4.Caption:=s10;
label10.Caption:=s11;
end;
if lev=2 then
begin
edit1.Visible:=true;
label2.Caption:=s8;
label3.Caption:=s9;
end;
if (lev=3) then
begin
edit1.Visible:=true;
edit2.Visible:=true;
label2.Caption:=s8;
label3.Caption:=s9;
label4.Caption:=s10;
label6.Caption:='Першому';
label7.Caption:='Другому';
end;
if (lev=7) then
begin
edit1.Visible:=true;
edit2.Visible:=true;
label2.Caption:=s8;
label3.Caption:=s9;
label4.Caption:=s10;
label10.Caption:=s11;
label6.Caption:='Перший';
label7.Caption:='Другий';
end;
if lev=4 then
begin
edit1.Visible:=true;
label2.Caption:=s8;
label3.Caption:=s9;
label4.Caption:=s10;
end;
if lev=5 then
begin
edit1.Visible:=true;
label2.Caption:=s8;
label3.Caption:=s9;
label4.Caption:=s10;
label10.Caption:=s11;
end;
if lev=6 then
begin
edit1.Visible:=true;
label2.Caption:=s8;
label3.Caption:=s9;
label4.Caption:=s10;
label10.Caption:=s11;
end;
if lev=8 then
begin
edit1.Visible:=true;
label2.Caption:=s8;
label3.Caption:=s9;
label4.Caption:=s10;
label10.Caption:=s11;
end;
end;

procedure TForm10.RadioButton1Click(Sender: TObject);
begin
les:=1;
button2.visible:=true;
label11.Caption:='';
GroupBox1.Visible:=false;
end;

procedure TForm10.RadioButton2Click(Sender: TObject);
begin
les:=2;
button2.visible:=true;
label11.Caption:='';
GroupBox1.Visible:=false;
end;

procedure TForm10.RadioButton3Click(Sender: TObject);
begin
les:=3;
button2.visible:=true;
label11.Caption:='';
GroupBox1.Visible:=false;
end;

procedure TForm10.RadioButton4Click(Sender: TObject);
begin
les:=4;
button2.visible:=true;
label11.Caption:='';
GroupBox1.Visible:=false;
end;

end.
