Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: Peter, DEMBEL  
Библиотека функций
BodiДата: Чт, 27 Августа 2009, 14:43 | Сообщение # 31
Ветеран форума
Мне кажется что основное отличие функции от подпрограмм заключается в том, что подпрограммы - это просто часть кода, который может использовать все переменные, используемые во всем проекте, и эта чать кода может делать что угодно, например вычислять на основе каких либо переменных математичесое действие и сохранять его результат в переменную, которую так же можно будет использовать по всему проекту, т.е. другими словами подпрограммы могут возвращать значения.
А функции, в отличие от подпрограмм, имеют возможноть работать со соими переменными, которые нельзя использовать например в тех же подпрограммах или другом месте проекта, и это очень выгодная фишка, потому что по окончанию работы функции, используемые ей переменные можно смело очистить. А возращаемое функцией значение сохраняется уже не в переменных функции, а в общих переменных, и это значение можно потом уже дальше обрабатывать как надо.

Добавлено (27 Август 2009, 14:43)
---------------------------------------------
Если сказать короче, то подпрограмма - это часть главной программы, а функция - это своя маленькая программка (имеется ввиду конкретно НБ). Еще одна главная особенность функции заключается в передаваемых ей параметрах, т.е. она может работать не со всеми переменными, используемыми в главной программе, а только с теми, которые ей указали...

 
СообщениеМне кажется что основное отличие функции от подпрограмм заключается в том, что подпрограммы - это просто часть кода, который может использовать все переменные, используемые во всем проекте, и эта чать кода может делать что угодно, например вычислять на основе каких либо переменных математичесое действие и сохранять его результат в переменную, которую так же можно будет использовать по всему проекту, т.е. другими словами подпрограммы могут возвращать значения.
А функции, в отличие от подпрограмм, имеют возможноть работать со соими переменными, которые нельзя использовать например в тех же подпрограммах или другом месте проекта, и это очень выгодная фишка, потому что по окончанию работы функции, используемые ей переменные можно смело очистить. А возращаемое функцией значение сохраняется уже не в переменных функции, а в общих переменных, и это значение можно потом уже дальше обрабатывать как надо.

Добавлено (27 Август 2009, 14:43)
---------------------------------------------
Если сказать короче, то подпрограмма - это часть главной программы, а функция - это своя маленькая программка (имеется ввиду конкретно НБ). Еще одна главная особенность функции заключается в передаваемых ей параметрах, т.е. она может работать не со всеми переменными, используемыми в главной программе, а только с теми, которые ей указали...


Автор - Bodi
Дата добавления - 27 Августа 2009 в 14:43
ВадимДата: Пт, 28 Августа 2009, 08:12 | Сообщение # 32
Генератор идей
Quote (Bodi)
Еще одна главная особенность функции заключается в передаваемых ей параметрах, т.е. она может работать не со всеми переменными, используемыми в главной программе, а только с теми, которые ей указали...
Этот момент не совсем понятен... Разве подпрограмма NB работает не точно также? Как она сможет работать с переменными, которые ей не указаны, хотя бы в виде "переменной для переменных"?


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (Bodi)
Еще одна главная особенность функции заключается в передаваемых ей параметрах, т.е. она может работать не со всеми переменными, используемыми в главной программе, а только с теми, которые ей указали...
Этот момент не совсем понятен... Разве подпрограмма NB работает не точно также? Как она сможет работать с переменными, которые ей не указаны, хотя бы в виде "переменной для переменных"?

Автор - Вадим
Дата добавления - 28 Августа 2009 в 08:12
BodiДата: Пт, 28 Августа 2009, 08:30 | Сообщение # 33
Ветеран форума
Quote (VadimLevkin)
Этот момент не совсем понятен... Разве подпрограмма NB работает не точно также? Как она сможет работать с переменными, которые ей не указаны, хотя бы в виде "переменной для переменных"?

Я имею ввиду, что когда мы указываем параметры для функции, мы можем их оформит ввиде [%1] например. И тогда, когда работаешь с кодом функции, сразу видно, какие переменные были переданы из основной программы в функцию.
 
Сообщение
Quote (VadimLevkin)
Этот момент не совсем понятен... Разве подпрограмма NB работает не точно также? Как она сможет работать с переменными, которые ей не указаны, хотя бы в виде "переменной для переменных"?

Я имею ввиду, что когда мы указываем параметры для функции, мы можем их оформит ввиде [%1] например. И тогда, когда работаешь с кодом функции, сразу видно, какие переменные были переданы из основной программы в функцию.

Автор - Bodi
Дата добавления - 28 Августа 2009 в 08:30
PeterДата: Пт, 28 Августа 2009, 08:56 | Сообщение # 34
Админ NeoBook
Хочу, все же, внести ясность (если успею):
Функции до-лампочки с какими переменными работать, но учитывая то, что функция может применяться в самых разнообразных проектах, имена переменных-параметров функции (а также и "внутренних" переменных функции) могут совпасть с собственными переменными проекта, то во избежание путаницы имена переменных функции и ПРЕДЛАГАЮТ разработчики NB "отделять", например, символом %.

Добавлено (28 Август 2009, 08:56)
---------------------------------------------

Quote (VadimLevkin)
- функции (возвращают значение, обладает параметрами/аргументами)
- процедуры (значение не возвращают, а только выполняют заданную работу, не обладает параметрами/аргументами)

Это во "взрослых" языках программирования отличие функции от процедуры может иметь важное значение, в программах же типа NB или ММВ это непринципиально и больше напоминает игру слов.
Но, во взорслых языках программирования в качестве подпрограммы может выступать и отдельная функция (процедура) или их целый "набор".
Процедуры и подпрограммы не одно и то же!
Да,принципиально функция отличается от процедуры тем, что она всегда возвращает какое-либо значение как результат СОБСТВЕННОЙ работы в зависимости от типа функции.
А процедуры тоже могут иметь параметры. :)
А функция может и не иметь никаких параметров... :)
Но, повторяю - все это важно в нормальных языках!
В NeoBook же заморачиваться и влезать в эти "тонкости" никакого практическокого смысла НЕТ!


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
СообщениеХочу, все же, внести ясность (если успею):
Функции до-лампочки с какими переменными работать, но учитывая то, что функция может применяться в самых разнообразных проектах, имена переменных-параметров функции (а также и "внутренних" переменных функции) могут совпасть с собственными переменными проекта, то во избежание путаницы имена переменных функции и ПРЕДЛАГАЮТ разработчики NB "отделять", например, символом %.

Добавлено (28 Август 2009, 08:56)
---------------------------------------------

Quote (VadimLevkin)
- функции (возвращают значение, обладает параметрами/аргументами)
- процедуры (значение не возвращают, а только выполняют заданную работу, не обладает параметрами/аргументами)

Это во "взрослых" языках программирования отличие функции от процедуры может иметь важное значение, в программах же типа NB или ММВ это непринципиально и больше напоминает игру слов.
Но, во взорслых языках программирования в качестве подпрограммы может выступать и отдельная функция (процедура) или их целый "набор".
Процедуры и подпрограммы не одно и то же!
Да,принципиально функция отличается от процедуры тем, что она всегда возвращает какое-либо значение как результат СОБСТВЕННОЙ работы в зависимости от типа функции.
А процедуры тоже могут иметь параметры. :)
А функция может и не иметь никаких параметров... :)
Но, повторяю - все это важно в нормальных языках!
В NeoBook же заморачиваться и влезать в эти "тонкости" никакого практическокого смысла НЕТ!

Автор - Peter
Дата добавления - 28 Августа 2009 в 08:56
Alex3AДата: Пт, 28 Августа 2009, 09:24 | Сообщение # 35
Друг клуба ММВ
Quote (Bodi)
А функции, в отличие от подпрограмм, имеют возможноть работать со соими переменными, которые нельзя использовать например в тех же подпрограммах или другом месте проекта, и это очень выгодная фишка, потому что по окончанию работы функции, используемые ей переменные можно смело очистить.

Переменные бывают глобальными, видимыми вовсех фукциях и процедурах, и локальными
видимые только в пределах функции\процедуры. Если в языке декларируется что все переменные глобальны, то разницы нет никакой. При объявлении переменной, под нее
выделяется память, смысл "очистки" состоит в освобождении выделенной под переменную памяти, "очистка" значения переменной не имеет смысла, так как память
при этом не освобождаеться. Таким образом, что то чистить можно только в тех языках, в которых имеются соответствующие механизмы для освобождения памяти,
в иных случаях, это просто глупость, за исключением тех случаев, когда пустое значение переменной играет роль в алгоритме. В языках имеющих оба типа переменных, может быть еще одна фича - передача переменной по ссылке и по значению, при передаче по ссылке, изменение переменной произведенное в теле функции\процедуры вызовет изменение ее значения во всех местах, где она применяеться, при передаче по значению, она будет другой только в пределах функции\процедуры в которой ее поменяли.
 
Сообщение
Quote (Bodi)
А функции, в отличие от подпрограмм, имеют возможноть работать со соими переменными, которые нельзя использовать например в тех же подпрограммах или другом месте проекта, и это очень выгодная фишка, потому что по окончанию работы функции, используемые ей переменные можно смело очистить.

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

