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

Написать программу - в двумерном массиве заменить нулями элементы главной диагонали (главная диагональ идет из левого верхнего угла в правый нижний).с выводом исходной и полученной матриц.

👇
Ответ:
Xxxin
Xxxin
19.01.2023
Const
  n = 10;
var
  a: array[1..n, 1..n] of integer;
  i, j: integer;

begin
  Randomize;
  Writeln('Исходная матрица');
  for i := 1 to n do
  begin
    for j := 1 to n do
    begin
      a[i, j] := Random(101) - 50;
      Write(a[i, j]:4)
    end;
    Writeln
  end;
  for i:=1 to n do a[i,i]:=0;
  Writeln('Результирующая матрица');
  for i := 1 to n do
  begin
    for j := 1 to n do Write(a[i, j]:4);
    Writeln
  end
end.

Тестовое решение:
Исходная матрица
 -19  15  42  44  32  41 -11 -21  14 -29
  33  -8 -21 -33 -38  28  21  43  39 -46
  -1  33  13  23 -38  32 -25 -26  43  41
   7   6  39  14  48  37  -3  -3  -2 -41
 -26  40 -38 -24  16  43 -17   3   7   7
  37  20  17  44  28  -2 -49 -32  32 -50
  16 -35 -14  23  14 -23   3  15 -31 -24
 -19 -26  -5  30  30   9  20 -13 -43 -30
  -2  22  17 -15 -46  38  39  46  37  -1
  36 -22  15  -2  -7 -41   3 -10  12 -12
Результирующая матрица
   0  15  42  44  32  41 -11 -21  14 -29
  33   0 -21 -33 -38  28  21  43  39 -46
  -1  33   0  23 -38  32 -25 -26  43  41
   7   6  39   0  48  37  -3  -3  -2 -41
 -26  40 -38 -24   0  43 -17   3   7   7
  37  20  17  44  28   0 -49 -32  32 -50
  16 -35 -14  23  14 -23   0  15 -31 -24
 -19 -26  -5  30  30   9  20   0 -43 -30
  -2  22  17 -15 -46  38  39  46   0  -1
  36 -22  15  -2  -7 -41   3 -10  12   0
4,7(13 оценок)
Ответ:
spaceman666
spaceman666
19.01.2023
В паскале
const
    n = 3;
    k = 3;
var
  i,j:integer;
  a:array[1..n,1..k] of integer;
begin
    for i:=1 to n do
      for j:=1 to k do
    begin
     Writeln('Введите a[',i,',',j,']:');
     readln(a[i,j]);
    end;
  writeln('Исходный массив:');
  for i:=1 to n do
   begin
     for j:=1 to k do
   write('a[':4,i,',',j,']=',a[i,j]);
   writeln;
   end;
  for i:=1 to n do
    for j:=1 to k do
    if i=j then a[i,j]:=0;
  writeln('Полученный массив:');
  for i:=1 to n do
   begin     for j:=1 to k do
   write('a[':4,i,',',j,']=',a[i,j]);
   writeln;
   end;
end.
4,5(21 оценок)
Открыть все ответы
Ответ:
MeXaHuK0
MeXaHuK0
19.01.2023
1. F(x) = x^2. 
Что происходит в программе? Сначала i = 0, затем, пока F(i) = i^2 меньше K, i увеличивается на 1, и в конце выводится i.
Цикл прерывается тогда, когда i^2 станет не меньше K.

Итого, программа выводит наименьшее число, квадрат которого не меньше K.
При K = 18 это происходит при i = 5. Такой же результат будет для всех 16 < K <= 25, это 25 - 16 = 9 чисел.

2. Тут начало похожее: в i появляется наименьшее число, для которого f(i) не меньше k. Затем, если f(i) - k <= f(i - 1), выводится i, иначе i - 1.
Это условие не очень удобное, перепишем так: если k >= f(i) -  f(i - 1), то выводим i, иначе i - 1.

f(i) = 3i^2 - 2i

Для k = 12 выведется 2: f(3) = 21, но 12 < f(3) - f(2) = 21 - 8 = 13.

2 выведется, если:
- i = 2, при этом k >= f(2) - f(1)
- i = 3, и k < f(3) - f(2)

f(1) = 1
f(2) = 8
f(3) = 21

Первый случай: 1 < k <= 8, при этом k >= 8 - 1. Подходят k = 7 и k = 8.
Второй случай. 8 < k <= 21, при этом k < 21 - 8. Подходят k = 9, 10, 11, 12.

Всего 6 чисел.

3. По аналогии с первым, выводится наименьшее натуральное i, для которого f(i) >= g(k). Для k = 14 g(k) = g(14) = 71, и i = 5 (5 в кубе не меньше 71, а 4 в кубе - меньше 71). Нужно найти такое целое k, для которого
g(k) <= 5^3
g(k) > 4^3

64 < 5k + 1 <= 125
63 < 5k <= 124
13 <= k <= 24
k = 13.
4,8(13 оценок)
Ответ:
AlyonaYarmak
AlyonaYarmak
19.01.2023

Для начала смотрим что выходит при К= 36, выходит 5

Анализируем функцию F. Это линейная функция наподобии Фибоначи, значит ответом будет некий один отрезок из К

Потом немножко дорабатываем программу и смотрим на результат


var

   i, K, counter: integer;

function F(x: integer): integer;

begin

   if x < 2 then

       F := 1

   else F := F(x - 1) + 2 * F(x - 2);

end;

begin

   for K := 0 to 100 do  

   begin

       i := 28;

       //        readln(K);

       while (i > 0) and (F(i) > K) do  

           i := i - 1;

       

       if i = 5 then begin

           counter := counter + 1;

           writeln(counter, ') K = ', K);

       end;

   end

end.


Вывод

1) K = 21

2) K = 22

3) K = 23

4) K = 24

5) K = 25

6) K = 26

7) K = 27

8) K = 28

9) K = 29

10) K = 30

11) K = 31

12) K = 32

13) K = 33

14) K = 34

15) K = 35

16) K = 36

17) K = 37

18) K = 38

19) K = 39

20) K = 40

21) K = 41

22) K = 42


ответ 22

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