Оператори ТР7. | Мені 16 років | Практична робота | Умовний оператор. | Оператор вибору. | Практична робота | Циклом з умовою поста. | Факторіал негативного числа не існує. | Практична робота | Одномірні і двовимірні масиви |

загрузка...
загрузка...
На головну

літерні величини

Літерні величини представлені в Турбо Паскалі наступними типами: символьним і строковим.

символьна величина - Це величина, значенням якої є символи, взяті в апостроф (одна верхня кома).

Для її позначення використовується службове слово char.

Строкова величина - Це величина значенням, якої є довільна послідовність символів, узята в апостроф.

Для її позначення використовується службове слово string.

Кожному символу, згідно з таблицею ASCII, відповідає його код.ASCII - це американська стандартний код для обміну інформацією. Код будь-якого символу є число цілого типу від 0 до 127. Також є розширена таблиця ASCII, яка складається з двох частин: перша стандартна (0..127), друга (128..255) призначена для букв національних алфавітів.

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

Описуються символьні і рядкові змінні наступним чином:

Var a, b, c:char;

S:string[20];

S1:string;

7.1. Операції над рядками:

У Паскалі є набір процедур і функцій для роботи з рядками.

1. операція конкатенація (зчеплення) двох рядків. Позначається «+»

Теж саме робить функція Concat(S1, s2). До рядку s1прікрепляется рядок s2.

2. функція chr(N) - за кодом символу отримує сам символ.

3. функція ord(S) - по символу отримує його код.

4. функція upcase(S) - робить малі літери латинського алфавіту прописними.

5. функція length(S) - визначає довжину рядка

6. функція сміттю(S, p, n) - копіює n символів з рядка s починаючи з позиції p.

Наприклад: srt: = copy ( '1234567abcd890', 8,4);

Дасть результат str = abcd

7. функція Pos(S1, s2) - визначає початкову позицію входження рядка s1 в s2.

Наприклад: a: = pos ( 'f (x)', 'let f (x) = 2x'); a = 5

8. процедура delete(S, p, n) - видаляє з рядка s починаючи з позиції p n символів.

Наприклад: a: = '123abcde4567890';

Delete (a, 4,5); a = '1234567890'

9. процедура Insert(S1, s2, p) - вставляє рядок s1 у рядок s2 починаючи з позиції p.

наприклад:

a: = '1237890';

insert ( '456', a, 4);

а = '1234567890';

10. процедура Str(N, s) - перетворює число n в рядок s.

11. процедура Val(S, n, t) - перетворить рядок s в число n. Параметр t має значення 0 якщо перетворення виконалася успішно. Якщо немає то в ньому зберігається номер позиції помилково заданого символу.

До рядків можна застосовувати операції відносини, тобто порівнювати їх. По суті справи порівнюються коди символів. Більший код символу має більший пріоритет над меншим. Більш короткий рядок завжди менше довшою.

Розглянемо наступні приклади:

Приклад № 1. В введеної литерной величиною підрахувати кількість букв «а» або «А».

Program Exemple_1;

Var s:string;

k, i, n:byte;

Begin

Write( 'Введіть рядок:');

Readln(S);

n: =length(S);

for i: = 1 to n do

if (S [i] = 'a') or (S [i] = 'A')

then inc(K);

Writeln( 'K =', k);

End.

Приклад № 2. В введеної литерной величиною замінити літери «а» або «А» на «о» або «О» відповідно.

Program Exemple_2;

Var s:string;

i, n:byte;

Begin

Write( 'Введіть рядок:');

Readln(S);

n: =length(S);

for i: = 1 to n do

Begin

if s [i] = 'a'

then s [i]: = 'o';

if s [i] = 'A'

then s [i]: = 'O';

End;

Writeln(S);

End.

Приклад № 3. В введеної литерной величиною містяться латинські малі літери. Замінити малі літери на прописні відповідно.

Program Exemple_3;

Var s:string;

i:byte;

Begin

Write( 'Введіть рядок:');

Readln(S);

for i: = 1 to ord(S [0]) do

s [i]: =upcase(S [i]);

Writeln(S);

End.

Приклад № 4. Дано натуральне число n. Приписати до нього відповідно по цифрі 1 зліва і справа і вивести змінене число n. (Наприклад: n= 345, тоді результат n= 13451).

Program Exemple_4;

Var s:string;

i, n, t:longint;

Begin

Write('Введіть число:');

Readln(N);

str(N, s);

s: = '1' + s + '1';

val(S, n, t);

Writeln(N);

End.

Приклад № 5. В введеної литерной величиною все слова розділені пробілами. Замінити закінчення слів «ла» або «ЛА» на «ло» або «ЛВ» відповідно.

ProgramExemple_5;

Var s:string;

i, n:integer;

Begin

readln(S);

s: = s + '';

for i: = 1 to length(S) -2 do

Begin

if copy(S, i, 3) = 'ла'

Then

Begin

delete(S, i, 3);

insert( 'Ло', s, i);

end;

if copy(S, i, 3) = 'ЛА'

Then

Begin

delete(S, i, 3);

insert( 'ЛО', s, i);

end;

end;

writeln(S);

End.

Приклад № 6. Скласти програму, яка замінює введений текст за таким правилом: А на B, B на C, C на D, і т.д.

Program char_bud;

Var s:string;

i, j:integer;

Begin

Writeln ( 'Введіть рядок:');

Readln (S);

for i: = 1 to length(S) do

s [i]: = upcase (s [i]);

for i: = 1 to length(S) do

s [i]: =char(ord(S [i]) + 1);

Writeln(S);

End.

 



одномірні масиви | Практична робота
загрузка...
© um.co.ua - учбові матеріали та реферати