Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Peter, DEMBEL  
Форум NeoBook » Всё о программе NeoBook » Сценарии и скриптовые языки в Neobook » Библиотека функций (Для начинающих)
Библиотека функций
СергейДата: Вт, 25 Августа 2009, 16:46 | Сообщение # 1
Необукер
Еще один урок для начинающих
Использование "Библиотеки функций" в NeoBook


Quote (Справка)
Библиотека функций служит для хранения часто используемых последовательностей команд Action commands, называемых функциями.

Для чего она нужна?!... Ну например код:
Quote
FileExists "C:\Variables.var" "[Exists]"
If "[Exists]" "=" "True"
LoadVariables "C:\Variables.var"
EndIf
или
FileExists "C:\test.txt" "[Exists]"
If "[Exists]" "=" "True"
LoadVariables "C:\test.txt"
Else
FileWrite "C:\test.txt" "All" "param=test"
EndIf

Этот код рекомендуется писать всякий раз перед обращением к внешнему файлу, во избежание ошибок. А если в проекте несколько раз надо загружать данные?! Согласитесь неудобно каждый раз писать проверку. Вот тут на помощь приходит "Библиотека функций". Ее можно активировать командой "Call". В нашем примере будет выглядеть так:
Quote
Call "func1" "C:\Variables.var"
или
Call "func2" " C:\test.txt " "param=test"

Ну что проще?! :)
С помощью "Библиотека функций" можно упростить приложение, что существенно сокращает время.
В этом уроке я просто покажу вам, как пользоваться "Библиотекой функций".
весь код использован исключительно для ознакомительных целях!.

Открываем новый проект, любой размер
нажимаем клавишу быстрого вызова "F11" откроется диалоговое окно? в нем выбираем "новая функция"

в выпадающем списке выбираем "NeoBook"
Прикрепления: 7881587.jpg (70.6 Kb) · 3674544.jpg (72.4 Kb)


Сообщение отредактировано
Сергей - Пн, 22 Августа 2011, 14:31
 
СообщениеЕще один урок для начинающих
Использование "Библиотеки функций" в NeoBook


Quote (Справка)
Библиотека функций служит для хранения часто используемых последовательностей команд Action commands, называемых функциями.

Для чего она нужна?!... Ну например код:
Quote
FileExists "C:\Variables.var" "[Exists]"
If "[Exists]" "=" "True"
LoadVariables "C:\Variables.var"
EndIf
или
FileExists "C:\test.txt" "[Exists]"
If "[Exists]" "=" "True"
LoadVariables "C:\test.txt"
Else
FileWrite "C:\test.txt" "All" "param=test"
EndIf

Этот код рекомендуется писать всякий раз перед обращением к внешнему файлу, во избежание ошибок. А если в проекте несколько раз надо загружать данные?! Согласитесь неудобно каждый раз писать проверку. Вот тут на помощь приходит "Библиотека функций". Ее можно активировать командой "Call". В нашем примере будет выглядеть так:
Quote
Call "func1" "C:\Variables.var"
или
Call "func2" " C:\test.txt " "param=test"

Ну что проще?! :)
С помощью "Библиотека функций" можно упростить приложение, что существенно сокращает время.
В этом уроке я просто покажу вам, как пользоваться "Библиотекой функций".
весь код использован исключительно для ознакомительных целях!.

Открываем новый проект, любой размер
нажимаем клавишу быстрого вызова "F11" откроется диалоговое окно? в нем выбираем "новая функция"

в выпадающем списке выбираем "NeoBook"

Автор - Сергей
Дата добавления - 25 Августа 2009 в 16:46
СергейДата: Вт, 25 Августа 2009, 16:47 | Сообщение # 2
Необукер
Откроется Редактор функций.

Прежде чем кодить, давайте поближе расмотрим функции которые нам понадобятся для работы с тхт-файлами
1-это открыть :), Мы открыли, а дальше...И так, что можно с делать с открытым файлом?!
-прочитать, для простоты будем каждому действию присваивать марекры, например для прочить - "rd" (сокращено от слова read)
-записать, марекр будет "wr"
2-удалить, маркер "dl"
Мы определили 3 параметра которые будут отвечать за действия нашей функции, создадим для них переменную, например "action"(действие), т.е.прмерно будет выглядеть так (SetVar "[action]" "wr")
В Редакторе в верхнее поле вносим следующий код
Code
.проверяем на наличие файла,
FileExists "[files]" "[ok]"
.если файл есть, то смотрим что надо с ним делать
   If "[ok]" "=" "True"
.если в переменой стоит ключевое слово "dl",
    If "[action]" "=" "dl"
.удаляем файл
     FileErase "[files]"
     SetVar "[ok]" ""
     Return
    EndIf
    If "[action]" "=" "wr"
.если в переменой стоит ключевое слово "wr", означающая запись
.тогда проверяем на пустоту переменные отвечающие за другие ключевые переменные
     IfEx "[numString]<>[#34][#34] AND [dataWrite]<>[#34][#34]"
.убеждаемся, что они не пусты
.записываем в файл данные
      FileWrite "[files]" "[numString]" "[dataWrite]"
     EndIf
    EndIf
     If "[action]" "=" "rd"
      FileRead "[files]" "[numString]" "[dataWrite]"
     EndIf
   Else
     If "[action]" "=" "wr"
      IfEx "[numString]<>[#34][#34] AND [dataWrite]<>[#34][#34]"
       FileWrite "[files]" "[numString]" "[dataWrite]"
      EndIf
     else
      SetVar "[eror]" "Файл не обнаружен"
     EndIf
   EndIf
ClearVariables "[files],[action],[numString],[dataWrite],[dataRead],[eror]"

Прикрепления: 7861460.jpg (86.7 Kb) · 9997664.jpg (144.0 Kb)


Сообщение отредактировано
sp3d - Ср, 26 Августа 2009, 20:01
 
СообщениеОткроется Редактор функций.

Прежде чем кодить, давайте поближе расмотрим функции которые нам понадобятся для работы с тхт-файлами
1-это открыть :), Мы открыли, а дальше...И так, что можно с делать с открытым файлом?!
-прочитать, для простоты будем каждому действию присваивать марекры, например для прочить - "rd" (сокращено от слова read)
-записать, марекр будет "wr"
2-удалить, маркер "dl"
Мы определили 3 параметра которые будут отвечать за действия нашей функции, создадим для них переменную, например "action"(действие), т.е.прмерно будет выглядеть так (SetVar "[action]" "wr")
В Редакторе в верхнее поле вносим следующий код
Code
.проверяем на наличие файла,
FileExists "[files]" "[ok]"
.если файл есть, то смотрим что надо с ним делать
   If "[ok]" "=" "True"
.если в переменой стоит ключевое слово "dl",
    If "[action]" "=" "dl"
.удаляем файл
     FileErase "[files]"
     SetVar "[ok]" ""
     Return
    EndIf
    If "[action]" "=" "wr"
.если в переменой стоит ключевое слово "wr", означающая запись
.тогда проверяем на пустоту переменные отвечающие за другие ключевые переменные
     IfEx "[numString]<>[#34][#34] AND [dataWrite]<>[#34][#34]"
.убеждаемся, что они не пусты
.записываем в файл данные
      FileWrite "[files]" "[numString]" "[dataWrite]"
     EndIf
    EndIf
     If "[action]" "=" "rd"
      FileRead "[files]" "[numString]" "[dataWrite]"
     EndIf
   Else
     If "[action]" "=" "wr"
      IfEx "[numString]<>[#34][#34] AND [dataWrite]<>[#34][#34]"
       FileWrite "[files]" "[numString]" "[dataWrite]"
      EndIf
     else
      SetVar "[eror]" "Файл не обнаружен"
     EndIf
   EndIf
ClearVariables "[files],[action],[numString],[dataWrite],[dataRead],[eror]"


Автор - Сергей
Дата добавления - 25 Августа 2009 в 16:47
СергейДата: Вт, 25 Августа 2009, 16:48 | Сообщение # 3
Необукер
Разберем код Команда "FileExists" Проверить существование внешнего или вложенного файла. Возращает эта команда булево значение, т.е. "TRUE" если файл есть и "FALSE" если его нет. Далее идет оператор "IF" с помощью его мы узнаем есть ли в наличии файл. Если файл есть, то переходим к следующему оператору. Он проверяет переменую "action" равно ли она "dl", т.е. удалению, если да то удаляем файл и остановливаем выполнения сценария командой "Return"(Выйти из текущего сценария). Если там не "dl", то переходим к следующему оператору. Он смотрит чему равен "action", если "wr", то переходим к следующему оператору "IfEx". Так как нам для записи надо проверить еще две переменные на пустоту(во избежания ошибок)То будем проверять сразу 2 переменные "numString" и "dataWrite", это надо для того что в команде "FileWrite" нужно заполнить 3 параметра
Quote
Синтаксис: FileWrite "file name" "line number" "data", где
file name
Имя внешнего файла.
line number
Номер строки во внешнем файле, куда требуется произвести запись данных. Первая строка - 1, вторая - 2 и т.д. Если требуется просто добавить данные в конце файла, воспользуйтесь инструкцией "Append" вместо указания номера строки. Если необходимо заменить все содержимое файла, вместо номера строки следует указать "All".
data
Данные для записи.
вот в нашем коде переменая "numString" тоже самое что и "line number", а "dataWrite" тоже что и "data"
Тоже самое относится и к "action=rd"
Завершает функцию команда ClearVariables, этим мы очищаем отработаные переменные.

Осталось в нашей библиотеке определится с перемеными, которые понадобятся при вызове команды "Call", т.е. передавать данные и получать результат. За это отвечает Alias:

Quote
Alias(Псевдоним) - это имя, за которым скрываются данные того или иного параметра. "Alias" -это, по сути дела, специальная переменная, которую можно использовать в любой команде, включенной в функцию. Как и переменная, "Alias" - это область памяти отведенная для хранения той или иной информации. Каждому Псевдониму должно быть присвоено свое уникальное имя, заключенное в квадратные скобки ( [ ] ). При создании нового параметра по умолчанию Псевдоним получает имя в соответствии с порядковым номером параметра (например: [%1]). Тем не менее, Вы в любое время можете изменить это имя, для того, например, чтобы оно хоть как-то ассоциировалось с содержащейся в параметре информацией. В рассматриваемом нами примере мы псевдонимы [%1], [%2]... и т.д. заменим на свои переменные - [files] [action]... и т.д. описание ниже.
Alias - полезная и удобная вещь!

Чтобы добавить псевдонимы, кликаем кнопку "Добавить" (см. рис.)

Прикрепления: 3141242.jpg (142.7 Kb)


Сообщение отредактировано
sp3d - Пт, 28 Августа 2009, 10:31
 
СообщениеРазберем код Команда "FileExists" Проверить существование внешнего или вложенного файла. Возращает эта команда булево значение, т.е. "TRUE" если файл есть и "FALSE" если его нет. Далее идет оператор "IF" с помощью его мы узнаем есть ли в наличии файл. Если файл есть, то переходим к следующему оператору. Он проверяет переменую "action" равно ли она "dl", т.е. удалению, если да то удаляем файл и остановливаем выполнения сценария командой "Return"(Выйти из текущего сценария). Если там не "dl", то переходим к следующему оператору. Он смотрит чему равен "action", если "wr", то переходим к следующему оператору "IfEx". Так как нам для записи надо проверить еще две переменные на пустоту(во избежания ошибок)То будем проверять сразу 2 переменные "numString" и "dataWrite", это надо для того что в команде "FileWrite" нужно заполнить 3 параметра
Quote
Синтаксис: FileWrite "file name" "line number" "data", где
file name
Имя внешнего файла.
line number
Номер строки во внешнем файле, куда требуется произвести запись данных. Первая строка - 1, вторая - 2 и т.д. Если требуется просто добавить данные в конце файла, воспользуйтесь инструкцией "Append" вместо указания номера строки. Если необходимо заменить все содержимое файла, вместо номера строки следует указать "All".
data
Данные для записи.
вот в нашем коде переменая "numString" тоже самое что и "line number", а "dataWrite" тоже что и "data"
Тоже самое относится и к "action=rd"
Завершает функцию команда ClearVariables, этим мы очищаем отработаные переменные.

Осталось в нашей библиотеке определится с перемеными, которые понадобятся при вызове команды "Call", т.е. передавать данные и получать результат. За это отвечает Alias:

Quote
Alias(Псевдоним) - это имя, за которым скрываются данные того или иного параметра. "Alias" -это, по сути дела, специальная переменная, которую можно использовать в любой команде, включенной в функцию. Как и переменная, "Alias" - это область памяти отведенная для хранения той или иной информации. Каждому Псевдониму должно быть присвоено свое уникальное имя, заключенное в квадратные скобки ( [ ] ). При создании нового параметра по умолчанию Псевдоним получает имя в соответствии с порядковым номером параметра (например: [%1]). Тем не менее, Вы в любое время можете изменить это имя, для того, например, чтобы оно хоть как-то ассоциировалось с содержащейся в параметре информацией. В рассматриваемом нами примере мы псевдонимы [%1], [%2]... и т.д. заменим на свои переменные - [files] [action]... и т.д. описание ниже.
Alias - полезная и удобная вещь!

Чтобы добавить псевдонимы, кликаем кнопку "Добавить" (см. рис.)


Автор - Сергей
Дата добавления - 25 Августа 2009 в 16:48
СергейДата: Вт, 25 Августа 2009, 16:49 | Сообщение # 4
Необукер
в открывшемся окне пишешем как показано на рис.(если интересно подробности, то кликаем кнопку "Помощь")

Тким же способом создаем и другие параметры


Прикрепления: 8073793.jpg (51.0 Kb) · 1795892.jpg (49.2 Kb) · 7982933.jpg (54.3 Kb) · 4399435.jpg (53.6 Kb)
 
Сообщениев открывшемся окне пишешем как показано на рис.(если интересно подробности, то кликаем кнопку "Помощь")

Тким же способом создаем и другие параметры



Автор - Сергей
Дата добавления - 25 Августа 2009 в 16:49
СергейДата: Вт, 25 Августа 2009, 16:50 | Сообщение # 5
Необукер
По поводу переменной "dataRead", вывод данных будет там, где мы укажем при подключении команды "Call", а поможет нам опция "Variable(Переменная)" в свойствах "Параметр функции"

Чтоб нам всегда знать что эта за функция и какие параметры заполнять, можно добавить памятку. Кликните по кнопке "Коментарии" и запишите типа так

Quote
Выполняемые действия имеют следующие маркеры:
dl=удалитьфайл , wr=запись , rd=прочитать
Для "action=wr" параметр "номер строки" может содержать следующее - Append или All
Для "action=rd" параметр "номер строки" может содержать следующее - номер строки или All
нажмите кнопку "ОК".

Ну вот функцию подготовили, нажимаем на редакторе кнопку "ОК" будет предложено сахранить, сахраняем я назвал "files", пишем только имя без расширения(только не меняйте путь, библиотеки хранятся тут: C:\Program Files\NeoBook 5.6.2\Functions)
Теперь проверим нашу функцию, вешаем следующий код на кнопку

Code
Call "files" "[PubDir]test.txt" "wr" "all" "Привет! файл создан с помощью Библиотеки Функции!" ""

Прикрепления: 9018383.jpg (120.4 Kb) · 2866522.jpg (73.9 Kb) · 1909167.jpg (52.1 Kb)


Сообщение отредактировано
sp3d - Пт, 28 Августа 2009, 10:29
 
СообщениеПо поводу переменной "dataRead", вывод данных будет там, где мы укажем при подключении команды "Call", а поможет нам опция "Variable(Переменная)" в свойствах "Параметр функции"

Чтоб нам всегда знать что эта за функция и какие параметры заполнять, можно добавить памятку. Кликните по кнопке "Коментарии" и запишите типа так

Quote
Выполняемые действия имеют следующие маркеры:
dl=удалитьфайл , wr=запись , rd=прочитать
Для "action=wr" параметр "номер строки" может содержать следующее - Append или All
Для "action=rd" параметр "номер строки" может содержать следующее - номер строки или All
нажмите кнопку "ОК".

Ну вот функцию подготовили, нажимаем на редакторе кнопку "ОК" будет предложено сахранить, сахраняем я назвал "files", пишем только имя без расширения(только не меняйте путь, библиотеки хранятся тут: C:\Program Files\NeoBook 5.6.2\Functions)
Теперь проверим нашу функцию, вешаем следующий код на кнопку

Code
Call "files" "[PubDir]test.txt" "wr" "all" "Привет! файл создан с помощью Библиотеки Функции!" ""


Автор - Сергей
Дата добавления - 25 Августа 2009 в 16:50
СергейДата: Вт, 25 Августа 2009, 16:51 | Сообщение # 6
Необукер
на этом урок закончился, благодорю за внимание
в архиве исходник и файл библиотеки
Прикрепления: biblioteka.rar (2.6 Kb)


Сообщение отредактировано
sp3d - Ср, 26 Августа 2009, 20:30
 
Сообщениена этом урок закончился, благодорю за внимание
в архиве исходник и файл библиотеки

Автор - Сергей
Дата добавления - 25 Августа 2009 в 16:51
RezzoxeДата: Вт, 25 Августа 2009, 17:32 | Сообщение # 7
sp3d, честно это всё хорошо что ты занялся уроками,
получается просто отлично, вот только я одного понять не могу

Почему ты не создаёшь их в этом разделе?

И в названии темы писать не "Для начинающих" (ибо уже две такие темы есть %) )
а попросту название урока!

;)

 
Сообщениеsp3d, честно это всё хорошо что ты занялся уроками,
получается просто отлично, вот только я одного понять не могу

Почему ты не создаёшь их в этом разделе?

И в названии темы писать не "Для начинающих" (ибо уже две такие темы есть %) )
а попросту название урока!

;)


Автор - Rezzoxe
Дата добавления - 25 Августа 2009 в 17:32
СергейДата: Вт, 25 Августа 2009, 17:51 | Сообщение # 8
Необукер
Quote (Омар)
Почему
потому, что потому :)
Quote (Омар)
Для начинающих
значит для начинающих, а в низу развернутая тема
Когда переедем на новый ресурс, там будет раздел "Уроки", вот там мои названия будут в тему, т.к. есть "для начинающих", есть "для продвинутых"

Может те кому, что то не нравится, сами сделают с "хорошим" названием и в "нужном месте"?!
И еще давайте по конструктивней, по теме

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

Сообщение отредактировано
Сергей - Пт, 10 Сентября 2010, 01:01
 
Сообщение
Quote (Омар)
Почему
потому, что потому :)
Quote (Омар)
Для начинающих
значит для начинающих, а в низу развернутая тема
Когда переедем на новый ресурс, там будет раздел "Уроки", вот там мои названия будут в тему, т.к. есть "для начинающих", есть "для продвинутых"

Может те кому, что то не нравится, сами сделают с "хорошим" названием и в "нужном месте"?!
И еще давайте по конструктивней, по теме

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


Автор - Сергей
Дата добавления - 25 Августа 2009 в 17:51
DEMBELДата: Вт, 25 Августа 2009, 17:56 | Сообщение # 9
Наш дизайнер
этим урокам не слишком долго (я надеюсь) тут висеть, потом разберемся куда чего... так что какая разница.
------------
надо еще сделать урок (или статью) ну для совсем уж начинающих (о интерфейсе, значениях всяких кнопок, свойств и обьектов, простейших приемах кодинга) чтоб меньше было идиотских вопросов потом...


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениеэтим урокам не слишком долго (я надеюсь) тут висеть, потом разберемся куда чего... так что какая разница.
------------
надо еще сделать урок (или статью) ну для совсем уж начинающих (о интерфейсе, значениях всяких кнопок, свойств и обьектов, простейших приемах кодинга) чтоб меньше было идиотских вопросов потом...

Автор - DEMBEL
Дата добавления - 25 Августа 2009 в 17:56
СергейДата: Вт, 25 Августа 2009, 18:10 | Сообщение # 10
Необукер
Quote (DEMBEL)
надо еще сделать урок (или статью) ну для совсем уж начинающих (о интерфейсе, значениях всяких кнопок, свойств и обьектов, простейших приемах кодинга) чтоб меньше было идиотских вопросов потом..
согласен
 
Сообщение
Quote (DEMBEL)
надо еще сделать урок (или статью) ну для совсем уж начинающих (о интерфейсе, значениях всяких кнопок, свойств и обьектов, простейших приемах кодинга) чтоб меньше было идиотских вопросов потом..
согласен

Автор - Сергей
Дата добавления - 25 Августа 2009 в 18:10
ВадимДата: Чт, 27 Августа 2009, 11:31 | Сообщение # 11
Генератор идей
Quote (sp3d)
Хочу вам представить полезную функцию под названием "Библиотка функций"

Очень полезная и актуальная тема! Будет здОрово, если потом появятся и более сложные примеры создания/использования типичных, часто используемых функций. Библиотека функций - большая и хорошая тема! А подредактировать и улучшить (а тем более перенести или переназвать) любой урок можно, было бы что улучшать! :) Спасибо!
В порядке предложения: можно добавить инфу о разнице между функциями и подпрограммами...


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (sp3d)
Хочу вам представить полезную функцию под названием "Библиотка функций"

Очень полезная и актуальная тема! Будет здОрово, если потом появятся и более сложные примеры создания/использования типичных, часто используемых функций. Библиотека функций - большая и хорошая тема! А подредактировать и улучшить (а тем более перенести или переназвать) любой урок можно, было бы что улучшать! :) Спасибо!
В порядке предложения: можно добавить инфу о разнице между функциями и подпрограммами...

Автор - Вадим
Дата добавления - 27 Августа 2009 в 11:31
СергейДата: Чт, 27 Августа 2009, 11:41 | Сообщение # 12
Необукер
Quote (VadimLevkin)
потом появятся и более сложные примеры создания/использования типичных, часто используемых функций.
VadimLevkin, а что мешает!?
Quote (VadimLevkin)
В порядке предложения: можно добавить инфу о разнице между функциями и подпрограммами...
Сначала надо создать урок последнего...
 
Сообщение
Quote (VadimLevkin)
потом появятся и более сложные примеры создания/использования типичных, часто используемых функций.
VadimLevkin, а что мешает!?
Quote (VadimLevkin)
В порядке предложения: можно добавить инфу о разнице между функциями и подпрограммами...
Сначала надо создать урок последнего...

Автор - Сергей
Дата добавления - 27 Августа 2009 в 11:41
ВадимДата: Чт, 27 Августа 2009, 12:21 | Сообщение # 13
Генератор идей
Quote (sp3d)
а что мешает!?
Дык, к моему сожалению, мне еще рано тут постить ;).
Quote (sp3d)
Сначала надо создать урок последнего...
Тебе виднее, хотя, думаю, что можно обозначить просто само логическое отличие, ведь важно понимать - когда есть смысл использовать создание функции, а когда подпрограммы. Например, мне интересно понять (вроде Алекс объяснял мне уже это, но видимо я опять что-то усложняю...), если функция возвращает значение каких-либо параметров/переменных, то чем же она тогда все же отличается от подпрограммы, если таковая тоже это делает (если она так создана). И то, и другое - цит.по Справке: "хранилище для часто употребимых команд или групп команд", только вызовом отличаются...? Ну, еще интерфейсом создания - при создании функции можно использовать до 9 специальных параметров. Кстати, а что мешает использовать их в подпрограмме и в любом количестве?

Проясните, кто владеет темой, плиз - в чем принципиальная разница между функциями (из библиотеки функций) и подпрограммами, и когда следует использовать одно, а когда другое?

И еще, вот этот фрагмент Справки (Book Properties > Actions (Команды)) не совсем понятен:

Quote
В окне подпрограммы не имеет смысла размещать команды, не относящиеся к подпрограмме, так как они не смогут (и не будут) запускаться в ответ на какие-либо события. Для этого существуют другие разделы.
Что значит "не относящиеся к подпрограмме"??


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (sp3d)
а что мешает!?
Дык, к моему сожалению, мне еще рано тут постить ;).
Quote (sp3d)
Сначала надо создать урок последнего...
Тебе виднее, хотя, думаю, что можно обозначить просто само логическое отличие, ведь важно понимать - когда есть смысл использовать создание функции, а когда подпрограммы. Например, мне интересно понять (вроде Алекс объяснял мне уже это, но видимо я опять что-то усложняю...), если функция возвращает значение каких-либо параметров/переменных, то чем же она тогда все же отличается от подпрограммы, если таковая тоже это делает (если она так создана). И то, и другое - цит.по Справке: "хранилище для часто употребимых команд или групп команд", только вызовом отличаются...? Ну, еще интерфейсом создания - при создании функции можно использовать до 9 специальных параметров. Кстати, а что мешает использовать их в подпрограмме и в любом количестве?

Проясните, кто владеет темой, плиз - в чем принципиальная разница между функциями (из библиотеки функций) и подпрограммами, и когда следует использовать одно, а когда другое?

И еще, вот этот фрагмент Справки (Book Properties > Actions (Команды)) не совсем понятен:

Quote
В окне подпрограммы не имеет смысла размещать команды, не относящиеся к подпрограмме, так как они не смогут (и не будут) запускаться в ответ на какие-либо события. Для этого существуют другие разделы.
Что значит "не относящиеся к подпрограмме"??

Автор - Вадим
Дата добавления - 27 Августа 2009 в 12:21
PeterДата: Чт, 27 Августа 2009, 12:35 | Сообщение # 14
Админ NeoBook
Quote (VadimLevkin)
просто само логическое отличие, ведь важно понимать - когда есть смысл использовать создание функции, а когда подпрограммы.

Самя главная разница заключена в том, что подпрограммы (в отличие от функций) применяются только в конкретном проекте, а функции можно использовать в любых нескольких самых разных проектах. К тому же функции можно более удобно оформить и использовать (имеется ввиду описание функции, её параметров).
И впридачу, функции можно сейчас писАть и на VBS и на Java, а подпрограммы только на языке самой NB.
Quote (VadimLevkin)
вроде Алекс объяснял мне уже это, но видимо я опять что-то усложняю

Я не видел поста Алекса, но не исключено, что он объяснял разницу между функциями и процедурами. Если так, то это имеет значение, например, в Delphi, а в NB теряет смысл.
Quote (VadimLevkin)
Что значит "не относящиеся к подпрограмме"??

Видимо имеются ввиду случайные строки, не попадающие между меткой имени подпрограммы и командой Return.


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

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

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


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

Самя главная разница заключена в том, что подпрограммы (в отличие от функций) применяются только в конкретном проекте, а функции можно использовать в любых нескольких самых разных проектах. К тому же функции можно более удобно оформить и использовать (имеется ввиду описание функции, её параметров).
И впридачу, функции можно сейчас писАть и на VBS и на Java, а подпрограммы только на языке самой NB.
Quote (VadimLevkin)
вроде Алекс объяснял мне уже это, но видимо я опять что-то усложняю

Я не видел поста Алекса, но не исключено, что он объяснял разницу между функциями и процедурами. Если так, то это имеет значение, например, в Delphi, а в NB теряет смысл.
Quote (VadimLevkin)
Что значит "не относящиеся к подпрограмме"??

Видимо имеются ввиду случайные строки, не попадающие между меткой имени подпрограммы и командой Return.

Автор - Peter
Дата добавления - 27 Августа 2009 в 12:35
СергейДата: Чт, 27 Августа 2009, 12:45 | Сообщение # 15
Необукер
Quote (VadimLevkin)
в чем принципиальная разница между функциями (из библиотеки функций) и подпрограммами
как я думаю по этому поводу:
Функция — один из видов подпрограммы, но отличается - процедурой, т.е. функция возвращает значение.
А её вызов может использоваться в программе, как выражение. Но это в пхп можно пример:
Code
function test(){
$str="привет! я функция";
return $str;
}
echo tect();
, а в нб вроде нет. А просто подпрограмма, как ":подпрограмма" невозращает значение, просто исполняет свой блок, т.е. серию команд до команды "return"

Добавлено (27 Август 2009, 12:45)
---------------------------------------------

Quote (Peter)
Самя главная разница заключена в том, что подпрограммы (в отличие от функций) применяются только в конкретном проекте, а функции можно использовать в любых нескольких самых разных проектах. К тому же функции можно более удобно оформить и использовать (имеется ввиду описание функции, её параметров)
ну вот Петр все объянил :) Привет!, как протекает прцесс реалибитации?!
 
Сообщение
Quote (VadimLevkin)
в чем принципиальная разница между функциями (из библиотеки функций) и подпрограммами
как я думаю по этому поводу:
Функция — один из видов подпрограммы, но отличается - процедурой, т.е. функция возвращает значение.
А её вызов может использоваться в программе, как выражение. Но это в пхп можно пример:
Code
function test(){
$str="привет! я функция";
return $str;
}
echo tect();
, а в нб вроде нет. А просто подпрограмма, как ":подпрограмма" невозращает значение, просто исполняет свой блок, т.е. серию команд до команды "return"

Добавлено (27 Август 2009, 12:45)
---------------------------------------------

Quote (Peter)
Самя главная разница заключена в том, что подпрограммы (в отличие от функций) применяются только в конкретном проекте, а функции можно использовать в любых нескольких самых разных проектах. К тому же функции можно более удобно оформить и использовать (имеется ввиду описание функции, её параметров)
ну вот Петр все объянил :) Привет!, как протекает прцесс реалибитации?!

Автор - Сергей
Дата добавления - 27 Августа 2009 в 12:45
PeterДата: Чт, 27 Августа 2009, 12:48 | Сообщение # 16
Админ NeoBook
Quote (sp3d)
Функция — один из видов подпрограммы, но отличается - процедурой, т.е. функция возвращает значение.

Подпрограмма тоже может возвращать значение чего либо, но у подпрограмм нет такой штуки как передаваемые аргументы (параметры).
А NB-функция может и не возвращать обязательно значение, а, например, просто вывести сообщение о ошибке и т.п.

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

Немного коряво объяснл, но думаю, что в целом понятно....


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

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

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


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (sp3d)
Функция — один из видов подпрограммы, но отличается - процедурой, т.е. функция возвращает значение.

Подпрограмма тоже может возвращать значение чего либо, но у подпрограмм нет такой штуки как передаваемые аргументы (параметры).
А NB-функция может и не возвращать обязательно значение, а, например, просто вывести сообщение о ошибке и т.п.

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

Немного коряво объяснл, но думаю, что в целом понятно....


Автор - Peter
Дата добавления - 27 Августа 2009 в 12:48
ВадимДата: Чт, 27 Августа 2009, 12:56 | Сообщение # 17
Генератор идей
Quote (Peter)
Самя главная разница заключена в том, что подпрограммы (в отличие от функций) применяются только в конкретном проекте, а функции можно использовать в любых нескольких самых разных проектах.
Спасибо, Peter! Блин, я мог сам догадаться :D . Т.е., если я правильно понимаю, если подпрограмма является более менее универсальной и может пригодиться в других проектах, то следует оформить ее как функцию. Так? А если эта функция впоследствии редактируется, то в старых проектах она тоже заработает (при новой компиляции) по новому... Наверное имена параметров, их количество и пр. тогда не стоит менять... ? Как заранее "подстелить соломку" при написании функций? Я имею ввиду что следует делать и не делать, заранее подразумевая использование функции в разных проектах?
Quote (Peter)
имеются ввиду случайные строки,
Это как? Имеются ввиду строки исполняемого кода, параллельно подпрограмме (типа мышкой шевельнул, пока подпрограмма шла)?


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

Автор - Вадим
Дата добавления - 27 Августа 2009 в 12:56
СергейДата: Чт, 27 Августа 2009, 13:04 | Сообщение # 18
Необукер
Quote (Peter)
Подпрограмма тоже может возвращать значение чего либо
это интересно, у меня есть вопрос по поводу этого:
есть подпрограмма
Code
:test
Loop "1" "5" "[i]"
SetVar "[var]" "[i]"
EndLoop
Return

и функция
Code
Loop "1" "5" "[j]"
SetVar "[%1]" "[j]"
EndLoop
вот библ. вариант
Quote
{NeoBook Function}
Version=5,60
Language=NeoBook
Param=[%1]|Variable|Param1
{End}
Loop "1" "5" "[j]"
SetVar "[%1]" "[j]"
EndLoop

кнопка с кодом
Code
Call "Bookmark Load" "[Rezult]"
GoSub "test"

функция возращает результат, а подпрограмма нет, потому что в нее надо дополнительно вписывать этот код
Code
SetVar "[Rezult]" "[var]"
, а функция сама по себе возращает


Сообщение отредактировано
sp3d - Чт, 27 Августа 2009, 13:06
 
Сообщение
Quote (Peter)
Подпрограмма тоже может возвращать значение чего либо
это интересно, у меня есть вопрос по поводу этого:
есть подпрограмма
Code
:test
Loop "1" "5" "[i]"
SetVar "[var]" "[i]"
EndLoop
Return

и функция
Code
Loop "1" "5" "[j]"
SetVar "[%1]" "[j]"
EndLoop
вот библ. вариант
Quote
{NeoBook Function}
Version=5,60
Language=NeoBook
Param=[%1]|Variable|Param1
{End}
Loop "1" "5" "[j]"
SetVar "[%1]" "[j]"
EndLoop

кнопка с кодом
Code
Call "Bookmark Load" "[Rezult]"
GoSub "test"

функция возращает результат, а подпрограмма нет, потому что в нее надо дополнительно вписывать этот код
Code
SetVar "[Rezult]" "[var]"
, а функция сама по себе возращает

Автор - Сергей
Дата добавления - 27 Августа 2009 в 13:04
ВадимДата: Чт, 27 Августа 2009, 13:08 | Сообщение # 19
Генератор идей
Quote (Peter)
Термин "возвращать" приментельно к подпрограмме не совсем правильно, т.к. возвращают обычно результат через передаваемый функции аргумент.

Вот кстати! Давно хотел прояснить значение этого чудесного термина. Peter, не сочти за глупый вопрос, расшифруй пожалуйста подробнее - что значит "возвращать"?? Я запутался.
И еще:
Quote (Peter)
Подпрограмма скорее просто может занести результат своей деятельности в какую-то заранее оговоренную (в этой же подпрограмме) переменную.
Функция же занесет этот результат в ту переменную, какую вы укажете в соответствующем параметре функции.
И подпрограмма и функция заносят значение в заранее оговоренные переменые, ну кроме "[Self]" или чего-то другого в этом роде. Так в чем по этому признаку между ними разница?


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (Peter)
Термин "возвращать" приментельно к подпрограмме не совсем правильно, т.к. возвращают обычно результат через передаваемый функции аргумент.

Вот кстати! Давно хотел прояснить значение этого чудесного термина. Peter, не сочти за глупый вопрос, расшифруй пожалуйста подробнее - что значит "возвращать"?? Я запутался.
И еще:
Quote (Peter)
Подпрограмма скорее просто может занести результат своей деятельности в какую-то заранее оговоренную (в этой же подпрограмме) переменную.
Функция же занесет этот результат в ту переменную, какую вы укажете в соответствующем параметре функции.
И подпрограмма и функция заносят значение в заранее оговоренные переменые, ну кроме "[Self]" или чего-то другого в этом роде. Так в чем по этому признаку между ними разница?

Автор - Вадим
Дата добавления - 27 Августа 2009 в 13:08
СергейДата: Чт, 27 Августа 2009, 13:08 | Сообщение # 20
Необукер
Quote (Peter)
Термин "возвращать" приментельно к подпрограмме не совсем правильно, т.к. возвращают обычно результат через передаваемый функции аргумент. Подпрограмма скорее просто может занести результат своей деятельности в какую-то заранее оговоренную (в этой же подпрограмме) переменную. Функция же занесет этот результат в ту переменную, какую вы укажете в соответствующем параметре функции.
ну вот! а я пока писал пример ты уже запостил :)
ну ясно, ладно мне надо идти, до вечера
 
Сообщение
Quote (Peter)
Термин "возвращать" приментельно к подпрограмме не совсем правильно, т.к. возвращают обычно результат через передаваемый функции аргумент. Подпрограмма скорее просто может занести результат своей деятельности в какую-то заранее оговоренную (в этой же подпрограмме) переменную. Функция же занесет этот результат в ту переменную, какую вы укажете в соответствующем параметре функции.
ну вот! а я пока писал пример ты уже запостил :)
ну ясно, ладно мне надо идти, до вечера

Автор - Сергей
Дата добавления - 27 Августа 2009 в 13:08
ВадимДата: Чт, 27 Августа 2009, 13:10 | Сообщение # 21
Генератор идей
Quote (sp3d)
функция возращает результат, а подпрограмма нет, потому что в нее надо дополнительно вписывать этот код
Интересно, почему?


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (sp3d)
функция возращает результат, а подпрограмма нет, потому что в нее надо дополнительно вписывать этот код
Интересно, почему?

Автор - Вадим
Дата добавления - 27 Августа 2009 в 13:10
СергейДата: Чт, 27 Августа 2009, 13:10 | Сообщение # 22
Необукер
Quote (VadimLevkin)
Вот кстати! Давно хотел прояснить значение этого чудесного термина
тут термин http://ru.wikipedia.org/wiki/Функция_(программирование) про функцию, там моно по ссылкам или поиску найти и "возращение значения"


Сообщение отредактировано
sp3d - Чт, 27 Августа 2009, 13:12
 
Сообщение
Quote (VadimLevkin)
Вот кстати! Давно хотел прояснить значение этого чудесного термина
тут термин http://ru.wikipedia.org/wiki/Функция_(программирование) про функцию, там моно по ссылкам или поиску найти и "возращение значения"

Автор - Сергей
Дата добавления - 27 Августа 2009 в 13:10
PeterДата: Чт, 27 Августа 2009, 13:34 | Сообщение # 23
Админ NeoBook
Quote (VadimLevkin)
если подпрограмма является более менее универсальной и может пригодиться в других проектах, то следует оформить ее как функцию.

Да, совершенно верно!
Quote (VadimLevkin)
А если эта функция впоследствии редактируется, то в старых проектах она тоже заработает (при новой компиляции) по новому...

И это тоже совершенно верно!
Надо только не забывать сделанные функции архивировать где-нибудь на случай переустановки NB. ;)
Это если система вдруг слетит под "защитой" Нода... Всякое бывает... :)
Quote (VadimLevkin)
Как заранее "подстелить соломку" при написании функций?

Создавать их так же "универсально", как и сделаны команды в самой NB.

Quote (VadimLevkin)
Имеются ввиду строки исполняемого кода, параллельно подпрограмме (типа мышкой шевельнул, пока подпрограмма шла)?

Quote (Peter)
Видимо имеются ввиду случайные строки, не попадающие между меткой имени подпрограммы и командой Return

Описание (код) подпрограммы начинается с имени метки, и заканчивается словом (командой) Return
Мы вызываем подпрограмму при помощи GoSub с указанием МЕТКИ ИМЕНИ подпрограммы, а не ёё первой строки кода.
Если же в секции подпрограмм окажуться просто "голые" команды, не входящие в тело какой-либо подпрограммы, то эти команды вызвать будет невозможно!

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

Quote (VadimLevkin)
И подпрограмма и функция заносят значение в заранее оговоренные переменые, ну кроме "[Self]" или чего-то другого в этом роде. Так в чем по этому признаку между ними разница?

Нет.
Это в подпрограмме переменная для результата раз и навсегда "оговорена", в функции же эту переменную можно менять, потому-что мы можем передать имя переменной в функцию как аргумент (при помощи CALL), а подпрограмме (GoSub) никакие аргументы (параметры) напрямую не передаются, кроме имени-метки подпрограммы.

Добавлено (27 Август 2009, 13:34)
---------------------------------------------
Кроме того, у функции ЕСТЬ параметры, а у подпрограммы их НЕТ!


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

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

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


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (VadimLevkin)
если подпрограмма является более менее универсальной и может пригодиться в других проектах, то следует оформить ее как функцию.

Да, совершенно верно!
Quote (VadimLevkin)
А если эта функция впоследствии редактируется, то в старых проектах она тоже заработает (при новой компиляции) по новому...

И это тоже совершенно верно!
Надо только не забывать сделанные функции архивировать где-нибудь на случай переустановки NB. ;)
Это если система вдруг слетит под "защитой" Нода... Всякое бывает... :)
Quote (VadimLevkin)
Как заранее "подстелить соломку" при написании функций?

Создавать их так же "универсально", как и сделаны команды в самой NB.

Quote (VadimLevkin)
Имеются ввиду строки исполняемого кода, параллельно подпрограмме (типа мышкой шевельнул, пока подпрограмма шла)?

Quote (Peter)
Видимо имеются ввиду случайные строки, не попадающие между меткой имени подпрограммы и командой Return

Описание (код) подпрограммы начинается с имени метки, и заканчивается словом (командой) Return
Мы вызываем подпрограмму при помощи GoSub с указанием МЕТКИ ИМЕНИ подпрограммы, а не ёё первой строки кода.
Если же в секции подпрограмм окажуться просто "голые" команды, не входящие в тело какой-либо подпрограммы, то эти команды вызвать будет невозможно!

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

Quote (VadimLevkin)
И подпрограмма и функция заносят значение в заранее оговоренные переменые, ну кроме "[Self]" или чего-то другого в этом роде. Так в чем по этому признаку между ними разница?

Нет.
Это в подпрограмме переменная для результата раз и навсегда "оговорена", в функции же эту переменную можно менять, потому-что мы можем передать имя переменной в функцию как аргумент (при помощи CALL), а подпрограмме (GoSub) никакие аргументы (параметры) напрямую не передаются, кроме имени-метки подпрограммы.

Добавлено (27 Август 2009, 13:34)
---------------------------------------------
Кроме того, у функции ЕСТЬ параметры, а у подпрограммы их НЕТ!


Автор - Peter
Дата добавления - 27 Августа 2009 в 13:34
ВадимДата: Чт, 27 Августа 2009, 13:35 | Сообщение # 24
Генератор идей
Quote (Peter)
Надо только не забывать сделанные функции архивировать где-нибудь на случай переустановки NB.
Очень мудрый совет! Спасибо! Кстати, NB могла бы при деинсталляции и предлагать это...
Quote (Peter)
Это если система вдруг слетит под "защитой" Нода... Всякое бывает...

scared ужасти какие!!! три тьфу, через левое плечо! :D
Мда, надо будет взять за привычку работая с NB не только проект бэкапить и в текстовики сохранять...
Quote (Peter)
Если же в секции подпрограмм окажутся просто "голые" команды, не входящие в тело какой-либо подпрограммы, то эти команды вызвать будет невозможно!
А, это имеется ввиду, что создавая подпрограммы вообще оформляйте их - давайте вверху им название, а внизу завершайте командой Return? Ну, это понятно. А иначе как NB поймет, что именно я хочу вызвать и где начинается/заканчивается подпрограмма.
Quote (Peter)
Создавать их так же "универсально", как и сделаны команды в самой NB.
Запомню! Спасибо за совет! Это значит, что параметры функции при создании функции обработать так, чтобы функция работала и при отсутствии каких либо параметров, так (если, например, очередной проект не все ее аргументы использует)? Так сказать в "малом" варианте. Мол если есть все параметры, то делаем то то, а если не все, то в таком случае так-то, в таком так-то и т.д.?


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (Peter)
Надо только не забывать сделанные функции архивировать где-нибудь на случай переустановки NB.
Очень мудрый совет! Спасибо! Кстати, NB могла бы при деинсталляции и предлагать это...
Quote (Peter)
Это если система вдруг слетит под "защитой" Нода... Всякое бывает...

scared ужасти какие!!! три тьфу, через левое плечо! :D
Мда, надо будет взять за привычку работая с NB не только проект бэкапить и в текстовики сохранять...
Quote (Peter)
Если же в секции подпрограмм окажутся просто "голые" команды, не входящие в тело какой-либо подпрограммы, то эти команды вызвать будет невозможно!
А, это имеется ввиду, что создавая подпрограммы вообще оформляйте их - давайте вверху им название, а внизу завершайте командой Return? Ну, это понятно. А иначе как NB поймет, что именно я хочу вызвать и где начинается/заканчивается подпрограмма.
Quote (Peter)
Создавать их так же "универсально", как и сделаны команды в самой NB.
Запомню! Спасибо за совет! Это значит, что параметры функции при создании функции обработать так, чтобы функция работала и при отсутствии каких либо параметров, так (если, например, очередной проект не все ее аргументы использует)? Так сказать в "малом" варианте. Мол если есть все параметры, то делаем то то, а если не все, то в таком случае так-то, в таком так-то и т.д.?

Автор - Вадим
Дата добавления - 27 Августа 2009 в 13:35
СергейДата: Чт, 27 Августа 2009, 13:41 | Сообщение # 25
Необукер
Quote (Peter)
Надо только не забывать сделанные функции архивировать где-нибудь на случай переустановки NB.
сделал прогу для этих целей она делает бэкапы плагов и функций, скоро выложу в "Готовые"
 
Сообщение
Quote (Peter)
Надо только не забывать сделанные функции архивировать где-нибудь на случай переустановки NB.
сделал прогу для этих целей она делает бэкапы плагов и функций, скоро выложу в "Готовые"

Автор - Сергей
Дата добавления - 27 Августа 2009 в 13:41
ВадимДата: Чт, 27 Августа 2009, 13:42 | Сообщение # 26
Генератор идей
Quote (Peter)
подпрограмме (GoSub) никакие аргументы (параметры) напрямую не передаются
Почему не передаются? Если подпрограмма использует переменную значение которой только что мы специальным образом изменили, то выходит, что и подпрограмма получит новое значение переменной. Аа..., дошло - зато ИМЯ самой переменной в подпрограмме поменять нельзя, только значение. Так? Т.е. в функцию можно прямо передать не только значение переменной, но и ее имя, а в подпрограмме только значение. ?


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (Peter)
подпрограмме (GoSub) никакие аргументы (параметры) напрямую не передаются
Почему не передаются? Если подпрограмма использует переменную значение которой только что мы специальным образом изменили, то выходит, что и подпрограмма получит новое значение переменной. Аа..., дошло - зато ИМЯ самой переменной в подпрограмме поменять нельзя, только значение. Так? Т.е. в функцию можно прямо передать не только значение переменной, но и ее имя, а в подпрограмме только значение. ?

Автор - Вадим
Дата добавления - 27 Августа 2009 в 13:42
СергейДата: Чт, 27 Августа 2009, 13:43 | Сообщение # 27
Необукер
Peter, я дополнил тему, но посмотри при случае и поправь если что не так в объяснении по поводу "Алиаса" или дополнить
 
СообщениеPeter, я дополнил тему, но посмотри при случае и поправь если что не так в объяснении по поводу "Алиаса" или дополнить

Автор - Сергей
Дата добавления - 27 Августа 2009 в 13:43
ВадимДата: Чт, 27 Августа 2009, 13:44 | Сообщение # 28
Генератор идей
Quote (sp3d)
сделал прогу для этих целей она делает бэкапы плагов и функций, скоро выложу в "Готовые"
Круто! thumbs_up Полезная вещь! Буду ждать! Понапридумываем тебе предложений :D !


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (sp3d)
сделал прогу для этих целей она делает бэкапы плагов и функций, скоро выложу в "Готовые"
Круто! thumbs_up Полезная вещь! Буду ждать! Понапридумываем тебе предложений :D !

Автор - Вадим
Дата добавления - 27 Августа 2009 в 13:44
СергейДата: Чт, 27 Августа 2009, 13:45 | Сообщение # 29
Необукер
Quote (VadimLevkin)
Почему не передаются?
вот :
Code
goSub "metka"
, а если были бы аргументы то выглядило так
Code
goSub "metka" "arg1" "arg2"
а вот в функции можно передать
Code
call "metka" "arg1" "arg2"
 
Сообщение
Quote (VadimLevkin)
Почему не передаются?
вот :
Code
goSub "metka"
, а если были бы аргументы то выглядило так
Code
goSub "metka" "arg1" "arg2"
а вот в функции можно передать
Code
call "metka" "arg1" "arg2"

Автор - Сергей
Дата добавления - 27 Августа 2009 в 13:45
ВадимДата: Чт, 27 Августа 2009, 14:27 | Сообщение # 30
Генератор идей
Quote (Peter)
Кроме того, у функции ЕСТЬ параметры, а у подпрограммы их НЕТ!
Это если под подпрограммой понимать то, что в NB.
Quote (Peter)
не исключено, что он объяснял разницу между функциями и процедурами

Если я правильно понял эту статью, то подпрограммы NB - это и есть процедуры, говоря на "общепрограммерском" языке.
И тогда подпрограммы делятся на:
- функции (возвращают значение, обладает параметрами/аргументами)
- процедуры (значение не возвращают, а только выполняют заданную работу, не обладает параметрами/аргументами)
В NB секцию подпрограмм следовало бы назвать "Процедуры", поскольку противопоставление функции - подпрограммы путает.


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)

Сообщение отредактировано
VadimLevkin - Чт, 27 Августа 2009, 14:32
 
Сообщение
Quote (Peter)
Кроме того, у функции ЕСТЬ параметры, а у подпрограммы их НЕТ!
Это если под подпрограммой понимать то, что в NB.
Quote (Peter)
не исключено, что он объяснял разницу между функциями и процедурами

Если я правильно понял эту статью, то подпрограммы NB - это и есть процедуры, говоря на "общепрограммерском" языке.
И тогда подпрограммы делятся на:
- функции (возвращают значение, обладает параметрами/аргументами)
- процедуры (значение не возвращают, а только выполняют заданную работу, не обладает параметрами/аргументами)
В NB секцию подпрограмм следовало бы назвать "Процедуры", поскольку противопоставление функции - подпрограммы путает.

Автор - Вадим
Дата добавления - 27 Августа 2009 в 14:27
Форум NeoBook » Всё о программе NeoBook » Сценарии и скриптовые языки в Neobook » Библиотека функций (Для начинающих)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: