Составьте программу вывода на экран горизонтального меню, состоящего из четырех пунктов и Выход. Название пунктов считывайте из файла при последовательной активизации каждого пункта меню курсором. При этом считать, что строка файла – это один пункт меню. Если в файле меньше четырех строк, то программа выводит сообщение об ошибке. При активизации Выход программа завершает работу — Pascal(Паскаль)

uses crt;
const Kol=5;
type
 stroka=string[60];
 masmen=array [1..kol] of stroka;
var
 i,k : byte;
 men:masmen;
 n:integer;
 
procedure vvodpmen(var men:masmen;var n:integer);
var
 fin:text;
begin
 assign(fin,'menul12.txt');
 reset(fin);
 n:=0;
 while not eof(fin) do
 begin
  inc(n);
  readln(fin,men[n]);
 end;
 
 close(fin);
 
end;
 
procedure PrintMenu(var k: byte);
var kod: char;
begin
clrscr;
k:=1;
gotoxy(4,1);
K :=1;
repeat
  for i:=1 to Kol do
   begin
     if I=K then
      begin
         textbackground(0);
         textcolor(10);
      end
     else
      begin
         textbackground(0);
         textcolor(15)
      end;
     gotoxy(5*(i-1)+1,1);
     write(men[i]);
   end;
  repeat
  kod:=readkey;
  until Kod in [#13, #75, #77];
  case Kod of
  #75: begin  K := K-1; if K = 0 then K := Kol;
       end;
  #77: begin K :=K+1;  if K =10 then K := 1; end;
   end;
 until Kod = #13 ;
 
end;
begin
clrscr;
vvodpmen (men,n);
 if n<kol then
 begin
  writeln ('oshibka');
  readkey;
  exit;
 end;
 
 
 repeat
   textbackground(0);
   textcolor(15);
   PrintMenu(K);
   clrscr;
   textbackground(0);
   textcolor(15);
 
   if k<5 then
    begin
     write(men[k]); readln;
    end
   else exit;
 until k = 5;
end.

Leave a Comment

+ 18 = 19