
Вопрос задан 12.03.2019 в 23:07.
Предмет Информатика.
Спрашивает Казиева Айнур.
Даны два числа n и m. Создайте двумерный массив A[n][m], заполните его таблицей умножения
A[i][j]=i*j и выведите на экран. При этом нельзя использовать вложенные циклы, все заполнение массива должно производиться одним циклом. Входные данные Программа получает на вход два числа n и m – количество строк и столбцов, соответственно. Выходные данные Программа должна вывести полученный массив. Числа разделяйте одним пробелом. Примеры входные данные 3 3 выходные данные 0 0 0 0 1 2 0 2 4

Ответы на вопрос

Отвечает Лантух Лиза.
Вот с одиночным циклом (пока разберешься, можно лопнуть от натуги):
var
i,j,k:byte;
a:array[1..10,1..10] of byte;
begin
for k:=1 to 100 do
begin
i:=(k-1)div10+1;
j:=k mod 10;
if j=0 then j:=10;
a[i,j]:=i*j;
Write(a[i,j],' ')
end
end.
А вот современное решение, вообще без циклов:
// PascalABC.NET 3.2, сборка 1379 от 21.01.2017
// Внимание! Если программа не работает, обновите версию!
begin
var a:=MatrGen(10,10,(i,j)->(i+1)*(j+1));
a.Rows.SelectMany(x->x).Println
end.
В обоих случаях вывод выглядит так:
1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100
var
i,j,k:byte;
a:array[1..10,1..10] of byte;
begin
for k:=1 to 100 do
begin
i:=(k-1)div10+1;
j:=k mod 10;
if j=0 then j:=10;
a[i,j]:=i*j;
Write(a[i,j],' ')
end
end.
А вот современное решение, вообще без циклов:
// PascalABC.NET 3.2, сборка 1379 от 21.01.2017
// Внимание! Если программа не работает, обновите версию!
begin
var a:=MatrGen(10,10,(i,j)->(i+1)*(j+1));
a.Rows.SelectMany(x->x).Println
end.
В обоих случаях вывод выглядит так:
1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100


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