Автор - Alex3A
Дата добавления - 28 Августа 2009 в 09:24
PeterДата: Пт, 28 Августа 2009, 09:32 | Сообщение # 36
Админ NeoBook
Quote (Alex3A)
Если в языке декларируется что все переменные глобальны, то разницы нет никакой. При объявлении переменной, под нее
выделяется память, смысл "очистки" состоит в освобождении выделенной под переменную памяти, "очистка" значения переменной не имеет смысла, так как память
при этом не освобождаеться. Таким образом, что то чистить можно только в тех языках, в которых имеются соответствующие механизмы для освобождения памяти

В NB можно объявлять переменные и глобальными и локальными. Переменные можно объявить локальными и в теле самой функции, а можно и глобальными, но для механизма работы необушных (не VBS или Java) функций это не имеет значения.

Добавлено (28 Август 2009, 09:32)
---------------------------------------------
Кстати, освобождепние памяти в NB тоже предусмотрено, но, правда, об этом многие даже и не помышляют... :)


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (Alex3A)
Если в языке декларируется что все переменные глобальны, то разницы нет никакой. При объявлении переменной, под нее
выделяется память, смысл "очистки" состоит в освобождении выделенной под переменную памяти, "очистка" значения переменной не имеет смысла, так как память
при этом не освобождаеться. Таким образом, что то чистить можно только в тех языках, в которых имеются соответствующие механизмы для освобождения памяти

В NB можно объявлять переменные и глобальными и локальными. Переменные можно объявить локальными и в теле самой функции, а можно и глобальными, но для механизма работы необушных (не VBS или Java) функций это не имеет значения.

Добавлено (28 Август 2009, 09:32)
---------------------------------------------
Кстати, освобождепние памяти в NB тоже предусмотрено, но, правда, об этом многие даже и не помышляют... :)


Автор - Peter
Дата добавления - 28 Августа 2009 в 09:32
Alex3AДата: Пт, 28 Августа 2009, 09:58 | Сообщение # 37
Друг клуба ММВ
Quote (Peter)
об этом многие даже и не помышляют...

Тогда вопрос, а что же они там всетаки чистют...
Смысл локальной переменной состоит в том что под нее автоматом выделяется память,
а потом, так же автоматом память освобождается, по окончании выполнения
функции\процедуры. Сам процес инициализации, в разных языках может быть разным,
некоторые просто выделяют память, иные так же устанавливают ее значение в 0 или
пустая строка.. А вообще то в машинном коде нет никаких переменных, есть только
области памяти, переменная это уже мостик для взаимопонимания с програмером :D
 
Сообщение
Quote (Peter)
об этом многие даже и не помышляют...

Тогда вопрос, а что же они там всетаки чистют...
Смысл локальной переменной состоит в том что под нее автоматом выделяется память,
а потом, так же автоматом память освобождается, по окончании выполнения
функции\процедуры. Сам процес инициализации, в разных языках может быть разным,
некоторые просто выделяют память, иные так же устанавливают ее значение в 0 или
пустая строка.. А вообще то в машинном коде нет никаких переменных, есть только
области памяти, переменная это уже мостик для взаимопонимания с програмером :D

Автор - Alex3A
Дата добавления - 28 Августа 2009 в 09:58
BodiДата: Пт, 28 Августа 2009, 10:07 | Сообщение # 38
Ветеран форума
Quote (Alex3A)
При объявлении переменной, под нее выделяется память, смысл "очистки" состоит в освобождении выделенной под переменную памяти, "очистка" значения переменной не имеет смысла, так как память при этом не освобождаеться.

Alex3A, Вы не правильно поняли смысл того, что я хотел сказать. Под словом "очистка" я имел ввиду удаление переменной из памяти, а не очистку ее значения. В НБ есть такая возможность, как было сказано выше, и также в НБ есть возможность объявлять локальные и глобальные переменные.
 
Сообщение
Quote (Alex3A)
При объявлении переменной, под нее выделяется память, смысл "очистки" состоит в освобождении выделенной под переменную памяти, "очистка" значения переменной не имеет смысла, так как память при этом не освобождаеться.

Alex3A, Вы не правильно поняли смысл того, что я хотел сказать. Под словом "очистка" я имел ввиду удаление переменной из памяти, а не очистку ее значения. В НБ есть такая возможность, как было сказано выше, и также в НБ есть возможность объявлять локальные и глобальные переменные.

Автор - Bodi
Дата добавления - 28 Августа 2009 в 10:07
PeterДата: Пт, 28 Августа 2009, 10:13 | Сообщение # 39
Админ NeoBook
Quote (Alex3A)
Тогда вопрос, а что же они там всетаки чистют...

А кто сказал, что оини там что-то чистят? :)
Quote (Alex3A)
Смысл локальной переменной состоит в том что под нее автоматом выделяется память,
а потом, так же автоматом память освобождается, по окончании выполнения
функции\процедуры.

Совершенно верно!
Именно так и "работают" в NB переменные, объявленные локальными.
Но, вместе с тем глобальные переменные тоже можно чистить, причем даже "гуртом": в NB есть для этого специальная команда.
Но вопрос-то был об отличии необушных подпрограмм от функций...
А для них без разницы с какими перменными иметь дела: хочешь - с локальными (внутри себя), а хочешь - с глобальными.

Добавлено (28 Август 2009, 10:13)
---------------------------------------------

Quote (Bodi)
Под словом "очистка" я имел ввиду удаление переменной из памяти, а не очистку ее значения.

Снова - игра слов... :)
NeoBook автоматически удаляет из памяти "очищенные" переменные!


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (Alex3A)
Тогда вопрос, а что же они там всетаки чистют...

А кто сказал, что оини там что-то чистят? :)
Quote (Alex3A)
Смысл локальной переменной состоит в том что под нее автоматом выделяется память,
а потом, так же автоматом память освобождается, по окончании выполнения
функции\процедуры.

Совершенно верно!
Именно так и "работают" в NB переменные, объявленные локальными.
Но, вместе с тем глобальные переменные тоже можно чистить, причем даже "гуртом": в NB есть для этого специальная команда.
Но вопрос-то был об отличии необушных подпрограмм от функций...
А для них без разницы с какими перменными иметь дела: хочешь - с локальными (внутри себя), а хочешь - с глобальными.

Добавлено (28 Август 2009, 10:13)
---------------------------------------------

Quote (Bodi)
Под словом "очистка" я имел ввиду удаление переменной из памяти, а не очистку ее значения.

Снова - игра слов... :)
NeoBook автоматически удаляет из памяти "очищенные" переменные!

Автор - Peter
Дата добавления - 28 Августа 2009 в 10:13
BodiДата: Пт, 28 Августа 2009, 10:18 | Сообщение # 40
Ветеран форума
Quote (Peter)
NeoBook автоматически удаляет из памяти "очищенные" переменные!

Да, но если переменная не пустА? Например у меня есть функция, после окончания ее работы я захотел очистить используемые ей переменные, т.к. они мне больше не нужны, эти переменные являются глобальными, т.е. АВТОМАТИЧЕСКИ они удалятся только после закрытия самой программы. Так если они мне не нужны, зачем я буду хранить их до закрытия программы? Я удалю их сразу же после завершения работы функции...
 
Сообщение
Quote (Peter)
NeoBook автоматически удаляет из памяти "очищенные" переменные!

Да, но если переменная не пустА? Например у меня есть функция, после окончания ее работы я захотел очистить используемые ей переменные, т.к. они мне больше не нужны, эти переменные являются глобальными, т.е. АВТОМАТИЧЕСКИ они удалятся только после закрытия самой программы. Так если они мне не нужны, зачем я буду хранить их до закрытия программы? Я удалю их сразу же после завершения работы функции...

Автор - Bodi
Дата добавления - 28 Августа 2009 в 10:18
Alex3AДата: Пт, 28 Августа 2009, 10:30 | Сообщение # 41
Друг клуба ММВ
На самом то деле, очистка переменных не играет большой роли, если эта переменная
не занимает много памяти, уменьшиться ли объем памяти занимаемых процессом, после
освобождения, еще большой вопрос, пути винды неисповедимы, когда и что она там
делает покрыто мраком. Есть еще такая фигня как выравнивание, не слышали, ну и не надо :D Это вредно! Я сам видел, у солидных людей, попытки проводить выравнивание
руцями :D
В общем, что я хотел до вас донести, "очистка" для проектов типа нб и иже с ними
в большинстве случаев, не есть чем то крайне необходимым.
 
СообщениеНа самом то деле, очистка переменных не играет большой роли, если эта переменная
не занимает много памяти, уменьшиться ли объем памяти занимаемых процессом, после
освобождения, еще большой вопрос, пути винды неисповедимы, когда и что она там
делает покрыто мраком. Есть еще такая фигня как выравнивание, не слышали, ну и не надо :D Это вредно! Я сам видел, у солидных людей, попытки проводить выравнивание
руцями :D
В общем, что я хотел до вас донести, "очистка" для проектов типа нб и иже с ними
в большинстве случаев, не есть чем то крайне необходимым.

Автор - Alex3A
Дата добавления - 28 Августа 2009 в 10:30
СергейДата: Пт, 28 Августа 2009, 10:36 | Сообщение # 42
Необукер
Quote (Alex3A)
В общем, что я хотел до вас донести, "очистка" для проектов типа нб и иже с ними в большинстве случаев, не есть чем то крайне необходимым.
Спасибо! познавательно!
Но лучше всетаки использованные массивы или продукты циклов очищать сразу, ох и жрут они :D
 
