Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2011, 14:03   #1
VaLenOK007
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 25
По умолчанию консольное меню в pascal

приветствую. Есть вопрос. Имеются несколько лабораторных на сортировки, и поступила задача объединить их в одну, с меню из-под консоли. Как лучше всего это сделать, если можно с примерчиком
VaLenOK007 вне форума Ответить с цитированием
Старый 26.09.2011, 14:14   #2
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

не проверял
Код:
repeat
clrscr;
writeln('1 - сортировка 1');
writeln('2 - сортировка 2');
{вывод всех пунктов меню}
writeln('0 - выход');
c:=readkey; {или  readln(c)}
case c of
 #0:readkey;
 '1':begin {код первой сортировки} end;
 '2':begin {....} end;
 end;
until c='0';
или вместо begin ... end вызов соответствующей процедуры
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 26.09.2011, 14:33   #3
VaLenOK007
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Step_UA Посмотреть сообщение
не проверял
Код:
repeat
clrscr;
writeln('1 - сортировка 1');
writeln('2 - сортировка 2');
{вывод всех пунктов меню}
writeln('0 - выход');
c:=readkey; {или  readln(c)}
case c of
 #0:readkey;
 '1':begin {код первой сортировки} end;
 '2':begin {....} end;
 end;
until c='0';
или вместо begin ... end вызов соответствующей процедуры
он не видит константы. Обьявлял всё естессно в шапке
VaLenOK007 вне форума Ответить с цитированием
Старый 26.09.2011, 14:38   #4
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

кто он? какие константы?
для этого кода нужно определить только
Код:
var c:char;
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 26.09.2011, 15:00   #5
VaLenOK007
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Step_UA Посмотреть сообщение
кто он? какие константы?
для этого кода нужно определить только
Код:
var c:char;
он это код. Я понял что надо вписывать в варе все константы, а в бегин - энд уже писать чисто код. или в подпрограмме надо писать всё?
VaLenOK007 вне форума Ответить с цитированием
Старый 26.09.2011, 15:10   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

предлагаю: http://www.programmersforum.ru/showthread.php?t=14050
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.09.2011, 15:24   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

VaLenOK007
консоль в Паскале - консоле в Паскале рознь.
Если общий случай (любая консоль), тогда прокатит вариант с текстовым меню, команда вводится путём набора нужного номера (или буквы, не принципиально).

Если же речь идёт о TurboPascal (или FreePascal в режиме совместимости с DOS), тогда можно использовать красивое "настоящее" текстовое меню. Пример по ссылке Stilet
или первая же ссылка внизу темы (Похожие темы),
Создание меню в Pascal
так есть примеры.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.09.2011, 15:44   #8
VaLenOK007
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
VaLenOK007
консоль в Паскале - консоле в Паскале рознь.
Если общий случай (любая консоль), тогда прокатит вариант с текстовым меню, команда вводится путём набора нужного номера (или буквы, не принципиально).

Если же речь идёт о TurboPascal (или FreePascal в режиме совместимости с DOS), тогда можно использовать красивое "настоящее" текстовое меню. Пример по ссылке Stilet
или первая же ссылка внизу темы (Похожие темы),
Создание меню в Pascal
так есть примеры.
Ваша реализация хороша, но хотелось бы максимально упростить не теряя качество. для меня к примеру такой код сложен, я не умею программировать на уровне "пришел увидел накодил"
VaLenOK007 вне форума Ответить с цитированием
Старый 26.09.2011, 20:08   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Ваша реализация хороша, но хотелось бы максимально упростить не теряя качество
рассказываю. берёте мою программу ЦЕЛИКОМ.
запускаете. убеждаетесь, что она работает так, как надо.
это будет ОСНОВА, базис, фундамент, на котором мы будем строить своё приложение.
Изменяете константу N (в примере N=3: 2 пункта + выход)
делаете её, например, N=6 (будет пять процедур)
там, где описываются пункты меню пишете свой текст:
Цитата:
Код:
     menu[1]:=' Ваша Программа Номер Раз';
     menu[2]:=' Вторая программа ';
     menu[3]:=' Программа для третьего расчёта ';
     menu[4]:=' Программа 4 ';
     menu[5]:=' Программа пятая ';
     menu[6]:=' Выход ';
вставляете в код СВОИ программы, как процедуры.
Код:
procedure Program1;
...тут текст Вашей первой программы...
procedure Program2;
...тут текст Вашей второй программы...
...
procedure Program5;
...тут текст Вашей пятой программы...
в коде, там где проверка нажатия Enter:
Цитата:
Код:
               if ch=chr(13) then begin { нажата клавиша <Enter> }
                    case punkt of
                         1:Program1;
                         2:Program2;
                         3:Program3;
                         4:Program4;
                         5:Program5;
                         N:ch:=chr(27);{ выход }
                    end;
вот и всё.

да и форум для чего нужен - чтобы помогать!
Возникнут проблемы - будем вместе их решать!
Успехов!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание меню в Pascal Real7 Помощь студентам 3 20.12.2009 16:28
Как создать консольное меню DIIT Общие вопросы C/C++ 5 05.12.2007 23:15
Как создать консольное меню на Си DIIT Помощь студентам 1 01.12.2007 05:30