Страница 1 из 2
требуется помощь с оператором case
Добавлено:
28.07.2011 22:55:58
YgReEk
Сейчас работаю над небольшим проектом, в котором без меню не обойтись. Программа консольная, меню написано и компилится, но.
1) не могу заставить работать else в case of...
2) не могу сделать возврат в предыдущее меню. Использовал оператор end, и их количество вроде бы как раз должно вернуть в предыдущее меню, но программа просто закрывается.
Привожу листинг (отрывок с проблемным участком, т.к. меню уже занимает более 500 строк):
begin
writeln('Выберите категорию:');
writeln('1. Основные правила русского языка');
writeln('0. Возврат в предыдущее меню');
writeln('Для выбора категории напечатайте её цифру без точки.');
readln(Dial);
case Dial of
1 : begin end;
0 : end;
else writeln('Вы выбрали что-то другое, а не категорию. Пожалуйста, выберите категорию.');
end;
end;
есть подозрение, что это из-за оператора end, который должен выполняться, если Dial (переменная типа integer) принимает значение 0.
Также возможно, что такие проблемы возникаю именно из-за нулевого значения.
Нужна помощь.
P.S. Просьба не предлагать использовать Lazarus или другую среду программирования. Интересует чистый FPC, желательно даже без библиотек.
Re: требуется помощь с оператором case
Добавлено:
28.07.2011 23:52:56
Bupyc
0 : begin end;
Re: требуется помощь с оператором case
Добавлено:
29.07.2011 00:07:55
Oleg_D
Ветка с нулем должна обрабатываться, как и все прочие. Или выкинуть ее совсем, если не нужна.
Re: требуется помощь с оператором case
Добавлено:
29.07.2011 07:31:02
YgReEk
По идее, эта ветка должна возвращать в предыдущее меню. Если нельзя использовать оператор end, то какие есть другие варианты?
P.S. GoTo советовать в крайнем случае: програмка будет не маленькая.
Re: требуется помощь с оператором case
Добавлено:
29.07.2011 07:41:22
mad_nazgul
Т.к. это у Вас обработчик событий, то он должен быть в цикле.
Приблизительно так:
while true do
begin
Result := GetChoice( MenuLevel);
case Result of
0: MenuLevel - 1;
1:;
2:;
else
writeln('Не опознаная комманда');
end;
end;
Где GetChoice - это функция function getChoice(aMenuLevel:integer):integer;
Re: требуется помощь с оператором case
Добавлено:
29.07.2011 12:13:38
Odyssey
Если каждое меню и подменю -- это отдельная процедура, то выходить в предыдущее меню можно с помощью команды выхода из процедуры -- Exit. И
mad_nazgul дело говорит. Если не будет цикла, то после неправильного ввода ввести что-то ещё раз будет уже нельзя.
В целом вариант с процедурами будет выглядеть как-то так:
- Код: Выделить всё
procedure MainMenu;
var
Dial: Integer;
begin
while True do
begin
writeln('Выберете действие:');
writeln('1. Выбор категории');
writeln('2. Просмотр справки');
writeln('0. Выход из программы');
writeln('Для выбора действия напечатайте его цифру без точки.');
readln(Dial);
case Dial of
1: SelectCategory;
2: ShowHelp;
0: Halt;
else writeln('Вы выбрали что-то другое, а не действие. Пожалуйста, выберите действие.');
end;
end;
end;
procedure SelectCategory;
var
Dial: Integer;
begin
while True do
begin
writeln('Выберите категорию:');
writeln('1. Основные правила русского языка');
writeln('0. Возврат в предыдущее меню');
writeln('Для выбора категории напечатайте её цифру без точки и нажмите ввод');
readln(Dial);
case Dial of
1: GeneralRussianRulesCategory;
0: Exit;
else writeln('Вы выбрали что-то другое, а не категорию. Пожалуйста, выберите категорию.');
end;
end;
end;
Можно то же самое сделать и с goto. Хоть кто-то из великих и говорил, что goto -- это зло, в данном случае в варианте с goto будет проще реализовать выход из глубоких подменю сразу на самый верх.
Re: требуется помощь с оператором case
Добавлено:
29.07.2011 17:00:37
YgReEk
Проще не значит лучше
Попробую вариант с процедурами. Спасибо!
Re: требуется помощь с оператором case
Добавлено:
15.08.2011 12:25:30
YgReEk
Вроде бы сделал так, как указано в варианте с процедурами, но сами процедуры как-то не корректно работают: при компиляции на строку с процедурой выдаёт сначала invalid expression, а затем не считает имя процедуры за имя и выдаёт fatal error: ";" expected but identifer 'MainMenu" found. Что не так?
Re: требуется помощь с оператором case
Добавлено:
15.08.2011 13:04:54
VirtUX
YgReEk писал(а):fatal error: ";" expected
";" - отсутствует. Не закрыта лексема кода.
Re: требуется помощь с оператором case
Добавлено:
16.08.2011 07:03:52
informat
Odyssey писал(а):Если каждое меню и подменю -- это отдельная процедура, то выходить в предыдущее меню можно с помощью команды выхода из процедуры -- Exit. И
mad_nazgul дело говорит. Если не будет цикла, то после неправильного ввода ввести что-то ещё раз будет уже нельзя.
В целом вариант с процедурами будет выглядеть как-то так:
- Код: Выделить всё
procedure MainMenu;
var
Dial: Integer;
begin
while True do
begin
writeln('Выберете действие:');
writeln('1. Выбор категории');
writeln('2. Просмотр справки');
writeln('0. Выход из программы');
writeln('Для выбора действия напечатайте его цифру без точки.');
readln(Dial);
case Dial of
1: SelectCategory;
2: ShowHelp;
0: Halt;
else writeln('Вы выбрали что-то другое, а не действие. Пожалуйста, выберите действие.');
end;
end;
end;
procedure SelectCategory;
var
Dial: Integer;
begin
while True do
begin
writeln('Выберите категорию:');
writeln('1. Основные правила русского языка');
writeln('0. Возврат в предыдущее меню');
writeln('Для выбора категории напечатайте её цифру без точки и нажмите ввод');
readln(Dial);
case Dial of
1: GeneralRussianRulesCategory;
0: Exit;
else writeln('Вы выбрали что-то другое, а не категорию. Пожалуйста, выберите категорию.');
end;
end;
end;
Можно то же самое сделать и с goto. Хоть кто-то из великих и говорил, что goto -- это зло, в данном случае в варианте с goto будет проще реализовать выход из глубоких подменю сразу на самый верх.
GOTO соме по себе не зло, но если их будет много, то автор запутается в своих переходах. Кончится тем, что программу придётся переписывать.
Бесконечный цикл тоже не очень хорошо. Потом трудно будет вспомнить, где выход из него и не он ли циклит.
В данном случае вместо
while True do можно написать
while Dial<>0 do.
Возможно, окажется, что нужны будут не процедуры, а функции.
Re: требуется помощь с оператором case
Добавлено:
16.08.2011 09:30:40
YgReEk
"не закрыта лексема кода" - в том то и дело, что идёт строка procedure MainMenu, на которую он и ругается.
Зачем тут могут понадобиться функции? Никакого значения же возвращать не надо.
Была уже идея сделать всё модулями, но это тогда нужно писать с помощью ООП, процедурное будет не вариантом.
А вообще, если не будет рабочих вариантов - мне придётся всё-таки вставлять goto.
Re: требуется помощь с оператором case
Добавлено:
16.08.2011 12:55:09
Odyssey
YgReEk писал(а):Вроде бы сделал так, как указано в варианте с процедурами, но сами процедуры как-то не корректно работают: при компиляции на строку с процедурой выдаёт сначала invalid expression, а затем не считает имя процедуры за имя и выдаёт fatal error: ";" expected but identifer 'MainMenu" found. Что не так?
Чтобы понять в чём проблема, нужно видеть исходный код всей программы, а не только процедур. Плюс нужен номер строки, на которой возникает ошибка.
informat писал(а):Бесконечный цикл тоже не очень хорошо.
В большинстве случаев - да.
informat писал(а):В данном случае вместо while True do можно написать while Dial<>0 do.
Тогда нужно будет в начало процедуры добавить строчку
Dial := -1;. Локальные переменные не инициализируются, и могут изначально содержать что угодно, в том числе 0 -- и тогда код в цикле не сработает ни разу.
Re: требуется помощь с оператором case
Добавлено:
16.08.2011 14:33:36
YgReEk
- Код: Выделить всё
program pupils_utils_1;
var VibKat,DlyaVib,InNext,NeKat: string;
// Dial - ЇҐаҐ¬Ґ п ⥪г饣® ¤Ё «®Ј (ўлЎҐаҐвҐ ...)
//x,x1,x2,y,y1,y2,z,a,b,c,D: extended
//a,b,c - Є®нддЁжҐвл ў га ўҐЁпе; x1,x2,y1,y2 - Є®аЁ га ўҐЁ©; x,y,z - ҐЁ§ўҐбвлҐ; D - ¤ЁбЄаЁ¬Ё в
begin
writeln('„®Ўа® Ї®¦ «®ў вм ў Pupils Utils 1.0!');
writeln();
writeln();
writeln('џ ¤Ґобм, зв® Їа®Ја ¬¬ ў ¬ ЇаЁЈ®¤Ёвбп.');
writeln();
VibKat:='‚лЎҐаЁвҐ Є ⥣®аЁо:';
DlyaVib:='„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.';
InNext:='’®«мЄ® ў б«Ґ¤го饩 ўҐабЁЁ ;-)';
NeKat:='‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ Є ⥣®аЁо.';
procedure MainMenu;
var Dial: integer;
Dial:=1
begin
while Dial<>0 do
begin
writeln('‚лЎҐаЁвҐ ¤Ґ©бвўЁҐ');
writeln('0. ‚л室 Ё§ Їа®Ја ¬¬л');
writeln('1. ‚лЎ®а Є ⥣®аЁЁ');
writeln('2. Џа®б¬®ва бЇа ўЄЁ');
writeln('3. Џа®б¬®ва «ЁжҐ§Ё®®Ј® б®Ј« 襨п');
writeln('„«п ўлЎ®а ¤Ґ©бвўЁп ЇҐз ⠩⥠ҐЈ® жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
0: Halt;
1: SelectCategoryMain;
2: ShowHelp;
3: ShowLicense;
else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ ¤Ґ©бвўЁҐ. Џ®¦ «гз©бв , ўлЎҐаЁвҐ ¤Ґ©бвўЁҐ.');
end;
end;
end;
end.
Открыл notepad++, так что вместо русских букв - кракозябры. Но это в принципе не важно. Ошибка в строке №17
Это исходный код переписанного варианта с процедурами. Если надо, вот прежний вариант.
- Код: Выделить всё
program pupils_utils_1;
var Dial: integer;
// Dial - ЇҐаҐ¬Ґ п ⥪г饣® ¤Ё «®Ј (ўлЎҐаҐвҐ ...)
//x,x1,x2,y,y1,y2,z,a,b,c,D: extended
//a,b,c - Є®нддЁжҐвл ў га ўҐЁпе; x1,x2,y1,y2 - Є®аЁ га ўҐЁ©; x,y,z - ҐЁ§ўҐбвлҐ; D - ¤ЁбЄаЁ¬Ё в
begin
writeln('„®Ўа® Ї®¦ «®ў вм ў Pupils Utils 1.0!');
writeln();
writeln();
writeln('џ ¤Ґобм, зв® Їа®Ја ¬¬ ў ¬ ЇаЁЈ®¤Ёвбп.');
writeln();
writeln('€бЇ®«м§гп нвг Їа®Ја ¬¬г ўл ЇаЁЁ¬ ҐвҐ гб«®ўЁп «ЁжҐ§Ё®®Ј® б®Ј« 襨п, ЇаҐ¤бв ў«Ґ®Ј® ў д ©«Ґ license.txt Є®в®ал© а бЇа®бва пҐвбп ў¬ҐбвҐ б ¤ ®© Їа®Ја ¬¬®©.');
writeln();
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. Ђ«ЈҐЎа ');
writeln('2. ѓҐ®¬ҐваЁп');
writeln('3. ”Ё§ЁЄ ');
writeln('4. ЃЁ®«®ЈЁп');
writeln('5. •Ё¬Ёп');
writeln('6. €д®а¬ вЁЄ ');
writeln('7. ѓҐ®Ја дЁп');
writeln('8. €бв®аЁп');
writeln('9. ЂЈ«Ё©бЄЁ©');
writeln('10. ‹ЁвҐа вга ');
writeln('11. ђгббЄЁ©');
writeln('12. Њ•Љ, Њг§лЄ , €‡Ћ');
writeln('13. ЋЎйҐбвў®§ ЁҐ');
writeln('14. ”Ё§ЁзҐбЄ п Єг«мвга , ЋЃ†');
writeln('15. ‚ ЇҐабЇҐЄвЁўҐ...');
writeln('0. ‚л室');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. ‹ЁҐ©лҐ га ўҐЁп');
writeln('2. ‹ЁҐ©лҐ Ґа ўҐбвў ');
writeln('3. Љў ¤а влҐ га ўҐЁп');
writeln('4. Љў ¤а влҐ Ґа ўҐбвў ');
writeln('5. ‹ЁҐ©лҐ бЁб⥬л');
writeln('6. ‘«®¦лҐ бЁб⥬л');
writeln('7. ЃЁЄў ¤а влҐ га ўҐЁп');
writeln('8. “а ўҐЁп n-®© б⥯ҐЁ');
writeln('9. “а ўҐЁп б Ї а ¬Ґв஬');
writeln('10. ‹®Ј аЁд¬');
writeln('11. ” Єв®аЁ «');
writeln('12. ‘⥯Ґм');
writeln('13. Љ®аҐм');
writeln('14. ќ«Ґ¬Ґвл ⥮ਨ ўҐа®пв®бвЁ');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
3 : begin end;
4 : begin end;
5 : begin end;
6 : begin end;
7 : begin end;
8 : begin end;
9 : begin end;
10: begin end;
11: begin end;
12: begin end;
13: begin end;
14: begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. ђ бЇаҐ¤Ґ«ҐЁҐ');
writeln('2. ‘®зҐв ЁҐ');
writeln('3. ЏҐаҐбв ®ўЄ ');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
3 : begin end;
0 : end;
//„ п бвагЄвга ў з «Ґ § Є зЁў в ®ЇҐа в®а case, § ⥬ § Є зЁў Ґв бвагЄвгаг begin-end, Є®в®а п ®в®бЁвбп Є ЇаҐ¤л¤г饬㠯гЄвг ¬Ґо
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
0 : end;
end;
end;
2 : begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. sin, cos, sec, cosec, tg, ctg');
writeln('2. ’Ґ®аҐ¬ ЇЁд Ј®а : а бзсв ЈЁЇ®вҐг§л Ё Є вҐв®ў');
writeln('3. “а ўҐЁҐ Їаאַ©');
writeln('4. “а ўҐЁҐ ®Єа㦮бвЁ');
writeln('5. ђ бзсвл S дЁЈга');
writeln('6. ‘ў®©бвў ўлЎа ®© ЈҐ®¬ҐваЁзҐбЄ®© дЁЈгал');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. sin');
writeln('2. cos');
writeln('3. sec');
writeln('4. cosec');
writeln('5. tg');
writeln('6. ctg');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
3 : begin end;
4 : begin end;
5 : begin end;
6 : begin end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
2 : begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. ђ бзсв ЈЁЇ®вҐг§л Ї® ¤ўг¬ Є вҐв ¬');
writeln('2. ђ бзсв Є вҐв Ї® ЈЁЇ®вҐг§Ґ Ё ¤агЈ®¬г Є вҐвг');
writeln('3. ђ бзсв Є вҐв Ў Ґб«Ё Ё§ўҐб⥠Є вҐвЎ «Ґ¦ йЁ© Їа®вЁў гЈ« ў 30 Ја ¤гб®ў');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
3 : begin end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
3 : begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. ');
writeln('2. ');
writeln('3. ');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
3 : begin end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
4 : begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. ђ бзсв ЎжЁббл, Ґб«Ё Ё§ўҐбв ®а¤Ё в (ў Ґ¤ЁЁз®© ®Єа㦮бвЁ)');
writeln('2. ђ бзсв ®а¤Ё вл, Ґб«Ё Ё§ўҐбв ЎжЁбб (ў Ґ¤ЁЁз®© ®Єа㦮бвЁ)');
writeln('3. ЏаЁ ¤«Ґ¦Ёв «Ё § ¤ п в®зЄ ¤ ®© ®Єа㦮бвЁ');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
3 : begin end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
5 : begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. Љў ¤а в');
writeln('2. Џаאַ㣮«мЁЄ');
writeln('3. ђ®¬Ў');
writeln('4. Џ а ««Ґ«®Ја ¬¬');
writeln('5. ’а ЇҐжЁп');
writeln('6. Џаאַ㣮«м п ва ЇҐжЁп');
writeln('7. ’аҐгЈ®«мЁЄ');
writeln('8. ђ ў®бв®а®Ё© ваҐгЈ®«мЁЄ');
writeln('9. ђ ў®ЎҐ¤аҐл© ваҐгЈ®«мЁЄ');
writeln('10.Џаאַ㣮«мл© ваҐгЈ®«мЁЄ');
writeln('11.ЏпвЁгЈ®«мЁЄ');
writeln('12.Џа ўЁ«мл© ЇпвЁгЈ®«мЁЄ');
writeln('13.ҐбвЁгЈ®«мЁЄ');
writeln('14.Џа ўЁ«мл© иҐбвЁгЈ®«мЁЄ');
writeln('15.Џа ўЁ«мл© n-гЈ®«мЁЄ');
writeln('16.Џ®«гЄагЈ');
writeln('17.ЉагЈ');
writeln('18.Ћў «');
writeln('19.‘ҐЄв®а ЄагЈ ');
writeln('20.‘ҐЈ¬Ґв ЄагЈ ');
writeln('21.<‚®§¬®¦® Їа®¤®«¦ҐЁҐ>');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
3 : begin end;
4 : begin end;
5 : begin end;
6 : begin end;
7 : begin end;
8 : begin end;
9 : begin end;
10: begin end;
11: begin end;
12: begin end;
13: begin end;
14: begin end;
15: begin end;
16: begin end;
17: begin end;
18: begin end;
19: begin end;
20: begin end;
21: begin writeln('’®«мЄ® ў б«Ґ¤го饩 ўҐабЁЁ ;-)'); readln() end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
6 : begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. Љў ¤а в');
writeln('2. Џаאַ㣮«мЁЄ');
writeln('3. ђ®¬Ў');
writeln('4. Џ а ««Ґ«®Ја ¬¬');
writeln('5. ’а ЇҐжЁп');
writeln('6. Џаאַ㣮«м п ва ЇҐжЁп');
writeln('7. ’аҐгЈ®«мЁЄ');
writeln('8. ђ ў®бв®а®Ё© ваҐгЈ®«мЁЄ');
writeln('9. ђ ў®ЎҐ¤аҐл© ваҐгЈ®«мЁЄ');
writeln('10.Џаאַ㣮«мл© ваҐгЈ®«мЁЄ');
writeln('11.ЏпвЁгЈ®«мЁЄ');
writeln('12.Џа ўЁ«мл© ЇпвЁгЈ®«мЁЄ');
writeln('13.ҐбвЁгЈ®«мЁЄ');
writeln('14.Џа ўЁ«мл© иҐбвЁгЈ®«мЁЄ');
writeln('15.Џа ўЁ«мл© n-гЈ®«мЁЄ');
writeln('16.‚лЇгЄ«лҐ дЁЈгал');
writeln('17.ЉагЈ');
writeln('18.Ћў «');
writeln('19.ЋЄа㦮бвм');
writeln('20.Џ®«гЄагЈ');
writeln('21.„гЈ ');
writeln('22.“Ј®«');
writeln('23.Џап¬ п');
writeln('24.‘Ёгб®Ё¤ ');
writeln('25.Љ®бЁгб®Ё¤ ');
writeln('26.Џ а Ў®« ');
writeln('27.ѓЁЇҐаЎ®« ');
writeln('28.ѓа дЁЄ «®Ј аЁд¬ЁзҐбЄ®© дгЄжЁЁ');
writeln('29.<‚®§¬®¦® Їа®¤®«¦ҐЁҐ>');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
3 : begin end;
4 : begin end;
5 : begin end;
6 : begin end;
7 : begin end;
8 : begin end;
9 : begin end;
10: begin end;
11: begin end;
12: begin end;
13: begin end;
14: begin end;
15: begin end;
16: begin end;
17: begin end;
18: begin end;
19: begin end;
20: begin end;
21: begin end;
22: begin end;
23: begin end;
24: begin end;
25: begin end;
26: begin end;
27: begin end;
28: begin end;
29: begin writeln('’®«мЄ® ў б«Ґ¤го饩 ўҐабЁЁ ;-)'); readln() end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
3 : begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. ‚лў®¤ ®б®ўле д®а¬г«');
writeln('2. ѓ«®бб аЁ©');
writeln('3. ђ бзсв...');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
3 : begin end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
4 : begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. Љ®¬Ї«Ё¬Ґв а®бвм „ЌЉ (бЇа ўЄ )');
writeln('2. ђ бзсв ¤®¬Ё в®бвЁ/аҐжҐббЁў®бвЁ ЈҐ®ў');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
5 : begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. ђ бзсв ¬®«па®© ¬ ббл');
writeln('2. ‚лзЁб«ҐЁҐ ®Ўкс¬ Ј §®ў');
writeln('3. ђ бзсв ¬ ббл ўҐйҐбвў ў ᬥбЁ');
writeln('4. ‘ў®©бвў ®ЇаҐ¤Ґ«с®Ј® н«Ґ¬Ґв ');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
3 : begin end;
4 : begin writeln('‚ўҐ¤ЁвҐ ®Ў®§ 票Ґ н«Ґ¬Ґв ( ЇаЁ¬Ґа: H, O, Mg - ЇҐаў п ЎгЄў § Ј« ў п, ®бв «млҐ Ґв)'); readln(); end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
6 : begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. ЋЇҐа жЁЁ ў ¤ў®Ёз®©, ў®б쬥аЁз®©, ¤ҐбпвЁаЁз®© Ё иҐбв ¤ж вҐаЁз®© бЁб⥬ е бзЁб«ҐЁп');
writeln('2. ђ бзсв ®Ўкс¬ д ©« ¤«п ⥪бв®ў®Ј® ¤®Єг¬Ґв , ¤«п ¬г«мвЁ¬Ґ¤Ё©ле д ©«®ў');
writeln('3. ђ бзс⠢६ҐЁ ЇҐаҐ¤ зЁ д ©« ');
writeln('4. ђ бзсв бў®©бвў д ©« Ёбе®¤п Ё§ § ¤ ле бў®©бвў Ё а §¬Ґа ');
writeln('5. ђ бзсв а §¬Ґа д ©« Ёбе®¤п Ё§ иЁа®вл Є « Ё ўаҐ¬ҐЁ ҐЈ® ЇҐаҐ¤ зЁ');
writeln('6. Ћб®ўлҐ дгЄжЁЁ п§лЄ pascal (help)');
writeln('7. Ђ«ЈҐЎа «®ЈЁЄЁ (бЇа ўЄ )');
writeln('8. ‘Їа ў®зл© ¬ вҐаЁ «');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. ЋЇҐа жЁЁ ў ¤ў®Ёз®© бЁб⥬Ґ (ЎЁ ஥ бзЁб«ҐЁҐ, «ЈҐЎа «®ЈЁЄЁ)');
writeln('2. ЋЇҐа жЁЁ ў ў®б쬥аЁз®© бЁб⥬Ґ');
writeln('3. ЋЇҐа жЁЁ ў ¤ҐбпвЁз®© бЁб⥬Ґ');
writeln('4. ЋЇҐа жЁЁ ў иҐбв ¤ж вҐаЁз®© (HEX) бЁб⥬Ґ');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
3 : begin end;
4 : begin end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
2 : begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. ’ҐЄбв®ўл© д ©«');
writeln('2. ѓа дЁзҐбЄЁ© д ©« (а бва)');
writeln('3. ‚Ё¤Ґ®д ©«');
writeln('4. Ђг¤Ё®д ©«');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
3 : begin end;
4 : begin end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
3 : begin end;
4 : begin end;
5 : begin end;
6 : begin end;
7 : begin end;
8 : begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. ѓ«®бб аЁ©');
writeln('2. Ћб®ўлҐ ®ЇҐа жЁЁ ў Ћ‘ MS Windows');
writeln('3. Ћб®ўлҐ ®ЇҐа жЁЁ ў Ћ‘ Ubuntu');
writeln('4. ‘бл«ЄЁ Ї®«Ґ§лҐ аҐбгабл');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
3 : begin end;
4 : begin end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
7 : begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. ‘Їа ў®злҐ ¬ вҐаЁ «л Ї® ђ®ббЁЁ');
writeln('2. ‘Їа ў®злҐ ¤ лҐ ®в®бЁвҐ«м® б ¬®Ј® Ў®«ми®Ј®/¬ «ҐмЄ®Ј®/иЁа®Є®Ј®/Ј«гЎ®Є®Ј® Ё в.¤.');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
8 : begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. Ћб®ўлҐ Ёбв®аЁзҐбЄЁҐ б®ЎлвЁп § N ўҐЄ');
writeln('2. €бв®аЁп ђ®ббЁЁ');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
9 : begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. ЌҐЇа ўЁ«млҐ Ј« Ј®«л');
writeln('2. ‘Їа ўЄ Ї® ўаҐ¬Ґ ¬');
writeln('3. Ћб®ўлҐ б«®ў®б®зҐв Ёп б ЇҐаҐў®¤®¬');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
3 : begin end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
10: begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. ‹ЁвҐа вга п Ёбв®аЁп');
writeln('2. Ћб®ўлҐ ЇЁб ⥫Ё (® Ёе)');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. Ђ«ҐЄб ¤а ‘ҐаЈҐҐўЁз ЏгиЄЁ');
writeln('2. € ¤агЈЁҐ ;-)');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
11: begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. Џа®б¬®ваҐвм ®б®ўлҐ Їа ўЁ« агббЄ®Ј® п§лЄ ');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
12: begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. €бв®аЁп Єг«мвгал');
writeln('2. Ћ ўҐ«ЁЄЁе «о¤пе');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
13: begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. ѓ«®бб аЁ©');
writeln('2. Љ®бвЁвгжЁп ђ”');
writeln('3. Љ®¤ҐЄбл ђ” (ѓа ¦¤ бЄЁ©, ’а㤮ў®©, “Ј®«®ўл©...)');
writeln('4. ЊҐ¦¤г а®¤лҐ ¤®Єг¬Ґвл');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
3 : begin end;
4 : begin end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
14: begin
writeln('‚лЎҐаЁвҐ Є ⥣®аЁо:');
writeln('1. Џа ўЁ« ЎҐ§®Ї б®бвЁ');
writeln('2. Љ Є ¤Ґ©бвў®ў вм ў нЄбв६ «мле бЁвг жЁпе');
writeln('3. ‡ ап¤Є Ё а §¬ЁЄ ЇҐаҐ¤ дЁ§ЁзЁбЄЁ¬Ё Јаг§Є ¬Ё');
writeln('4. Џ ¬пвЄ , Ї®бўпйс п ‡¤®а®ў®¬г ЋЎа §г †Ё§Ё (‡Ћ†)');
writeln('5. Љ Є Ї®¤¤Ґа¦ вм ⥫® §¤®а®ўл¬ (Їа®Ја ¬¬л ¤«п Ґ¦Ґ¤Ґў®Ј® ўлЇ®«ҐЁп)');
writeln('0. ‚®§ўа в ў ЇаҐ¤л¤г饥 ¬Ґо');
writeln('„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
1 : begin end;
2 : begin end;
3 : begin end;
4 : begin end;
5 : begin end;
0 : end;
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
end;
15: begin writeln('’®«мЄ® ў б«Ґ¤го饩 ўҐабЁЁ ;-)'); readln() end;
0 : end; end.
//else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ ®¬Ґа Є ⥣®аЁЁ.');
end;
readln();
end.
Здесь оно компилилось, но вызывало ошибки, описанные мною в самом верхнем посте.
Если не получится, буду вставлять в первоночальный вариант (в этом посте - последний) goto.
Re: требуется помощь с оператором case
Добавлено:
16.08.2011 15:34:02
sign
Держите, двоешник.
- Код: Выделить всё
program pupils_utils_1;
var VibKat,DlyaVib,InNext,NeKat: string;
// Dial - ЇҐаҐ¬Ґ п ⥪г饣® ¤Ё «®Ј (ўлЎҐаҐвҐ ...)
//x,x1,x2,y,y1,y2,z,a,b,c,D: extended
//a,b,c - Є®нддЁжҐвл ў га ўҐЁпе; x1,x2,y1,y2 - Є®аЁ га ўҐЁ©; x,y,z - ҐЁ§ўҐбвлҐ; D - ¤ЁбЄаЁ¬Ё в
procedure SelectCategoryMain;
begin
end;
procedure ShowHelp;
begin
end;
procedure ShowLicense;
begin
end;
procedure MainMenu;
var Dial: integer;
begin
Dial:=1;
while Dial<>0 do
begin
writeln('‚лЎҐаЁвҐ ¤Ґ©бвўЁҐ');
writeln('0. ‚л室 Ё§ Їа®Ја ¬¬л');
writeln('1. ‚лЎ®а Є ⥣®аЁЁ');
writeln('2. Џа®б¬®ва бЇа ўЄЁ');
writeln('3. Џа®б¬®ва «ЁжҐ§Ё®®Ј® б®Ј« 襨п');
writeln('„«п ўлЎ®а ¤Ґ©бвўЁп ЇҐз ⠩⥠ҐЈ® жЁдаг ЎҐ§ в®зЄЁ.');
readln(Dial);
case Dial of
0: Halt;
1: SelectCategoryMain;
2: ShowHelp;
3: ShowLicense;
else writeln('‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ ¤Ґ©бвўЁҐ. Џ®¦ «гз©бв , ўлЎҐаЁвҐ ¤Ґ©бвўЁҐ.');
end;
end;
end;
begin
writeln('„®Ўа® Ї®¦ «®ў вм ў Pupils Utils 1.0!');
writeln();
writeln();
writeln('џ ¤Ґобм, зв® Їа®Ја ¬¬ ў ¬ ЇаЁЈ®¤Ёвбп.');
writeln();
VibKat:='‚лЎҐаЁвҐ Є ⥣®аЁо:';
DlyaVib:='„«п ўлЎ®а Є ⥣®аЁЁ ЇҐз ⠩⥠Ґс жЁдаг ЎҐ§ в®зЄЁ.';
InNext:='’®«мЄ® ў б«Ґ¤го饩 ўҐабЁЁ ;-)';
NeKat:='‚л ўлЎа «Ё зв®-в® ¤агЈ®Ґ, Ґ Є ⥣®аЁо. Џ®¦ «г©бв , ўлЎҐаЁвҐ Є ⥣®аЁо.';
MainMenu;
end.
Re: требуется помощь с оператором case
Добавлено:
17.08.2011 09:21:46
YgReEk
Чёрт. Спасибо. Такая глупая ошибка... Будут ещё вопросы - отпишусь