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

Сна delphi пусть дана вещественная квадратная матрица порядка n. относительно элементов, расположенных в строках, начинающихся с отрицательного элемента, найдите суммы тех из них, которые расположены соответственно ниже, выше и на главной диагонали.

👇
Ответ:
Алена1563795
Алена1563795
13.12.2020
//PascalABC.NET 3.1 сборка 1200
begin
  var n := ReadInteger('n=');
  var a := MatrixRandom(n, n, -10, 10);
  println(a);
 
  for var i := a.GetLowerBound(0) to a.GetUpperBound(0) do
    if a[i, a.GetLowerBound(1)] < 0 then begin
      var s1 := 0;
      var s2 := 0;
      var s3 := 0;
      for var j := a.GetLowerBound(1) to a.GetUpperBound(1) do
        if i < j then s1 += a[i, j]
        else if i = j then s2 += a[i, j]
        else if i > j then s3 += a[i, j];
      writeln(i + ': ' + s1 + ', ' + s2 + ', ' + s3);
    end;
end.
4,8(89 оценок)
Открыть все ответы
Ответ:
holoupail
holoupail
13.12.2020
Так с наскоку увидеть перестановку не получилось, и для улучшения зрения сделана программка
Возможные перестановки хранятся в массиве Xchng.
В программе сделана проверка на две перестановки, что, по большому счёту избыточно, т.к. кратчайшее решение содержит всего одну перестановку. но дополнить программу проверками на 3 и 4 перестановку можно.

program pr_1;
type  Xchng_type = record
    len, first, second: integer;
  end;
const  Xchng: array [1..50] of Xchng_type =
   (
      (len: 4; first: 1; second: 5),
      (len: 3; first: 1; second: 4),
      (len: 3; first: 1; second: 5),
      (len: 3; first: 1; second: 6),
      (len: 3; first: 2; second: 5),
      (len: 3; first: 2; second: 6),
      (len: 3; first: 3; second: 6),
      (len: 2; first: 1; second: 3),
      (len: 2; first: 1; second: 4),
      (len: 2; first: 1; second: 5), 
      (len: 2; first: 1; second: 6),
      (len: 2; first: 1; second: 7),
      (len: 2; first: 2; second: 4),
      (len: 2; first: 2; second: 5),
      (len: 2; first: 2; second: 6),
      (len: 2; first: 2; second: 7),
      (len: 2; first: 3; second: 5),
      (len: 2; first: 3; second: 6),
      (len: 2; first: 3; second: 7),
      (len: 2; first: 4; second: 6),
      (len: 2; first: 4; second: 7),
      (len: 2; first: 5; second: 7),
      (len: 1; first: 1; second: 2),
      (len: 1; first: 1; second: 3),
      (len: 1; first: 1; second: 4),
      (len: 1; first: 1; second: 5),
      (len: 1; first: 1; second: 6),
      (len: 1; first: 1; second: 7),
      (len: 1; first: 1; second: 8),
      (len: 1; first: 2; second: 3),
      (len: 1; first: 2; second: 4),
      (len: 1; first: 2; second: 5),
      (len: 1; first: 2; second: 6),
      (len: 1; first: 2; second: 7),
      (len: 1; first: 2; second: 8),
      (len: 1; first: 3; second: 4),
      (len: 1; first: 3; second: 5),
      (len: 1; first: 3; second: 6),
      (len: 1; first: 3; second: 7),
      (len: 1; first: 3; second: 8),
      (len: 1; first: 4; second: 5),
      (len: 1; first: 4; second: 6),
      (len: 1; first: 4; second: 7),
      (len: 1; first: 4; second: 8),
      (len: 1; first: 5; second: 6),
      (len: 1; first: 5; second: 7),
      (len: 1; first: 5; second: 8),
      (len: 1; first: 6; second: 7),
      (len: 1; first: 6; second: 8),
      (len: 1; first: 7; second: 8) 
 );
var
  s, s_target, s1, s2, s3, s4, s5, snew1, snew2, snew3, snew4: string;
  p1,p2,p3,p4: integer;
begin
  s := ':)):):):';
  s_target := ':):):):)';
  //s:='abcdefgh';
  for p1 := 1 to 50 do
   begin
    snew1 := concat(
      Copy(s, 1, Xchng[p1].first - 1),      Copy(s, Xchng[p1].second, Xchng[p1].len),
      Copy(s, Xchng[p1].first + Xchng[p1].len, Xchng[p1].second - Xchng[p1].len - Xchng[p1].first),
      Copy(s, Xchng[p1].first, Xchng[p1].len),
      Copy(s, Xchng[p1].second + Xchng[p1].len, 9 - Xchng[p1].second - Xchng[p1].len));
    if(CompareStr(s_target, snew1) = 0) then writeln('число перестановок = 1, номер перестановки #1=', p1);
     for p2 := 1 to 50 do
     begin
      snew2 := concat(
        Copy(snew1, 1, Xchng[p1].first - 1),
        Copy(snew1, Xchng[p2].second, Xchng[p2].len),
        Copy(snew1, Xchng[p2].first + Xchng[p2].len, Xchng[p2].second - Xchng[p2].len - Xchng[p2].first),
        Copy(snew1, Xchng[p2].first, Xchng[p2].len),
        Copy(snew1, Xchng[p2].second + Xchng[p2].len, 9 - Xchng[p2].second - Xchng[p2].len));
      if(CompareStr(s_target, snew2) = 0) then writeln('число перестановок = 2, номера перестановок #1=', p1,', #2=', p2);
          end;
      end;
end.

И вот ответ:
число перестановок = 1, номер перестановки #1=7 длина блока 3 начало первого блока3 начало второго блока6
4,4(61 оценок)
Ответ:
ulianaazet66
ulianaazet66
13.12.2020
Если дальше завершить программу, то получим это:
program HelloWorld;
    function ez(a: longint): boolean;        var c: integer;        begin            ez := a >= 2;            for c := 2 to trunc(sqrt(a)) do if a mod c = 0 then ez := false        end;        var i, k: integer;        num: array [1 .. 100] of integer;
begin    for i := 0 to 99 do num[i+1] := i + 1;        k := 0;    i := 1;        while k < 7 do begin        if ez(num[i]) = true            then k := k + 1;        i := i + 2;    end;        write(num[i-2]);    end.
ответ 19
4,4(76 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