Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 31.05.2013
Сообщений: 8
1
.NET 4.x

Функция, возвращающая массив структуры. Как?

09.06.2017, 21:57. Показов 1021. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер

Скорее всего тема проще простого, но что то никак не пойму как можно сделать вот что:


Функция возвращающая структуру:

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
'------------------------------------
Private Structure str1
  Dim a As Byte
  Dim b As Byte
End Structure
 
Private Function aaaa(ByVal aa As Byte) As str1
  If aa = 1 Then aaaa.a = 1 : aaaa.b = 2
End Function
 
MsgBox(aaaa(1).a)
'------------------------------------
Это понятно. А вот как нужно организовать всё чтобы функция возвращала массив структуры?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2017, 21:57
Ответы с готовыми решениями:

Функция возвращающая абсолютное разницу первого и второго параметров и функция типа int, возвращающая минимальное из трех целых чисел
Разработать заданные согласно условия функции и сделать в главной программе по два вызова этих...

Функция, возвращающая массив
Задача: В двумерном целочисленом массиве заданного размера найти номера строк, элементы которых...

Функция возвращающая массив
#include <iostream> #include "conio.h" int *convertToBin() { int a = { 1, 2, 3, 4, 5};...

Функция возвращающая массив
Здравствуйте. Для возврата массива возвращаю указатель на него, но вне предела области в которой он...

5
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
09.06.2017, 22:02 2
Цитата Сообщение от InVisible_3 Посмотреть сообщение
массив структуры?
массив структур ?
0
0 / 0 / 0
Регистрация: 31.05.2013
Сообщений: 8
09.06.2017, 22:04  [ТС] 3
Массив структуры.

Чтобы ответ получать не в таком виде:
VB.NET
1
MsgBox(aaaa(1).a)

а в таком например:
VB.NET
1
MsgBox(aaaa(1)(0).a)
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
09.06.2017, 22:12 4
Лучший ответ Сообщение было отмечено InVisible_3 как решение

Решение

Так ?
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    Private Structure str1
        Dim a As Byte
        Dim b As Byte
    End Structure
    Private Function aaaa(ByVal n As Integer, ByVal aa As Byte) As str1()
        Dim ccc(n) As str1
        Select Case aa
            Case 1 : ccc(0).a = 1 : ccc(0).b = 2
            Case 2 : ccc(1).a = 3 : ccc(1).b = 4
            Case 3 : ccc(2).a = 5 : ccc(2).b = 6
        End Select
        Return ccc
    End Function
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim b(2) As str1
        b = aaaa(b.Length - 1, 2)
 
    End Sub
1
4416 / 3538 / 845
Регистрация: 02.02.2013
Сообщений: 3,426
Записей в блоге: 2
09.06.2017, 22:18 5
Подобная конструкция именуется как массив массивов, и определить ее можно, например, так
VB.NET
1
Dim aaaa(5)() As str1
0
0 / 0 / 0
Регистрация: 31.05.2013
Сообщений: 8
09.06.2017, 22:35  [ТС] 6
SoftIce, спасибо, натолкнул на идею. Додумал так как мне нужно было:

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
'------------------------------------------------------
Private Structure str1
  Dim a As Byte
  Dim b As Byte
End Structure
 
Private Function aaaa(ByVal aa As Byte) As Array
  Dim ccc(2) As str1
 
  ccc(0).a = 1
  ccc(1).a = 2
  ccc(2).a = 3
   
  Return ccc
End Function
 
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  
  Dim ddd() As str1 = aaaa(1)
 
  MsgBox(ddd(0).a)
  MsgBox(ddd(1).a)
  MsgBox(ddd(2).a)
End Sub
'------------------------------------------------------
Добавлено через 3 минуты
Все так как мне подсказали, только функцию как массив объявил. И заработало так как нужно.
Спасибо еще раз!
0
09.06.2017, 22:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2017, 22:35
Помогаю со студенческими работами здесь

Функция, возвращающая массив
Нужно вернуть из функции массив. int F(int a,int* b) { for(int i=0;i<a;i++) *b++; ...

Функция, возвращающая массив
Возможно ли что функция возвращает массив. Если да то было бы хорошо листинг программы где...

Функция, возвращающая массив
Всем привет. Вобщем банально нужна функция, смысл которой в следующем. У нас есть буфер...

Функция принимающая два аргумента - массив строк и возвращающая массив целых чисел
Добрый день! Нужно реализовать функцию принимающую два аргумента - массивы строк и возвращающая...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru