Урок 8. Знакови низове. Операции със знакови низове.
Знаковите низове / комбинация от символи/ , са структури за представяне на текст. До сега ние използвахме такива комбинации в текстовия прозорец, за да поясним на потребителя какво трябва да направи или какво е получил след изпълнение на програмния код. .Знаем също така, че тези текстови пояснения се заграждат в кавички в програмния код..
Когато на дадена променлива присвояваме знаков низ, ние също го заграждаме в текст.
Пример:
Name= „Евелина Петрова“
Освен това, в Small Basic обектът Text ни осигурява полезни операции с текстови низове.
В урока ще разгледаме някои от тях.
Така например нека въведем кода:
x=Text.ConvertToLowerCase("AAAA")
TextWindow.WriteLine(x)
Забележете, че низа „АААА“ ще се изведе в текстовия прозорец с малки букви.
И обратно, кодът
x=Text.ConvertToUpperCase("aaa")
TextWindow.WriteLine(x)
Ще изведе текстовия низ с главни букви.
Ако искаме да обединим няколко текстови низа в един ще използваме операцията APPEND
x= Text.Append("Лили ","Иванова")
TextWindow.WriteLine(x)
Така х ще получи стойност „Лили Иванова, която допуска обединяване на 2 текстови низа.
IBM- съвместимите компютри обработват 256 символа, за които е определен код по стандарта ASCII /American Standart Code for Information Interchange/. Този стандарт представлява една таблица, в която на всеки символ се съпоставя код от 0 до 255.
Много често в програмирането се налага да се работи с този код и затова в Small Basic в обекта Text може да се преминава от символ към код и обратно както следва:
x=Text.GetCharacterCode("A") – така х ще има стойност 65, което е ASCIIкодът на символа А и ,съответно ако на x =Text.GetCharacter(65), резултатът ще бъде А.
С помощта на тези операции ние можем лесно и бързо да проверяваме кой клавиш от клавиатурата е въведен.
Други опрерации с текстови низове са
Text.GetLength("текст") дава дължината / броя на символите/ в низа
Text.GetSubText("текст ", позиция,брой символи) служи за извличане от определен брой символи от текста, заграден в кавички като се започне от посочената позиция.
Text.GetSubTextToEnd("текст", позиция ) извлича символите от посочената позиция до края на низа.
x= Text.StartsWith("текст1", "текст2") дава стойност истина, ако текст1 започва с текст2.
x=Text.GetIndexOf("текст1","текст2") намира позицията в текст1 от която започва текст2
x=Text.IsSubText("текст1","текст2") дава стойност истина ако текст2 се съдържа в текст1
x=Text.EndsWith("текст1", "текст2") дава стойност истина ако текст2 се намира в края на текст1
Задача1:
Напишете програма, с помощта на която потребителя въвежда произволна последователност от символи от клавиатурата и извежда броя им.
TextWindow.Write( "Въведете символи от клавиатурата ")
x=TextWindow.Read()
x= Text.GetLength(x)
TextWindow.WriteLine("вие сте въвели " +x + " символа")
При изпълнение на програмата ще получите следното
Тествайте програмата като въвеждате различен брой символи.
Задача2
Да се състави програма, с която се въвежда един знак от клавиатурата и се определя неговия вид - цифра, буква или друг знак.
За да решим тази задача е необходимо да погледнем ASCII таблицата
От първата страница виждаме, че цифрите имат ASCII код в десетична позиционна система от 48 до 57. Главните латински букви са с код от 65 до 90, а малките – от 97 до 122. Ако допускаме, че потребителя може да въведе знак на кирилица, трябва да погледнем втората страница на ASCII таблицата и да видим че главните и малко букви имат код от 128 до 191.
Ето програмния код:
Да тестваме в различни ситуации
Потребителят е въвел повече от един символ:
Потребителят е въвел малка латинска буква:
Потребителят е въвел цифра:
Потребителят е въвел главна латинска буква
Задачи за самостоятелна работа
След този урок вие трябва да можете :
1. Да оперирате с текстови низове
2. Да проверявате кой клавиш е натиснат
3. Можете да откривате съответствие между ASCII кодове и знак