Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВІдповіді на теоретичні питання з основ програм...doc
Скачиваний:
4
Добавлен:
20.09.2019
Размер:
299.01 Кб
Скачать

2. Стрічки і дії з ними.

Для опрацювання масивів символів у мові C++ є стандартні функції, які опи­сані у модулі string.h. Розглянемо деякі з них.

stгlеn(<рядок>) - визначає фактичну кількість символів у рядку, застосовується у виразах;

strcat(r1, r2) - команда з'єднання рядків г1, г2 в один ря­док, результат присвоює змінній r1;

strncat(r1, r2, n) - до змінної г1 додає перших n символів рядка г2, команда;

strcpy(r1, r2) - копіює символи з рядка г2 в рядок г1, команда;

strncpy(r1, r2, п) - копіює перших n символів рядка г2 в рядок г1, команда;

strchr(r1, <символ>) - визначає перше входження деякого символу у рядок г1 так: повертає рядок, який почи­нається від першого входження заданого символу до кінця рядка г1, застосовується у виразах;

strrchr(r1, <символ>) - визначає останнє входження зада­ного символу у рядок, застосовується у виразах;

strspn(r1,r2) - визначає номер першого символу, який входить у рядок г1, але не входить у рядок г2, застосовується у виразах;

strstr(r1, r2) - визначає в рядку г1 підрядок, що починаєть­ся з першого входження рядка г2 у рядок М, засто­совується у виразах;

strtok(r1, r2) - визначає частину рядка г1, яка закінчується перед першим однаковим символом рядків г1 та г2;

strnset(r1, <символ>, n) - вставляє n разів заданий символ перед рядком г1, застосовується у виразах;

strupr(rl) - перетворює усі малі літери рядка у великі;

strlwr(rl) - перетворює усі великі літери рядка у малі;

strrev(rl) — записує рядок у зворотному порядку.

У бібліотеці stdlib.h є стандартні функції перетворення типів даних. Зокрема, функція atoi(r1) перетворює рядок сим­волів г1 у дане цілого типу int, а функція itоа(<числове дане>, r1, <система числення>) - дане цілого типу int у рядок г1. Для пере­творення даних типу double у рядок символів визначена функ­ція gcvt(<числове дане>, <кількість знаків у числі>, г1), а обернену дію виконує функція strtod.

  • Одновимірні масиви. Порядок опису одновимірних масивів та доступу до його елементів.

Регулярні типи даних відносяться до структурованих типів. Регулярні типи називають ще масивами. Отже, масиви – це впорядкована сукупність однотипних величин. Кожна окрема величина називається компонентом (елементом) масиву. Тип компонента може бути будь-яким, допустими типом мови Паскаль, крім файлового типу. Тип компонентів називається базовим типом. Вся сукупність компонентів визначається однім ім'ям. Для позначення окремих компонентів використовується конструкція, що називається змінною з індексом чи з індексами. Головні характеристики сукупності значень, що утворюють масив такі: ім’я, розмірність ( кількість компонентів), тип компонентів і тип індексів Ім’я - це повна змінна типу масив, її значенням є весь масив. Загальний вигляд масиву:

{для одновимірних масивів}

Type

<:ім’я> = array[1..<тип_індекса>] of <тип_елементів>;

Індексом може бути довільний вираз. Тип індексів може бути тільки iнтервальним або перерахованим.

Приклад:

type

Robochid=(pn,vt,sr,ct,pt,sb);

Mas=array[Robochid] of Boolean;

Дійсний і цілий типи недопустимі. Індекси iнтервального типу, для якого базовим є цілий тип, можуть приймати від'ємні, нульове і додатні значення. В операторній частині програми один масив може бути присвоєний іншому, якщо їх типи iдентичні.

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

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

Наприклад:

Mas[2]=25;

Mas1[3][5]=10;

Для вводу чи виводу масиву в список вводу чи виводу поміщається змінна з індексом, а оператори вводу чи виводу виконуються в циклі.

Iниціалiзація масивів (присвоєнння початкових значень всім компонентам масивів) здійснюється двома способами. Перший спосіб - з використанням типізованих констант, наприклад:

type Dim10 = Array [1.. 10] of Real;

const ram10 : Dim10 = ( 0, 2.1, 4, 5.65, 6.1, 6.7,7.2, 8, 8.7, 9.3 )

Другий спосіб iніціалiзації - використання різновиду процедури Fillchar:

Fillchar( var V; Nbytes : Word; B : Byte );

  • Перелічуваний тип даних. Діапазонний тип даних.

Паскалі введено новий тип - перелічувальний. Іншими словами, можна визначити новий тип шляхом перелічування всіх його можливих значень, причому кожне значення буде визначатись лише іменем. Перерахований тип становить обмежену впорядковану послідовність скалярних констант, що утворюють даний тип. Значення кожної константи задається її ім'ям. Імена окремих констант відділяються один від одного комами, а вся сукупність констант, що складають перерахований тип даних, заключається в круглі дужки.

Наприклад, перерахований тип Colory об'єднує скалярні значення Red, Orange, Yellow, Green, Light_blue, Blue, Violet (червоний, оранжевий, жовтий, зелений, голубий, синій, фіолетовий). Перерахований тип Traffic_light об'єднує значення Red, Yellow, Green (червоний, жовтий, зелений).

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

Type<імя типу>=(<перелік можливих значень>);

Наприклад:

type Сolory = (Red, Orange, Yellow, Green,

Light_blue, Blue, Violet );

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

Змінні перерахованого типу можуть бути описані в розділі опису змінних, наприклад :

var S : ( Red, Yellow, Green );

При цьому імена типів відсутні, а змінні визначаються множиною значень, що складають даний перерахований тип. Однак у цьому разі цей же тип не можна надати ще якійсь одній або групі змінних. Імена, перелічені в дужках , називаються сталими іменами.

Значення елемета деякого типу не може належати іншому типу. Наприклад, запис

Type

Robochid=(pn,vt,sr,ct,pt,sb);

Vychidni=(sb,nd);

є неправильним.

До змінних перерахованого типу можна застосувати оператор присвоєння:

S : = Yellow;

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