Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 15.01.2009
Сообщений: 4

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

15.01.2009, 22:57. Показов 5430. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
задачка:
Создайте одномерный массив, элементами которого являются суммы положительных элементов строк матрицы.
помогите пожалуйста справиться с задачей...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.01.2009, 22:57
Ответы с готовыми решениями:

Создайте одномерный массив, элементами которого являются суммы положительных элементов строк матрицы
Я просмотрела уже несколько тем и там все не то Как это можно сделать? Заранее благодарю

Сформировать одномерный массив, элементами которого являются строчные суммы исходной матрицы
Дана целочисленная матрица А размерности 4×4. Требуется сформировать одномерный массив, элементами которого являются строчные суммы...

Сформировать вектор V, элементами которого являются суммы элементов строк матрицы
Помогите пожалуйста с решением задачи, решить по условию нужно с помощью подпрограммы: сформировать вектор V, элементами которого...

8
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
15.01.2009, 23:17
Цитата Сообщение от Perchik Посмотреть сообщение
задачка:
Создайте одномерный массив, элементами которого являются суммы положительных элементов строк матрицы.
помогите пожалуйста справиться с задачей...
надо объявить одномерный массив из стольких элементов, сколько строк в матрице, заполнить его нулями (можно не делать если он глобальный будет, а не внутри функции) а потом так:
Pascal
1
2
3
4
5
6
7
for i:=1 to r do
 for j:=1 to c do
  if M[i,j] > 0 then A[i]:=A[i]+M[i,j];
//A - одномерный массив
//M - матрица
//r - число строк матрицы
//c - число столбцов матрицы
1
0 / 0 / 0
Регистрация: 15.01.2009
Сообщений: 4
16.01.2009, 15:01  [ТС]
Вот что получается:
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
program zad15;
uses crt;
const
r=10;
c=10;
var
a: array[1..100] of integer;
M: array[1..r,1..c] of integer;
i, j: integer;
begin
clrscr;
for i:=1 to r do
begin
for j:=1 to c do
begin
m[i,j]:=random(100);
write(m[i,j]:4);
end;
writeln;
end;
for i:=1 to r do
for j:=1 to c do
if M[i,j]>0 then a[i]:=a[i]+m[i,j];
write(a[i]);
readkey;
end.
Вроде что-то делает но не то;
в принципе заполнять можно и от руки, но мне нужна матрица 10 на 10, попытался через random но что не знаю как задать в нем диапазон чтоб к примеру от -100 до 100.
т.к. нужны и полож. и отр. элементы..
помогите плиз..
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
16.01.2009, 15:15
А зачем тебе массив "а" аж в 100 элементов? Если матрица 10х10 - то ему 10 элементов как раз самое оно.
Перед первым вызовом random надо всегда Randomize вызывать (инициализация генератора случ. чисел). А диапазон с отрицательными задать можно так:
Pascal
1
i:=random(200)-100;// -100 <= i <= 99;
Добавлено через 6 минут 27 секунд
Ещё одно. У тебя третья строка снизу write(a[i]); - не есть гуд Ибо i тут уже не определено (точнее - это от компилятора зависит, но лучше считай что не определено, ошибок меньше будет).
надо так:
Pascal
1
for i:=1 to r do write(a[i]);
а ещё лучше write(a[i]); переписать так:
Pascal
1
write(a[i],' ');
1
0 / 0 / 0
Регистрация: 15.01.2009
Сообщений: 4
16.01.2009, 15:42  [ТС]
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
uses crt;
const
r=10;
c=10;
var
a: array[1..10] of integer;
M: array[1..r,1..c] of integer;
i, j: integer;
begin
clrscr;
for i:=1 to r do
begin
for j:=1 to c do
begin
randomize;
i:=random(200)-100;
write(m[i,j]:4);
end;
writeln;
end;
for i:=1 to r do
for j:=1 to c do
begin
if M[i,j]>0 then a[i]:=a[i]+m[i,j];
end;
write(a[i], ' ');
readkey;
end.
чтото я не понимаю если делаю вот так сумма получается все равно 0, а перед этим где минуты 3 по экрану летят разные числа.
еще интересно как сделать, вот он обработал первую строку посчитал её - это первый элемент массива;
обработал вторую - это второй элемент массива
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
16.01.2009, 16:20
Randomize пишется в самом начале программы после begin, причем только 1 раз, а не в цикле.

