Сформировать квадратную матрицу размером N на N и заполнить её случайными числами от -9 до 9 включительно. Вывести эту матрицу на экран и подсчитать, сколько в ней отрицательных, положительных и нулевых элементов.
Вариант для вывода элементов массива в 8 позициях:
begin var a:=ArrRandom(ReadInteger('n='),-99,99); a.Select(t->Format('{0,8}',t)).Println(''); a:=a.Reverse.ToArray; a.Select(t->Format('{0,8}',t)).Println('') end.
За у пользователя количество шагов сдвига и направление. Условиться, что если вводится отрицательное целое, то сдвиг выполняется влево на указанное абсолютное значение, если вводится положительное число, то сдвиг вправо.
Заполнить исходный массив и вывести его на экран.
Выполнять внешний цикл столько раз, сколько шагов было указано.
Если было введено отрицательное число, то выполнить цикл от первого элемента до предпоследнего, перезаписав в нем значение каждой очередной ячейки на значение последующей. Записать в последнюю ячейку 0.
Иначе, выполнить цикл от последнего элемента до второго, записывая в каждую текущую ячейку значение предыдущей. В первую ячейку записать 0.
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println;
a:=a.Reverse.ToArray; a.Println
end.
Пример
n= 13
1 80 -54 36 84 -43 -88 43 36 9 -14 -19 -38
-38 -19 -14 9 36 43 -88 -43 84 36 -54 80 1
Вариант для вывода элементов массива в 8 позициях:
begin
var a:=ArrRandom(ReadInteger('n='),-99,99);
a.Select(t->Format('{0,8}',t)).Println('');
a:=a.Reverse.ToArray;
a.Select(t->Format('{0,8}',t)).Println('')
end.
Объяснение:
Алгоритм решения данной задачи можно описать так:
За у пользователя количество шагов сдвига и направление. Условиться, что если вводится отрицательное целое, то сдвиг выполняется влево на указанное абсолютное значение, если вводится положительное число, то сдвиг вправо.
Заполнить исходный массив и вывести его на экран.
Выполнять внешний цикл столько раз, сколько шагов было указано.
Если было введено отрицательное число, то выполнить цикл от первого элемента до предпоследнего, перезаписав в нем значение каждой очередной ячейки на значение последующей. Записать в последнюю ячейку 0.
Иначе, выполнить цикл от последнего элемента до второго, записывая в каждую текущую ячейку значение предыдущей. В первую ячейку записать 0.
Вывести на экран текущий массив.
Сдвиг Влево
-4
111 222 333 444 555 666 777 888 999
222 333 444 555 666 777 888 999 0
333 444 555 666 777 888 999 0 0
444 555 666 777 888 999 0 0 0
555 666 777 888 999 0 0 0 0
Сдвиг в Право
5
111 222 333 444 555 666 777 888 999
0 111 222 333 444 555 666 777 888
0 0 111 222 333 444 555 666 777
0 0 0 111 222 333 444 555 666
0 0 0 0 111 222 333 444 555
0 0 0 0 0 111 222 333 444