Сообщение
Quote (Alex3A)
В общем, что я хотел до вас донести, "очистка" для проектов типа нб и иже с ними в большинстве случаев, не есть чем то крайне необходимым.
Спасибо! познавательно!
Но лучше всетаки использованные массивы или продукты циклов очищать сразу, ох и жрут они :D

Автор - Сергей
Дата добавления - 28 Августа 2009 в 10:36
Alex3AДата: Пт, 28 Августа 2009, 10:57 | Сообщение # 43
Друг клуба ММВ
Циклы, это вообще, способ экономии памяти, один и тот же код реализует множество
однотипных операций. Что действительно жрет память это рекурсия. В связи с тем, что все таки нб является интерпритатором, размер занимаемый процессом может мало
зависеть от того освободили ли вы что то или нет.
 
СообщениеЦиклы, это вообще, способ экономии памяти, один и тот же код реализует множество
однотипных операций. Что действительно жрет память это рекурсия. В связи с тем, что все таки нб является интерпритатором, размер занимаемый процессом может мало
зависеть от того освободили ли вы что то или нет.

Автор - Alex3A
Дата добавления - 28 Августа 2009 в 10:57
ВадимДата: Сб, 29 Августа 2009, 17:32 | Сообщение # 44
Генератор идей
Спасибо всем! Очень интересно!
Петр, может быть есть смысл этот топик разделить? Получилось две в одной. Урок для начинающих и посвящен функциям, а я со своим вопросом перетянул одеяло на разницу между функциями и подпрограммами NB. Мне кажется есть смысл начиная с 13 поста и до конца посты перенести в отдельную тему, озаглавив, например, "Есть ли разница между функциями и подпрограммами NB?"


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
СообщениеСпасибо всем! Очень интересно!
Петр, может быть есть смысл этот топик разделить? Получилось две в одной. Урок для начинающих и посвящен функциям, а я со своим вопросом перетянул одеяло на разницу между функциями и подпрограммами NB. Мне кажется есть смысл начиная с 13 поста и до конца посты перенести в отдельную тему, озаглавив, например, "Есть ли разница между функциями и подпрограммами NB?"

Автор - Вадим
Дата добавления - 29 Августа 2009 в 17:32
СергейДата: Сб, 29 Августа 2009, 18:50 | Сообщение # 45
Необукер
Quote (VadimLevkin)
"Есть ли разница между функциями и подпрограммами NB?"

"Подпрограмма & Функция"

Добавлено (29 Август 2009, 18:50)
---------------------------------------------
и описание того и другого, а потом обсуждение :)

 
Сообщение
Quote (VadimLevkin)
"Есть ли разница между функциями и подпрограммами NB?"

"Подпрограмма & Функция"

Добавлено (29 Август 2009, 18:50)
---------------------------------------------
и описание того и другого, а потом обсуждение :)


Автор - Сергей
Дата добавления - 29 Августа 2009 в 18:50
PeterДата: Сб, 29 Августа 2009, 20:17 | Сообщение # 46
Админ NeoBook
Quote (VadimLevkin)
Петр, может быть есть смысл этот топик разделить?

Если уж на то пошлО, то целесообразнее не разделять топик, а просто его переименовать.
Quote (sp3d)
"Подпрограмма & Функция"

"Функции и подпрограммы".
Описание функций вроде есть.
Теперь дело за подпрограммами...
;)


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (VadimLevkin)
Петр, может быть есть смысл этот топик разделить?

Если уж на то пошлО, то целесообразнее не разделять топик, а просто его переименовать.
Quote (sp3d)
"Подпрограмма & Функция"

"Функции и подпрограммы".
Описание функций вроде есть.
Теперь дело за подпрограммами...
;)

Автор - Peter
Дата добавления - 29 Августа 2009 в 20:17
ВадимДата: Сб, 29 Августа 2009, 22:57 | Сообщение # 47
Генератор идей
Quote (Peter)
Теперь дело за подпрограммами...
Кажется, sp3d, тебе работа привалила! :D


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (Peter)
Теперь дело за подпрограммами...
Кажется, sp3d, тебе работа привалила! :D

Автор - Вадим
Дата добавления - 29 Августа 2009 в 22:57
Alex3AДата: Вс, 30 Августа 2009, 01:13 | Сообщение # 48
Друг клуба ММВ
В принципе не важно как что назвать, лиш бы поняли о чем идет речь.
Ну а если поглубже залезть, давным давно...
Выполнение программы начинается с одной точки входа (первой операции), последовательно, инструкция за инструкцией, выполняются строки программы, последовательность работы может меняеться в зависимости от результатов команд условных переходов. Часто, в процессе работы, приходится выполнять однотипные
операции, что бы сократить количество кода, и сделать код программы более логически понятным, для програмера, используются подпрограммы - участок кода,
выполняющий какую либо логическую задачу. В таком понимании, все программы в основном состоят из подпрограм, в некоторых языках имеется понятие фукции майн,
которая и есть по своей сути основной программой, все остальное подпрограммы.
Каждая подпрограмма может использовать подпод... программы. Таким образом, понятие подпрограмма является относительным. Все программы винды можно считать
подпрограммами проводника, сама винда подпрограмма доса, дос подпрограмма
биоса. Остановимся на винде и вышеупомянутой функции майн, она присутствует в любой программе, в зависимости от средства разработки, вы можете иметь к ней доступ или нет, она может быть инкапсулирована. Дам грубое и краткое описание. Работа програм под виндой основана на системных сообщениях, описывать подробно
не буду, кому интересно более подробно, учите мат часть. Основная работа функции
майн состоит в создании окна приложения которое принимает системные сообщения и передает их в обработчики. Программа с окном имеет в действительности два окна,
окно приложения и собственно окно- форму ту которую вы видите, каждое из них
имеет зарегистрированный в системе хендл - дескриптор, число указатель.
Окно приложения вы тоже видите, если оно не скрыто, оно находится на панели
задач, оно то и является главным, если программа имеет формы - окна, то одно из них имеет атрибут форммайн, и является главным для всех остальных форм. Сообщения могут приходить как от оперционной системы, так и от других програм, а так же
могут посылатся самой себе из любого места. Сообщения накапливаются в буфере
сообщений и передаются по мере готовности к их приему, если в буфере имеются
однотипные сообщения адресованные в одно место, то отсылается последнее, с этим и связан такой еффект пропадания вывода промежуточных значений. В некоторых языках имеются команды принудительного выбора очереди сообщений, позволяющей все же вывести промежуточные. На основе перехвата сообщений существует множество всевозможных технологий. Таким образом, получив сообщение, начинает выполнятся соответствующий обработчик, получив следующее запускается другой. В событийно ориентированых системах, таким образом производится разветвление вычислительных потоков, в какой степени одновременности они выполняются не скажу, бог его знает, но они гарантировано будут выполнены. По этому лучше организовать новое событие чем навешивать что то дополнительное на одно. Теперь как это все работает,
кинув компонент на свою форму и активировав обработчик(прописав процедуру или фукцию обработчика событий компоненты), вы тем самым вносите в обработчик сообщений майн проверку сообщений для данной компоненты, и если такое приходит,
запускается ваш обработчик.
 
СообщениеВ принципе не важно как что назвать, лиш бы поняли о чем идет речь.
Ну а если поглубже залезть, давным давно...
Выполнение программы начинается с одной точки входа (первой операции), последовательно, инструкция за инструкцией, выполняются строки программы, последовательность работы может меняеться в зависимости от результатов команд условных переходов. Часто, в процессе работы, приходится выполнять однотипные
операции, что бы сократить количество кода, и сделать код программы более логически понятным, для програмера, используются подпрограммы - участок кода,
выполняющий какую либо логическую задачу. В таком понимании, все программы в основном состоят из подпрограм, в некоторых языках имеется понятие фукции майн,
которая и есть по своей сути основной программой, все остальное подпрограммы.
Каждая подпрограмма может использовать подпод... программы. Таким образом, понятие подпрограмма является относительным. Все программы винды можно считать
подпрограммами проводника, сама винда подпрограмма доса, дос подпрограмма
биоса. Остановимся на винде и вышеупомянутой функции майн, она присутствует в любой программе, в зависимости от средства разработки, вы можете иметь к ней доступ или нет, она может быть инкапсулирована. Дам грубое и краткое описание. Работа програм под виндой основана на системных сообщениях, описывать подробно
не буду, кому интересно более подробно, учите мат часть. Основная работа функции
майн состоит в создании окна приложения которое принимает системные сообщения и передает их в обработчики. Программа с окном имеет в действительности два окна,
окно приложения и собственно окно- форму ту которую вы видите, каждое из них
имеет зарегистрированный в системе хендл - дескриптор, число указатель.
Окно приложения вы тоже видите, если оно не скрыто, оно находится на панели
задач, оно то и является главным, если программа имеет формы - окна, то одно из них имеет атрибут форммайн, и является главным для всех остальных форм. Сообщения могут приходить как от оперционной системы, так и от других програм, а так же
могут посылатся самой себе из любого места. Сообщения накапливаются в буфере
сообщений и передаются по мере готовности к их приему, если в буфере имеются
однотипные сообщения адресованные в одно место, то отсылается последнее, с этим и связан такой еффект пропадания вывода промежуточных значений. В некоторых языках имеются команды принудительного выбора очереди сообщений, позволяющей все же вывести промежуточные. На основе перехвата сообщений существует множество всевозможных технологий. Таким образом, получив сообщение, начинает выполнятся соответствующий обработчик, получив следующее запускается другой. В событийно ориентированых системах, таким образом производится разветвление вычислительных потоков, в какой степени одновременности они выполняются не скажу, бог его знает, но они гарантировано будут выполнены. По этому лучше организовать новое событие чем навешивать что то дополнительное на одно. Теперь как это все работает,
кинув компонент на свою форму и активировав обработчик(прописав процедуру или фукцию обработчика событий компоненты), вы тем самым вносите в обработчик сообщений майн проверку сообщений для данной компоненты, и если такое приходит,
запускается ваш обработчик.

Автор - Alex3A
Дата добавления - 30 Августа 2009 в 01:13
ВадимДата: Вс, 30 Августа 2009, 10:28 | Сообщение # 49
Генератор идей
Quote (Alex3A)
По этому лучше организовать новое событие чем навешивать что то дополнительное на одно.
Спасибо, как раз очень актуально для меня! Есть о чем задуматься...
Quote (Alex3A)
Теперь как это все работает,
Спасибо!!!
Quote (Alex3A)
Работа програм под виндой основана на системных сообщениях
Интересно, поищу...


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (Alex3A)
По этому лучше организовать новое событие чем навешивать что то дополнительное на одно.
Спасибо, как раз очень актуально для меня! Есть о чем задуматься...
Quote (Alex3A)
Теперь как это все работает,
Спасибо!!!
Quote (Alex3A)
Работа програм под виндой основана на системных сообщениях
Интересно, поищу...

Автор - Вадим
Дата добавления - 30 Августа 2009 в 10:28
PeterДата: Вс, 30 Августа 2009, 12:15 | Сообщение # 50
Админ NeoBook
Quote (Alex3A)
Quote (Alex3A)
По этому лучше организовать новое событие чем навешивать что то дополнительное на одно.Спасибо, как раз очень актуально для меня! Есть о чем задуматься...

Все это, конечно, красиво.
Правда, неплохо будет учесть, что NeoBook это не Delphi, и "организовать новое событие" (в дополнение к уже имеющимся), к сожалению, не получится.

Quote (VadimLevkin)
Интересно, поищу...

Ну, если есть масса свободного времени, то почему бы и нет.... :)

Информация к размышлению: даже самое глубочайшее знание этих вещей (сообщения и т.п.) никак не пригодится в практической работе с NeoBook.
Если только для "общего развития"...


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (Alex3A)
Quote (Alex3A)
По этому лучше организовать новое событие чем навешивать что то дополнительное на одно.Спасибо, как раз очень актуально для меня! Есть о чем задуматься...

Все это, конечно, красиво.
Правда, неплохо будет учесть, что NeoBook это не Delphi, и "организовать новое событие" (в дополнение к уже имеющимся), к сожалению, не получится.

Quote (VadimLevkin)
Интересно, поищу...

Ну, если есть масса свободного времени, то почему бы и нет.... :)

Информация к размышлению: даже самое глубочайшее знание этих вещей (сообщения и т.п.) никак не пригодится в практической работе с NeoBook.
Если только для "общего развития"...


Автор - Peter
Дата добавления - 30 Августа 2009 в 12:15
Alex3AДата: Вс, 30 Августа 2009, 12:46 | Сообщение # 51
Друг клуба ММВ
Quote (Peter)
Правда, неплохо будет учесть, что NeoBook это не Delphi, и "организовать новое событие"

Quote (Peter)
Информация к размышлению: даже самое глубочайшее знание этих вещей (сообщения и т.п.) никак не пригодится в практической работе с NeoBook.

Это смотря как и куда посмотреть.
Иногда бывает так что вдруг программа начинает работать не так как ты себе представлял, вопреки логике. Потом начинаеш что то осознавать, вроде как чему то
нехватает толи времени толи еще чего, вот тут то и вступают в дело понимание происходящего. Да, к сожалению, организовать на прямую новое событие не получится,
зато косвенно это возможно, такая штука как таймер, окажет вам неоценимую услугу,
в организации подобного.
Реализация простых алгоритмов, как правило не вызывает
никаких подобных артефактов, но по мере его усложнения они возможны.
В подобных случаях, вы должны представлять не только как работает ваш код,
но и когда.
Под организацией события я имею ввиду именно активацию новой линии вычислений,
инициирированной получением сообщения, а не новый вид самого обработчика.
Неким подобием такой фичи, в ммв, являются полупаралельные процессы, возможно и в нб есть нечто похожее?
 
Сообщение
Quote (Peter)
Правда, неплохо будет учесть, что NeoBook это не Delphi, и "организовать новое событие"

Quote (Peter)
Информация к размышлению: даже самое глубочайшее знание этих вещей (сообщения и т.п.) никак не пригодится в практической работе с NeoBook.

Это смотря как и куда посмотреть.
Иногда бывает так что вдруг программа начинает работать не так как ты себе представлял, вопреки логике. Потом начинаеш что то осознавать, вроде как чему то
нехватает толи времени толи еще чего, вот тут то и вступают в дело понимание происходящего. Да, к сожалению, организовать на прямую новое событие не получится,
зато косвенно это возможно, такая штука как таймер, окажет вам неоценимую услугу,
в организации подобного.
Реализация простых алгоритмов, как правило не вызывает
никаких подобных артефактов, но по мере его усложнения они возможны.
В подобных случаях, вы должны представлять не только как работает ваш код,
но и когда.
Под организацией события я имею ввиду именно активацию новой линии вычислений,
инициирированной получением сообщения, а не новый вид самого обработчика.
Неким подобием такой фичи, в ммв, являются полупаралельные процессы, возможно и в нб есть нечто похожее?

Автор - Alex3A
Дата добавления - 30 Августа 2009 в 12:46
ВадимДата: Вс, 30 Августа 2009, 13:19 | Сообщение # 52
Генератор идей
Quote (Peter)
Правда, неплохо будет учесть, что NeoBook это не Delphi, и "организовать новое событие" (в дополнение к уже имеющимся), к сожалению, не получится.
Если я правильно понял, то есть смысл, для программинга в NB, образно говоря, "не вешать весь код на одну кнопку", а по возможности разделять код. Ведь часть функций могут быть выполнены при загрузке приложения, часть - при загрузке нужной страницы, часть - при неведении мышки на ту же кнопку и т.д. ...

Quote (Peter)
Ну, если есть масса свободного времени, то почему бы и нет....
Поискал, но в википедии не нашел ничего путного по системным сообщениям, а погуглив понял, что использование системных сообщений больше относится к использованию API и "точечной доводке приложений" крутого уровня... В общем, для практики, мне пока рановато.

Quote (Alex3A)
и вступают в дело понимание происходящего
Quote (Peter)
Если только для "общего развития"...
Да, "понимание происходящего" никогда не помешает. Собственно для этого "общее развитие" и требуется. Хотя я чем больше изучаю NB, тем больше верю в ее практически неограниченные возможности, а учитывая, что NB тоже на месте не стоит, то кто его знает, что и когда пригодится...


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (Peter)
Правда, неплохо будет учесть, что NeoBook это не Delphi, и "организовать новое событие" (в дополнение к уже имеющимся), к сожалению, не получится.
Если я правильно понял, то есть смысл, для программинга в NB, образно говоря, "не вешать весь код на одну кнопку", а по возможности разделять код. Ведь часть функций могут быть выполнены при загрузке приложения, часть - при загрузке нужной страницы, часть - при неведении мышки на ту же кнопку и т.д. ...

Quote (Peter)
Ну, если есть масса свободного времени, то почему бы и нет....
Поискал, но в википедии не нашел ничего путного по системным сообщениям, а погуглив понял, что использование системных сообщений больше относится к использованию API и "точечной доводке приложений" крутого уровня... В общем, для практики, мне пока рановато.

Quote (Alex3A)
и вступают в дело понимание происходящего
Quote (Peter)
Если только для "общего развития"...
Да, "понимание происходящего" никогда не помешает. Собственно для этого "общее развитие" и требуется. Хотя я чем больше изучаю NB, тем больше верю в ее практически неограниченные возможности, а учитывая, что NB тоже на месте не стоит, то кто его знает, что и когда пригодится...

Автор - Вадим
Дата добавления - 30 Августа 2009 в 13:19
bodunovaДата: Вс, 29 Января 2012, 15:31 | Сообщение # 53
Новичок
DEMBEL,
Quote (DEMBEL)
надо еще сделать урок (или статью) ну для совсем уж начинающих (о интерфейсе, значениях всяких кнопок, свойств и обьектов, простейших приемах кодинга) чтоб меньше было идиотских вопросов потом...


ооо.. это ровно мне..:) ДА! поддерживаю.. Очень надо!:)) И лучше.. если все это будет не текстовыми, а видеоуроками
 
СообщениеDEMBEL,
Quote (DEMBEL)
надо еще сделать урок (или статью) ну для совсем уж начинающих (о интерфейсе, значениях всяких кнопок, свойств и обьектов, простейших приемах кодинга) чтоб меньше было идиотских вопросов потом...


ооо.. это ровно мне..:) ДА! поддерживаю.. Очень надо!:)) И лучше.. если все это будет не текстовыми, а видеоуроками

Автор - bodunova
Дата добавления - 29 Января 2012 в 15:31
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск: