Показать сообщение отдельно
  #1  
Старый 18.01.2011, 19:55
Dotam Dotam вне форума
Прохожий
 
Регистрация: 10.01.2011
Адрес: Украина, Черкассы, Хрещатик
Сообщения: 9
Репутация: 10
Плохо проблема работы процедуры в програме

у меня возникла проблема, не выводится процедура нахождения разницы минимального и максимального абсолютного значения в массиве(((


Код:
program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;
type mas = array[1..10] of integer;
function ArrayCalculated(m:mas):integer;    //вот процедура
var
  max_abs,index,min_abs,rizn:integer;
begin
max_abs:=abs(m[1]);
min_abs:=abs(m[1]);
for index:=2 to 10 do
begin
if max_abs>abs(m[index]) then
max_abs:=abs(m[index]);
if min_abs<abs(m[index]) then
min_abs:=abs(m[index]);
end;
rizn:=min_abs-max_abs;
writeln('riznica ',rizn);
end;

function array_calculate(x:mas):mas;
var
i:integer;
max,max_abs:integer;
index_max,index_max_abs:integer;
begin
max:=x[1];
max_abs:=x[1];
for i:=2 to 10 do
begin

  if x[i]>max then
    begin
      max:=x[i];
      index_max:=i;
    end;
  if abs(x[i])>abs(max_abs) then
    begin
     max_abs:=abs(x[i]);
     index_max_abs:=i;
    end;
end;   {2}
writeln('max_znach, max_ind =');
writeln(max,', ',index_max);
writeln('max_znach_abs, ind_max_abs =');
write(max_abs,', ',index_max_abs);
readln;
end;


function InpuMatrix():mas;
   var
   a:mas;
  x:integer;
begin
  Randomize;
   for x:=1 to 10 do
   begin
   a[x]:=random(20)-10;
   writeln(a[x]);
   {writeln(a[i,x]);}
   end;{1}
   InpuMatrix:= a;
end;{2}
procedure inputMatrix(var m:mas);
var
  y:integer;
begin
     for y:=1 to 10 do
     begin
      write('a[',y,']','=');
      readln(m[y]);
     end;
end;
const m :mas = (1,23,4,5,46,-34,-234,-23,99,10);
var
array_osnovniy:mas;
perem:integer;
begin
writeln('put number: if 1 then random;');
writeln('if 2 then write from keyboard;');
write('if 3 then const: = ');
readln(perem);
case perem of
1: array_osnovniy:= InpuMatrix;
2: inputMatrix(array_osnovniy);
3: array_osnovniy:= m ;
else
writeln('error, write correct number');
end;
array_calculate(array_osnovniy);
writeln(ArrayCalculated(array_osnovniy));// пробовал и так: 
                                                           ArrayCalculated(array_osnovniy);
end.
помогите решить ошибку((((
__________________
Тут может быть ваша программа...
Ответить с цитированием