Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2016, 15:23   #1
annya
Пользователь
 
Регистрация: 05.10.2016
Сообщений: 19
По умолчанию как переделать эту функцию в процедуру?

Код:
function Minus(var Massiv; N: Integer): Real; 	
type T = array[l..1000] of Real; 	 
var i: Integer; 	 
begin 	 
  Minus := 0; 	 
  for i := 1 to N do 	 
    if T(Massiv)[i] < 0 then 	
      begin 	 
        Minus := T(Massiv) [ i ]; 	 
        Exit 	
      end 	 
end;

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 10.10.2016 в 15:30.
annya вне форума Ответить с цитированием
Старый 10.10.2016, 15:32   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Код:
procedure Minus(var Massiv; N: Integer; var Res: Real); 	
type T = array[l..1000] of Real; 	 
var i: Integer; 	 
begin 	 
  Minus := 0; 	 
  for i := 1 to N do 	 
    if T(Massiv)[i] < 0 then 	
      begin 	 
        Res := T(Massiv) [ i ]; 	 
        Exit 	
      end 	 
end;
p51x на форуме Ответить с цитированием
Старый 10.10.2016, 15:34   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Код:
type T = array[1..1000] of Real; 	 

procedure Minus(var Massiv:T; N: Integer; var MinusResult: Real); 	
var i: Integer; 	 
begin 	 
  MinusResult := 0; 	 
  for i := 1 to N do 	 
    if Massiv[i] < 0 then 	
      begin 	 
        MinusResult := Massiv[ i ]; 	 
        Exit 	
      end 	 
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.10.2016, 15:59   #4
annya
Пользователь
 
Регистрация: 05.10.2016
Сообщений: 19
По умолчанию

А можете пожалуйста немного прокомментировать? А то не совсем понятно.
annya вне форума Ответить с цитированием
Старый 10.10.2016, 16:09   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А что комментировать-то? В Паскаль процедура это просто функция без возвращаемого значения.

Например,
Код:
data := ReadData(); // <-- функция
Код:
DoSomething(); // <-- процедура
В данном случае непонятно зачем переделывать функцию в процедуру если все равно нужно получить результат. (в коде выше это сделано с помощью передачи в процедуру ссылки на переменную третьим параметром)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 10.10.2016 в 16:14.
Alex11223 вне форума Ответить с цитированием
Старый 10.10.2016, 17:06   #6
annya
Пользователь
 
Регистрация: 05.10.2016
Сообщений: 19
По умолчанию

А почему во втором примере тип объявлен перед процедурой, а в первом внутри нее? Это важно или нет?
annya вне форума Ответить с цитированием
Старый 10.10.2016, 17:08   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

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

Вы когда код копипастите с инетов, хоть глазками его пробегайте.
p51x на форуме Ответить с цитированием
Старый 10.10.2016, 18:24   #8
annya
Пользователь
 
Регистрация: 05.10.2016
Сообщений: 19
По умолчанию

Понятно. Спасибо большое!
annya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как из функции переделать в процедуру? shalgan Помощь студентам 6 24.12.2013 15:16
Как убрать эту функцию? Марсель21 Общие вопросы Delphi 3 19.06.2012 08:47
Как можно изменить эту функцию(код)? -ushёl- Общие вопросы C/C++ 2 09.04.2010 13:07
функцию переделать на процедуру morgan996 Помощь студентам 2 08.01.2010 13:08
Необходимо переделать процедуру ooo.sum_m в функцию определения наличия отрицательных элементов ul_m Помощь студентам 4 10.01.2009 20:32