powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / реверсивная функция
6 сообщений из 6, страница 1 из 1
реверсивная функция
    #38536096
fastomg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят, ошибка в программе, пишет , что аргумент not optional

Дан массив C1, … , C20.
Определить сумму первых пяти элементов, вторую сумму с 15ого по 20ый элемент
Найти Smin(минимальную сумму).

Код: vbnet
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.
Sub макрос66()
    Dim c(20) As Single, s1, s2, Smin, h1, h2 As Single
    
    For i = 1 To 20
    c(i) = Cells(i, 1)
    Next i
    
    
    If h1 = 1 And h2 = 5 Then
        Call summ(c)
        s1 = Cells(1, 3)
    End If
    
    If h1 = 15 And h2 = 20 Then
        Call summ(c)
        s2 = Cells(2, 3)
    End If

    If s1 > s2 Then
    Smin = s2
    Else
    Smin = s1
    End If
    Cells(3, 3) = Smin
End Sub

Function summ(g() As Single, h1 As Single, h2 As Single) As Single
    summ = 0
    For i = h1 To h2
        summ = summ + g(i)
    Next i
End Function
...
Рейтинг: 0 / 0
реверсивная функция
    #38536117
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fastomgаргумент not optionalа что непонятного в ошибке?
у summ три обязательных аргумента, а вызывается с одним
...
Рейтинг: 0 / 0
реверсивная функция
    #38536124
Volodbka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
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.
Option Explicit
Sub ìàêðîñ66()
    Dim c(100) As Single
    Dim s1 As Single
    Dim s2 As Single
    Dim i As Single
    Dim smin As Single
    
    For i = 1 To 20
    c(i) = Cells(i, 1)
    Next i
    
    s1 = 0
    s2 = 0
    
    For i = 1 To 20
    If i >= 1 And i <= 5 Then s1 = s1 + c(i)
    If i >= 15 And i <= 20 Then s2 = s2 + c(i)
    Next i
    
    Cells(2, 3) = "s1=" & s1
    Cells(2, 4) = "s2=" & s2
    
    If s1 > s2 Then
    smin = s2
    Else
    smin = s1
    End If
    Cells(2, 5) = "smin=" & smin
    End Sub
...
Рейтинг: 0 / 0
реверсивная функция
    #38536166
fastomg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Volodbka,

а куда делась функция? и сделать вызов функции call summ 2 раза
...
Рейтинг: 0 / 0
реверсивная функция
    #38536402
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fastomg,

Вы знаете какие-нибудь другие типы переменных кроме Single? Логичнее использовать Double для данных и Long для переменной цикла.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Dim c(20) As Double, i As Long  'переменные модуля, доступны во всех процедурах модуля

Sub макрос66()
    Dim s1 As Double, s2 As Double, Smin As Double  'тип необходимо указывать для каждой переменной
    
    For i = 1 To 20
        c(i) = Cells(i, 1)
    Next i
    
    s1 = summ(1, 5)
    Cells(1, 3) = s1
    s2 = summ(15, 20)
    Cells(2, 3) = s2

    If s1 > s2 Then Smin = s2 Else Smin = s1
    Cells(3, 3) = Smin
End Sub

Function summ(h1 As Long, h2 As Long) As Double
    For i = h1 To h2
        summ = summ + c(i)
    Next i
End Function
...
Рейтинг: 0 / 0
реверсивная функция
    #38537371
Volodbka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если sub то call,
если function то равно =.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / реверсивная функция
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]