Строковий тип даних у мові Pascal

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Познайомимося з типом даних, який відноситься до числа структурованих. Це рядковий тип даних (рядок). Рядок - це послідовність символів. Кожен символ займає 1 байт пам'яті (код ASCII). Кількість символів в рядку називається її довжиною. Довжина рядка може перебувати в діапазоні від 0 до 255. Строкові величини можуть бути константами та змінними. Особливістю рядки в Turbo Pascal є те, що з нею можна працювати як з масивом символів, з одного боку, і як з єдиним об'єктом, - з іншого. За рахунок цього обробка рядків досить гнучка й зручна. Строкова константа є послідовність символів, укладена в апострофи. Наприклад: 'це строкова константа', '272 '. Строкова мінлива описується в розділі опису змінних наступним чином:

Var: string [];

Наприклад:

Var Name: string [20].

Параметр довжини може і не вказуватися в описі. У такому разі мається на увазі, що він дорівнює максимальну величину - 255. Наприклад: Var slovo: string.

Строкова мінлива займає в пам'яті на 1 байт більше, ніж вказана в описі довжина. Справа в тому, що один (нульовий) байт містить значення поточної довжини рядка. Якщо строкової змінної не присвоєно ніякого значення, то її поточна довжина дорівнює нулю. У міру заповнення рядка символами її поточна довжина зростає, але вона не повинна перевищувати максимальної за описом величини.

Символи усередині рядка індексуються (нумеруються) від одиниці. Кожен окремий символ ідентифікується іменем рядка з індексом, укладеним у квадратні дужки. Наприклад: N [5], S [i], slovo [k + l]. Індекс може бути позитивною константою, змінною, виразом цілого типу. Значення індексу не повинна виходити за межі опису.

Тип string і стандартний тип char сумісні. Рядки і символи можуть вживатися в одних і тих же виразах.

Строкові вираження будуються з рядкових констант, змінних, функцій і знаків операцій. Над рядковими даними припустимі операції зчеплення і операції відношення.

Операція зчеплення (конкатенації) (+) застосовується для з'єднання декількох рядків в один результуючу рядок. Зчіплювати можна як строкові константи, так і змінні.

Приклад: 'Мама' + 'мила' + 'раму'. У результаті вийде рядок: 'Мама мила раму ". Довжина результуючої рядка не повинна перевищувати 255.

Операції відносини: =,, =,. Дозволяють зробити порівняння двох рядків, в результаті чого виходить логічне значення (true або false). Операція відносини має пріоритет більш низький, ніж операція зчеплення. Порівняння рядків проводиться зліва направо до першого неспівпадаючого символу, і той рядок вважається більше, в якій перший неспівпадаючий символ має більший номер в таблиці символьної кодування. Якщо рядки мають різну довжину, але в загальній частині символи збігаються, вважається, що більш короткий рядок менше, ніж довша. Рядки рівні, якщо вони повністю збігаються за довжиною і містять одні й ті ж символи.

Приклад:

Вираз Результат
'True1''MOTHER' True
'Мама' 'Мама' True
'Cat' = 'Cat' True

Функція Copy (S, Pozition, N) виділяє з рядка S підрядок довжиною N символів, починаючи з позиції Pozition. Тут N і Pozition - цілочисельні вирази.

Приклад:

Значення S Вираз Результат
'Мама мила раму' Copy (S, 6, 4) 'Мила'
'Маша їла кашу' Copy (S, 1, 8) 'Маша їла'

Функція Concat (S1, S2, ..., SN) виконує зчеплення (конкатенацію) рядків S1, S2, ..., SN в один рядок.

Приклад:

Вираз Результат
Concat ('Маша', 'їла', 'кашу') 'Маша їла кашу'

Функція Length (S) - визначає поточну довжину рядка S. Результат - значення цілого типу.

Приклад:

Значення S Вираз Результат
'Test-5' Length (S) 6
'(A + B) * C' Length (S) 7

Функція Pos (S1, S2) - виявляє перша поява у рядку S2 підрядка S1. Результат - ціле число, рівне номеру позиції, де знаходиться перший символ підрядка S1. Якщо в S2 підрядка S1 не виявлено, то результат дорівнює 0.

Приклад:

Значення S2 Вираз Результат
'Abcdef' Pos ('cd', S2) 3
'Abcdcdef' Pos ('cd', S2) 3
'Abcdef' Pos ('k', S2) 0

Процедура Delete (S, Poz, N) - видалення N символів з рядка S, починаючи з позиції Poz.

Приклад:

Початкове значення S Оператор Кінцеве значення S
'Abcdefg' Delete (S, 3, 2) 'Abefg'
'Abcdefg' Delete (S, 2, 6) 'A'

В результаті виконання процедури зменшується поточна довжина рядка в змінної S.

Процедура Insert (S1, S2, Poz) - вставка рядка S1 у рядок S2, починаючи з позиції Poz.

Приклад:

Початкове значення S2 Оператор Кінцеве значення S2
'ЕОМ РС' Insert ('IBM-', S2, 5) 'ЕОМ IBM-PC'
'Рис. 2 ' Insert ('N', S2, 6) 'Рис. N 2 "

Контрольні питання і завдання

Як можна оголосити величину строкового типу?

До яких типів даних відносяться рядки?

Яка максимально можлива довжина рядки?

З величиною якого типу даних сумісний по присвоюванню окремий символ рядки?

Розкажіть про операції, які можна виконувати над рядковими величинами.

Розкажіть про функції, визначених для величин строкового типу.

Розкажіть про процедури, визначених для величин строкового типу.

Як здійснюється доступ до окремого сііволу рядки?

Чому значення відношення 'Мама''мама' одно TRUE?

Дан фрагмент програми:

S: ='';

For I: = '0 'to '9' do S: = S + I;

Яке значення пулучіт мінлива S після його виконання?

Дан фрагмент програми.

Type String40 = String [40]; M = Array [1 .. 100] Of String40;

Var A: M; I, J, Min, N: Byte; Vsp: String40;

Begin

Write ('N?'); ReadLn (N);

For I: = 1 To N Do ReadLn (A [I]);

For I: = 1 To N-1 Do

Begin Min: = I;

For J: = I + 1 To N Do If A [J]

Vsp: = A [I]; A [I]: = A [Min]; A [Min]: = Vsp;

End;

WriteLn ('Відповідь:'); For I: = 1 To N Do WriteLn (A [I])

End.

Точно і однозначно сформулювати умову задачі, рішення якої описаними у цьому фрагменті.

Є така мінлива

Var S: Array [1 .. 100] Of String;

Яке із звернень до J-му символу I-того рядка (I-го елемента масиву S) буде правильним?

1) S [I] [J]; 2) S [I, J]; 3) S [J] [I]; 4) відповіді 1-2 правильні; 5) серед відповідей немає жодного правильного.

Яка функція (процедура) є аналогом операції зчеплення (+) при роботі з рядками?

Який буде результат виконання операції зчеплення, якщо довжина результуючої рядка перевищить значеніе255?

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
15.4кб. | скачати


Схожі роботи:
Записи у мові Turbo Pascal
Файли в мові Turbo Pascal
Програма вирішення трансцендентного рівняння на мові Pascal
Типи даних в Object Pascal
Типи даних в Turbo Pascal
Скласти програму на мові Turbo Pascal для паралельної сортування чисел
Складання програм для вирішення задач на мові програмування Turbo Pascal
Обробка масивів даних у середовищі Turbo Pascal
Структуровані типи даних записи та множини Використання процедур та функції мови Turbo Pascal
© Усі права захищені
написати до нас