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

Даны два числа n и m. создайте двумерный массив a[n][m], заполните его таблицей умножения a[i][j]=i*j и выведите на экран. при этом нельзя использовать вложенные циклы, все заполнение массива должно производиться одним циклом. входные данные программа получает на вход два числа n и m – количество строк и столбцов, соответственно. выходные данные программа должна вывести полученный массив. числа разделяйте одним пробелом. примеры входные данные 3 3 выходные данные 0 0 0 0 1 2 0 2 4

👇
Ответ:
Vika223344
Vika223344
20.01.2021
Вот с одиночным циклом (пока разберешься, можно лопнуть от натуги):

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
4,8(94 оценок)
Открыть все ответы
Ответ:
angeloknet1
angeloknet1
20.01.2021

Я буду писать часть предложения, а внизу табличку, чтобы понятнее было))

Набрать 9 литров в первую ёмкость.

1. 9 л      2. 0л (пока что) 

Перелить 5 литров во вторую ёмкость.

1.4 л       2. 5л

Из второй ёмкости вылить всю воду

1.4л        2. 0л

И из первой ёмкости перелить во вторую ёмкость оставшиеся 4 литра.

1.0 л      2. 4л

Набрать полную первую ёмкость

1. 9л     2. 4л

И из неё перелить во вторую 1 литр.

1. 8л     2. 5л

Воду из второй емкости вылить

1.8 л     2. 0л

И из 8 литров воды в первой ёмкости перелить во вторую ёмкость 5 литров

1. 3л     2. 5л

Вот и все!!

4,8(100 оценок)
Ответ:
Рикон1
Рикон1
20.01.2021

program z1;

const n=8;

var a:array [1..n] of integer;

i,m: integer;

begin

writeln ('Результаты заплыва: ');

for i:= 1 to n do

begin

write(i,'-й: ');

readln(a[i])

end;

writeln;

m:=a[i];

for i:= 1 to n do

if a[i]<m then m:=a[i];

writeln('Лучший: ',m)

end.

program z2;

const n=12;

var a:array [1..n] of integer;

i,m: integer;

begin

writeln ('Массив: ');

for i:= 1 to n do

begin

write(i,'-й элемент: ');

readln(a[i])

end;

writeln;

m:=a[i];

for i:= 1 to n do

if a[i]>m then m:=a[i];

writeln('Максимальный: ',m)

end.

Объяснение:

Сначала вводим элементы массива.

Затем предполагаем, что первый элемент наименьший (1 задача) или наибольший (2 задача). Потом сравниваем элементы массива с переменной, в которую записали первый элемент, и меняем переменную, если условие срабатывает. Выводим результат на экран.

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