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

Возврат значения процедурой

30.03.2013, 18:14. Показов 10866. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Недавно начал изучать бейсик и застрял на процедурах. В книге сказано, что есть процедуры, которые возвращают значения, а есть которые не возвращают. Что это такое вообще?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.03.2013, 18:14
Ответы с готовыми решениями:

Взаимодействие двух форм (возврат значения из дочерней формы в родительскую)
Есть материнская форма из которой я должен открыть дочернюю (в отдельном окне). В дочерней я делаю некий выбор, который нужно вернуть в...

Возврат таблицы процедурой
Подскажите какой нибудь пример где делается запрос на процедуру, а эта процедура возвращает таблицу из которой можно делать выборку.

Как сделать возврат функцией (или процедурой) массива
Ниже приведенный код не работает: function GetArrContents1(): array of integer; var a1: array of integer; begin ...

12
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
30.03.2013, 18:19
Процедуры ничего не возвращают, возвращают функции
1
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
30.03.2013, 18:42
Вероятно, имели в виду передачу аргумента по ссылке, а не по значению.

По умолчанию, в VB6 используется ссылочный тип.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub main()
    Dim num1, num2, num3
    
    num1 = 1
    num2 = 1
    num3 = 1
 
    Call myproc(num1, num2, num3)
    
    Debug.Print num1; num2; num3
End Sub
 
Sub myproc(num1, ByRef num2, ByVal num3)
    num1 = num1 + 1
    num2 = num2 + 1
    num3 = num3 + 1
End Sub
2 2 1
1
13 / 1 / 0
Регистрация: 25.03.2013
Сообщений: 282
30.03.2013, 19:10  [ТС]
Цитата Сообщение от SoftIce Посмотреть сообщение
Процедуры ничего не возвращают, возвращают функции
как понять не возвращают?
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
30.03.2013, 19:30
Цитата Сообщение от Noob32 Посмотреть сообщение
как понять не возвращают?
По определению.
Цитата Сообщение от Noob32 Посмотреть сообщение
В книге сказано, что есть процедуры, которые возвращают значения, а есть которые не возвращают.
Вы точно про Visual Basic 6 книжку читаете?
Если да, то выбросите её срочно в помойку!
Просто есть Бейсики ( PureBasic тому пример), где процедура может возвращать значение.
Но VB6 значение возвращает только функция.
Изменить значение можно и в процедуре.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
30.03.2013, 19:52
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Но VB6 значение возвращает только функция.
- есть устоявшаяся терминология:

1) автономный блок кода, имеющий имя, называется процедурой;
2) процедура, возвращающая значение, называется функцией
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
30.03.2013, 20:05
Короче, процедура, которая не может ничего возвращать называется процедурой, а которая может - называется функцией.

Не по теме:

Навеяло

В автобусе едут чёрные и белые. И начинают спорить кто будет сидеть впереди, а кто сзади. После долгих споров водила не выдерживает:
- Давайте не будем заниматься дискриминацией!! ВСЁ!! Все зелёные!! Темно зелёные назад, светло-зелёные вперед!!

1
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
30.03.2013, 20:13
Цитата Сообщение от SoftIce Посмотреть сообщение
Короче, процедура, которая не может ничего возвращать называется процедурой, а которая может - называется функцией.
Лучше, наверно, так: процедура, которая не может ничего возвращать называется подпрограммой (Sub -> Subroutine = подпрограмма), а которая может - называется функцией (Function = функция).

То есть и Sub, и Function - это процедуры.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
30.03.2013, 20:33
Цитата Сообщение от Казанский Посмотреть сообщение
процедура, которая не может ничего возвращать называется подпрограммой
Нет. Наоборот.
Подпрограмма - это отдельная функционально независимая часть программы. Имеется два вида подпрограмм - процедуры и функции.
Процедуры и функции представляют собой часть программного кода, снабженную именем. Процедуры и функции различают:
событийные, которые выполняются, когда происходит соответствующее событие;
общие, которые выполняются при соответствующем обращении к ним с использованием их имени;
процедуры – свойства, которые применяются, если объект нужно снабдить новым свойством.
За исключением объявления переменных, типов и т.п. в главной секции модуля или формы весь код программы VB состоит из процедур и функций.
В отличие от процедуры функция возвращает значение результата в точку вызова.
0
 Аватар для dzug
695 / 236 / 18
Регистрация: 17.01.2011
Сообщений: 583
Записей в блоге: 1
30.03.2013, 20:43
Из процедуры тоже можно вернуть результат вычислений, через глобальную переменную.
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
30.03.2013, 20:58
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Нет. Наоборот.
Ну может, и так. Я академиев не кончал книжек не читал
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Процедуры и функции различают:
событийные, которые выполняются, когда происходит соответствующее событие;
Можете привести пример событийной функции?
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
30.03.2013, 21:21
Цитата Сообщение от Казанский Посмотреть сообщение
Можете привести пример событийной функции?
Нет, не могу. Зато процедур сколько угодно.
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
30.03.2013, 23:06
У меня в справочнике написано так:
Sub Процедура Sub представляет собой последовательность инструкций языка Visual Basic, ограниченных инструкциями Sub и End Sub, которая выполняет действия, но не возвращает значение. Процедура Sub может получать аргументы, как например константы, переменные, или выражения, передаваемые ей вызывающей процедурой. Если процедура Sub не имеет аргументов, инструкция Sub должна содержать пустые скобки.

В следующей процедуре Sub содержатся комментарии, объясняющие каждую строк.

' Описывает процедуру с именем GetInfo
' Эта процедура Sub не имеет аргументов
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub GetInfo()
' Описывает строковую переменную с именем answer
Dim answer As String
' Присваивает переменой answer возвращаемое значение функции
answer = InputBox(Prompt:="Как Ваше имя?")
    ' Условная инструкция If...Then...Else
    If answer = Empty Then
        ' Вызов функции MsgBox
        MsgBox Prompt:="Введите имя."
    Else
        ' Функция MsgBox объединена с переменной answer
        MsgBox Prompt:="Имя переменной " & answer
 
' Завершает инструкцию If...Then...Else
    End If
' Завершает процедуру Sub
End Sub


Процедура Function представляет собой последовательность инструкций языка Visual Basic, ограниченных инструкциями Function и End Function. Процедура Function подобна процедуре Sub, однако в отличие от последней она возвращает значения. Процедура Function может получать аргументы, как например константы, переменные, или выражения, передаваемые ей вызывающей процедурой. Если процедура Function не имеет аргументов, ее инструкция Function должна содержать пустые скобки. Возврат значения осуществляется путем его присвоения имени функции в одной или нескольких инструкциях процедуры.

В следующем примере функция Celsius пересчитывает градусы Фаренгейта в градусы Цельсия. Когда функция вызывается процедурой Main, переменная, содержащая значение аргумента, передается функции. Результат вычислений возвращается вызывающей процедуре и выводится в окно сообщения.

Visual Basic
1
2
3
4
5
Sub Main()
    temp = Application.InputBox(Prompt:= _
        "Введите температуру в градусах Фаренгейта.", Type:=1)
    MsgBox "Температура равна " & Celsius(temp) & " градусов Цельсия."
End Sub
Visual Basic
1
2
3
Function Celsius(fDegrees)
    Celsius = (fDegrees - 32) * 5 / 9
End Function
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.03.2013, 23:06
Помогаю со студенческими работами здесь

Повторный возврат рандомного значения ,без изменения значения
Добрый день. Пишу простую консольную игру Кости. Есть 4-е функции прорисовки костей (2-е на кости игрока и 2-е на кости ПК). Каждая...

В чем разница между процедурой окна и хуковской процедурой?
Поясню вопрос: Как я понял определенный хук 'фильтрует' сообщения пришедшие окну и может их обрабатывать. Аналогично процедура окна ...

Возврат значения С++
Hi people! Вот такое задание: 1) Реализовать заданную динамическую структуру данных, с которой можно работать через перегруженные...

Возврат значения методом
В строке 70 нужно вернуть значение, как это сделать в Windows Foms ? #pragma endregion private: void show(int **array, int size)...

Возврат значения из Task
Здравствуйте. Есть код, который сканирует данные с USB, и он работает (принимает байты с ардуино). Но, как известно, C# не позволяет двум...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
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
/ * Дана цепь постоянного тока с 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/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru