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

Cоставить алгоритм и программу для: 1)заполнения лвумерного массива (6x4) произвольными значениями и вывода его на экран! 2)подсчета произведения элементов по строкам и вывода на экран номеров строк и соответствующих произведений элементов! 3)нахождения строки с максимальным произведением элементов и вывода на экран ее номера (номеров) и произведения элементов! 4) выделения 1-го столбца в отдельный массив и сортировки его по возврастанию методом прямого выбора

👇
Ответ:
Vanya1407
Vanya1407
29.04.2020
Const
  m = 6;
  n = 4;

var
  a: array[1..m, 1..n] of integer;
  b: array[1..m] of integer;
  i, j, p, pmax, imax: integer;
  flag: boolean;

begin
  {1}
  Randomize;
  writeln('Исходный массив');
  for i := 1 to m do
  begin
    for j := 1 to n do
    begin
      a[i, j] := Random(81) - 40;
      write(a[i, j]:4)
    end;
    writeln
  end;
  {2}
  writeln('Произведения построчно');
  for i := 1 to m do
  begin
    p := 1;
    for j := 1 to n do p := p * a[i, j];
    writeln(i, ': ', p:9)
  end;
  {3}
  pmax := -MaxInt;
  writeln('Максимальное построчное произведение'); 
  for i := 1 to m do
  begin
    p := 1;
    for j := 1 to n do p := p * a[i, j];
    if pmax < p then
    begin
      pmax := p;
      imax := i;
    end
  end;
  writeln(imax, ': ', pmax:9);
  {4}
  for i := 1 to m do b[i] := a[i, 1];
  for i := 2 to m do
  begin
    p := b[i];
    j := i - 1;
    flag := False;
    while (j > 0) and (not flag) do
      if p < b[j] then
      begin
        b[j + 1] := b[j];
        j := j - 1
      end
      else flag := True;
    b[j + 1] := p
  end;
  writeln('Отсортированный первый столбец');
  for i := 1 to m do writeln(b[i]:3)
end.

Тестовое решение:

Исходный массив
 -27   4   3  14
  15  40 -39 -27
  40 -40 -40 -24
 -38   7  18   1
  17  27  29  -9
  10 -32  38   0
Произведения построчно
1:     -4536
2:    631800
3:  -1536000
4:     -4788
5:   -119799
6:         0
Максимальное построчное произведение
2:    631800
Отсортированный первый столбец
-38
-27
 10
 15
 17
 40
4,7(93 оценок)
Открыть все ответы
Ответ:
ученый2222
ученый2222
29.04.2020

#include <iostream>

using namespace std;


int a, b, numb;

bool init;


int main()

{

do {

 cout << "Input a b: ";

 cin >> a >> b;

 if ((a > b) || (a <= 0) || (b <= 0))

  cout << "Input error! Try again" << endl;

} while ((a > b) || (a <= 0) || (b <= 0));

 

for (int i = a; i <= b; i++) {

 init = true;

 numb = i;

 do {

  if (numb % 10 == 0)  

   init = false;

  else if ((i / (numb % 10) * (numb % 10)) != i)

   init = false;

  numb /= 10;

 } while (numb != 0);

 if (init == true)  

  cout << i << " ";

}

return 0;

}

4,4(4 оценок)
Ответ:
Можно конечно поизвращаться и придумать интересный алгоритм, но можно просто написать в лоб цикл с проверкой.

#include <iostream>
int main(){
    int num_1, num_2;
    cin >> num_1 >> num_2;
    for (int i = num_1 + 1; i != num_2; i++) {
        int cur = i, num = i;
        int res = 0;
        while (cur != 0) {
            int mod_n = cur % 10;
            if (mod_n == 0) {
                break;
            }
            if (num % mod_n == 0) {
                res = 1;
            }
            else {
                res = 0;
                break;
            }
            cur /= 10;
        }
        if (res) {
            cout << i << ' ';
        }
    }
}

Коротко, в двух словах, о чем тут код. 
мы проходим по циклу от A до B, для каждого числа, в цикле проверяем, делится ли оно на цифры из которых состоит. Для этого мы запоминаем в отдельную переменную cur наше число, и проверяем остаток от деления на 10 (т.е. самую левую цифру), после мы в cur записываем тоже число, но без последней цифры.
на примере 124. проверяем на делимость на 4, потом запоминаем 12, проверяем на делимость на 2, потом запоминаем 1, проверяем на делимость на 1, потом записываем 0. Как только видим 0 прекращаем. 
Дальше в цикле есть проверка на то, что если хоть раз что-то не поделилось, то переходим к след. числу
4,8(54 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