ВУЗ:
Составители:
Рубрика:
7
странять собственные выполняемые модули (exe – файлы), в от-
личие от PDC Visual Prolog.)
Приведем несколько «программулек» для иллюстрации:
procedure main()
#Перезапись файла
f:=open("x.txt","r")|stop("cannot open x.txt")
f2:=open("y.txt","w")|stop("cannot open y.txt")
# Классический стиль
while s:=read(f) do write(f2,s)
close(f)
close(f2)
end
В стиле Icon'а подчеркнутые элементы кода заменит выра-
жение
every write(f2,!f)
link graphics
procedure main()
# Простейший вариант открытия графического окна:
WOpen("size=400,300") | stop("can't open window")
Font("Times New Roman,18") # Устанавливаем шрифт
L:=["Линия 1","Линия 2","Линия 3"]
case SelectDialog("Выберите линию",L,L[1]) of
{
"Okey":
{
GotoRC(1,1)
WWrite(dialog_value) # Печатаем выбранную строку
WDone()
}
"Cancel": {}
}
end
Может быть, единственное, что мне не нравится в Icon'е, это
семантическая многозначность операционных символов (разре-
шаемая контекстно). Вот цитата из Cristophera [2, с
. 41]:
8
"The vertical bar, "|", read "«or»", looks like a binary operator
but does not behave like one".
Другой пример: символ "\" в выражениях "\x" и "|(z to y)\x"
обозначает различные операторы (в первом случае проверяется,
имеет ли значение переменная x, а во втором – является ли огра-
ничителем генерируемых значений).
У Icon’а есть сложности с кириллицей. Он «не понимает»
кириллические имена файлов при стандартном открытии
f:=open(“имя_моего_файла”,”rt”) либо когда имя файла передается
в командной строке
icon_prog.exe имя_моего_файла
procedure main(args))
f:=open(args[1],”rt”)
……………………….
end
Чтобы обойти эту сложность, следует работать в графиче-
ском режиме и обращаться к соответствующему «диалогу».
Большинство проблем при парсировании кириллического
текста Вы можете обойти, создав собственное множество симво-
лов:
allRus:='АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЪЫЭ
ЮЯабвгдеёжзийклмнопрстуфхцчшщьъыэюя'
И при необходимости можете создать объеденное множество:
allLetters:= &ascii++allRus
………………………………………………………………..
Теперь несколько слов о
математических возможностях
Icon’а (которые меня не очень интересуют и в дальнейшем изло-
жении специально не рассматриваются). Язык обладает вполне
достаточным набором операторов и функций для того, чтобы быть
алгоритмически полным и в «вычислительном» смысле. Он рабо-
тает с целыми и реальными числами. Имеет специальные средства
для манипулирования коплексными и рациональными
числами.
Бинарные операторы:
* – умножение
/ – деление
% – остаток (5%2=1)
+ – сложение
- – вычитание
странять собственные выполняемые модули (exe – файлы), в от- "The vertical bar, "|", read "«or»", looks like a binary operator личие от PDC Visual Prolog.) but does not behave like one". Приведем несколько «программулек» для иллюстрации: Другой пример: символ "\" в выражениях "\x" и "|(z to y)\x" procedure main() обозначает различные операторы (в первом случае проверяется, #Перезапись файла имеет ли значение переменная x, а во втором – является ли огра- f:=open("x.txt","r")|stop("cannot open x.txt") ничителем генерируемых значений). f2:=open("y.txt","w")|stop("cannot open y.txt") У Icon’а есть сложности с кириллицей. Он «не понимает» # Классический стиль кириллические имена файлов при стандартном открытии while s:=read(f) do write(f2,s) f:=open(“имя_моего_файла”,”rt”) либо когда имя файла передается close(f) в командной строке close(f2) icon_prog.exe имя_моего_файла end procedure main(args)) f:=open(args[1],”rt”) В стиле Icon'а подчеркнутые элементы кода заменит выра- ………………………. жение end every write(f2,!f) Чтобы обойти эту сложность, следует работать в графиче- link graphics ском режиме и обращаться к соответствующему «диалогу». procedure main() Большинство проблем при парсировании кириллического # Простейший вариант открытия графического окна: текста Вы можете обойти, создав собственное множество симво- WOpen("size=400,300") | stop("can't open window") лов: Font("Times New Roman,18") # Устанавливаем шрифт allRus:='АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЪЫЭ ЮЯабвгдеёжзийклмнопрстуфхцчшщьъыэюя' L:=["Линия 1","Линия 2","Линия 3"] И при необходимости можете создать объеденное множество: case SelectDialog("Выберите линию",L,L[1]) of allLetters:= &ascii++allRus { ……………………………………………………………….. "Okey": Теперь несколько слов о математических возможностях { Icon’а (которые меня не очень интересуют и в дальнейшем изло- GotoRC(1,1) жении специально не рассматриваются). Язык обладает вполне WWrite(dialog_value) # Печатаем выбранную строку достаточным набором операторов и функций для того, чтобы быть WDone() алгоритмически полным и в «вычислительном» смысле. Он рабо- } тает с целыми и реальными числами. Имеет специальные средства "Cancel": {} для манипулирования коплексными и рациональными числами. } Бинарные операторы: end * – умножение / – деление Может быть, единственное, что мне не нравится в Icon'е, это % – остаток (5%2=1) семантическая многозначность операционных символов (разре- + – сложение шаемая контекстно). Вот цитата из Cristophera [2, с. 41]: - – вычитание 7 8
Страницы
- « первая
- ‹ предыдущая
- …
- 2
- 3
- 4
- 5
- 6
- …
- следующая ›
- последняя »