// PascalABC.NET 3.3, сборка 1623 от 16.01.2018 // Внимание! Если программа не работает, обновите версию!
begin var n:=ReadInteger('Количество строк (столбцов) в массиве:'); Writeln('*** Исходный массив ***'); var a:=MatrRandom(n,n,10,30); a.Println(3); Writeln(3*a.ColCount*'-'); Write('Строки с повторяющимися элементами: '); var (i,k):=(0,0); foreach var строка in a.Rows do begin i+=1; if строка.Count<>строка.Distinct.Count then begin k+=1; Print(i) end end; if k=0 then Writeln('нет') else Writeln; Write('Столбцы с повторяющимися элементами: '); (i,k):=(0,0); foreach var столбец in a.Cols do begin i+=1; if столбец.Count<>столбец.Distinct.Count then begin k+=1; Print(i) end end; if k=0 then Writeln('нет') else Writeln end.
Строки с повторяющимися элементами: 2 4 6 Столбцы с повторяющимися элементами: 1 5
million2003
21.03.2022
1) var n,z:integer; begin z:=0;//z=:0 знак присваивания выглядит вот так ":=" //n=:100 - не нужно иницилизировать параметр цикла. for n:= 200 to 500 do begin//for n:=100 to 1000 do begin - цикл должен идти от 200 до 500, а не со 100 до 1000 if n mod 14 = 0 then //if (n div 14 =0) then - div - Целая часть от деления, а mod - остаток. z:=z+1;//writeln(n); - Выводить n не нужно совсем, а вот увеличить счетчик не помешает //z:=z+1;- а вот тут уже лишнее end; writeln(z); end.
2) -73, выполнится 15 - 8 + 1 = 8 раз
priemni451
21.03.2022
Представь себе одну колею. Посредине отходит тупик на 11 вагонов. По краям два поезда. 1) Левый проезжает вперед и задком заходит в тупик, оставляя там 11 вагонов. Потом выезжает и возвращается на место - влево. 2) Правый подъезжает к вагонам и прицепляет к себе спереди паровоза (у паровоза "зад - перед" одно и то же) и оттаскивает на место вправо. 3) Левый опять протягивает вперед и задком полностью заезжает в тупик. 4) Правый двигается по колее, занимая место слева. Он теперь левый. 5) Левый выезжает и занимает место справа. Он теперь правый. 6) Левый протягивает назад и заталкивает в тупик 11 вагонов не своих. Выезжает обратно. 7) Правый подцепляет свои вагоны и каждый едет дальше!
Все это справедливо, если в тупик можно заехать с правой стороны. Если с левой - картина меняется на зеркальную.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Срешением в pascal, массивы. вопрос- дана матрица a(nxn вывести номера строк и столбцов в которых есть одинаковые элементы.
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Количество строк (столбцов) в массиве:');
Writeln('*** Исходный массив ***');
var a:=MatrRandom(n,n,10,30);
a.Println(3); Writeln(3*a.ColCount*'-');
Write('Строки с повторяющимися элементами: ');
var (i,k):=(0,0);
foreach var строка in a.Rows do begin
i+=1;
if строка.Count<>строка.Distinct.Count then begin
k+=1; Print(i)
end
end;
if k=0 then Writeln('нет')
else Writeln;
Write('Столбцы с повторяющимися элементами: ');
(i,k):=(0,0);
foreach var столбец in a.Cols do begin
i+=1;
if столбец.Count<>столбец.Distinct.Count then begin
k+=1; Print(i)
end
end;
if k=0 then Writeln('нет')
else Writeln
end.
Пример
Количество строк (столбцов) в массиве: 6
*** Исходный массив ***
30 16 23 17 19 27
18 13 21 19 21 11
30 10 24 27 22 20
19 28 15 29 15 18
11 30 22 25 21 15
27 14 27 28 18 28
Строки с повторяющимися элементами: 2 4 6
Столбцы с повторяющимися элементами: 1 5