Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1С_Язык.doc
Скачиваний:
3
Добавлен:
26.11.2019
Размер:
1.59 Mб
Скачать

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 выглядела бы следующим образом:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]