Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Алгоритм





1.1. Задать пункты меню.

1.2. Очистить экран.

1.3. Начальное положение курсора (пункт меню) pm = 1.

2. Повторять {движение по меню}

2.1. Повторять

2.1.1. Вывести все пункты меню основной парой цветов.

2.1.2. Вывести текущий пункт меню pm другой парой цветов.

2.1.3. Считать символ с клавиатуры {действия пользователя}

2.1.4. Если символ = #0, то {нажата управляющая клавиша}

а) Считать символ {читаем второй код нажатой клавиши}

б) Выбрать символ из значений

#77: Движение вправо

#75: Движение влево

Пока Символ не будет равен Esc или Enter.

2.2. Если Символ равен Enter то

Выбрать pm из значений

1: Вывести: ’Выполняется пункт 1’

2: Вывести: ’Выполняется пункт 2’

3: Вывести: ’Выполняется пункт 3’

4: Вывести: ’Выполняется пункт 4’

5: Закончить (Символ = Esc)

Пока Символ не будет равен Esc.

3. Закончить

 

Движение вправо и влево должно быть круговым, т.е. при движении вправо номер пункта увеличивается на 1, пока он не станет равен последнему номеру. После этого номер должен принять значение 1. При движении влево после первого пункта номер должен стать последним.

В программе необходимо задать координаты первого пункта. Если принять названия всех пунктов меню одинаковыми, то начало пункта с номером pm на экране будет иметь координаты:

(xn + (pm - 1)*dl, yn),

где xn и yn – координаты начала первого пункта меню;

dl - длина названия пункта меню (одинаковая для всех пунктов).

 

Программа для описанного выше алгоритма имеет вид.

 

Program Gor_Menu;

Uses

Crt;

Const

Dl = 12; {длина названия пункта меню - шаг перемещения}

M = 5; { количество пунктов }

Enter = #13;

Esc = #27;

Var

Punkt: Array[1..m] of String[dl]; { Массив названий }

{ пунктов меню}

pm, i, xn, yn: Integer;

Sim: Char;

Begin

{п. 1.1 }

Punkt[1]: = ’ Операция 1 ’;

Punkt[2]: = ’ Операция 2 ’;

Punkt[3]: = ’ Операция 3 ’;

Punkt[4]: = ’ Операция 4 ’;

Punkt[5]: = ’ Выход ’;

{ Очистка экрана }

TextBackGround(Blue);

ClrScr;

{ Начальное положение курсора и меню }

pm: = 1;

xn: = 10;

yn: = 3;

Repeat { п. 2 }

Repeat { Цикл движения по меню }

GotoXY(xn, yn);

{ Основные цвета меню }

TextBackGround(Blue);

TextColor(White);

For i: = 1 to m do

Write(Punkt[i]);

{ Текущий пункт перекрашиваем }

TextBackGround(Green);

TextColor(Red);

GotoXY(xn+dl*(pm-1), yn);

Write(Punkt[pm]);

{ Ожидаем действий пользователя на клавиатуре}

Sim: = Readkey;

If Sim = #0 then

Begin { Управляющая клавиша }

Sim: = Readkey;

Case Sim of

#77: { Движение вправо }

If pm=m then

pm: =1

Else

pm: =pm+1;

#75: { Движение влево }

If pm=1 then

pm: =m

Else

pm: =pm-1;

End; { Case }

End; { If }

Until (Sim = Enter) Or (Sim = Esc); { Цикл движения }

 

If Sim = Enter then

{ Пункт меню выбран }

If pm = m then

Sim: = Esc {Выбран последний пункт меню - выход}

Else

Begin

GotoXY(30, 10);

Write(’Выполняется ’, Punkt[pm]);

End;

Until Sim = Esc; { Внешний цикл, окончание работы }

GotoXY(30, 10);

Writeln(’Конец работы, нажмите любую клавишу ’);

Repeat Until KeyPressed;

End.

 

 







Дата добавления: 2014-12-06; просмотров: 626. Нарушение авторских прав; Мы поможем в написании вашей работы!




Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...


Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Анализ микросреды предприятия Анализ микросреды направлен на анализ состояния тех со­ставляющих внешней среды, с которыми предприятие нахо­дится в непосредственном взаимодействии...

Типы конфликтных личностей (Дж. Скотт) Дж. Г. Скотт опирается на типологию Р. М. Брансом, но дополняет её. Они убеждены в своей абсолютной правоте и хотят, чтобы...

Гносеологический оптимизм, скептицизм, агностицизм.разновидности агностицизма Позицию Агностицизм защищает и критический реализм. Один из главных представителей этого направления...

Дизартрии у детей Выделение клинических форм дизартрии у детей является в большой степени условным, так как у них крайне редко бывают локальные поражения мозга, с которыми связаны четко определенные синдромы двигательных нарушений...

Педагогическая структура процесса социализации Характеризуя социализацию как педагогический процессе, следует рассмотреть ее основные компоненты: цель, содержание, средства, функции субъекта и объекта...

Типовые ситуационные задачи. Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической   Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической нагрузке. Из медицинской книжки установлено, что он страдает врожденным пороком сердца....

Studopedia.info - Студопедия - 2014-2025 год . (0.013 сек.) русская версия | украинская версия