Так как в задаче идет речь о матрице, то возможные варианты такой матрицы (исключаем 1х30 и 30х1): 2х15 3х10 5х6 Далее повторения (меняются столбцы и строки) 6х5 10х3 15х2 Попробуем написать программу, которая создает нужную матрицу по первому числу (количество строк) и заполняет ее:
//PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016) var a:array[,] of integer; n,m,i,j,k:integer; begin k:=1; write('Введите количество строк (одно число из 2,3,5,6,10,15) '); readln(n); m:=30 div n; a:=new integer[n,m]; for i:=0 to n-1 do begin for j:=0 to m-1 do begin a[i,j]:=k; k:=k+1; write(a[i,j]:3); end; writeln; end; end.
Const n=5; var i: integer; b: real; a: array [1..n] of integer; {если его элементы целые числа (про тип чисел ничего не сказано в задании)} begin for i:=1 to n do read(a[i]); if ((a[1]+a[3]) mod 5 = 0) and (a[5] mod 10 = 3) then begin b:=0; for i:=1 to 5 do b:=b+sqr(a[i]); end else begin b:=1; for i:=1 to 5 do b:=b*sqrt(a[i]); end; writeln(b:1:2); {округление до сотых} if (a[1]+a[2]+a[3])>15 then writeln('да, сумма 1, 2 и 3 чисел больше 15') else writeln('нет, сумма 1, 2 и 3 чисел меньше или равна 15'); if ((a[4]+a[5]) div 10>0) and ((a[4]+a[5]) div 100<0) then writeln('да, сумма 4 и 5 чисел - двузначное число') else writeln('нет, сумма 4 и 5 чисел - не двузначное число'); readln; {чтобы была задержка до нажатия кнопки при выполнении программы и мы могли бы увидеть ответ} end. Решить можно и без использования массива.
// PascalABC.NET 3.3, сборка 1634 от 14.02.2018 // Внимание! Если программа не работает, обновите версию!
begin var a:=ArrRandom(ReadInteger('n='),-11,11); a.Println; // 1 begin var s:=a.Where(t->t<0); if s.Count=0 then Writeln('1. Нет отрицательных элементов') else Writeln('1. Первый отрицательный элемент номер ', a.IndexOf(s.First)+1) end; // 2 begin var s:=a.Select((v,i)->(v,i)).Where(t->(t[0]>0) and t[0].IsEven); if s.Count=0 then Writeln('2. Нет четных положительных элементов') else begin var r:=s.Last; Writeln('2. Последний четный положительный элемент номер ',r[1]+1, ', значение ',r[0]) end end; // 3 begin var s:=a.Select((v,i)->(v,i)).Where(t->t[0] mod 5=0); if s.Count<2 then Writeln('3. Нет двух элементов, кратных 5') else Writeln('3. Номер второго элемента, кратного 5, равен ', (s.Skip(1).Take(1)).First[1]+1) end; // 4 begin var s:=a.Select((v,i)->(v,i)).Where(t->t[0]=0); if s.Count<3 then Writeln('4. Нет трех нулевых элементов') else begin s:=s.Skip(1).Take(2); Writeln('4. Количество положительных элементов между ', 'вторым и третьим нулевыми элементами равно ', a[s.First[1]+1:s.Last[1]].Where(t->t>0).Count) end end; // 5 begin var s:=a.IndexesOf(t->t>0).Take(4).Select(t->t+1); if s.Count<4 then Writeln('5. Нет четырех положительных элементов') else begin Write('5. Номера первых четырех положительных элементов: '); s.Println end end; // 6 begin var s:=a.IndexesOf(t->t<0); if s.Count=0 then Writeln('6. Нет отрицательных элементов') else Writeln('6. Номера первого и последнего отрицательных элементов: ', s.First+1,' ',s.Last+1) end; // 7 begin var s:=a.IndexesOf(t->t>0); if s.Count=0 then Writeln('7. Нет положительных элементов') else begin var i1:=s.First; s:=a.IndexesOf(t->t<0); if s.Count=0 then Writeln('7. Нет отрицательных элементов') else begin var i2:=s.Last; Writeln('7. Количество четных элементов между первым ', 'положительным и последним отрицательными элементами: ', a?[i1+1:i2].Where(t->t.IsEven).Count) end end end end.
2х15
3х10
5х6
Далее повторения (меняются столбцы и строки)
6х5
10х3
15х2
Попробуем написать программу, которая создает нужную матрицу по первому числу (количество строк) и заполняет ее:
//PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016)
var
a:array[,] of integer;
n,m,i,j,k:integer;
begin
k:=1;
write('Введите количество строк (одно число из 2,3,5,6,10,15) ');
readln(n); m:=30 div n;
a:=new integer[n,m];
for i:=0 to n-1 do begin
for j:=0 to m-1 do begin
a[i,j]:=k; k:=k+1;
write(a[i,j]:3);
end;
writeln;
end;
end.
Тест №1
Введите количество строк 5
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
Тест №2
Введите количество строк 3
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30