|
Рядки[ред.]
Найпримітивніша робота із рядками вже розбиралися раніше. Так, команда
writeln('Привіт, світе!');виведе рядок 'Привіт, світе!'. Такі рядки також можна зберігати в змінних - типу string:
Program HelloWorld2; var str: string; begin str:='Привіт, світе!'; writeln(str); end.Ця програма зберігає в змінній str значення, яке потім виводится командою writeln.
Щоб звернутися до окремого елементу рядка, треба скористатися квадратними дужками; цим рядки подібні до масивів. Програма
var str: string; begin str:='річка'; str[1]:='н'; writeln(str); end.виведе 'нічка'. В уважного читача в цьому місці виникне питання: масиви мають тип, відмінний від елементу масива; як же так виходить, що елемент рядка може бути рядком? Дійсно, не може. Елементи рядка мають свій, окремий тип - character (літерний тип). Справа в тому, що літерний тип може бути перетворений на рядок без втрати інформації, тому компілятор робить таке перетворення непомітно. Запис 'н' (в лапках тільки один знак!) означає літеру 'н', а не рядок з однієї літери. Альтернативний спосіб задання символів - #число, де число - номер символу в кодуванні ASCII. Наприклад,
writeln(#64);виведе літеру 'A'.
Особливості рядків[ред.]
Розглянемо команду
writeln(50);і порівняємо її із командою
writeln('50');Ці команди зовнішньо працюють однаково - виводять на екран знаки '50'. Різниця між ними в тому, що в першому випадку відбувається додаткове перетворення числа 50 на рядок '50', а в другому рядок виводится безпосередньо, що працює трохи швидше. Втім, це не означає, що треба всюди, де можливо, перетворювати числа на рядки - треба тільки розуміти різницю, і вживати рядки і числа на своєму місці.
Комбінація '' зветься пустим рядком; пустий рядок, вочевидь, не містить жодної літери (і сам не є літерою).
Довжину рядка можна дізнатися за допомогою функціїї length:
Program StringLength; var str: string; begin write('Введіть рядок: '); readln(str); writeln('Довжина рядка: ',length(str)); end.В старих версіях мови Паскаль поточна довжина рядка зберігалась в нульовій комірці рядка (на кшталт str[0]); іноді можна побачити в програмах, як працюють безпосередньо із цим значенням. В сучасних версіях це не так, тому треба користуватися тільки функцією length.
Рядки порівнюються за алфавітом; при цьому великі літери завжди вважаються такими, що йдуть раніше за маленькі (у відповідності до таблиці ASCII). Тобто
if 'bb'<'aa' then writeln('''bb''<''aa''') else writeln('''bb''>=''aa'''); if 'BB'<'aa' then writeln('''BB''<''aa''') else writeln('''BB''>=''aa''');виведе 'bb'>='aa' 'BB'<'aa'! Коротший рядок вважається таким, що йде раніше за довший (якщо, звісно, всі літери коротшого збігаються з початковими літерами довшого рядка).
Дата добавления: 2015-09-03; просмотров: 66 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
ПРОЦЕДУРЫ И ФУНКЦИИ | | | Множины |