Функции и процедуры в языке Перфолента.NET — различия между версиями
Материал из ТХАБ.РФ
Админ (обсуждение | вклад) м |
Админ (обсуждение | вклад) м (→Формат Процедуры) |
||
Строка 27: | Строка 27: | ||
'''КонецФункции''' | '''КонецФункции''' | ||
+ | === Пример Процедуры === | ||
+ | |||
+ | //--Пример процедуры | ||
+ | Процедура РазложениеНаМножители(цИсходноеЧисло тип Целое) | ||
+ | |||
+ | ТекщийДелитель=2 //текущий делитель - Внутренняя переменная | ||
+ | Пока цИсходноеЧисло <> 1 | ||
+ | Если цИсходноеЧисло % ТекщийДелитель = 0 | ||
+ | ВыводСтроки ТекщийДелитель | ||
+ | цИсходноеЧисло/=ТекщийДелитель //целочисленное деление | ||
+ | Иначе | ||
+ | ТекщийДелитель++ | ||
+ | КонецЕсли | ||
+ | КонецЦикла | ||
+ | КонецПроцедуры | ||
+ | |||
=== Возможные ошибки === | === Возможные ошибки === | ||
Каждую переменную (пока) надо объявлять отдельно. | Каждую переменную (пока) надо объявлять отдельно. | ||
Строка 36: | Строка 52: | ||
* ПРАВИЛЬНОЕ объявление переменных функции | * ПРАВИЛЬНОЕ объявление переменных функции | ||
− | Функция фИмяФункции(Переменная1 тип Число, Переменная2 тип Число, Переменная3 тип Строка) тип Число | + | Функция фИмяФункции(Переменная1 тип Число, Переменная2 тип Число, Переменная3 тип Строка) тип Число |
== Пример объявления и использования функций и процедур == | == Пример объявления и использования функций и процедур == |
Версия 20:30, 12 сентября 2020
'Показать Содержание Описание языка Перфолента.NET'
Содержание
Синтаксис языка Перфолента
2.1 Переменные. Объявление переменных, инициализация и их использование
2.2 Типы данных в языке Перфолента
2.3 Массивы. Создание массивов, заполнение данными, обращения к элементам и другие операции с массивами
2.4 Структура программы на языке Перфолента.Net
2.7 Оператор условного выбора блока кода Выбор Для
2.8 Функции и процедуры в языке Перфолента
2.9 Оператор Попытка. Структурная обработка ошибок
2.10 Работа с файлами
2.11 Директивы препроцессора. Выполнение действий перед компиляцией
Практика программирования на языке Перфолента
3.1. Многозадачность и многопоточность в языке Перфолента.Net
Вопросы
1. Может ли функция ввернуть 2 значения ?
Возврат Значение1 и Значение2
Формат
Функция фИмяФункции (Переменная1 тип Число, Переменная2 тип Строка) тип Число Объявление внутренних переменных Код функции Возврат ВозвращаемоеЗначение // типа Число КонецФункции
Пример Функции
Функция фКоличествоЭмитентов(ДоходностьБезРиска тип Число, Доходность_С_Риском тип Число, цДопустимоеКоличествоДефолтов тип Число) тип Число КоличествоЭмитентов = 100/ ((Доходность_С_Риском - ДоходностьБезРиска)/цДопустимоеКоличествоДефолтов) Возврат КоличествоЭмитентов КонецФункции
Формат Процедуры
процедура отличается от функции тем что не возвращает значение
Процедура фИмяПроцедуры(Переменная1 тип Число, Переменная2 тип Строка)
КонецФункции
Пример Процедуры
//--Пример процедуры Процедура РазложениеНаМножители(цИсходноеЧисло тип Целое) ТекщийДелитель=2 //текущий делитель - Внутренняя переменная Пока цИсходноеЧисло <> 1 Если цИсходноеЧисло % ТекщийДелитель = 0 ВыводСтроки ТекщийДелитель цИсходноеЧисло/=ТекщийДелитель //целочисленное деление Иначе ТекщийДелитель++ КонецЕсли КонецЦикла КонецПроцедуры
Возможные ошибки
Каждую переменную (пока) надо объявлять отдельно.
- НЕПРАВИЛЬНОЕ объявление переменных функции
Функция фИмяФункции(Переменная1, Переменная2 тип Число, Переменная3 тип Строка) тип Число
- ПРАВИЛЬНОЕ объявление переменных функции
Функция фИмяФункции(Переменная1 тип Число, Переменная2 тип Число, Переменная3 тип Строка) тип Число
Пример объявления и использования функций и процедур
#ТипСборки КонсольноеПриложение #ИспользоватьСтандартнуюБиблиотеку ИмпортИмён Промкод.Перфолента.Консоль //пример использования Фуниций и процедур Программа Облигации //-- Процедура Старт // основная процедура, точка начала программы // Как расчитать ROE - Возврат на инвестиции - ВозвратИнвестиций // Собственный капитал (equity) = активы (assets) — обязательства (Долги liabilities) // ROE (return on equity) = прибыль (net income)/собственный капитал (equity) // По сути, ВозвратИнвестиций — это та процентная ставка, под которую в компании работают средства акционеров. // Этот показатель является ключевым для определения эффективности деятельности компании. #Область "Расчёт Возврата инвестиций (ROE)" Перем ВозвратИнвестиций, ПрибыльПослеНалогов, Активы, Долги тип Число // обьявление переменных // инициализация переменных ПрибыльПослеНалогов = 100 Активы = 200 Долги = 600 // пример простых вычислений ВозвратИнвестиций = ПрибыльПослеНалогов/(Активы - Долги) // или для акций // ВозратИнвестицийАкции = ДивидендыПослеНалогов/ЦенаПокупкиАкции // 1) есть операторы ВыводСтроки и ВводСтроки (редактор их красным цветом показывает) // после которых не надо круглые скобки ставить. // А есть методы объекта Консоль Вывод и ВыводПС после которых надо круглые скобочки ставить // т.к. это вызов метода, а не оператор... // 2) в стандартной библиотеке уже есть функции для вычисления факториала: // Математика.ФакториалЧ и Математика.ФакториалБЦ... посмотрите в синтакс помощнике объект математика, // там очень много математических функций... // объект Математика можно импортировать, что бы каждый раз это слово не писать... // ИмпортИмён Промкод.Перфолента.Математика ВыводСтроки "Возврат Инвестиций = "+ВозвратИнвестиций #КонецОбласти // 1) разложение целого числа на простые множители РазложениеНаМножители(232) // использование Факториал ЗначениеФакториал = фВычислитьФакториал(15) ВыводСтроки "Факториа 15 = " + ЗначениеФакториал // или так без перевода строки Вывод( "Факториа 15 = " + ЗначениеФакториал) // проверка Функции КоличествоЭмитентов // Несколько переменных, вывод прямо в ВыводСтроки без промежуточных переменных ВыводСтроки "Число Эмитентов = " + фКоличествоЭмитентов(6,10,2) // доходность 6% без риска, 10% с риском дефолта 2х эмитентов Пауза КонецПроцедуры #Область "Примеры Процедуры и Функции" //--Пример процедуры Процедура РазложениеНаМножители(цИсходноеЧисло тип Целое) ТекщийДелитель=2 //текущий делитель - Внутренняя переменная Пока цИсходноеЧисло <> 1 Если цИсходноеЧисло % ТекщийДелитель = 0 ВыводСтроки ТекщийДелитель цИсходноеЧисло/=ТекщийДелитель //целочисленное деление Иначе ТекщийДелитель++ КонецЕсли КонецЦикла КонецПроцедуры // Функция вычисления факториала // название функции фВычислитьФакториал – префикс ф –для удобства чтобы сразу было видно что это функция Функция фВычислитьФакториал(цЧисло тип Целое) тип Число Перем Факториал тип Число = 1 // Факториал - внутренняя переменная Для цИндекс тип Целое = 2 По цЧисло // ц – префикс целого числа Факториал = Факториал * цИндекс // или сокращённая запись Факториал *= Инд КонецЦикла Возврат Факториал КонецФункции #КонецОбласти #Область "Финансы" // НЕПРАВИЛЬНОЕ объявление переменных функции // Функция фКоличествоЭмитентов(ДоходностьБезРиска, Доходность_С_Риском тип Число, цДопустимоеКоличествоДефолтов тип Число) тип Число // ПРАВИЛЬНОЕ объявление переменных функции // Вычисление степени диверсификации эмитентов в зависимости // от доходности с риском и без риска и допустимого количекства дефолтов Функция фКоличествоЭмитентов(ДоходностьБезРиска тип Число, Доходность_С_Риском тип Число, цДопустимоеКоличествоДефолтов тип Число) тип Число КоличествоЭмитентов = 100/ ((Доходность_С_Риском - ДоходностьБезРиска)/цДопустимоеКоличествоДефолтов) Возврат КоличествоЭмитентов КонецФункции #КонецОбласти КонецПрограммы