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

В массиве из 20 элементов, найти 5 соседних элементов, сумма которых максимальна

26.03.2013, 20:33. Показов 2362. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Очень прошу помочь. Что не правильно?
Условие: Дан массив из 20 элементов, найти 5 соседних элементов, сумма которых максимальна.
Visual Basic
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
Private Sub Form_Load()
Dim A(20) As Integer, i As Integer, S As Integer, d As Integer, f As Integer, k As Integer, S1 As Integer, S2 As Integer, S3 As Integer, max As Integer
Randomize Timer
For i = 1 To 20
A(i) = Int(Rnd * 100)
Print A(i)
Next i
Print
S = 0
For i = 1 To 5
S = A(i) + S
Next i
For k = 6 To 11
For i = 1 To 5
S1 = S + A(k) - A(i)
Next k
Next i
For f = 11 To 15
For k = 6 To 11
S2 = S1 + A(f) - A(k)
Next f
Next k
For d = 16 To 20
For f = 11 To 15
S3 = S2 + A(d) - A(f)
Next d
Next f
max = S
If S1 > S Then max = S1
If S2 > S1 Then max = S2
If S3 > S2 Then max = S3
End Sub
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.03.2013, 20:33
Ответы с готовыми решениями:

Найти в массиве две строки, сумма элементов которых максимальна и минимальна
Доброго времени суток. Ребята помогите мне пожалуйста!!! 1.Нужно найти в массиве две строки, сумма элементов которых максимальна и...

В одномерном массиве найти номер последней пары соседних элементов, сумма которых больше заданного числа
как найти в одномерном массиве номер последней пары соседних элементов, сумма которых больше заданного числа? Добавлено через 22...

Определить сумму элементов каждой строки массива 5х5 и вывести на экран ту строку, в которой сумма элементов максимальна
Всем привет!) У меня завтра экзамен в 10 утра, а в бейсике я не очень сильна :( Если кто-то может помочь с написанием программы и будет...

6
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38168 / 21103 / 4307
Регистрация: 12.02.2012
Сообщений: 34,692
Записей в блоге: 14
26.03.2013, 20:42
Чего-то многовато кода... Мне кажется, можно короче:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub Task(A() as integer)
      n%=Ubound(A,1)
      max_s%=0
      max_p%=1
      for i%=1 to 5
          max_s%=max_s%+A(i%)
      next i%  
      For ii%=2 to n%-4
           s%=0
           For i%=ii% to ii%+4
                s%=s%+A(i%)
           Next i%
           If s% > max_s% then
              max_s%=s%
              max_p%=ii%
           End if
      Next ii%
      Debug.print "Макс. сумма элементов достигается для эл-та ";max_p%
      Debug.print "и равна ";max_s%
End Sub
2
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
26.03.2013, 21:00
Лучший ответ Сообщение было отмечено как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Form_Load()
Dim A(1 To 20) As Integer, i As Integer, S As Integer, max As Integer
Randomize
For i = 1 To 20
  A(i) = Int(Rnd * 100)
  Print A(i)
Next i
Print
For i = 1 To 20
  S = A(i) + S
  If i > 5 Then
    S = S - A(i - 5)
    If S > max Then
      max = S
    End If
  End If
Next i
End Sub
3
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
26.03.2013, 21:01
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Catstail Посмотреть сообщение
Чего-то многовато кода
Совершенно согласен! Но там заложена правильная идея: для получения следующей суммы из предыдущей достаточно вычесть один и добавить один элемент массива
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub Form_Load()
Dim A(20) As Integer, i As Integer, S As Integer, Smax As Integer, Imax As Integer
Show
Randomize Timer
For i = 1 To 20
    A(i) = Int(Rnd * 100)
    Print A(i)
Next i
Print
For i = 1 To 5
    S = A(i) + S
Next i
Smax = S
Imax = 1
For i = 1 To 15
    S = S + A(i + 5) - A(i)
    If S > Smax Then Smax = S: Imax = i + 1
Next i
 
Print Smax, Imax
End Sub
3
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
27.03.2013, 07:21
Фрагмент с 11 по 16 строку данного кода нужно исправить
Visual Basic
1
2
3
4
5
6
7
8
  if i=5 then
    max = S
  elseIf i > 5 Then
    S = S - A(i - 5)
    If S > max Then
      max = S
    End If
  End If
1
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
27.03.2013, 09:18
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub Command1_Click()
Dim A(1 To 20) As Double, i As Integer, SumMax As Double, iMax As Integer
    Randomize Timer
    Cls
    For i = 1 To 20
        A(i) = Int(Rnd * 100)
        Print A(i);
    Next i
    Print
    SumMax = SumN(A, 1):  iMax = 1
    For i = 1 To 16
        If SumMax < SumN(A, i) Then SumMax = SumN(A, i): iMax = i
        Print "Cумма элементов с " & i & "-го по " & i + 4 & "-й равна " & SumN(A, i)
    Next i
    Print "Максимальая сумма элементов с " & iMax & "-го по " & iMax + 4 & "-й равна " & SumMax
End Sub
 
Function SumN(ByRef A() As Double, ByVal i As Integer, Optional ByVal n As Integer = 5) As Double
    Dim j As Integer 
    For j = i To i + n - 1
        SumN = SumN + A(j)
    Next j
End Function
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38168 / 21103 / 4307
Регистрация: 12.02.2012
Сообщений: 34,692
Записей в блоге: 14
27.03.2013, 18:33
Да, "отнять первый прибавить следующий" дает существенный выигрыш производительности. Но программа теряет наглядность (в смысле - чтобы понять, что делает код, нужно напрячься). Понять код с лишними циклами проще.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.03.2013, 18:33
Помогаю со студенческими работами здесь

Найти общую сумму элементов тех столбцов матрицы А, сумма элементов в каждом из которых положительна
Помогите решить задачу.:help: Дана матрица A, состоящая из n строк и n столбцов. Найти общую сумму элементов тех столбцов матрицы А,...

Найти наибольшую сумму соседних элементов в массиве: Z={0.21; -1.6; 3.15; 21.9; 4.18; 12.9; -2.3; 7.2; 4.5; 6.8; 9.21; 1.7;7.9;-2.4)
Нужна блок-схема. Буду признательна.

Найти наибольшую сумму соседних элементов в массиве
Найти наибольшую сумму соседних элементов в массиве: Z={0.21; -1.6; 3.15; 21.9; 4.18; 12.9; -2.3; 7.2; 4.5; 6.8; 9.21; 1.7;7.9;-2.4) ...

В массиве из 20 элементов найти 5 соседних элементов сумма которых максимальна
В массиве из 20 элементов, найти 5 соседних элементов, сумма которых максимальна. Заранее Спасибо.

Дан одномерный массив, найти 5 соседних элементов, сумма которых максимальна
дан одномерный массив, найти 5 соседних элементов сумма которых максимальна


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
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 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru