В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Yana200652
Yana200652
13.05.2022 05:23 •  Информатика

Как это составить? (по информатике)
составить и написать програму для робота


Как это составить? (по информатике) составить и написать програму для робота

Показать ответ
Ответ:
VLADWER5
VLADWER5
06.01.2023 06:54
// PascalABC.NET 3.1, сборка 1219 от 16.04.2016
type
  Matrix=array[,] of integer;

procedure MatPrint(a:Matrix);
begin
  var m:=Length(a,1)-1;
  for var i:=0 to Length(a,0)-1 do begin
    for var j:=0 to m do Write(a[i,j]:4);
    Writeln
    end
end;

function IsEqual(a:Matrix; col:integer):boolean;
begin
  var s:=sign(a[0,col]);
  for var i:=1 to Length(a,0)-1 do s+=sign(a[i,col]);
  if (s=0) then Result:=(a[0,col]<>0)
  else Result:=false
end;

procedure DeleteCol(var a:Matrix; col:integer);
begin
  var n:=Length(a,0)-1;
  var m:=Length(a,1)-1;
  for var j:=col+1 to Length(a,1)-1 do
    for var i:=0 to n do a[i,j-1]:=a[i,j];
  SetLength(a,n+1,m)
end;

begin
  var n:=ReadInteger('Строк:');
  var m:=ReadInteger('Столбцов:');
  var a:=MatrixRandom(n,m,-99,99);
  Writeln('Исходная матрица');
  MatPrint(a);
  for var j:=Length(a,1)-1 downto 0 do
    if IsEqual(a,j) then DeleteCol(a,j);
  Writeln('Результирующая матрица');
  MatPrint(a);  
end.

Тестовое решение
Строк: 8
Столбцов: 10
Исходная матрица
  -3 -82 -25 -22  65   1  79 -67 -64 -82
  17  36  48 -32  51  11  43   9 -35   4
 -10  -5  80  82 -24  66 -12 -58  50 -94
  52  70  53  85 -32 -59  46  57 -84 -44
  81  71 -55  37  46 -15 -61  25  22  -7
 -49  98 -42 -18 -44 -97 -63  -7 -98  99
 -86  37 -17 -69 -35  46  82  62  99  11
  65  85  -7 -90  23  19 -50 -56 -64  91
Результирующая матрица
 -82 -25 -22   1 -64
  36  48 -32  11 -35
  -5  80  82  66  50
  70  53  85 -59 -84
  71 -55  37 -15  22
  98 -42 -18 -97 -98
  37 -17 -69  46  99
  85  -7 -90  19 -64
0,0(0 оценок)
Ответ:
yan0125
yan0125
02.05.2022 19:53

1)   5

2)   0

3)   1

Объяснение:

Цикл for   ...   downto   ...   do выполняется если начальное значение переменной счётчика больше или равно конечному значению переменной счётчика

Цикл for   ...   to   ...   do выполняется если начальное значение переменной счётчика меньше или равно конечному значению переменной счётчика

1)

s = 0

для i от 10 до 6 выполнить s = s + 1

начальное значение (10) переменной счётчика (i) больше или равно конечному значению (6) переменной счётчика (i)

10 >= 6     (да   -   цикл выполняется)

количество повторений цикла равно начальное значение (10) переменной счётчика (i) минус конечному значению (6) переменной счётчика (i) плюс единица

количество повторений цикла = 10 - 6 + 1 = 4 + 1 = 5

Т.к. переменная s каждое повторение цикла увеличивается на одно и тоже число (1), то за весь цикл переменная s изменится на 1 * 5

Т.к. в начале s = 0, то

s = 0 + 1 * 5 = 5

2)

s = 0

для i от 8 до 3 выполнить s = s + 1

начальное значение (8) переменной счётчика (i) меньше или равно конечному значению (3) переменной счётчика (i)

8 <= 3     (нет   -   цикл не выполняется)

Т.к. цикл не выполняется, то переменная s остаётся равна тому, чему была равна в начале s = 0

3)

s = 1

для i от 2 до 10 выполнить s = s + 1

начальное значение (2) переменной счётчика (i) больше или равно конечному значению (10) переменной счётчика (i)

2 >= 10     (нет   -   цикл не выполняется)

Т.к. цикл не выполняется, то переменная s остаётся равна тому, чему была равна в начале s = 1

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота