Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/14: Рейтинг темы: голосов - 14, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 18.03.2012
Сообщений: 11

Вычислить сумму положительных и отрицательных эллементов в каждой строке массива

18.03.2012, 17:45. Показов 2686. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте помогите пожалуйста отредактировать программу.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub Command1_Click()
Dim X(1 To 100, 1 To 100), M, N, i, j, S, P As Single
Dim Xпол, Xотр As Single
Randomize
M = Val(InputBox("Введите M"))
N = Val(InputBox("Введите N"))
For j = 1 To M
For i = 1 To N
X(i, j) = Val(InputBox("Введите число", "Заполнение массива"))
Print X(i, j);
Next i
Print
Next j
For S = 1 To N
For P = 1 To M
Xотр = 0: Xпол = 0
If X(i, j) > 0 Then Xпол = Xпол(S) + X(i, j)
If X(i, j) < 0 Then Xотр = Xотр(S) + X(i, j)
Print Xпол; Xотр
NextP
NextS
End Sub
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.03.2012, 17:45
Ответы с готовыми решениями:

В каждой строке двумерного массива вычислить количество, сумму и среднеарифметическое отрицательных элементов
Добрый день. Помогите исправить код в VB 6.0, задача такая: В каждой строке двумерного массива вычислить количество, сумму и...

Найти сумму отрицательных элементов в каждой четной строке и произведение положительных элементов в каждой нечётной стро
Дан двумерный массив размером M*N. Найти сумму отрицательных элементов в каждой четной строке и произведение положительных элементов в...

Вычислить сумму отрицательных чисел в каждой строке матрицы
:gcray:Вычислить сумму отрицательных чисел в каждой строке. вроде легкая но не могу:wall: помогите пожалуйста:impossible: program St_1; ...

25
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
18.03.2012, 18:34
И ты собираешься ВЕСЬ массив вводить вручную ?? (100 Х 100 = 10000)
0
0 / 0 / 0
Регистрация: 18.03.2012
Сообщений: 11
18.03.2012, 18:47  [ТС]
если через rnd то отцательные числа не выдаются?

Добавлено через 4 минуты
Я ввожу допустим 2 на 2 и заполняю вручную. Я просто не знаю как через rnd выдавать отрицательные числа
0
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
18.03.2012, 18:53
Цитата Сообщение от ValeryG Посмотреть сообщение
если через rnd то отцательные числа не выдаются?

Добавлено через 4 минуты
Я ввожу допустим 2 на 2 и заполняю вручную. Я просто не знаю как через rnd выдавать отрицательные числа
Rnd выдаёт любые числа - надо только указать ЕМУ что тебе надо. Вот пример:

X(i,j)=Int(Rnd * 1000) - 500
0
0 / 0 / 0
Регистрация: 18.03.2012
Сообщений: 11
18.03.2012, 18:59  [ТС]
Понял! А подскажите пожалуйста как дальше сделать, чтобы сумму положительных и отрицательных эллементов в каждой строке выдавал?
0
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
18.03.2012, 19:10
Цитата Сообщение от ValeryG Посмотреть сообщение
Понял! А подскажите пожалуйста как дальше сделать, чтобы сумму положительных и отрицательных эллементов в каждой строке выдавал?
Давай сразу выясним: ты хочешь учиться или просто скатать чей-то код ??
Я могу помочь ТОЛЬКО с первым.
0
0 / 0 / 0
Регистрация: 18.03.2012
Сообщений: 11
18.03.2012, 19:13  [ТС]
Я хочу, что бы вы мне подсказали как выдать на форму сумму пол. и отр. элементов каждой строки? Я по всякому пробую- не получается!
вот что у меня вышло:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub Command1_Click()
Dim X(1 To 100, 1 To 100), M, N, i, j, S, P As Single
Dim Xgjk(1 To N), Xjnh(1 To N) As Single
Randomize
M = Val(InputBox("Введите M"))
N = Val(InputBox("Введите N"))
For j = 1 To M
For i = 1 To N
X(i, j) = Val(InputBox("Введите число", "Заполнение массива"))
Print X(i, j);
Next i
Print
Next j
For j = 1 To M
For i = 1 To N
S = 0: P = 0
If X(i, j) > 0 Then Xgjk(i) = S = S + X(i, j)
If X(i, j) < 0 Then Xjnh(i) = P = P + X(i, j)
Print Xgjk; Xjnh
NextP
NextS
End Sub
0
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
18.03.2012, 19:31
Скажи, а почему ты обьявляешь массив и переменные в процедуре Command1_Click, а не в Декларации ?? Это даёт какие-то преимущества (или так учат в....) ??

И ещё - ты знаешь как заключить код проги в теги ??
0
0 / 0 / 0
Регистрация: 18.03.2012
Сообщений: 11
18.03.2012, 19:53  [ТС]
Так учат

