Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Метод и функция, Отличие метода от функции в программиров 
:(
    Опции темы
alt5000
Дата 15.12.2007, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 9.4.2006
Где: г. Выборг

Репутация: нет
Всего: нет



Здравствуйте, жители форума!

Не дадите мне небольшую консультацию объясните, чем отличается метод от функции в контексте программирования. Напримере отрывка из MSDN VS2005:

Описание функции (VB)

Returns the character associated with the specified character code.
Public Function Chr(ByVal CharCode As Integer) As Char
Public Function ChrW(ByVal CharCode As Integer) As Char

Опсание метода (VB)

Visual Basic (Declaration) 
Public Shared Function Chr ( _
    CharCode As Integer _
) As Char
 
Visual Basic (Usage) 
Dim CharCode As Integer
Dim returnValue As Char

returnValue = Strings.Chr(CharCode)
 


 

PM MAIL WWW   Вверх
bom
Дата 15.12.2007, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Я это понимаю так:  метод объекта (в данном примере - объекта strings) это одно из совокупности поддерживаемых объектом действий (в данном примере - функция Chr).

Добавлено через 5 минут и 41 секунду
Различия - все равно что различия напр. в мокром и горячем. 
PM MAIL   Вверх
alt5000
Дата 15.12.2007, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 9.4.2006
Где: г. Выборг

Репутация: нет
Всего: нет



То есть метод - это действие? 

Это метод объекта image?
Код

image.GetPixelFormatSize

PM MAIL WWW   Вверх
bom
Дата 15.12.2007, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Цитата из "Основы алгоритмизации и языки программирования" Мацканюк А.А.
Цитата
...процедуры, которые оперируют с объектом, называются его методами

Надеюсь не надо пояснять что такое процедуры (функции)?
PM MAIL   Вверх
Aloha
Дата 15.12.2007, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
**


Профиль
Группа: Участник Клуба
Сообщений: 351
Регистрация: 14.5.2006

Репутация: 2
Всего: 165



alt5000
С одной стороны VB – процедурный язык. В VB используется несколько видов процедур: Sub, Function. С другой стороны, VB – объектно-ориентированный язык. У такой сущности как Объект есть Свойства, Методы и События. Методы Объекта в VB могут быть реализованы как Sub так и как Function. В общем, вопрос: 
Цитата(alt5000)
...чем отличается метод от функции
на самом деле не совсем корректен. Ниже приводятся выдержки из MSDN Library Visual Studio 6.0 и их перевод. Если нужны подробности – читай весь пост.


Цитата(MSDN Library Visual Studio 6.0)
Introduction to Procedures
You can simplify programming tasks by breaking programs into smaller logical components. These components — called procedures — can then become building blocks that let you enhance and extend Visual Basic.
There are two major benefits of programming with procedures: 
•    Procedures allow you to break your programs into discrete logical units, each of which you can debug more easily than an entire program without procedures.
•    Procedures used in one program can act as building blocks for other programs, usually with little or no modification. 
There are several types of procedures used in Visual Basic: 
•    Sub procedures do not return a value.
•    Function procedures return a value.
•    Property procedures can return and assign values, and set references to objects.

Цитата(перевод)
Введение в процедуры
Можно упростить программирование, разбивая программы на небольшие логические компоненты. Эти компоненты, называемые процедурами (procedures), могут впоследствии стать строительными блоками, которые позволят усилить и расширить Visual Basic.
При программировании с использованием процедур можно выделить два основных преимущества:
•    Процедуры позволяют разбивать программы на конечное число логических единиц, каждую из которых легче отладить, чем всю программу без процедур.
•    Процедуры, разработанные для одной программы, могут выступать в качестве строительных блоков для других программ, обычно с небольшими изменениями или совсем без них. 
В Visual Basic используется несколько видов процедур:
•    Процедуры Sub (не возвращают значения)
•    Процедуры Function (возвращают значения)
•    Процедуры Property (могут возвращать и присваивать значения), а также устанавливать ссылки на объекты.

Цитата(MSDN Library Visual Studio 6.0)
Sub Procedures
A  Sub procedure is a block of code that is executed in response to an event. By breaking the code in a module into  Sub procedures, it becomes much easier to find or modify the code in your application.
The syntax for a  Sub procedure is:
[Private|Public][Static]Sub procedurename (arguments)
statements
End Sub

Цитата(перевод)
Процедуры Sub
Процедура Sub (или подпрограмма) — это блок кода, который выполняется в ответ на событие. Разбивая код модуля на процедуры Sub, намного легче читать или модифицировать код приложения.

Цитата(MSDN Library Visual Studio 6.0)
Function Procedures
Visual Basic includes built-in, or intrinsic functions, like Sqr, Cos or Chr. In addition, you can use the Function statement to write your own Function procedures.
The syntax for a Function procedure is:
[Private|Public][Static]Function procedurename (arguments) [As type]
statements
End Function

Like a Sub procedure, a Function procedure is a separate procedure that can take arguments, perform a series of statements, and change the value of its arguments. Unlike a Sub procedure, a Function procedure can return a value to the calling procedure. There are three differences between Sub and Function procedures: 
•    Generally, you call a Function by including the function procedure name and arguments on the right side of a larger statement or expression (returnvalue = function()).
•    Function procedures have data types, just as variables do. This determines the type of the return value. (In the absence of an As clause, the type is the default Variant type.)
•    You return a value by assigning it to the procedurename itself. When the Function procedure returns a value, this value can then become part of a larger expression.

Цитата(перевод)
Процедуры Function
Visual Basic содержит встроенные функции (built-in, intrinsic functions), например, Sqr, Cos или Chr. Кроме того, с помощью оператора Function можно писать собственные процедуры Function.

Как и процедура Sub, процедура Function является самостоятельной и может принимать параметры, выполнять ряд операторов и изменять значения своих параметров. В отличие от процедуры Sub, процедура Function может возвращать значение в вызывающую процедуру. Существуют три различия между Процедурами Sub и Function:
•    Вызов процедуры Function, или просто функции, в основном осуществляется заданием ее имени и параметров в правой части оператора или выражения (returnvalue = function ())
•    Процедуры Function имеют тип, как и переменные. Это определяет тип возвращаемого значения. (В отсутствие ключевого слова As в операторе определения процедуры ей назначается по умолчанию тип variant.)
•    Возвращаемое процедурой Function значение присваивается самому имени procedurename процедуры. Когда процедура Function возвращает значение, его можно использовать в выражениях в программе.

Цитата(MSDN Library Visual Studio 6.0)
The methods of a class are just the public Sub or Function procedures you've declared.

Цитата(перевод)
Методы класса – это открытые процедуры Sub или Function, объявляемые в классе.



Это сообщение отредактировал(а) Aloha - 15.12.2007, 15:34
PM   Вверх
Naghual
Дата 16.12.2007, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Функция, в отличии от Процедуры, способна не только отработать код но и вернуть некое значение.
Процедура же только отрабатывает код и все.

т.е.:

А = Chr(10)   - явный вызов функции с возвратом ею символа. С процедурой такой номер не пройдет.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Akina
Дата 16.12.2007, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(Naghual @  16.12.2007,  18:43 Найти цитируемый пост)
Функция, в отличии от Процедуры, способна не только отработать код но и вернуть некое значение.
Процедура же только отрабатывает код и все.

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



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0662 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.