Меню, заставка - Pascal

Узнай цену своей работы

Формулировка задачи:

ПОМОГИТЕ ПОЖАЛУЙСТА, нужен код написанный в паскале самым простым способом, (с помментаки в виде комментариев в коде что какая строка выполняет действие), и вообщем долно выглядеть так.. появилась окно как в БД.. с словами например выровниными по центру и по вертикале.. передвигая курсором вышки или стрелочками на клавиатуре прямоугольник по словам только передвигается тоесть вверх или вниз и все... и может выбедять только одно из всех слов.. после чего нажимается Ентер и переходит по указанной как ссылке... немогу врубится как написать такое... "дело в том что в паскале далек... а задали такую шнягу наисать... весь инет прошарил нет нечего подобного..."

Решение задачи: «Меню, заставка»

textual
Листинг программы
uses crt;
const Kol=9;
type mas = array [1..Kol] of string[20];
const stor: mas = ('1    ','2     ','3    ','4       ','5      ','6      ','7    ','8    ','9-Vyxod');
var i,k : byte;
procedure PrintMenu(var k: byte);
var kod: char;
begin
clrscr;
k:=1;
gotoxy(4,1);
write('MENU');
 K :=1; { vydelen pervii punkt menu }
repeat
  for i:=1 to Kol do begin
     if I=K then begin
         textbackground(3);
         textcolor(9);
     end
     else begin
            textbackground(0);
            textcolor(15)
     end;
     gotoxy(1,i+1);
     write(stor[i]);
  end;
  repeat
  kod:=readkey;
  until Kod in [#13, #72, #80];
  case Kod of
  #72: begin  K := K-1; if K = 0 then K := Kol;
       end;
  #80: begin K :=K+1;  if K =10 then K := 1; end;
   end;
 until Kod = #13 ;
 
end;
begin
 repeat
   textbackground(0);
   textcolor(15);
   PrintMenu(K);
   clrscr;
   textbackground(0);
   textcolor(15);
   write('vybran variant ',k:1); readln;
   case K of
   1: {delaem chto-to};
   2: {delaem chto-to...};
   9: begin writeln('Do novix vstrech! Nazmite Enter dlja vixoda...'); readln;
      end;
   end;
 until k = 9;
end.

Объяснение кода листинга программы

  1. В начале кода подключается библиотека crt, которая является стандартной для языка Pascal.
  2. Затем определяется константа Kol, которая равна 9.
  3. Далее определяется тип mas, который представляет собой массив строк длиной до 9.
  4. После этого определяется переменная stor, которая представляет собой массив mas. Значениями этой переменной являются строки, состоящие из символов, разделенных пробелами.
  5. Затем определяются две переменные i и k, которые представляют собой байтовые значения.
  6. Далее начинается процедура PrintMenu, которая очищает экран и устанавливает позицию курсора в точку (4,1).
  7. Затем в цикле повторяется следующая последовательность действий:
    • Для каждого индекса i от 1 до Kol выводится текст из массива mas.
    • Если i равно k, то цвет фона становится темным (textbackground(3)), а цвет текста становится светлым (textcolor(9)).
    • В противном случае цвет фона становится светлым (textbackground(0)), а цвет текста становится темным (textcolor(15)).
    • Устанавливается позиция курсора в точку (1,i+1).
    • Выводится символ ',' (kod=readkey).
    • Цикл повторяется до тех пор, пока не будет получен специальный символ #72 (вместе с символом ',' это может быть конец строки).
    • После получения специального символа #72 выполняется обработка этого символа: уменьшается значение k на единицу (K := K-1), если k равно 0, то k устанавливается равным Kol, иначе k устанавливается равным k-1.
    • Если k стало равным 10, то k устанавливается равным 1.
  8. После завершения процедуры PrintMenu вызывается функция clrscr для очистки экрана.
  9. Затем снова вызывается функция PrintMenu, но уже без аргумента (PrintMenu(k: 0)).
  10. После этого выводится сообщение 'vybran variant ',k:1) readln;.
  11. Затем в зависимости от значения k выполняются различные действия:
    • Если k равно 1, то выводится сообщение 'delaem chto-to'.
    • Если k равно 2, то выводится сообщение 'delaem chto-to...'.
    • Если k равно 9, то выводится сообщение 'Do novix vstrech! Nazmite Enter dlja vixoda...'.
  12. Цикл while продолжается до тех пор, пока k не станет равным 9.
  13. В конце кода вызывается функция readln для чтения символа новой строки.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы