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

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

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

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


Гость






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

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

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

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


Гость






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

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

http://forum.pascal.dax.ru/forum/index.php...indpost&p=31026
http://forum.pascal.dax.ru/forum/index.php...indpost&p=29199
http://forum.pascal.dax.ru/forum/index.php...indpost&p=28880
 К началу страницы 
+ Ответить 
klem4
сообщение 26.01.2005 11:42
Сообщение #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 - 26.01.2005 11:44


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


Гость






Сенкс .....! smile.gif
 К началу страницы 
+ Ответить 
klem4
сообщение 26.01.2005 12:59
Сообщение #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 - 26.01.2005 13:06


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 26.01.2005 13:12
Сообщение #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 - 26.01.2005 13:12
 К началу страницы 
+ Ответить 
Werwolf86
сообщение 29.01.2005 8:53
Сообщение #7


Новичок
*

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

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


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





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

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


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


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

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

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


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


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


Гость






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





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

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


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


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


Гость






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

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





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

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


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


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

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

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


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


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





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

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


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


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


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

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

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


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


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


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


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

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

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


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


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

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

 



- Текстовая версия 20.07.2025 2:23
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"