Основные элементы языка программирования Icon. Чанышев О.Г. - 19 стр.

UptoLike

Составители: 

37
procedure proc2(X)
writes(" ",X||"&proc2")
end
procedure proc3(X)
writes(" ",X||"&proc3")
end
Выход: O'KEY&proc1 O'KEY&proc2 O'KEY&proc3
Пример
со встроенными функциями:
procedure main()
f:=open("outp2.txt","wt")
plist:=[sin,cos,tan]
every i:=1 to 3 do write(f,plist[i](0.5))
end
В файл outp2.txt будет выведено:
0.479425538604203
0.8775825618903728
0.5463024898437905
Множество параметров процедуры (f) можно представить в
виде списка (L) и тогда вызовы процедуры:
f(L)
f ! L
"f"(L)
"f" ! L
Список формальных параметров может быть пустым, их
число может быть больше или меньше формальных параметров.
Лишние параметры игнорируются, пропущенным или недостаю-
щим присваивается значение &null. Пропуск параметров обозна-
чается
лишней запятой: f(x,,z).
Заметим, что Icon всегда ожидает, когда параметрам-пере-
менным будет присвоено окончательное значение:
writes(X:=3," ",X:=4," ",X:=5)
напечатает 5 5 5.
Но writes(X:=3,Y:=4,Z:=5) напечатает 345
38
10.2. Выход из процедуры
Процедура может быть завершена тремя способами.
1. Процедура завершает работу, когда управление достигнет
end.
2. Процедура возвращает значение при помощи return.
return может возвращать конкретное значение, переменную
или &null. Значение может вычисляться «в теле» "return". Приме-
ры: return, return x, return x+y.
3. Процедура возвращает множество значений по одному.
Для этого используется оператор suspend.
Пример:
procedure main()
every writes(“ “,proc1())
end
procedure proc1()
suspend seq()\7
end
Выход: 1 2 3 4 5 6 7
     procedure proc2(X)                                                 10.2. Выход из процедуры
     writes(" ",X||"&proc2")
                                                                        Процедура может быть завершена тремя способами.
     end
                                                                        1. Процедура завершает работу, когда управление достигнет
                                                                 end.
     procedure proc3(X)
                                                                       2. Процедура возвращает значение при помощи return.
     writes(" ",X||"&proc3")
                                                                       return может возвращать конкретное значение, переменную
     end
                                                                 или &null. Значение может вычисляться «в теле» "return". Приме-
     Выход: O'KEY&proc1 O'KEY&proc2 O'KEY&proc3
                                                                 ры: return, return x, return x+y.
                                                                       3. Процедура возвращает множество значений по одному.
     Пример со встроенными функциями:
                                                                 Для этого используется оператор suspend.
     procedure main()
                                                                       Пример:
     f:=open("outp2.txt","wt")
                                                                       procedure main()
     plist:=[sin,cos,tan]
                                                                       every writes(“ “,proc1())
     every i:=1 to 3 do write(f,plist[i](0.5))
                                                                       end
     end
                                                                       procedure proc1()
                                                                       suspend seq()\7
     В файл outp2.txt будет выведено:
                                                                       end
     0.479425538604203
                                                                       Выход: 1 2 3 4 5 6 7
     0.8775825618903728
     0.5463024898437905

      Множество параметров процедуры (f) можно представить в
виде списка (L) и тогда вызовы процедуры:
      f(L)
      f!L
      "f"(L)
      "f" ! L
      Список формальных параметров может быть пустым, их
число может быть больше или меньше формальных параметров.
Лишние параметры игнорируются, пропущенным или недостаю-
щим присваивается значение &null. Пропуск параметров обозна-
чается лишней запятой: f(x,,z).
      Заметим, что Icon всегда ожидает, когда параметрам-пере-
менным будет присвоено окончательное значение:
      writes(X:=3," ",X:=4," ",X:=5)
      напечатает 5 5 5.
      Но writes(X:=3,Y:=4,Z:=5) напечатает 345

                                  37                                                               38