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

> Правила раздела!

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

 
 Ответить  Открыть новую тему 
> Оператор case, Простой вопрос, на который я так и не нашёл нигде ответа.
сообщение
Сообщение #1


Новичок
*

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

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


Как, с помощью оператора case, сделать выбор процедуры?
То есть вроде
case x of
1:procedure 1;
2:procedure 2;
но так, что б работало=\
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Злостный любитель
*****

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

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


case x of
1:procedure1;
2:procedure2;
end;


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


Новичок
*

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

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


Я ему так и заявляю, а он в ответ мне выдаёт s42.radikal.ru/i095/1112/09/e3640221233f.jpg
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

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

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


Ты не так заявляешь. Надо описать процедуры (все) перед основной программой, а не внутри нее. А потом - просто вызывать по имени внутри Case...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


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


Новичок
*

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

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


Хотелось бы ещё узнать, как вызывается процедура?
http://s44.radikal.ru/i103/1112/57/df39e4930c2a.jpg
Вверху обведён мой вариант вызова, внизу - сама процедура.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Злостный любитель
*****

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

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


1: begin Lab(m,n,k); end;

(короче надо непременно передать три параметра, потому что ты процедуру объявил как принимающую три параметра).

Добавлено через 9 мин.
Или ты хотел, чтобы переменные a,b,y были локальными в процедуре Lab и не являлись параметрами?
Тогда ты не правильно описал процедуру.
Надо было так:

procedure Lab; // никаких параметров
var // а вот теперь описываем локальные переменные
a,b,y: real;
begin
...



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


Новичок
*

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

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


Цитата(TarasBer @ 9.12.2011 15:20) *

1: begin Lab(m,n,k); end;

(короче надо непременно передать три параметра, потому что ты процедуру объявил как принимающую три параметра).


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


Злостный любитель
*****

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

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


см сообщение 7, я же дописал


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


Новичок
*

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

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


Цитата(TarasBer @ 9.12.2011 15:56) *

см сообщение 7, я же дописал

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


Новичок
*

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

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


Ура, работает! lol.gif
А как теперь сделать, чтобы на определённом шаге программа начинала работу заного?
Как создать массив MxN, но М и Н при этом ввести после?

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


Злостный любитель
*****

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

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


> Извиняюсь, не успел прочитать, теперь понял, спасибо.

Как вы форум читаете, если моё исправление написано раньше вашего ответа?

> А как теперь сделать, чтобы на определённом шаге программа начинала работу заного?

Заново?
Циклом.


repeat
if что-то там then continue; // команда continue - начать цикл с начала
if что-то там then break; // команда break - выйти из цикла
until false;



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


Новичок
*

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

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


Не дадите ответ на мой второй вопрос?)
Как создать массив MxN, но М и N при этом ввести после?

Цитата(TarasBer @ 14.12.2011 10:07) *

Как вы форум читаете, если моё исправление написано раньше вашего ответа?

Мой ответ был написан менее чем через минуту, после вашего исправления.
Я мог не обновлять страницу с момента создания вашего предыдущего сообщения.
Я мог писать больше минуты.

Не дадите ответ на мой второй вопрос?)
Как создать массив MxN, но М и N при этом ввести после?


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


Злостный любитель
*****

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

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


Цитата(Mactraher @ 14.12.2011 18:15) *

Не дадите ответ на мой второй вопрос?)
Как создать массив MxN, но М и N при этом ввести после?

В Паскале - по простому никак. Заводи массив с избытком, например, 100 на 100, а M и N храни отдельно.
Цитата

Я мог не обновлять страницу с момента создания вашего предыдущего сообщения.
Я мог писать больше минуты.

Ты когда отправляешь сообщение, не смотришь, что на странице изменилось, сразу закрываешь не глядя?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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