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

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

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

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

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

textual
Листинг программы
  1. const M = 10;
  2. const N = 5;
  3.  
  4. type item_t = integer;
  5. type line_t = array[1..M] of item_t;
  6. type tabl_t = array[1..N] of line_t;
  7.  
  8. procedure printLine( const l: line_t );
  9. var
  10.   i: integer;
  11. begin
  12.   for i:= 1 to M do
  13.     write(l[i] :5);
  14.   writeln;  
  15. end;
  16. procedure printTabl( const t: tabl_t );
  17. var
  18.   i: integer;
  19. begin
  20.   for i:= 1 to N do
  21.     printLine(t[i]);
  22. end;
  23.  
  24. procedure sortLine( var l: line_t; tS: boolean );
  25. var
  26.   i,j: integer;
  27.   tmp: item_t;
  28. begin
  29.   if ts then
  30.     for i:=1 to M-1 do
  31.       for j:=M downto i do begin
  32.         if l[j] < l[i] then begin
  33.           tmp := l[j];
  34.           l[j] := l[i];
  35.           l[i] := tmp;      
  36.         end;        
  37.       end
  38.   else
  39.     for i:=1 to M-1 do
  40.       for j:=M downto i do begin
  41.         if l[j] > l[i] then begin
  42.           tmp := l[j];
  43.           l[j] := l[i];
  44.           l[i] := tmp;      
  45.         end;        
  46.       end;
  47. end;
  48.  
  49. const DEV_FRB_EL_NEED = false;
  50.  
  51. var
  52.   a: tabl_t;
  53.   x,x2,y,y2: integer;
  54.   min, max, eCount: integer;
  55.   fBreak : boolean;
  56. begin
  57.     for y:=1 to N do
  58.       for x:=1 to M do
  59.         a[y][x] := random(-100 , 100);
  60.        
  61.   printTabl(a);
  62.  
  63.   Writeln('-------------------------------');
  64.  
  65.     for y:=1 to N do
  66.       for x:=1 to M do begin
  67.         fBreak  := false;
  68.         for x2:=1 to M do
  69.           if (a[y][x] = a[y][x2]) AND (x <> x2) then begin
  70.             fBreak := true;
  71.             break;
  72.           end;
  73.         if fBreak then continue;
  74.         a[y][x] := 0;
  75.       end;
  76.  
  77.    
  78.   printTabl(a);
  79. end.

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


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

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

13   голосов , оценка 4.231 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы