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

Задана матрица в(n,m). определить количество столбцов, по возрастанию. каждый второй столбец упорядочить по возрастанию и найти, на сколько увеличилось количество таких столбцов.( в паскале решить)

👇
Ответ:
Const
n=5;m=10;
var
b:array[1..n,1..m]of integer;
i,j,k,buf,l:integer;
begin
    for i:=1 to n do
         begin
           writeln;
              for j:=1 to m do
                 begin
                    b[i,j]:=random(50);
                    write(b[i,j]:4);
                  end;
           end;
writeln;
for j:=1 to m do
   begin
      k:=0;
       for i:=1 to n-1 do
            if b[i,j]<b[i+1,j]then
                k:=k+1;
            if k=n-1 then
               buf:=buf+1;
    end;
k:=0;
for l:=2 to m do
   if l mod 2=0 then
     for i:=1 to n-1 do
       for j:=i+1 to n do
           if b[i,l]>b[j,l]then
               begin
                   k:=b[i,l];
                   b[i,l]:=b[j,l];
                   b[j,l]:=k;
                end;
writeln('увеличилось  ',m div 2-buf);
for i:=1 to n do
   begin
      writeln;
          for j:=1 to m do
             write(b[i,j]:4);
    end;
end.
       
                  
4,6(60 оценок)
Открыть все ответы
Ответ:
romannikodov
romannikodov
18.06.2021

37

Объяснение:

В массиве n + 1 элемент (n = 10),

цикл выполняется n раз

В цикле переменная s увеличивается на A[i] - A[i+1] + 2

Прибавка на 2 даст суммарную прибавку 20, а вот прибавка элементов получится такая, все элементы кроме первого и последнего сложатся сначала со знаком "-", потом "+", и они будут равны 0, останется только A[0] - A[n]

Поскольку массив - возрастает, то эта прибавка - отрицательная, нам нужно сделать её как можно больше.

Для этого нужно, чтобы элементы массива отличались на 1,

например, 0, 1, 2, 3, ..., n

Тогда A[0] - A[n] = -n, т.е. -10

27 + 20 - 10 = 37

4,6(68 оценок)
Ответ:
vvickina
vvickina
18.06.2021

...А если интересует решение на классическом Паскале, предлагаю просто поддерживать текущее, предыдущее и пред-предыдущее значения в ряду, и в цикле обновлять ответ.

Обрати внимание! longint может хранить значения только до 2^{31}-1, поэтому конкретно в этой программе вывод будет достоверным только для N ≤ 46. Ты можешь сделать текущую, предыдущую и пред-предыдущую переменные типа int64, и тогда максимальное значение N возрастёт до 92. Для бОльших N тебе придётся писать длинное сложение.


Код

var

i, n, pred, predpred, cur: longint;

begin

read(n);

if n = 1 then writeln(1)

else if n = 2 then writeln('1 1')

else write('1 1 ');

if n < 3 then exit;

pred := 1;

predpred := 1;

for i := 3 to n do

begin

 cur := pred + predpred;

 write(cur, ' ');

 predpred := pred;

 pred := cur;

end;

writeln;

end.

4,5(57 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