Скачиваний:
15
Добавлен:
30.04.2013
Размер:
4.72 Кб
Скачать
program Kursach;
uses crt, cmenu, ctasks;
const
strAboutProgramm : string = 'ќв  Їа®Ја ¬¬  ­ ЇЁб ­  Љ®а­ЁҐ­Є® ‚ бЁ«ЁҐ¬ ‚ «Ґа쥢ЁзҐ¬.'+
' ‚лЇгбЄ­ЁЄ®¬ Њѓ’“ Ё¬. Ќ.ќ. Ѓ г¬ ­ , Є дҐ¤а  €“-7. '+
'’Ґ®аҐвЁзҐбЄЁ §¤Ґбм ­ ¤® ўўҐбвЁ Ё­д®а¬ жЁо ® Їа®Ја ¬¬Ґ.';
strAboutStudent : string = '‡¤Ґбм бв㤥­в ¤®«¦Ґ­ ­ ЇЁб вм зв®-­ЁЎг¤м Їа® ᥡп.';
strTask1 : string = '‡ ¤ ­ЁҐ ¤«п ЇҐаў®© § ¤ зЁ';
strTask2 : string = '‡ ¤ ­ЁҐ ¤«п ўва®© § ¤ зЁ';
var
menuRes : MenuResult;
srcFileName : string;
checkFileRes : string;
dlgResult : integer;

function checkFile (fileName : string) : string;
var
f : Text;
iores : integer;
begin
checkFile := '';
Assign (f, fileName);
{$I-}
reset (f);
{$I+}
iores := IOResult;

case iores of
0 : checkFile := '';
2 : checkFile := '” ©« ­Ґ ­ ©¤Ґ­';
5 : checkFile := 'ЌҐв ¤®бвгЇ  Є д ©«г'
else checkFile := 'ЌҐ г¤ «®бм ®вЄалвм д ©«';
end;

{writeln (iores);
while keypressed do readkey;
readkey;}
if iores = 0 then close (f);

if length (fileName) = 0 then checkFile := 'ЌҐ®Ўе®¤Ё¬® § ¤ вм Їгвм Є д ©«г';
end;

procedure localSolveTask1 (srcFileName : string);
var
topX, topY, botX, botY : byte;
begin
topX := lo (WindMin) + 1;
topY := hi (WindMin) + 1;
botX := lo (WindMax) + 1;
botY := hi (WindMax) + 1;

ShowString (strTask1, 1, 1, 80, 12, false);
Window (1, 13, 80, 25);
SolveTask1 (srcFileName, '');

Window (topX, topY, botX, botY);
end;

procedure localSolveTask2 (srcFileName : string);
var
topX, topY, botX, botY : byte;
begin
topX := lo (WindMin) + 1;
topY := hi (WindMin) + 1;
botX := lo (WindMax) + 1;
botY := hi (WindMax) + 1;

ShowString (strTask2, 1, 1, 80, 12, false);
Window (1, 13, 80, 25);
SolveTask2 (srcFileName, '');

Window (topX, topY, botX, botY);
end;
begin
ClrScr;
menuRes := mrAboutProgramm;

{ Џ®«м§®ў вҐ«м ўлЇ®«­пҐв § ¤ ­Ёп Ї®Є  ­Ґ ­ ¦¬Ґв "ўл室" }
repeat
{ ®в®Ўа ¦ Ґ¬ ¬Ґ­о ¤«п ўлЎ®а  ¤Ґ©бвўЁп }
menuRes := ShowMenu (menuRes);
{ ®зЁй Ґ¬ нЄа ­ Ї®б«Ґ ¬Ґ­о }
ClrScr;

{ ў ᮮ⢥вбвўЁЁ б ўлЎа ­­л¬ ¤Ґ©бвўЁҐ¬ аҐи Ґ¬ вг Ё«Ё Ё­го § ¤ зг }
if menuRes = mrAboutProgramm then
begin
ShowString (strAboutProgramm, 10, 9, 70, 18, true);
clrscr;
end
else if menuRes = mrAboutStudent then
begin
ShowString (strAboutStudent, 10, 9, 70, 18, true);
clrscr;
end
else if menuRes = mrFirstTask then
begin
repeat
srcFileName := 'task1.in';
dlgResult := EnterString (srcFileName, '” ©« ¤ ­­ле ¤«п ЇҐаў®© § ¤ зЁ:');
clrscr;
if dlgResult = dlgResultOk then
begin
checkFileRes := checkFile (srcFileName);
if length (checkFileRes) > 0 then
ShowString (checkFileRes, 28, 9, 52, 13, true);
end;
until (length (checkFileRes) = 0) or (dlgResult = dlgResultCancel);
if dlgResult = dlgResultOk then
localSolveTask1 (srcFileName);
end
else if menuRes = mrFirstTaskKeyboard then
begin
srcFileName := '';
clrscr;
localSolveTask1 (srcFileName);
end
else if menuRes = mrSecondTask then
begin
repeat
srcFileName := 'task2.in';
dlgResult := EnterString (srcFileName, '” ©« ¤ ­­ле ¤«п ўв®а®© § ¤ зЁ:');
clrscr;
if dlgResult = dlgResultOk then
begin
checkFileRes := checkFile (srcFileName);
if length (checkFileRes) > 0 then
ShowString (checkFileRes, 28, 9, 52, 13, true);
end;
until (length (checkFileRes) = 0) or (dlgResult = dlgResultCancel);
if dlgResult = dlgResultOk then
localSolveTask2 (srcFileName);
end
else if menuRes = mrSecondTaskKeyboard then
begin
srcFileName := '';
clrscr;
localSolveTask2 (srcFileName);
end

until (menuRes = mrExit);
end.
Соседние файлы в папке курсач