РефератыАстрономияПрПрограмування рядкових величин

Програмування рядкових величин

Тема 7. Програмування рядкових величин.
1. Поняття рядкової величини.

Величиною рядкового типу (strings
) називається послідовність символів, укладена в одинарні лапки. Цей тип даних є стандартним для мови ПАСКАЛЬ, хоча він є структурованим. Величини можуть бути як константами, так і змінними. При завданні змінних символьного типу можна вказати кількість символів у цій величині.


ПРИКЛАД:


type


message=string;


list=string[10];


Опис типу message задає тип рядкових величин з максимально можливою довжиною рядка (255 символів), а опис типу list – рядкові величини з максимальною довжиною рядка 10 символів.


Рядкові величини можна опрацьовувати і як єдине ціле, і поелементно. При обробці рядка поелементно він розглядається як одновимірний масив з типом індексу byte
і типом елементів char
. Рядкові величини можуть містити довільні символи. Так. у рядку може міститися й одинарна лапка. Для того, щоб помістити одинарну лапку в рядок, потрібно написати дві послідовно розташовані одинарні лапки. Рядки, у яких міститься тільки один символ, являють собою дані стандартногосимвольного типу (char
). Рядок можна порівняти з масивом даних символьного типу, що має таку ж довжину. Всі рядкові константи сумісні з усіма рядковими типами (string
).


ПРИКЛАДИ:


‘TURBO’


‘п”ятниця’


“””


‘;’


Для рядкових величин визначена операція конкатенації (об’єднання) рядків. Операція позначається символом “+”. Тип результату – також рядкова величина. Мова ТУРБО ПАСКАЛЬ дозволяє використовувати оператор + для об’єднання двох рядкових операндів. Якщо довжина результуючого рядка перевищує 255 символів, то вона усікається до 255 символів.


Оператори відношення=, <>, <, >, <=,
або >=
можуть застосовуватися для порівняння рядків відповідно до порядку розширеного набору символів коду ASCII. Будь-які два значення рядкового типу даних можна порівняти, оскільки всі значення рядкових даних сумісні. Значення рядкового типу сумісні зі значеннями символьного типу, і при їхньому порівнянні символьне значення опрацьовується як рядкове значення довжиною 1. Та величина вважається “більшою”, яка має на відповідному місці символ з більшим ASCII кодом. Слід зауважити, що пробіл є повноправним символом рядкової величини і він опрацьовується аналогічно іншим символам величини.


ПРИКЛАДИ:


‘turbo’>’Turbo’;


‘turbo’>’pascal’;


‘turbo’<’turbo pascal’;


‘123’<>’ 123’;


2. Основні процедури та функції опрацювання рядкових величин.

Рядкові величини можна вводити з клавіатури. Для цього можна використати стандартну процедуру вводу read
. Однак при цьому є така особливість: необхідно ввести стільки символів, скільки було оголошено при визначенні цієї величини. Так, якщо величина була оголошена як величина типу string
[10], то необхідно ввести 10 символів (якщо їх кількість менша, то вільні місця необхідно заповнити пробілами). Якщо ж величина описана як string
, то кількість пробілів буде дуже великою. Щоб позбавитись цього недоліку, для вводу рядкових величин варто використовувати іншу процедуру вводу – readln
. В цьому випадку доповнювати пробілами рядкову величину непотрібно.


Функція Соncat
- виконує конкатенацію послідовності рядків. Її дія аналогічна дії операції конкатенації.


Функція Copy
- повертає підрядок (частину) рядкової величини.


Процедура Delete
- видаляє з рядка його частину заданої довжини, починаючи з заданої позиції.


Процедура Insert
- додає в рядок підрядок, починаючи з певної позиції рядка.


Функція Length
- повертає динамічну довжину рядка.


Функція Роs
- здійснюєпошукпідрядка в рядкові.


Процедура Str
- перетворює чисельне значення в його рядкове представлення.


Процедура Val
- перетворить рядкову величину, яка є числом, в її чисельне значення.


ПРИКЛАДИ


var


s,t,x:string;


n,m,k:integer;


begin



readln(s); {припустимо, що введена величина ‘програма’}


readln(t); {припустимо, що введена величина ‘рог’}


n:=length(s); {n=8}


x:=concat(s,t); {x=’програмарог’}


x:=copy(s,4,3); {x=’гра’}


m:=pos(t,s); {m=2}


delete(s,4,3); {s=’прома’}



end.


Розглянемо приклад алгоритмів опрацювання рядкових

величин із застосуванням наведених функцій.


Заданий текст (рядкова величина), слова якої розділені символом “пропуск”.


1. Знайти кількість слів у тексті.


2. Надрукувати окремо з нового рядка кожне слово тексту.


3. Знайти i надрукувати найдовше слово тексту.


program strings;


uses crt;


var s,t:string;


i,k:integer;


procedure kol(s:string; var k:integer);


{ процедура знаходження кiлькостi слiв у текстi ( текст мiстить хоча б одно слово }


var i,n:integer;


begin


k:=1;


n:=length(s);


for i:=1 to n do


if s[i]=’ ‘ then k:=k+1;


end;


procedure druk(s:string);


{ процедура друкування слів тексту }


var n:integer;


s1:string;


begin


n:=pos(‘ ‘,s);


while n<>0 do


begin


s1:=copy(s,1,n-1);


writeln(s1);


delete(s,1,n);


n:=pos(‘ ‘,s)


end;


writeln(s)


end;


procedure max_word(s:string; var s1:string);


{ процедура знаходження найбільшого слова тексту }


var m,n,max:integer;


s2:string;


begin


s1:=”;


max:=0;


n:=pos(‘ ‘,s);


while n<>0 do


begin


s2:=copy(s,1,n-1);


m:=length(s2);


if m>max then


begin


max:=m;


s1:=s2


end;


delete(s,1,n);


n:=pos(‘ ‘,s)


end;


m:=length(s);


if m>max then s1:=s


end;


{Основна програма}


begin


write(‘Введiть текст, розділяючи слова одним символом “пропуск”: ‘);


readln(s);


writeln;


writeln(‘Результати: ‘);


kol(s,k);


writeln(‘кiлькiсть слiв у текстi k=’,k);


writeln;


writeln(‘Слова тексту: ‘);


druk(s);


writeln;


writeln(‘Найдовше слово тексту);


max_word(s,t);


writeln(t);


end.


Узагальнення по темі.

Величиною рядкового типу (strings
) називається послідовність символів, укладена в одинарні лапки. Цей тип даних є стандартним для мови ПАСКАЛЬ, хоча він є структурованим. Величини можуть бути як константами, так і змінними. При завданні змінних символьного типу можна вказати кількість символів у цій величині.


Рядкові величини припускають обробку і як єдиного цілого, так і поелементно. При обробці рядка поелементно він розглядається як одновимірний масив з типом індексу byte
і типом елементів char
. Рядкові величини можуть містити довільні символи. Так, у рядку може міститися й одинарна лапка. Для того, щоб помістити одинарну лапку в рядок, потрібно написати дві послідовно розташовані одинарні лапки. Рядки, у яких міститься тільки один символ, являють собою дані стандартногосимвольного типу (char
). Рядок можна порівняти з масивом даних символьного типу, що має таку ж довжину. Всі рядкові константи сумісні з усіма рядковими типами (string
).


Для рядкових величин визначені операція конкатенації (об’єднання) рядків та операції відношення.
Вониможуть застосовуватися для порівняння рядків відповідно до порядку розширеного набору символів коду ASCII. Будь-які два значення рядкового типу даних можна порівняти, оскільки всі значення рядкових даних сумісні. Значення рядкового типу сумісні зі значеннями символьного типу, і при їхньому порівнянні символьне значення опрацьовується як рядкове значення довжиною 1. Та величина вважається “більшою”, яка має на відповідному місці символ з більшим ASCII кодом. Слід зауважити, що пробіл є повноправним символом рядкової величини і він опрацьовується аналогічно іншим символам величини.


Рядкові величини можна вводити з клавіатури. Для цього можна використати стандартну процедуру вводу read
. Однак при цьому є така особливість: необхідно ввести стільки символів, скільки було оголошено при визначенні цієї величини. Щоб позбавитись необхідності вводу 255 символів при оголошенні рядкової величини як strings
, варто використовувати іншу процедуру вводу – readln
.


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

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Програмування рядкових величин

Слов:1118
Символов:9730
Размер:19.00 Кб.