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

Ошибка, Границы массивов не могут присутствовать в спецификаторах типов

13.06.2021, 10:14. Показов 3730. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день. Хочу для функции MyFunc объявить массив m(i), но выдается ошибка "Границы массивов не могут присутствовать в спецификаторах типов".
Задание для этой программы "Ввести одномерный массив m= {6, 10, 7, 14, 12, 12,-2, 3,-9, 6,-10}.
Вычислить и вывести количество и сумму тех элементов массива, ко-торые делятся на 2 и не делятся на 3. Сформировать из этих чисел массив k."
Помогите, пожалуйста. Четвертый день пытаюсь сделать, и у меня не получается.

VB.NET
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
41
42
43
44
45
46
47
48
49
50
51
Option Explicit On
Public Class Form1
 
    Sub vivod(ByVal Z As Single, ByVal T As TextBox)
 
        T.Text = CStr(Z)
 
    End Sub
 
    Function MyFunc(ByVal kol As Integer, ByVal sum As Integer, ByVal m(i) As Integer) As Integer
        Dim i As Integer, j As Integer, k() As Integer
        ReDim k(0 To kol)
        For i = 0 To 10
            If m(i) Mod 2 = 0 And m(i) Mod 3 <> 0 Then 'поиск элементов массива,которые делятся на 2 и не делятся на 3. 
                j = j + 1
                k(j) = m(i)
                sum = sum + k(j)
                TextBox4.Text = TextBox4.Text & " " & CStr(k(j))
            End If
        Next i
        vivod(kol, TextBox2) 'Вывод количества элементов массива,которые делятся на 2 и не делятся на 3. 
        vivod(sum, TextBox3) 'Вывод суммы элементов массива, которые делятся на 2 и не делятся на 3. 
    End Function
 
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim i As Integer, j As Integer
        Dim kol As Integer = 0
        Dim sum As Integer = 0
        Dim k() As Integer
        Dim m(10) As Object
 
        For i = 0 To 10 'Цикл ввода массива через InputBox и ввода массива в TextBox1
            m(i) = InputBox("Введите число массива №(" & i & ")")
            TextBox1.Text = TextBox1.Text & " " & CStr(m(i))
        Next
 
        For i = 0 To 10 ' Цикл определяющий количество элементов нового массива
            If m(i) Mod 2 = 0 And m(i) Mod 3 <> 0 Then '
                kol = kol + 1
            End If
        Next i
 
        MyFunc(kol, sum, m(i))
    End Sub
 
    Private Sub Zavershit(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        End
    End Sub
 
End Class
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.06.2021, 10:14
Ответы с готовыми решениями:

Пролема в создании .ocx файла: ошибка сообщает, что только комментарии могут присутствовать после End Sub
выдаёт ошибку: only comments may appear after End Sub,..... и выделяет две строчки эти: Event NoAttempts() Event RightPassword() ...

Удалить символы строки, которые не могут присутствовать в целом числе
Нужно в строке удалить все кроме 1)+-(если есть один из знаков то второй удалить) 2), 3) цифр Строка введена с клавиатуры Добавлено...

Ошибка: Имена членов не могут совпадать с именами типов, в которых они содержатся
Ребят исправьте пожалуйста ошибку,почему при загрузке программы выходит ошибка:&quot;Ошибка 1 &quot;MainClass&quot;: имена членов не могут...

6
fly
 Аватар для I can
4953 / 4637 / 844
Регистрация: 13.04.2015
Сообщений: 9,833
13.06.2021, 11:22
Лучший ответ Сообщение было отмечено Eugwor как решение

Решение

Цитата Сообщение от Eugwor Посмотреть сообщение
массив m(i)
Это элемент массива

Добавлено через 1 минуту
Цитата Сообщение от Eugwor Посмотреть сообщение
Function MyFunc(ByVal kol As Integer, ByVal sum As Integer, ByVal m(i) As Integer) As Integer
VB.NET
1
 Function MyFunc(ByVal kol As Integer, ByVal sum As Integer, ByRef m() As Integer) As Integer
Цитата Сообщение от Eugwor Посмотреть сообщение
MyFunc(kol, sum, m(i))
VB.NET
1
 MyFunc(kol, sum, m)
