
- •Поняття масиву. Одновимірні та багатовимірні масиви.
- •While (вираз) оператор;
- •Do оператор while (вираз);
- •2. Стрічки і дії з ними.
- •2. Діапазонний тип.
- •Вкладені цикли.
- •Процедури. Формальні і фактичні параметри. Параметри - значення і параметри - змінні. Порядок виклику процедур.
- •Зчитування даних з файлу та ввід у файл
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;
Впорядкована множина значень, котра складає перерахований тип, автоматично нумерується, починаючи з нуля і далі через одиницю.