М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Sivcova942
Sivcova942
27.09.2022 08:16 •  Информатика

Нужно написать программу, где в матрице будут по порядку числа от 1 до 30

👇
Ответ:
sirdemenev
sirdemenev
27.09.2022
Так как в задаче идет речь о матрице, то возможные варианты такой матрицы (исключаем 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.

Тест №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
4,5(27 оценок)
Открыть все ответы
Ответ:
Kpoper772
Kpoper772
27.09.2022
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.
Решить можно и без использования массива.
4,5(61 оценок)
Ответ:
Осень25
Осень25
27.09.2022
 // 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а.1. найти номер первого отрицательного элемента массива. 2а.2.
4,8(64 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