Добавлено через 1 минуту
Цитата Сообщение от Eugwor Посмотреть сообщение
Function MyFunc
И на фига Function, если она ничего не возвращает? Правильнее было бы Sub
1
0 / 0 / 0
Регистрация: 09.06.2021
Сообщений: 6
13.06.2021, 11:56  [ТС]
Спасибо большое, помогло. Не подскажите, а вот тут в чем тогда проблема? записал так-же, как вы. Выдается ошибка "Индекс находился вне границ массива." со ссылкой на строчку "k(j) = m(i)" из вашего ответа
VB.NET
1
2
3
4
5
6
7
8
9
Sub koli4(ByRef m() As Integer, ByVal kol As Integer)
        For i = 0 To 10 ' Цикл определяющий количество элементов нового массива
            If m(i) Mod 2 = 0 And m(i) Mod 3 <> 0 Then '
                kol = kol + 1
            End If
        Next i
    End Sub
....
koli4(m, kol)
0
fly
 Аватар для I can
4953 / 4637 / 844
Регистрация: 13.04.2015
Сообщений: 9,833
13.06.2021, 13:41
Лучший ответ Сообщение было отмечено Eugwor как решение

Решение

Цитата Сообщение от Eugwor Посмотреть сообщение
на строчку "k(j) = m(i)" из вашего ответа
У меня такой строки в ответе нет

Добавлено через 26 секунд
Цитата Сообщение от Eugwor Посмотреть сообщение
j = j + 1
k(j) = m(i)
Эти строки поменяйте местами
1
0 / 0 / 0
Регистрация: 09.06.2021
Сообщений: 6
13.06.2021, 16:04  [ТС]
Я попробовал, поменять, не помогло, даже ставил в самый низ перед End If
Мне кажется, что вся проблема тут, он просто не может посчитать kol и передать его в следующую процедуру, я попробовал вывести kol закрытием, но он не выводит и выдает ошибку. Не подскажите, что тут не так? Очень хочется уже сдать лабораторную)))
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 Sub koli4(ByRef m() As Integer, ByVal kol As Integer)
        For i = 0 To 10 ' Цикл определяющий количество элементов нового массива
            If m(i) Mod 2 = 0 And m(i) Mod 3 <> 0 Then '
                kol = kol + 1
            End If
        Next i
        vivod(kol, TextBox2)
    End Sub
......
Private Sub Button1_Click()
 
For i = 0 To 10 'Цикл ввода массива через InputBox и ввода массива в TextBox1
            m(i) = InputBox("Введите число массива №(" & i & ")")
            TextBox1.Text = TextBox1.Text & " " & CStr(m(i))
        Next
 
 koli4(m, kol)
 MyFunc(kol, sum, m)
End Sub
0
fly
 Аватар для I can
4953 / 4637 / 844
Регистрация: 13.04.2015
Сообщений: 9,833
13.06.2021, 16:13
Лучший ответ Сообщение было отмечено Eugwor как решение

Решение

Цитата Сообщение от Eugwor Посмотреть сообщение
ByVal kol
Попробуй по ссылке передать. ByRef
1
0 / 0 / 0
Регистрация: 09.06.2021
Сообщений: 6
13.06.2021, 16:38  [ТС]
Да, сработало. Бро, я тебе так благодарен, что не представляю, как расплатиться. Огромнейшее спасибо. P.S. Вот тут надо было поменять.
Цитата Сообщение от Eugwor Посмотреть сообщение
Sub koli4(ByRef m() As Integer, ByVal kol As Integer)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.06.2021, 16:38
Помогаю со студенческими работами здесь

Как найти URL среди списка URL, если могут присутствовать динамические параметры?
const url = &quot;/animals/15&quot;; const urlList = ; Необходимо найти индекс элемента в массиве, который соответствует строке...

Ошибка в преобразовании типов массивов в процедурах
Program1.pas(136) : Нельзя преобразовать тип array of string к array of string optText1: array of string = ( 'Task 1',...

Найти границы, в которых могут лежать вероятности P1 и P2
Вот, только мне нужно сделать лишь номер 157... как это сделать, помогите пожалуйста.

вывести на экран границы целочисленных типов
вывести на экран границы целочисленных типов. При этом нельзя применять константы границ типов, определенных в файле limits.h

Исправить ошибку Имена членов не могут совпадать с именами типов
Исправить ошибку Имена членов не могут совпадать с именами типов


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru