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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2017, 17:19   #1
всё плохо :(
Новичок
Джуниор
 
Регистрация: 05.01.2017
Сообщений: 2
По умолчанию [Pascal]: помогите программу, работающую через функцию, переписать так, чтобы она работала через процедуру

Есть программа работающая через функцию,помогите,пожалуйста, написать через процедуру

Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

 function vLen(v: array of Real);
var
r: Real; j: Integer;
begin
r:=0;
for j:=Low(v) to High(v) do r:=r+Sqr(v[j]); r:=SqRt(r);
  vLen:=r;
end;

const n=2; k=4;
var
  a, b: array [1..n] of Real;
  m, t: Real;
  i, j: Integer;
begin
  WriteLn('enter coordinats ',n,'-mernix vectors (',k,'):');
  for j:=1 to n do Read(b[j]); m:=vLen(b);
  for i:=2 to k do begin
    for j:=1 to n do Read(a[j]); t:=vLen(b);
    if m>t then begin
      m:=t; b:=a;
    end;
  end;
  Write('vector with minimal length44 ',m,': (',b[1]);
  for j:=2 to n do Write(', ',b[j]); WriteLn(')');


  readln;
end.

Последний раз редактировалось всё плохо :(; 06.01.2017 в 12:26.
всё плохо :( вне форума Ответить с цитированием
Старый 05.01.2017, 17:33   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Может наоборот надо?
p51x вне форума Ответить с цитированием
Старый 05.01.2017, 17:40   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Если сначала так:
Код:
procedure vLen(v: array of Real);
а внутри вот так:
Код:
 vLen:=r;
то это - ошибка.
В самом деле так функции описывают, а не процедуры.
type_Oleg вне форума Ответить с цитированием
Старый 05.01.2017, 17:45   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Вообще, насколько мне известно, нельзя в подпрограммах формальные параметры-массивы принимать с явным указанием их типа. Необходимо их переопределить через Type:
Код:
type
 TArray = array of real;
...
procedure(v: TArray);
Вадим Мошев вне форума Ответить с цитированием
Старый 06.01.2017, 12:28   #5
всё плохо :(
Новичок
Джуниор
 
Регистрация: 05.01.2017
Сообщений: 2
По умолчанию

Спасибо,не подскажете куда мне девать результат vLen:=r;.
И ругается на:
for j:=1 to n do Read(b[j]); m:=vLen(b);
и
for j:=1 to n do Read(a[j]); t:=vLen(b);
пишет несовместимые типы Array и TArray
всё плохо :( вне форума Ответить с цитированием
Старый 06.01.2017, 14:51   #6
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Покажите код полностью.

Цитата:
Сообщение от всё плохо :( Посмотреть сообщение
И ругается на:
Какую ошибку пишет?

Цитата:
Сообщение от всё плохо :( Посмотреть сообщение
пишет несовместимые типы Array и TArray
Так не используйте их вместе. Если у вас теперь массив имеет пользовательский тип TArray, то и используйте его везде.
Вадим Мошев вне форума Ответить с цитированием
Старый 06.01.2017, 17:51   #7
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Если переделали на функцию, то надо указать ее тип, и заменить array of Real на пользовательский тип:
Код:
function vLen(v: TArray):Real;

Последний раз редактировалось type_Oleg; 06.01.2017 в 17:54.
type_Oleg вне форума Ответить с цитированием
Старый 06.01.2017, 22:35   #8
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,552
По умолчанию

Мне кажется, материал будет интересен не только ТС. Попытался дать прямую ссылку, что-то режется. Даю выжимку.
Вложения
Тип файла: doc Процедуры и функции.doc (35.0 Кб, 15 просмотров)
digitalis вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедура и функция Ken_Watanabe Помощь студентам 9 09.09.2014 16:27
Delphi процедура > функция Nickolai47 Помощь студентам 4 12.12.2012 14:34
Функция и Процедура (на С) Docen Помощь студентам 2 29.10.2010 14:12
процедура и функция mono Помощь студентам 1 04.05.2009 15:33
Процедура и функция HECTOR.A. Помощь студентам 2 16.12.2008 14:19