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

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

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

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


Новичок
*

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

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


как сделать в пунктах подпункты?
 Program L3;
Uses crt;
Var a1,b1,c1,d1,e1,f1,x :integer;
a,b,c:boolean;
pr:char;
i,Old_Color :byte;
ch :char;
Begin
Old_Color:=Textattr;
Repeat
window(1,1,80,25);
textattr:=black shl 4+cyan;
clrscr;
gotoxy(5,1);
write(' JIa6apaTopHa9I #3');
window(20,8,60,18);
textattr:=black shl 4+cyan;
clrscr;
gotoxy(11,4);
write(' 1-zadanie 1');
gotoxy(11,5);
write(' 2-zadanie 2');
gotoxy(11,6);
write(' 3-o proge');
gotoxy(11,8);
write(' Esc-exit ');
textcolor(cyan); gotoxy(12,2);write(' Baw BbI6op? ');
ch:=readkey;
if ch<>#0 then
begin
window(5,3,75,18);
textattr:=black shl 4+Cyan;
clrscr;
case ch of
#49:Begin
TextAttr:=Black shl 4+Cyan;
ClrScr;

readln(pr);
if pr='1' then
begin

end;
if pr= '2' then
begin

end;

Readkey;
End;
#50:Begin
TextAttr:=black shl 4+Yellow;

Readkey;
End;
#51:Begin

Readkey;
End;
#27:exit;
End;
end;
until(ch=#27);
window(1,1,80,25);
textattr:=Old_Color;
clrscr;
END.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Знаток
****

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

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


если проще думаю хватит объявить пункты двумерным массивом

pars:array [0..2, 0..5] of record cmd:integer; text:string end;

и в цикле сначала вывести, а потом проверить cmd


--------------------
Objective-C, Unity3d
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


Цитата(Rian @ 31.10.2011 15:27) *

если проще думаю хватит объявить пункты двумерным массивом

pars:array [0..2, 0..5] of record cmd:integer; text:string end;

и в цикле сначала вывести, а потом проверить cmd

а case в case фигня получиться ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата(INZA @ 31.10.2011 17:47) *

а case в case фигня получиться ?


смотря что нужно... вход в подпункты будет пошаговым? 1.1.3.5 ? или по абсолютной нумерации?
1
-2
-3
-4

5
-6
-7
--8
--9
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


Цитата(Гость @ 31.10.2011 18:52) *

смотря что нужно... вход в подпункты будет пошаговым? 1.1.3.5 ? или по абсолютной нумерации?
1
-2
-3
-4

5
-6
-7
--8
--9

нужно
1-задание 1 (при открытии )
1-1подпункт
2-2подпункт
и т.д.
2-задание 2 (при открытии )
1-1подпункт
и т.д.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Знаток
****

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

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


ну тогда readkey записывае в cmd1, cmd2
и во вложеном case используй ее

только для вывода на экран все равно будет лучше многомерный массив... ну мне так кажется и для проверок


--------------------
Objective-C, Unity3d
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

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

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


Цитата(Rian @ 31.10.2011 20:27) *

ну тогда readkey записывае в cmd1, cmd2
и во вложеном case используй ее

только для вывода на экран все равно будет лучше многомерный массив... ну мне так кажется и для проверок

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


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

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


Пишется простейшая функция, которая, собственно, отображает менюшку, и делается так:

Меню любой степени вложенности (Показать/Скрыть)
(не надо никаких двумерных массивов: в одном подменю может быть 9 пунктов, в другом - 2, что, их все под одну гребенку, и всем место под 9 элементов выделять? "Это не наш метод" (С))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Знаток
****

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

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


Цитата(IUnknown @ 31.10.2011 21:59) *

(не надо никаких двумерных массивов: в одном подменю может быть 9 пунктов, в другом - 2, что, их все под одну гребенку, и всем место под 9 элементов выделять? "Это не наш метод" (С))

очень привык к динамическим smile.gif


--------------------
Objective-C, Unity3d
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Новичок
*

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

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


Цитата(IUnknown @ 31.10.2011 23:59) *

Пишется простейшая функция, которая, собственно, отображает менюшку, и делается так:

Меню любой степени вложенности (Показать/Скрыть)
(не надо никаких двумерных массивов: в одном подменю может быть 9 пунктов, в другом - 2, что, их все под одну гребенку, и всем место под 9 элементов выделять? "Это не наш метод" (С))

спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

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

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


Цитата(IUnknown @ 31.10.2011 23:59) *

Меню любой степени вложенности (Показать/Скрыть)


error 67:string expression expected.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

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


Какой компилятор?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Новичок
*

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

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


Цитата(IUnknown @ 26.11.2011 18:55) *

Какой компилятор?

Free Pascal
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

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


Не знаю, у меня, FPC нормально компилирует этот код (причем в любом режиме). А вот Turbo Pascal - отказывается. Для совместимости с TP можно заменить Length на High:

function menu(TA : byte; const items : array of string) : integer;
var
i : integer;
ch : char;
begin
TextAttr := TA;
clrscr;
for i := 0 to High(items) do
begin
gotoxy(11, 4 + i);
write(items[ i ]);
end;
gotoxy(12, 2);
write(' Your choice : ');
repeat
ch := readkey;
until (Ord(ch) - Ord('0')) in [1 .. High(items) + 1];
menu := Ord(ch) - Ord('0');
end;


Сообщение отредактировано: IUnknown -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Новичок
*

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

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


Цитата(IUnknown @ 26.11.2011 19:05) *

Не знаю, у меня, FPC нормально компилирует этот код (причем в любом режиме). А вот Turbo Pascal - отказывается. Для совместимости с TP можно заменить Length на High:

function menu(TA : byte; const items : array of string) : integer;
var
i : integer;
ch : char;
begin
TextAttr := TA;
clrscr;
for i := 0 to High(items) do
begin
gotoxy(11, 4 + i);
write(items[ i ]);
end;
gotoxy(12, 2);
write(' Your choice : ');
repeat
ch := readkey;
until (Ord(ch) - Ord('0')) in [1 .. High(items) + 1];
menu := Ord(ch) - Ord('0');
end;


а нет перепутал извините всё таки турбо
запустил на free всё пошло))) ещё раз спасибо

Сообщение отредактировано: INZA -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Новичок
*

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

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


Цитата(IUnknown @ 26.11.2011 19:05) *

Не знаю, у меня, FPC нормально компилирует этот код (причем в любом режиме). А вот Turbo Pascal - отказывается. Для совместимости с TP можно заменить Length на High:

function menu(TA : byte; const items : array of string) : integer;
var
i : integer;
ch : char;
begin
TextAttr := TA;
clrscr;
for i := 0 to High(items) do
begin
gotoxy(11, 4 + i);
write(items[ i ]);
end;
gotoxy(12, 2);
write(' Your choice : ');
repeat
ch := readkey;
until (Ord(ch) - Ord('0')) in [1 .. High(items) + 1];
menu := Ord(ch) - Ord('0');
end;


почему то когда так сделал пропал пункт Exit,не скажете почему?
всё не надо я сделал

Сообщение отредактировано: INZA -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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