![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
sdoc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 2.9.2003 Репутация: нет Всего: нет |
есть ли такое в Паскале?
|
|||
|
||||
Maverick |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1307 Регистрация: 22.9.2003 Где: Odessa, Ukraine Репутация: 2 Всего: 10 |
кхм.... ну вообще-то это идеологически неправильно.... если можно, то подробней - что надо сделать.... всегда можно обойтись без этого....
но можешь попробовать abort, exit.... хотя врядли в древнем паскале сработает..... Добавлено @ 14:09 ага.... еще и из функции тем более..... точно не выйдет.... подробнее... дай код.. |
|||
|
||||
sdoc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 2.9.2003 Репутация: нет Всего: нет |
почему это идеалогически неправильно?...
ладно - не в этом вопрос - просто мне надо было сделать примерно так: if (allocation memory error) exit, return or sth else(from this function only) ... code supposing right allocation memory ... я это сделал так: if (allocation memory error) exit, return or sth else(from this function only) else ... code supposing right allocation memory ... так что вроде нормально - только по моему некрасиво - первый вариант лучше ![]() Добавлено @ 14:14 ты не знаешь как в паскале разименовать указатель - там есть тема для этого - очень надо |
|||
|
||||
Maverick |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1307 Регистрация: 22.9.2003 Где: Odessa, Ukraine Репутация: 2 Всего: 10 |
Я честно говоря с C# не знаком.... так валяется книжка.... ну не нравится он мне...
![]() Ну если я правильно понял.... Function Vozvrat(param : тип):integer; var vremen : integer; begin if (проблема) then vremen := -1; {или что удобнее для анализа} else begin {тело основное} vremen := результат расчетов; end; Vozvrat := vremen; end; А на выходе ужу ошибку анализировать.... Если не надо возвращать ничего... Procedure Rascet(); begin if (проблема) then exit {или abort, не помню} else begin {тело основное} end; end; end; Не путай с Си - тут логика немножко другая.... чуть-чуть... но... |
|||
|
||||
sdoc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 2.9.2003 Репутация: нет Всего: нет |
а я разве не тоже самое написал - (почти) - просто мне не нужен код ошибки.
люди - скажите как разименовать указатель!!!! |
|||
|
||||
Maverick |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1307 Регистрация: 22.9.2003 Где: Odessa, Ukraine Репутация: 2 Всего: 10 |
Э ну.... то что ты написал слабо напоминает Паскаль вообще.... а если код ошибки тебе не нужен - так и не анализируй его и все.... но просто так из функции выйти нельзя - она должна вернуть значение....
|
|||
|
||||
sdoc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 2.9.2003 Репутация: нет Всего: нет |
а если это процедура? как я верну значение из процедуры?
Добавлено @ 14:55 я сказал раньше функция ![]() |
|||
|
||||
Maverick |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1307 Регистрация: 22.9.2003 Где: Odessa, Ukraine Репутация: 2 Всего: 10 |
Есть два метода передачи данных
1) напрямую var {global} result : integer; procedure Rascet (); begin result := 7; {глобальная перменная меняется напрямую} end; BEGIN result := 5; {здесь result = 5} rascet; {здесь result = 7} END; 2) по ссылке var {global} result : integer; procedure Rascet (param : integer); begin param := 7; {глобальная перменная меняется по ссылке} end; BEGIN result := 5; {здесь result = 5} rascet(result); {здесь result = 7} END; Так можно.... Другого не дано... |
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
На сколько я знаю, в Паскале не реализовано использование Result в качесве результата функции, так что нужно делать так:
Это сообщение отредактировал(а) <Spawn> - 19.3.2004, 16:47 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 6 Всего: 23 |
Делай сперва Result := MyResult; , затем exit. И будет аналог.
То есть:
|
|||
|
||||
Maverick |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1307 Регистрация: 22.9.2003 Где: Odessa, Ukraine Репутация: 2 Всего: 10 |
Ребята...
Я не обратил совершенно, что result - слово используемое для возврата результата функции... В том, что я написал result - это просто имя переменной... поставьте просто perem {любое имя} .... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |