Головна

Процедури і функції для роботи з рядками

  1. FDDI. Кадр. Процедури управління доступом до кільця і ??ініціалізації роботи кільця.
  2. I Загальна характеристика роботи
  3. I. Завдання для самостійної роботи
  4. I. Кваліфікаційні вимоги до виконання курсової роботи
  5. I. Загальна характеристика роботи 1 сторінка
  6. I. Загальна характеристика роботи 2 сторінка
  7. I. Загальна характеристика роботи 3 сторінка

В системі Turbo Pascal є кілька корисних стандартних процедур і функцій, орієнтованих на роботу з рядками. Нижче наводиться список цих процедур і функцій з короткими поясненнями.

Length (s: string): integer

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

Приклад.

n: = length ( 'Pascal'); {N дорівнюватиме 6} Concat (s1, [s2, ..., sn]: string): string

Функція виконує злиття рядків-параметрів, яких може бути будь-яку кількість. Кожен параметр є виразом строкового типу. Якщо довжина рядка-результату перевищує 255 символів, то вона буде скорочуватися до 255 символів. Ця функція еквівалентна операції конкатенації "+" і працює трохи менш ефективно, ніж ця операція.

Copy (s: string; index: integer; count: integer): string

Функція повертає підрядок, виділену з початкового рядка s, довжиною count символів, починаючи з символу під номером index.

Приклад.

s: = 'Система Turbo Pascal'; s2: = copy (s, 1, 7); {S2 дорівнюватиме 'Система'} s3: = copy (s, 9, 5); {S3 дорівнюватиме 'Turbo'} s4: = copy (s, 15, 6); {S4 дорівнюватиме 'Pascal'} Delete (var s: string; index, count: integer)

Процедура видаляє з рядка-параметра s підрядок довжиною count символів, починаючи з символу під номером index.

Приклад.

s: = 'Система Turbo Pascal'; delete (s, 8,6); {S дорівнюватиме 'Система Pascal'} Insert (source: string; var s: string; index: integer)

Процедура призначена для вставки рядка source в рядок s, починаючи з символу index цього рядка.

Приклад.

s: = 'Система Pascal'; insert ( 'Turbo', s, 9); {S дорівнюватиме 'Система Turbo Pascal'} Pos (substr, s: string): byte

Функція здійснює пошук в рядку s підрядка substr. Результатом функції є номер першої позиції підрядка в заданій стрічці. Якщо підрядок не знайдено, то функція повертає 0.

Приклад.

s: = 'Система Turbo Pascal'; x1: = pos ( 'Pascal', s); {X1 дорівнюватиме 15} x2: = pos ( 'Basic', s); {X2 дорівнюватиме 0} Str (X: арифметичний вираз; var st: string)

Процедура перетворює чисельне вираження X в його строкове представлення і поміщає результат в st.

Val (st: string; x: числова змінна; var code: integer)

Процедура перетворює строкову запис числа, що міститься в st, в числове уявлення, поміщаючи результат в x. x - може бути як цілої, так і дійсної змінної. Якщо в st зустрічається неприпустимий (з точки зору правил запису чисел) символ, то перетворення не відбувається, а в code записується позиція першого неприпустимого символу. Виконання програми при цьому не переривається, діагностика не видається. Якщо після виконання процедури code дорівнює 0, то це свідчить про успішно нещодавно трапився перетворенні.

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

Chr (n: byte): char

Функція повертає символ за кодом, рівному значенню виразу n. Якщо n можна представити як числову константу, то можна також користуватися записом #n.

Ord (ch: char): byte;

В даному випадку функція повертає код символу ch.

UpCase (c: char): char;

Якщо c - рядкова латинська буква, то функція повертає відповідну прописну латинську букву, в іншому випадку символ c повертається без зміни.

Вопрос44.

Записи, їх опис та доступ. Оператор приєднання. Приклад програми.

Оператор приєднання в Паскалі Оператор приєднання дозволяє спростити звернення до елементів запису і має наступний формат запису: With <Ім'я> do

OP;

Де With - с;

<Ім'я> - ім'я запису (просте або складене);

do - робити;

OP - оператор (простий або складової);

Вввод / висновок записів в Паскалі При введенні / виведенні записів використовуються окремі поля запису

For i: = 1 to n do Read (EMS_43a [i] .FIO, EMS_43a [i] .Str)

При використанні оператора приєднання

For i: = 1 to n do

With EMS_43a [i] do

Begin

Read (FIO);

Read (Str);

End;

Приклади програм Приклад 18.1. У файлі sp_gr.txt містяться результати здачі сесії студентами групи КИТ-23а. Скласти програму аналізу результатів здачі сесії. Обчислити середній бал кожного студента, результат вивести на екран і в файл rez.txt. На екран вивести також середній бал кожного студента по першому предмету в списку і загальний середній бал групи. Вихідний файл sp_gr.txt

Антонов І. І. 5 5 4 3 4

Андеа І. Т. 4 5 Перша 3 4 2

Іванов Н. Р. 5 5 4 2 4

Петpов П. І. 3 4 3 2 5

Агапов Є. І. 5 4 3 5 2

Токаєв П. І. 4 5 2 4 4

Павлов О. О. 3 3 3 4 5

Мщісеев Н. Т. 5 4 3 4 5

Сидоров Н. Р. 5 4 3 2 5

Єгоров Н. Р. 5 3 4 3 5

Текст програми (srbal.pas)

Program srbal; {Програма аналізу успішності студентів групи}

Uses crt;

Const n = 10; {Число студентів}

Type st = Record fam: string [15];

b1, b2, b3, b4, b5: 2..5;

End;

vec = array [1..n] of st;

Var

KIT_23b: vec;

sb1, sbo, sb: real;

i: byte; f1, f2: text;

Begin

Clrscr;

Assign (f1, 'sp_gr.txt');

Reset (f1);

Assign (f2, 'rez.txt');

Rewrite (f2);

sbo: = 0;

sb1: = 0;

For i: = 1 to n do Begin sb: = 0;

With KIT_23b [i] do Begin Read (f1, fam);

Write (fam);

Write (f2, fam);

Readln (f1, b1, b2, b3, b4, b5);

sb: = sb + (b1 + b2 + b3 + b4 + b5) / 5;

Writeln (sb: 4: 2);

Writeln (f2, sb: 4: 2);

sb1: = sb1 + b1 / n;

End;

sbo: = sbo + sb / n;

End;

Writeln;

Writeln ( 'sbo =', sbo: 4: 2, '': 10, 'sb1 =', sb1: 4: 2);

Close (f1);

Close (f2);

End.

Вопрос45.

Безлічі, їх опис та доступ. Операції і процедури для роботи з множинами. Приклад програми.

мові програмування Pascal існує поняття безлічі, що має сенс деякого зборів елементів, одне і те ж базового типу. Базовий тип визначає перелік всіх елементів, які взагалі можуть міститися в даному безлічі. В якості базового типу може виступати будь-який простий порядковий тип. Але речові числа (real НЕ порядковий тип) і рядки (не простий і не порядковий тип) не можуть бути елементами безлічі.

Розмір безлічі в Turbo Pascal завжди обмежений деяким гранично допустимою кількістю елементів. У величезних кількостях допускаються тільки такі елементи, порядкові значення яких не виходять за межі 0..255. Для цілочисельних множин це означає, що в них можуть бути присутніми тільки числа від 0 до 255. Негативні елементи множин в Turbo Pascal не допускаються. Тому базовими типами не можуть бути типи shortint, integer, longint. Якщо ж необхідно безліч цілочисельних об'єктів, то базовий тип повинен оголошений як діапазон типу byte. Для множин, що містять символи, подібних труднощів немає, оскільки базовим типом для них є char (А в ньому 256 значень з порядковими номерами від 0 до 255).

В математиці для позначення безлічі використовують фігурні дужки (наприклад, {4, 7, 12}), в Паскаль - квадратні (наприклад, [1, 3, 5]). Порядок елементів у множині не має значення. Так, записавши [3, 6, 9] або [9, 3, 6], ми будемо мати справу з одним і тим же безліччю. Більш того, багаторазове повторення одного і того ж елемента не змінює безліч. Наприклад, [4, 7, 3] і [3, 7, 4, 4] - це одне і те ж безліч.

За формою запису оголошення змінної типу безліч схоже з оголошенням одновимірного масиву:

var ім'я: set of тип;

Наприклад, оголошення змінної ch, що розглядається як безліч з базовим типом char, має вигляд:

var ch: set of char;

На відміну від елементів масиву, елементи множини не впорядковані і не мають індексів.

Можна спочатку оголосити тип множини, а потім використовувати його для оголошення змінних:

type t_ch = set of char;var ch1, ch2: t_ch;

Досить часто в якості базового типу безлічі використовується тип перерахування або певний його діапазон:

type week_days = (Mon, Tue, Wed, Thu, Fri);var work_days: set of week_days; lett: set of 'A' .. 'Z';

Оголошення змінної-множини не дає їй певного значення.



Строковий тип даних | побудова безлічі

Приклад. | END. {Кінець програми}. | P: KP: KZ | Case S of | Основні дії з двовимірними масивами Паскаля |

© um.co.ua - учбові матеріали та реферати