IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Как создать меню в Паскале ?
сообщение
Сообщение #1


Гость






Дано много прцедур и Функций , надо составить Меню , так , что бы каждой процедуре или финкции соотвествовала даная цифра и при вводе этой цифры - выполнялась даная процедура(функция).

И еще такой вопрос , как его зациклить , что бы после выполнения некой процедуры(функции) опять появлялось МЕНЮ . И только при нажатии "Выход", программа закончила работу ??

Ув. Админы, Модераторы Я прошу , мне дать ссылку , если такое решение задачи уже есть на вашем форуме!!!
Если нет , то прошу помогите разобратся с этой задачей! unsure.gif

Сообщение отредактировано: yutkatch -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






yutkatch
Ссылки надо искать. Для этого существует кнопка "Поиск"...
Форма поиска

Вот малая часть того, что поиск выдал:

http://forum.pascal.net.ru/index.php...indpost&p=31026
http://forum.pascal.net.ru/index.php...indpost&p=29199
http://forum.pascal.net.ru/index.php...indpost&p=28880
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Цитата(yutkatch @ 26.01.05 11:34)
Дано много прцедур и Функций  , надо составить Меню  , так , что бы каждой процедуре или финкции соотвествовала  даная цифра и при вводе этой цифры - выполнялась даная процедура(функция).




Очень простой, но далеко не лучший вариант :

Код
var ch:char;
Begin
  ch:=readkey;
  case ch of
  '1' : Имя_процедуры1;
  '2' : Имя_функции2;

  ...
  end;


Сообщение отредактировано: klem4 -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Сенкс .....! smile.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


!!! то что я написал, годится только в том случае, если кол-во процедур у тебя не более 10! так как char воспринимает только один символ, тоесть в случае с цифрами (0..9)

Тогда по простому еще можно так
Код
var
  num:byte;

begin
  Readln(num);
  case num of
  1: Имя_процедуры
  2:
   ...
  end;


Это сосвем примитивные способы, но в случае маленьких ,не сложных программ, годятся , мне кажется smile.gif

Сообщение отредактировано: klem4 -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






yutkatch
Цитата
как его зациклить , что бы после выполнения некой процедуры(функции) опять появлялось МЕНЮ

Что-то типа этого:
Код

var
 num:byte;
 Done: Boolean;

begin
 done := False;
 repeat
   { Здесь - вывод меню }
   Readln(num);
   case num of
   1: Имя_процедуры
   2:
    ...
   9: Done := True; { Выход }
   end;
 until done; { Если выбран выход - цикл заканчивается... }
end.


Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 31
Пол: Мужской

Репутация: -  0  +


Давай мыло...вышлю)) правда есть две процедурки на асме))
;)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Завести массив указателей, а потом вызывать их по индексам (индекс - ввденное число)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Не рационально в плане использования памяти. (4x(кол-во функций)) байт займет такой массив...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Nemo, в следующий раз прежде чем что-то постить, подумайте, какой должна быть программа, чтобы использование Вашего меню было рационально...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Цитата
Nemo, в следующий раз прежде чем что-то постить, подумайте, какой должна быть программа, чтобы использование Вашего меню было рационально...


Можно поподробней: что не так?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Цитата
что не так?

Пример. У меня есть программа из 4-х функций (25 строк), и я хочу в нее добавить простейшее меню... Есть мне смысл пользоваться таким меню? Каков полный размер Вашего исходника?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Размер 21.1 KB. Но это из-за использования объекта TBigCur. Я не предлагал целиком использовать мое меню, я лишь хотел показать, как можно вызывать функцию по ее индексу (это нажатие клавиши или что угодно). Тут нужно уже самому думать, как это лучше применить чтобы использование моего "меню было рационально... "
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Nemo , я думаю Volvo имел в виду не размер исходника в килобайтах, а кол-во строк в программе smile.gif


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Цитата
Nemo , я думаю Volvo имел в виду не размер исходника в килобайтах, а кол-во строк в программе


Странно, конечно размер измерять в строках, но пусть даже так...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Цитата
Странно, конечно размер измерять в строках, но пусть даже так...


возможно, что я и не прав.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Уникальный
**

Группа: Пользователи
Сообщений: 64
Пол: Мужской

Репутация: -  2  +


;) Кажется принято измерять размер исходника количеством использованных операторов (не беру в расчёт "+","-" и т.д. в одном выражении)... и если следовать нормальному стилу программирования и не пихать всё в одну строчку то можно сказать что и количеством строк.


--------------------
Век живи, век учи С © by Jahnerus
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 11.05.2024 14:30
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name