Добавлено через 20 минут
Я не понимаю что вы спросили. Вы можете мне сразу код прислать, а то мне завтра её уже сдать надо?

Добавлено через 46 секунд
Пожалуйста.
0
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
18.03.2012, 20:02
Цитата Сообщение от ValeryG Посмотреть сообщение
Так учат
Ну когда ВСЯ прога состоит из одной процедуры, то, конечно, без разницы где объявить. Но ведь ЭТО войдёт в привычку, а потом будешь недоумевать, почему у тебя в другой процедуре переменные вдруг обнулились (или массив ошибочен). Привыкай делать правильно - раз массив и переменные нужны тебе во всей проге (хоть в проге и одна процедура), то объявляй их в Декларациях (в самом начале проги):
Visual Basic
1
2
3
4
5
6
Dim X(1 To 100, 1 To 100), M, N, i, j, S, P As Single
Dim Xgjk(1 To N), Xjnh(1 To N) As Single
 
Private Sub Command1_Click()
'...............................................
End Sub
И код в сообщении заключай в теги

Добавлено через 5 минут
Цитата Сообщение от ValeryG Посмотреть сообщение
Я не понимаю что вы спросили. Вы можете мне сразу код прислать, а то мне завтра её уже сдать надо?
Или учимся составлять код (что возможно за один день при наличии серого вещества) или жди "подарка" от доброго Санты...
0
0 / 0 / 0
Регистрация: 18.03.2012
Сообщений: 11
18.03.2012, 20:14  [ТС]
Я всёравно не понял : т.е. я опускаю Private Sub Command1_Click() вниз, и программа вообще не запускается! Как быть?

Добавлено через 1 минуту
А что такое теги
0
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
18.03.2012, 20:44
Когда вставляешь в сообщение код программы, то выдели ЕГО (чтоб был на синем фоне) и в меню редактора сообщения кликни мульку "VB" - тогда он станет читаемым....

Убери строку
Visual Basic
1
Dim Xgjk(1 To N), Xjnh(1 To N) As Single
Нельзя объявить массив 1 To N, если N ещё неизвестна (и не объявлена). Да эти массивы и не нужны.

Сначала заполним массив

Добавлено через 12 минут
Ты Rnd использовал когда-нибудь уже ??

Добавлено через 9 минут
Ну у меня и своих дел хватает - надумаешь, стукнешь в скайп...
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
18.03.2012, 20:45
Цитата Сообщение от morgann55 Посмотреть сообщение
Скажи, а почему ты обьявляешь массив и переменные в процедуре Command1_Click, а не в Декларации ?? Это даёт какие-то преимущества (или так учат в....) ??
Я против такого способа, у меня в одном модуле имеется сотни процедур и функций, и что я должен объявить все в декларациях? Я в декларациях объявляю только общие переменные, на каждых процедурах должен быть свои переменные.
0
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
18.03.2012, 21:08
Цитата Сообщение от coderxx Посмотреть сообщение
Я против такого способа, у меня в одном модуле имеется сотни процедур и функций, и что я должен объявить все в декларациях? Я в декларациях объявляю только общие переменные, на каждых процедурах должен быть свои переменные.
А я разве запрещаю объявлять переменные в процедурах, если они нужны ТОЛЬКО в этих процедурах ?? Я ведь сказал выше, что в данном случае без разницы (раз прога состоит из одной процедуры). А сдругой стороны - это переменные для ВСЕЙ проги и правильнее объявить их глобально...
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
18.03.2012, 21:35
Цитата Сообщение от morgann55 Посмотреть сообщение
А сдругой стороны - это переменные для ВСЕЙ проги и правильнее объявить их глобально...
Нет не думаю, хоть одно процедура, они должны объявляться внутри процедуры, их никакая другая процедура не будет использовать, память должен быть очищаться от ненужной информацией после выхода из процедуры. Ещё бывает такие ситуации некоторым переменным не устанавливается значении в зависимости от условий и при этом они должны иметь первоначальные значение.
Например я никогда не устанавливаю Boolean типов на False, потому что они при объявлении таки имеют эту значению.
0
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
18.03.2012, 21:48
Цитата Сообщение от coderxx Посмотреть сообщение
Нет не думаю, хоть одно процедура, они должны объявляться внутри процедуры, их никакая другая процедура не будет использовать, память должен быть очищаться от ненужной информацией после выхода из процедуры. Ещё бывает такие ситуации некоторым переменным не устанавливается значении в зависимости от условий и при этом они должны иметь первоначальные значение.
Например я никогда не устанавливаю Boolean типов на False, потому что они при объявлении таки имеют эту значению.
1) Для чего так уж необходимо очистить память если кроме этой процедуры больше ничего нет ??
2) При каждом клике кнопки прога должна будет заново переобьявлять массив и переменные, а это уже потеря времени (хоть здесь время и не важно..).
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
18.03.2012, 22:41
Для меня объявление переменных имеет общий характер, если они должны использоваться в нескольких процедурах, то их нужно объявлять в декларациях, иначе локально в самом процедуре.
Цитата Сообщение от morgann55 Посмотреть сообщение
1) Для чего так уж необходимо очистить память если кроме этой процедуры больше ничего нет ??
Кроме этой процедуры есть ещё другие программы, которые потребуется память.
Цитата Сообщение от morgann55 Посмотреть сообщение
2) При каждом клике кнопки прога должна будет заново переобьявлять массив и переменные, а это уже потеря времени (хоть здесь время и не важно..).
Если процедура используется всего один раз, то и при входе на программу тоже потеряется время. (если посмотреть в примере этой задачи: нужен всего лишь для показа учителям, им не нужно Private Sub Command1_Click(), для проверки знание студента им нужен всего лишь код с объявлениями).
Если не посмотреть в этом примере то, для полезных приложений только одна процедура не хватит.
0
0 / 0 / 0
Регистрация: 18.03.2012
Сообщений: 11
18.03.2012, 22:55  [ТС]
Помогите кто нибудь а то вообще не получается
Вот что у меня вышло :
Dim X(1 To 100, 1 To 100), M, N, i, j, S, P As Integer
Dim Xпол, Xотр As Single
Private Sub Command1_Click()
Randomize
M = Val(InputBox("Введите колличество строк"))
N = Val(InputBox("Введите колличество столбцов"))
For i = 1 To M
For j = 1 To N
X(i, j) = Val(InputBox("Заполните массив"))
Print X(i, j);
Next j
Print
Next i
S = 0: P = 0
For i = 1 To M
For j = 2 To N
Xпол = X(i, j) > 0
Xотр = X(i, j) < 0
If Xпол > 0 Then S = S + Xпол
If Xотр < 0 Then P = P + Xотр
Print S; P
Next j
Next i
End Sub
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
18.03.2012, 23:18
Цитата Сообщение от ValeryG Посмотреть сообщение
Xпол = X(i, j) > 0
Visual Basic
1
2
3
Xотр = X(i, j) < 0
If Xпол > 0 Then S = S + Xпол
If Xотр < 0 Then P = P + Xотр
можно заменить на это:
Visual Basic
1
If X(i, j) > 0 Then S = S + X(i, j) ElseIf X(i, j) < 0 Then P = P + X(i, j)
или
Visual Basic
1
If X(i, j) > 0 Then S = S + X(i, j) Else P = P + X(i, j)
Если в каждой строке массива тогда:
Visual Basic
1
2
3
4
5
6
7
For i = 1 To M
  S = 0: P = 0
  For j = 2 To N
    If X(i, j) > 0 Then S = S + X(i, j) Else P = P + X(i, j)
  Next j
  Print S; P
Next i
Добавлено через 5 минут
И ещё научись использовать теги
0
0 / 0 / 0
Регистрация: 18.03.2012
Сообщений: 11
18.03.2012, 23:25  [ТС]
Спасибо. Сейчас попробую исправить

Добавлено через 7 минут
Я исправил но с выводом на форму суммы пол. и отр. элементов не получается
Вот код:
Private Sub Command1_Click()
Dim X(1 To 100, 1 To 100), M, N, i, j, S, P As Integer
Dim Xпол, Xотр As Single
Randomize
M = Val(InputBox("Введите колличество строк"))
N = Val(InputBox("Введите колличество столбцов"))
For i = 1 To M
For j = 1 To N
X(i, j) = Val(InputBox("Заполните массив"))
Print X(i, j);
Next j
Print
Next i
For i = 1 To M
S = 0: P = 0
For j = 2 To N
If X(i, j) > 0 Then S = S + X(i, j) Else P = P + X(i, j)
Next j
Print S; P
Next i
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.03.2012, 23:25
Помогаю со студенческими работами здесь

Вычислить сумму положительных элементов в каждой строке матрицы
Сформировать двумерный массив C размером N x 5 (N - количество строк, равное предпоследней цифре номера студенческого билета +2 5 -...

Вычислить сумму положительных элементов в каждой строке матрицы
Сформировать двумерный массив C размером N x 5 (N – количество строк, равное предпоследней цифре номера студенческого билета +2, 5 –...

Вычислить сумму положительных элементов в каждой строке матрицы
Помогите пожалуйста, Сформировать двумерный массив C размером 5 x 5 с помощью генератора случайных чисел и вывести элементы массива. ...

Вычислить сумму отрицательных чисел в каждой строке (помогите пожалуйста!)
Вычислить сумму отрицательных чисел в каждой строке. N &lt;= 10, M &lt;= 10

Вычислить произведения положительных и отрицательных элементов каждой строки массива
помогите пожалуйста с задачкой 1.Вычислить произведения положительных и отрицательных эле-ментов каждой строки массива А(N, M). ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
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/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru