Информатика, вопрос задал daniil0614 , 2 года назад

ДАЮ 50 БАЛЛОВ! Помогите с информатикой. Язык Паскаль

Приложения:

fovfabomi: сколько строк и столбцов в массиве?
fovfabomi: вам надо написать целую программу или только поиск одинаковых?
daniil0614: Поиск одинаковых
daniil0614: Строк и столбцов неизвестно

Ответы на вопрос

Ответил KnowsUser1
0

Ответ:

function FindDuplicate<T>(Self: Array[,] of T): T; extensionmethod;

begin

 var sourceArrayInRow := Self.Cast&<T>();

 foreach var item in sourceArrayInRow.Distinct() do begin

   if sourceArrayInRow.Count(x -> x = item) = 2 then

   begin

     Result := item;

     break;

   end;

 end;

end;

begin

 var a: array[,] of integer := ( (1,2,3), (4,5,6), (1,7,8) );

 a.FindDuplicate().Println; //распечатает 1, т.к 1 - дубликат

end.

Алгоритм мягко скажем не самый оптимальный, но, в целом, поставленную задачу решает. Реализовано на PascalABC.NET 3.7.2

Ответил fovfabomi
1

часть программы для поиска и вывода одинаковых элементов

for i:=1 to n do

 for j:=1 to k do begin

   for c:=i to n do

 for d:=j+1 to k do if a[i,j]=a[c,d] then writeln('a=',a[i,j]) end;

где n и k кол-во строк и столбцов


daniil0614: А можешь написать все программу?
daniil0614: Всю*
daniil0614: Пж
fovfabomi: для всей программы нужно знать кол-во максимальных возможных строк и столбцов
daniil0614: Понял. Там 3 строки и 2 столбца
KnowsUser1: кол-во строк и столбцов можно получить, вызвав у объекта типа Array of T[,] метод GetLength, указав в параметрах измерение, в котором нужно получить длину. arr.GetLength(0) -> кол-во строк, arr.GetLength(1) -> кол-во столбцов
fovfabomi: var a:array [1..3,1..2] of integer;
i,j,c,d:integer;
begin
for i:=1 to 3 do

for j:=1 to 2 do readln(a[i,j]);

for i:=1 to 3 do

for j:=1 to 2 do begin

for c:=i to 3 do

for d:=j+1 to 2 do if a[i,j]=a[c,d] then writeln('a=',a[i,j]) end;
end.
fovfabomi: с вводом элементов массива с клавиатуры
fovfabomi: если надо могу исправить ответ
Новые вопросы