Тема: Pascal
Показать сообщение отдельно
Старый 29.05.2014, 23:19   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Зюня,0 Посмотреть сообщение
2. Каждый элемент массива заменить произведением его делителей. (их нужно сделать в процидурах)
Пожалуйста. Надеюсь, и функция подойдет. Если нет - черкните, переделаем в процедуру (кстати, она пишется именно через "е").
Код:
Const
 N=20;

Var
 A:Array[1..N] of Integer;
 i:Integer;

Function Prod(M:Integer):Integer;
var j,P:Integer;
begin
 if M<4 then P:=M
 else
 begin
  P:=1;
  for j:=M downto 2 do
   if (M mod j)=0 then P:=P*j;
 end;
 Prod:=P;
end;

Begin
 Randomize;
 Writeln('Initial array:');
 for i:=1 to N do
  begin
   A[i]:=Random(16)+1;
   write(A[i]:8);
  end;
 writeln;
 writeln;
 Writeln('New array:');
 for i:=1 to N do
  begin
   A[i]:=Prod(A[i]);
   write(A[i]:8);
  end;
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070