Добавлено через 4 минуты 42 секунды
элементами которого являются суммы положительных элементов строк матрицы.
Зачем же Вы считаете какую-то ерунду?
Напишите так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
 
for i:=1 to r do
   begin
     a[i]:=0;
     for j:=1 to c do
     if M[i,j]>0 then a[i]:=a[i]+m[i,j];
  end;
Writeln('Massiv A:');
for i:=1 to r do
write(a[i], ' ');
readln
end.
1
0 / 0 / 0
Регистрация: 15.01.2009
Сообщений: 4
16.01.2009, 16:39  [ТС]
Получается вот что
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
uses crt;
const
r=10;
c=10;
var
a: array[1..10] of integer;
M: array[1..r,1..c] of integer;
i, j: integer;
begin
clrscr;
randomize;
for i:=1 to r do
begin
for j:=1 to c do
begin
i:=random(200)-100;
write(m[i,j]:4);
end;
writeln;
end;
for i:=1 to r do
   begin
     a[i]:=0;
     for j:=1 to c do
     if M[i,j]>0 then a[i]:=a[i]+m[i,j];
  end;
Writeln('Massiv A:');
for i:=1 to r do
write(a[i], ' ');
readln
end.
но все равно получается
Code
1
0 0 0 0 0 0 0 0 0 0
и еще я не понимаю там дельфин писал что -100 <= i =< 99, но некоторые числа получаются очень большие и матрица состоит не из 10 строк а примерно гдето из 20
как исправляется эта проблема??
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
16.01.2009, 17:32
i:=random(200)-100;
Это что за хрень у тебя?
Надо же m[i,j:=random(200)-100;
Потом если матрица квадратная, зачем две переменных r,c?
1
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
16.01.2009, 18:27
Получается вот что
Все проблемы всегда от нежелания думать. Я там написал i:=random(200)-100; просто в качестве примера. Нужно было его немного преобразовать под свои нужды. Смени в программе i:=random(200)-100; на
Pascal
1
m[i,j]:=random(200)-100;
и всё будет работать как часы.
В массиве "А" числа могут до тысячи доходить (точнее - до 990, подумай при каком условии это произойдёт).
А то, что ты видел - есть результат попытки внутри цикла FOR изменить переменную-счётчик цикла. При этом поведение программы становится непредсказуемым.

Добавлено через 49 минут 24 секунды
Потом если матрица квадратная, зачем две переменных r,c?
Ну это уже позже стало известно что она квадратная. А в первом посте Перчик не писал об этом.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.01.2009, 18:27
Помогаю со студенческими работами здесь

Создайте одномерный массив, элементами которого являются суммы положительных элементов строк матрицы
создайте одномерный массив, элементами которого являются суммы положительных элементов строк матрицы А также пожалуйста написать алгоритм...

Создать одномерный массив, элементами которого являются суммы элементов столбцов матрицы
Создать одномерный массив, элементами которого являются суммы элементов столбцов матрицы.

Образовать и напечатать вектор a, элементами которого являются суммы положительных элементов столбцов матрицы
Дано матрицу C:7 *5. Образовать и напечатать вектор a, элементами которого являются суммы положительных элементов столбцов матрицы C. Найти...

Создать одномерный массив, элементами которого являются суммы положительных элементов строк матрицы
Создайте одномерный массив, элементами которого являются суммы положительных элементов строк матрицы. Thank you in advance

Образовать и напечатать вектор, элементами которого являются суммы положительных элементов столбцов матрицы
Дана матрица B: 7X5. Образовать и напечатать вектор c, элементами которого являются суммы положительных элементов столбцов матрицы B. Найти...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru