Меню, заставка - 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.
Объяснение кода листинга программы
- В начале кода подключается библиотека crt, которая является стандартной для языка Pascal.
- Затем определяется константа Kol, которая равна 9.
- Далее определяется тип mas, который представляет собой массив строк длиной до 9.
- После этого определяется переменная stor, которая представляет собой массив mas. Значениями этой переменной являются строки, состоящие из символов, разделенных пробелами.
- Затем определяются две переменные i и k, которые представляют собой байтовые значения.
- Далее начинается процедура PrintMenu, которая очищает экран и устанавливает позицию курсора в точку (4,1).
- Затем в цикле повторяется следующая последовательность действий:
- Для каждого индекса 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.
- После завершения процедуры PrintMenu вызывается функция clrscr для очистки экрана.
- Затем снова вызывается функция PrintMenu, но уже без аргумента (PrintMenu(k: 0)).
- После этого выводится сообщение 'vybran variant ',k:1) readln;.
- Затем в зависимости от значения k выполняются различные действия:
- Если k равно 1, то выводится сообщение 'delaem chto-to'.
- Если k равно 2, то выводится сообщение 'delaem chto-to...'.
- Если k равно 9, то выводится сообщение 'Do novix vstrech! Nazmite Enter dlja vixoda...'.
- Цикл while продолжается до тех пор, пока k не станет равным 9.
- В конце кода вызывается функция readln для чтения символа новой строки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д