Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.10.2012, 18:50
dpmkh dpmkh вне форума
Прохожий
 
Регистрация: 12.10.2012
Сообщения: 4
Репутация: 10
По умолчанию Проблема с функцией!

Всем привет!

Вот моя функция:
Код:
function  Through( k, m :integer; N_f :word) :longword;    //  skvoznoy nomer uzla*
   begin
      if (k <= N_f)  and  (m <= N_f)  then
         if  (m > k)  then Result :=  SQR(m+1)-k
                    else  Result :=  SQR(k)+1+m
      else
         if  (k > N_f)  and  (m <= N_f)  then
              Result :=  SQR(N_f+1) + 2*(k-N_f-1)*N_f + k - N_f + m
         else if  (k <= N_f)  and  (m > N_f)  then
                  Result := sqr(N_f+1) + 2*(m-N_f)*N_f + m - N_f - k
            else  showmessage(' DISKRETNYE KOORDINATY - VNE OBLASTI  !  ')
                    
   end; //........................................................  Through
При запуске выдаёт такую ошибку:

Return value of function 'Through' might be undefined

Подскажите пожалуйста, в чём может быть проблема?
Ответить с цитированием
  #2  
Старый 12.10.2012, 19:10
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

Это не ошибка, а предупреждение. В некоторых случаях, а именно когда
Цитата:
DISKRETNYE KOORDINATY - VNE OBLASTI !
, результат ф-ции будет неопределен. Напиши вначале, например
Код:
Result:=0;
, или
Код:
......
else
  Begin
    showmessage(' DISKRETNYE KOORDINATY - VNE OBLASTI  !  ');
    Result:=0;
  end;
Ответить с цитированием
  #3  
Старый 12.10.2012, 19:42
dpmkh dpmkh вне форума
Прохожий
 
Регистрация: 12.10.2012
Сообщения: 4
Репутация: 10
По умолчанию

Спасибо за обьяснение!
МОжно, что б при последнем варианте просто остановить процесс, а не результат функции 0?
Ответить с цитированием
  #4  
Старый 12.10.2012, 20:09
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

Цитата:
Сообщение от dpmkh
..просто остановить процесс
Какой именно процесс? Если завершить работу программы-то:
♦Application.Terminate;
♦Halt();
♦Form1.Close; - предпочтительней двух предыдущих вариантов;
♦И много других нецивилизованных вариантов.

Если выйти из ф-ции - то EXIT; , но это предупреждения не уберет.
Ответить с цитированием
  #5  
Старый 14.10.2012, 12:04
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

брр... какой неразборчивый код, не удержался

Код:
function Through(k, m: Integer; N_f: Word): Longword; //  skvoznoy nomer uzla*
begin
  Result := 0;
  if (k <= N_f) and (m <= N_f)  then
    if (m > k) then 
      Result := Sqr(m + 1) - k
    else 
      Result := Sqr(k) + 1 + m
  else
    if (k > N_f) and (m <= N_f)  then
      Result := Sqr(N_f + 1) + 2 * (k - N_f - 1) * N_f + k - N_f + m
    else 
      if (k <= N_f) and (m > N_f)  then
        Result := Sqr(N_f + 1) + 2 * (m - N_f) * N_f + m - N_f - k
      else  
        ShowMessage('DISKRETNYE KOORDINATY - VNE OBLASTI !')                  
end;

Последний раз редактировалось sariman, 14.10.2012 в 12:06.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:14.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter