ЗАДАНИЕ XXVI
Тема: Работа со строками Цель: Краткое знакомство с инструментарием для работы со строками в среде Stratum Computer. |
Перед началом работы необходимо:
владеть работой с клавиатурой и мышкой; | |
владеть основными приемами работы в системе Stratum. |
Основные понятия Строки в среде Stratum 2000 - это данные типа String. Строки могут состоять из набора символов, количеством от 0 до 255. В среде Stratum строковые переменные описываются следующим образом: в заголовке описания переменных пишется слуэебное слово STRING, а за ним через запятую список переменных данного типа. Пример: STRING str1,str2 Операции со
строками
Функции над строками
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Задание 1.
Напишите имидж, осуществляющий переворот исходной строки.
Создайте новый проект. Ввод и отображение строк будет осуществляться из стандартных библиотечных имиджей StringEdit. Для работы этих имиджей необходимо создать графическое пространство. Для этого используйте имидж LGSpace из библиотеки Unit. Свяжите имиджи StringEdit с LGSpace связями по переменым WindowName и HSpace. Для переворота строки создайте ещё один имидж и объявите в нём две строковые переменные:
STRING str1,str2
После этого свяжите первый имидж StringEdit связью с переменной str1. В str1 будет хранится исходная строка. Второй имидж StringEdit свяжите связью с переменной str2. В данной строке будет хранится перевёрнутая строка. Вот пример такой сборки проекта.
Текс имиджа, осуществляющего переворот строки может выглядеть следующим образом.
STRING str1, str2
FLOAT local i,l
l := length(~str1) // получение длины исходной строки
i := ~l - 1 // - определение номера позиции последнего
символа в строке
str2 := "" // - очистка результирующей строки
while (~i != -1) // цикл с конца строки до начала
str2 := ~str2 + substr(~str1,~i,1) // последовательное
копирование симвовол из исходной строки в
результат
i := ~i - 1
endwhile
Задание 2.
Напишите имидж, осуществляющий перестановку двух слов местами.
Для выполнения этог задания вам, как и в первом задании, придётся установить имиджи LGSpace, StringEdit и создать свой имидж, осуществляющий переворот строки. В имидже описать две строковые переменные str1 и str2, которые будут хранить исходную строку и результирующую. Для написания модели перестановки двух слов местами необходимо будет воспользоватся функцией Pos, которой нужно будет определить позицию пробела между двумя словами. Затем, функцией Substr вырезать из исходной строки второе слово (с позиции после позиции пробела) и сформировать новую строку, путём операции "+".
STRING str1, str2
FLOAT local l,p
p := Pos(~str1," ",1) //определение позиции пробела,
разделяющего слова
if (~p>0) // если пробел существует, то слова меняем
местами
str2 := "" //очищаем результирующую строку
str2 := Substr(~str1,~p+1,length(~str1)-~p-1)+" "+substr(~str1,0,~p) //
меняем местами слова
endif
Попробуйте написать имидж, который переводит каждую чётную букву слова в верхний регистр, а каждую нечётную в нижний регистр. | |
Попробуйте написать имидж, который осуществляет перевод русскоязычных слов в транслитерацию, т.е. посимвольно заменить русские буквы на сооветствующие латинские или группу латинских, например ш=sh. |