Оставить в строках матрицы элементы которые встречаются более одного раза, остальные заменить нулем - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Нужно решить задачку. С другом сколько не пытались решить, так и не решили. Изменить таблицу a[1..m,1..n] так, чтобы в строках остались элементы которые встречаются более одного раза, остальные заменить нулем. Помогите пожалуйста, спасибо большое!

Решение задачи: «Оставить в строках матрицы элементы которые встречаются более одного раза, остальные заменить нулем»

textual
Листинг программы
const M = 10;
const N = 5;
 
type item_t = integer;
type line_t = array[1..M] of item_t;
type tabl_t = array[1..N] of line_t;
 
procedure printLine( const l: line_t );
var
  i: integer;
begin
  for i:= 1 to M do
    write(l[i] :5);
  writeln;  
end; 
procedure printTabl( const t: tabl_t );
var
  i: integer;
begin
  for i:= 1 to N do
    printLine(t[i]);
end; 
 
procedure sortLine( var l: line_t; tS: boolean );
var
  i,j: integer;
  tmp: item_t;
begin
  if ts then
    for i:=1 to M-1 do
      for j:=M downto i do begin
        if l[j] < l[i] then begin
          tmp := l[j];
          l[j] := l[i];
          l[i] := tmp;      
        end;        
      end
  else
    for i:=1 to M-1 do
      for j:=M downto i do begin
        if l[j] > l[i] then begin
          tmp := l[j];
          l[j] := l[i];
          l[i] := tmp;      
        end;        
      end;
end; 
 
const DEV_FRB_EL_NEED = false;
 
var
  a: tabl_t;
  x,x2,y,y2: integer;
  min, max, eCount: integer;
  fBreak : boolean;
begin
    for y:=1 to N do
      for x:=1 to M do
        a[y][x] := random(-100 , 100);
        
  printTabl(a);
  
  Writeln('-------------------------------');
 
    for y:=1 to N do
      for x:=1 to M do begin
        fBreak  := false;
        for x2:=1 to M do
          if (a[y][x] = a[y][x2]) AND (x <> x2) then begin
            fBreak := true;
            break;
          end;
        if fBreak then continue;
        a[y][x] := 0;
      end;
 
    
  printTabl(a);
end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5
Похожие ответы