- •Введение
- •1. Программирование на языке 1с
- •1.1. Создание информационной базы
- •1.2. Модули
- •1.3. Создание модуля
- •2. Описание языка 1с
- •2.1. Общая характеристика
- •2.2. Двуязычность 1с
- •2.3. Типы данных
- •3. Операторы
- •3.1. Округление чисел Окр (Round)
- •3.2. Условные операторы
- •3.2.1. Вычисление выражения по условию
- •3.2.2. Оператор Если…Тогда…ИначеЕсли…Тогда…Иначе…КонецЕсли (If…Then…ElseIf…Then…Else…EndIf)
- •3.3. Операторы цикла
- •4.2. Функции
- •4.2.1. Пользовательские функции
- •4.2.2. Числовые функции
- •Заключение
- •Список использованных источников
- •Приложение 1. Общие ключевые слова
- •Приложение 2. Ключевые слова системы компоновки данных
3. Операторы
3.1. Округление чисел Окр (Round)
Один из важнейших операторов, так как система по умолчанию выводит много знаков после запятой (точки). Он используется только в составе выражений, сам по себе не используется.
Например:
x1 = 16.12245678987456321;
x2 = 16.12745678987456321;
y1 = Окр(x1,2);
y2 = Окр(x2,2);
Сообщить("y1 = "+y1);
Сообщить("y2 = "+y2);
x = 16.12345678987456321;
y = Round(x,2);
Message(y);
Рис. 3.1.1. Результаты округления
3.2. Условные операторы
3.2.1. Вычисление выражения по условию
Пример:
x=10;
y= ?(x > 10, x-5, x+5);
Предупреждение(y) ;
Проверяется условие x > 10. Если оно истинно, то выводится х – 5, если ложно – то выражение х + 5.
Этот же пример в англоязычном варианте:
x=10;
y= ?(x > 10, x-5, x+5);
DoMessageBox(y) ;
Для выполнения этой программы нужно нажать клавишу F5.
Выводится ответ 15:
Рис. 3.2.1.1. Сокращенный условный оператор
3.2.2. Оператор Если…Тогда…ИначеЕсли…Тогда…Иначе…КонецЕсли (If…Then…ElseIf…Then…Else…EndIf)
x=30;
Если x<0 Тогда y=1;
ИначеЕсли x<5 Тогда y=2;
ИначеЕсли x<10 Тогда y=3;
Иначе y=4;
КонецЕсли;
Сообщить(y);
x=30;
If x<0 Then y=1;
ElsIf x<5 Then y=2;
ElsIf x<10 Then y=3;
Else y=4;
EndIf;
Message(y);
Аналогичная конструкция в Maple [13, 23], см. также аналогии с системой Maxima [14,15, 20]:
Выполнить (Execute)
Выполнить ("Сообщить (ТекущаяДата ())");
Execute(“Message(CurrentDate())”);
Рис. 3.2.1.2. Получение текущей даты
3.3. Операторы цикла
3.3.1. Оператор цикла Для (For)
Сумма = 0;
Для n = 1 по 100
Цикл
Сумма = Сумма + n;
КонецЦикла;
Предупреждение(Сумма);
Sum=0;
For n = 1 To 100
Do
Sum = Sum + n;
EndDo;
DoMessageBox(Sum);
Рис. 3.3.1.1. Результат действия оператора цикла For
3.3.2. Оператор цикла Для каждого (For each)
Массив = Новый Массив(5);
Для n=0 Пo 4
Цикл
Массив[n]=n*n;
КонецЦикла;
Для каждого n из Массив
Цикл
Сообщить(n);
КонецЦикла;
Массив = Новый Массив(5);
For n=0 To 4
Do
Массив[n]=n*n;
EndDo;
For each n из Массив
Do
Message(n);
EndDo;
Рис. 3.3.2.1. Результат действия оператора цикла For each
3.3.3. Оператор Пока (While)
eps=0.01;
sum=0;
n=1;
Пока 1/(n*n) >= eps
Цикл sum=sum+1/(n*n);
n=n+1;
КонецЦикла;
Сообщить(sum);
eps=0.01;
sum=0;
n=1;
while 1/(n*n) >= eps
Do sum=sum+1/(n*n);
n=n+1;
EndDo;
Message(sum);
Рис. 3.3.3.1. Результат действия оператора цикла While
Аналогичная конструкция в Maple:
4. Процедуры и функции
4.1. Процедуры
Процедуры в 1С строятся так же, как и в привычных языках программирования: путем объединения в один блок последовательности операторов, которые могут выполняться многократно. Этот блок заключается в операторные скобки и снабжается соответствующим идентификатором для ссылок на этот блок [5].
Процедура ПриНачалеРаботыСистемы()
Предупреждение("Привет!");
КонецПроцедуры
Procedure OnStart()
DoMessageBox("Привет!");
EndProcedure
Конструкция процедур ничем фактически не отличается от процедур на других языках программирования. Вышеприведенная процедура в Maple выглядит так:
Print(«Привет!»);
Более развернуто в Maple выглядела бы следующим образом: