Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
2 / 2 / 0
Регистрация: 24.05.2016
Сообщений: 88

Сформировать одномерный массив, состоящий из положительных произведений ненулевых элементов матрицы

24.05.2016, 16:41. Показов 2248. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Нужно было написать код к заданию со следующими условиями:
"Сформировать одномерный массив, состоящий из положительных произведений ненулевых элементов, располагающихся в каждом столбце матрицы X (n x m)."
Собственно программу с горем пополам написал, но не уверен правильно ли я понял условие...
Товарищи форумчане, проверьте пожалуйста соответствие кода и условия.
P.S.: (Суть моего понимания такова: Забили матрицу, проверили по столбцам соответствие условию, если соответствует условию, то умножили эти числа между собой, потом забили эти числа в новый массив в одну строку.)

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
uses crt;
const
  max=50;
var
  a: array[1..max,1..max] of integer;
  b : array [1..max] of integer;
  x,y,i,j,pro: integer;
begin
  write('Введите размеры массива x, y --> ');
  readln(x,y);
  writeln('Введённая  матрица:');
  for i:=1 to x do
  begin
    for j:=1 to y do
    begin
      a[i,j]:=random(50)-20;
      write(a[i,j]:4);
    end;
    writeln;
  end;
  writeln;
  for j := 1 to x do
  begin
    pro := 1;
    for i := 1 to y do
      if a[i,j] > 0 then pro:=pro*a[i,j];
    b[j] := pro;
  end;  
  writeln('Массив произведений:');
  for j := 1 to x do
    write(b[j]:5)
end.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.05.2016, 16:41
Ответы с готовыми решениями:

Сформировать одномерный массив, состоящий из положительных элементов, располагающихся в нечетных столбцах матрицы X (n x m)
Сформировать одномерный массив, состоящий из положительных элементов, располагающихся в нечетных столбцах матрицы X (n x m).

Построить одномерный массив, состоящий из произведений элементов столбцов матрицы
Дана матрица 20 на 15, заполненная случайными числами. Построить Одномерный массив состоящий из произведений элементов столбцов. Посчитать...

Сформировать одномерный массив, состоящий из произведений отрицательных элементов четных строк матрицы
Помогите, я сделала программу на делфи - работает, переделала на си не работает, помогите что бы выводилось.. ЗАДАНИЕ: Сформировать...

3
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
25.05.2016, 05:40
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Первое не соответствие условию задачи — это «Введите размеры массива x, y -->»…
Какое там „x“ и „y“?
В условии написано
Цитата Сообщение от Aringot Посмотреть сообщение
матрицы X (n x m)
Т.е. „матрица“ с именем „Х“ и размерами n×m, а не „массив“ с именем „a“ и размерами x×y.

Вторая проблема, с которой мне пришлось столкнуться, после запуска вашей программы — проявилась при вводе значений x ≠ y:

Вначале x у вас соответствует количеству строк, а y — столбцов… Что и продемонстрировано после надписи „Введённая матрица:“ (задавали размеры массива, в ввели матрицу… хотя кроме x и y, вроде бы, ни чего не вводили ;–)
А в итоге, после надписи „Массив произведений“, наблюдаем массив состоящий из x элементов, а не y, как ожидалось!
Да ещё и заполненный какими-то совершенно непонятными данными потому, что вы перепутали какой индекс относится к столбцам, а какой к строкам!!!

Переписал вашу программу:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
const
  Size = 50;
var
  X : array [1..Size, 1..Size] of integer;
  P : array [1..Size] of integer;
  n, m, Row, Col : Integer;
begin
  write('Введите размеры матрицы n, m --> '); readln(n, m); // n - строк // m - столбцов
  
  /// заполнение матрицы
  Randomize;
  for Row := 1 to n do
    for Col := 1 to m do
      X[Row, Col] := Random(-20, +30);
      
  /// вывод матрицы
  WriteLn('Матрица заполнена случайными числами: X(' + n + ',' + m + ') =');
  for Row := 1 to n do
    begin
      for Col := 1 to m do
        Write(X[Row, Col]:4);
      WriteLn;
    end;
  WriteLn;
  
  /// заполнение массива
  for Col := 1 to m do
    begin
      P[Col] := 1;
      for Row := 1 to n do
        if X[Row, Col] > 0 then
          P[Col] *= X[Row, Col];
    end;
  
  /// вывод массива
  WriteLn('Массив произведений:');
  for Col := 1 to m do
    Print(P[Col]);
  WriteLn;
end.
Теперь всё прекрасно видно:
— матрица называется „X“
— индексы циклов отвечающие за строки называются Row, а за колонки — Col
Программа разбита на отдельные части с соответствующими комментариями.
Даже мне, чтобы не запутаться, пришлось написать комментарий „// n - строк // m - столбцов“…
1
2 / 2 / 0
Регистрация: 24.05.2016
Сообщений: 88
25.05.2016, 16:14  [ТС]
Спасибо большое за помощь. Прошу прощения за доставленные неудобства.

Добавлено через 11 минут
Pascal
1
WriteLn('Матрица заполнена случайными числами: X(' + n + ',' + m + ') =');
А, в этой строке вылазит ошибка "Program1.pas(17) : Нет перегруженной подпрограммы с такими типами параметров"
Решить проблему можно просто, убрав
Pascal
1
(' + n + ',' + m + ')
, но как исправить проблему не убрав эту часть ?

Добавлено через 4 минуты
Прошу прощения, сам исправил.
Pascal
1
  WriteLn('(' + n + ') строк ',' ','(' + m + ') столбцов ');
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
26.05.2016, 06:48
Обновить IDE c оффсайта: PascalABC.NET
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.05.2016, 06:48
Помогаю со студенческими работами здесь

Сформировать одномерный массив, состоящий из ненулевых элементов, располагающихся в четных столбцах матрицы
Сформировать одномерный массив, состоящий из ненулевых элементов, располагающих- ся в четных столбцах матрицы X (n x m).

Сформировать одномерный массив из произведений положительных элементов столбцов матрицы
Помогите решить задачу на файлы Дан двумерный массив размерностью 5*6. Сформировать одномерный массив,каждый элемент которого равен...

Сформировать одномерный массив, состоящий из положительных элементов матрицы
сформировать одномерный массив, состоящий из положительных элементов, располагающихся на главной диагонали матрицы X n,m.

Сформировать одномерный массив из произведений четных положительных элементов соответствующего столбца матрицы
1) Дан двумерный массив размерностью 5х6, заполненный целыми числами с клавиатуры. Сформировать одномерный массив, каждый элемент...

Сформировать одномерный массив, состоящий из положительных элементов, располагающихся в нечетных столбцах матрицы
Сформировать одномерный массив, состоящий из положительных элементов, располагающихся в нечетных столбцах матрицы X (n x m).


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru