Страница 1 из 1

Pascal. Процедура. Небольшой вопрос

Добавлено: 21 дек 2008, 15:59
keywanda
У меня процедура.. которая должна находить элементы кратные трём в матрице и выводить их на экран. Даны 2 матрицы. Выглядит эта процедура у меня так..

Код: Выделить всё

procedure krat(var x:matr, k:integer);
var i:integer; 
begin for i:=1 to k do begin
if x[i,k] mod 3=0 then
writeln('элементы кратные трём'); end;
write(x[i,k]);
end;
то есть если элемент делить на 3 и остаток будет 0, тогда выводить на экран этот элемент.. но у меня не получается это.. во-первых программа как то зацикливается и фразу 'элементы кратные трём' мне выводит несколько раз, во-вторых, если например в матрицах есть элементы 3,6,9.. он выводит только 3 и 9 и 6 вообще не выводит.. иногда выводит не понятные числа типа 4 или 1..

в чём проблема здесь? подскажите, пожалуйста!!

Re: Pascal. Процедура. Небольшой вопрос

Добавлено: 21 дек 2008, 22:50
Naeel Maqsudov
Судя по списку входных параметров рискуну предположить, что матрица квадратная, размера "K на K"....

Код: Выделить всё

procedure krat(var x:matr, k:integer);
var i,j:integer; found:boolean;
begin 
  found:=false;
  for i:=1 to k do for j=1 to k do if x[i,j] mod 3=0 then begin
    if found then write('; ') else write('элементы кратные трём:');
    write(x[i,k]);
    found:=true;
  end;
end;
Т.е. 'элементы кратные трём:' печатается только первй раз, все остальные разы печатается разделитель ";".

Re: Pascal. Процедура. Небольшой вопрос

Добавлено: 22 дек 2008, 20:08
keywanda
да! всё именно так!! спасибо большое :cool: