Відсортувати масив за зростанням. Як відсортувати багатовимірний масив по одному з полів внутрішнього масиву PHP? Література Основна література

Часто під час вирішення певних завдань потрібно зробити сортування даних, які у масиві. Що таке сортування масивів? Ось, наприклад, граючи у преферанс, люди розкладають свої карти за значенням та масті. Це дає можливість визначити, яких ще карток їм не вистачає. А в словниках все впорядковується за абеткою. Прикладів можна навести багато. Сортування - перегрупування певної множини об'єктів у якомусь порядку за заданою ознакою. Сортування масивів потрібно досить часто. Для цього застосовуються різні методи. Щоб зрозуміти їх суть, достатньо докладно розглянути кілька способів.

На основі чого роблять

Важливо розуміти, що масив складається з численних пар ключів та певних значень. Сортування масивів мовою Сі виробляється з допомогою десятків рядків коду, але в мовою PHPце досягається лише однією нескладною командою. Сортування масивів можливе на основі ключів або значень. Ще можна розподіляти значення, залишивши їм існуючі ключі або надавши нові.

Основні відмінності функцій

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

Одні функції сортують масиви за ключами їх елементів, інші - за значеннями.

Буває різний порядок сортування: спадаючий, зростаючий, натуральний, числовий, алфавітний, визначений користувачами чи випадковий.

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

Кожна функція здійснює модифікацію переданого масиву. Відсортовану копію вони не повертають.

Порядок сортування вважається невизначеним, коли функція визначає два елементи як рівні. Це нестабільне сортування.

Деякі функції сортування масивів у PHP

Функції sort() та rsort(). Sort() упорядковує масово в алфавітному порядку. Звернемо увагу: ця функція чутлива до регістру. Відбувається сортування за значеннями без урахування ключів. Rsort() сортує в зворотному порядкутеж за значеннями і не враховує ключі.

Asort() - це одна з функцій, що зберігає відносини ключів та значень. Її корисно використовувати для асоціативних масивів, коли це важливо.

У прикладі ключами вибрано найменування фруктів, а значення - це ціни. Сортування відбувається за зростанням ціни. Якщо необхідне сортування, то потрібна функція ksort (), яка робить сортування за ключами. Arsort () здійснює сортування з індексами (описовими) за зменшенням значень. Krsort () сортує за зменшенням ключів елементів.

Двовимірний масив

Цікаве сортування двовимірного масиву. Це можна робити по-різному. У PHP є можливість порівнювати два чи два рядки. Але в будь-якому багатовимірному масивікожен із елементів є масив. У PHP, щоби порівняти кілька масивів, треба створити певний метод. Розглянемо двовимірний масив, в якому зберігається скорочена назва фруктів, повна назва та ціна. Елементи масиву можна відсортувати за абеткою за скороченими назвами.

У прикладі нашої функції ім'я compare (порівняння). У неї 2 аргументи – x, y. Функція має прийняти 2 значення, після чого визначити порядок. Параметри x, y – 2 масиву, які знаходяться всередині y основного масиву. Щоб порівнювати description-елементи з масивів, що передано у функцію, потрібні змінні $x, $y. У рядку return1 відбувається повернення значення коду, який викликав функцію. В основі сортування нашого масиву функція usort(). Сортування йде за правилами, які визначає функція compare().

Тепер сортування масивів у PHP стане для вас зрозумілим.

Інструкція

Існує кілька способів сортування масиву. Найбільш просте для алгоритмізації - «бульбашкове» сортування, проте воно ж відноситься до найповільніших. Суть даного методу полягає в послідовному проході по масиву даних та порівняння кожної пари елементів. Якщо нижчестоящий елемент виявляється меншим за попередній, проводиться обмін місцями. Далі алгоритм починається спочатку. Приклад коду сортування мовою С:

int mаss;
int el_min = 10;

for (int i=0; ii; j--)
if (less(mass [j], mass ))
swаp(mаss [j], masss);
}

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

int Kol = 40;
int mаss, k;

for (int i = 1, j=0; i(
k = mаss [i]; // допоміжна змінна для зберігання елемента масиву
j = i – 1;
while (k (
mаss = mаss [j];
j--;
if (j mаss = k;
}
}

Ще один із найчастіше використовуваних методів сортування – алгоритм упорядкування через пошук мінімального або максимального елемента в масиві. При сортуванні по зростанню в момент першого проходу масивом знаходиться його елемент з найменшим значенням і поміщається в початок масиву. На його місце встановлюється елемент, який займав раніше першу позицію. При подальшому розгляді масиву заповнене місце виключається. Шукається наступний мінімальний елемент, що міститься вже на друге місце і т.д., поки весь масив не буде відсортований. Код сортування методом знаходження мінімального елемента списку:

int mаss, bb;
int Kol = 30, min, pоs;

for (int i = 0; i(
min = mass [i];
pоs = i;
for (int j = 0; j (
if (мас [j] (
min = mass [j];
pоs = j;
}
bb = mаss [i];
mаss [i] = mаss;
mаss = bb;
}
}

Способи впорядкування елементів масивів залежать від інструментів, які є у вашому розпорядженні. Нижче наведено кілька варіантів упорядкування одновимірних масивів при використанні найбільш поширеної серверної мови програмування PHP. Самостійно складати функції для перебору елементів масиву, їх порівняння та присвоєння нових значень при використанні цієї мови не потрібно – все це роблять вбудовані функції.

Інструкція

Використовуйте функцію sort(), якщо треба побудувати дані в масиві в порядку їх зростання. Наприклад: $ values ​​= array (58, 15, 2.41, 26, 30);
sort($values); В результаті застосування зміниться розташування даних у масиві - він стане таким: (2.41, 15, 26, 30, 58). Якщо до виклику функції додати прапор SORT_STRING, то функція буде вважати дані масиву рядковими і вибудовувати їх на . Оскільки знак рядкової змінної «2.41» в алфавіті розташовується далі, ніж перший знак рядкової змінної «15», то після застосування функції sort($values, SORT_STRING) змінні вишикуються інакше: (15, 2.41, 26, 30, 58).

Скористайтеся функцією rsort() при необхідності впорядкувати масив у порядку зменшення його значень. Ця функція відрізняється від описаної у першому кроці лише порядком сортування.

Застосовуйте функцію asort(), якщо необхідно впорядкувати в порядку зростання значення іменованого (асоціативного) масиву, не змінюючи вихідних відповідностей між індексом і значенням кожного елемента масиву. Наприклад:$values ​​= array("one" => 58, "two" => 15, "three" => 2.41, "four" => 26, "five" => 30);
asort($values); В результаті порядок проходження елементів масиву стане таким: ("three" => 2.41, "two" => 15, "four" => 26, "five" => 30, "one" => 58 ). В іншому дія цієї функції не відрізняється від описаної в першому етапі функції sort. Для аналогічного впорядкування елементів у порядку зменшення використовуйте функцію arsort().

Рано чи пізно необхідність сортувати дані із масиву виникає у будь-якого програміста. Будь то виведення даних з бази в алфавітному порядку або сортування імен файлів за датою останньої зміни, можна здійснити завдяки вбудованим php функційдля сортування даних масиву У цій статті продемонструю і поясню в прикладах, як працюють такі функції як: sort(), rsort().

Функція; - Сортування масиву за зростанням та за алфавітом

Структура:

($Масив, $Прапор);

Функція сортує заданий масив $Масив за зростанням. Функція призначена для роботи зі списками. Списки – це звичайні масиви, ключі яких починаються з нуля. Функції можна задати необов'язковий аргумент $Прапор, який маніпулює тим, як саме має відбуватися сортування. Розглянемо опис аргументу $Прапор:

SORT_REGULAR– Сортування за промовчанням функції

SORT_NUMERIC- Сортування чисел, за зростанням

SORT_STRING- Сортування рядків за алфавітом

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

"; ) ?> Результат роботи скрипта: Курс: 1 - 72 пар Курс: 2 - 83 пар Курс: 3 - 100 пар Якби ми не застосували функцію результат роботи був би наступним: Курс: 1 - 83 пар Курс: 2 - 100 пар Курс: 3 - 72 пар

Сортування за абеткою

Нижче наведено скрипт який сортує країни їхнього масиву за абеткою, другий аргумент функції ($Прапор) не обов'язково ставити, т.к. функція сама зрозуміє, що має працювати з рядками.

"; ) ?> Результат роботи: Вірменія Італія Росія Японія

Функція rsort() - Сортування масиву за спаданням

функція є алогічної функції тільки сортує масиви за спаданням. розглянемо структуру синтаксису:

($Масив, $Прапор);

Приклад для цієї функції буде схожий на приклади вище наведені, крім одного, дані з масиву будуть відсортовані за спаданням. Створюємо масив із призами для тих хто займе 1-е, 2-ге та 3-тє місце у конкурсі.

"; ) ?> Результат виконання скрипту: 1 місце - приз: 2800 руб. 2 місце - приз: 1200 руб. 3 місце - приз: 500 руб.

Program Sort_Obmen;

var а:array of integer;

n,i,k,x: integer;

begin write("кількість елементів масиву");

для i:=1 до n до read([i]);

for k:=n-1 downto 1 do (кількість порівнюваних пар)

for i:=1 to k do if a[i]>a then (змінюємо місцями сусідні елементи)

for i:=1 to n do write(a[i]," "); (упорядкований масив)

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

Наведемо, проте, процедуру " швидкого сортування " , яка крок за кроком шукає максимальний, другий за величиною тощо. елементи та переносить: їх у кінець масиву. Зупинка циклу відбудеться тоді, коли при черговому проході не відбудеться (тобто елементи стали на свої місця):

Ім'яфала: FastSort.pas

Procedure FastSort(Var aa: Massive);

Var ii,kk,nn:byte;

For ii:=1 to nn-1 Do Begin

If (aa>aa) Then Begin

Swap (aa, a);

У той час, як при сортуванні попереднього методу масиву з 10 елементів знадобиться 9 проходів, для даного алгоритму це число може зменшитися. Наприклад, масив із значень (1,-3,7,-10,11,4,-6,2,5,-4) буде відсортований за 8 проходів, а масив (1,4,3,2,4, 5,6,7,10,11) - всього за 1.

Наслідуючи схожу, логіку відсортуємо масив за зростанням:

Ім'яфала: Sort_Inc.pas

Procedure Sort_Inc(Var aa: Massive);

Для kk:=1 до n-1 Do Begin

Для II:=1 до n-kk Do Begin

If (aa>aa) Then Begin

Swap (aa, a);

Обробка двовимірних масивів

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

Type Matrix = array of Real;

Var a, b, c, d: Matrix;

e: array of Byte;

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

Зауважимо, що двовимірний масив завжди можна розгорнути в одновимірний, а одновимірний - згорнути в двовимірний. Розглянемо приклади розв'язання задач на практичному занятті.

Література Основна література

    Ахметов К.С. Курс молодого бійця. Вид. 5-те. М., Комп'ютер-Прес,1998.

    Фігурнов В.Е. IBM PC для користувача. Вид. 7-ме. М., Інфра-М, 1997, та 1999.

    Олександр Левін Самовчитель Роботи на комп'ютері 8-е видання Розділ «з чого складається комп'ютер.» – Пітер, 2004 р.

    Електронний методичний посібник МДАПД 2005 р.

    Алексєєв Є.Р., Чеснокова О.В., Павлиш В.Р., Славінська Л.Ф. Турбо Паскаль 7.0 2-е видання – NT Press, М., 2006

    Коротаєв Д.Г. TURBO-PASCAL у прикладах та завданнях. Навчальний посібник МДАПІ, М, 2000

    Програмування мовою Паскаль Задачник. За редакцією О.Ф.Усковой – Пітер, 2003 р.

    Фаронов В.В. Навчальний посібник Turbo- Pascal– Пітер, 2007.

Відомі результати змагання 9 учасників зі стрільби. Розмістити дані результати у порядку зростання набраних при стрільбі очок.

Алгоритм розв'язання цієї задачі є найскладнішим із наведених вище прикладів і вимагає використання вкладених циклів.

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

Програма реалізації викладеного алгоритму може мати такий вигляд:

Program pr4;

Type STREL=arrayof integer;

Var rez:strel;

i,j,s:integer;

For i:=1 to 9 do

writeln('Введіть результати ",i,"-го учасника");

readln(rez[i]);

for i:=1 to 8 do

for j:=i+1 to 9 do

if rez[i]>rez[j] then

s:=rez[j];

rez[j]:=rez[i];

rez[i]:=s;

writeln('Відсортовані за зростанням результати:");

for i:=1 to 9 do write (rez[i]:5," ‘);

Тут STREL - тип масиву результатів стрільби учасників, rez[i] - змінна описи результатів i-го учасника (i змінюється від 1 до 9). Допоміжна змінна s використовується під час перестановки місцями елементів масиву.

Алгоритм сортування вибором у Turbo Pascal
Очевидно, що перше місце в масиві повинен зайняти мінімальний елемент масиву, друге - найменший з решти, третій - найменший з тих, що залишилися і т.д.
Для цього необхідно виконати таку послідовність дій:
1. Визначити мінімальний елемент масиву;
2. Змінити його місцями з першим елементом;
3. Визначити мінімальний елемент серед тих, що залишилися;
4. Поміняти його місцями з другим елементом тощо;
Ця послідовність дій повинна виконуватися доти, доки не буде визначено останній мінімальний елемент.
Цей спосібназивається сортування вибором.
Всю операцію з упорядкування масиву можна розбити на простіші завдання і назвати сортуванням вибору.
Перша – пошук мінімального елемента. Запропонований фрагмент програми нагадає Вам, як це робиться.

min:=m; (припустимо, що 1-й елемент - мінімальний)
t:=1; (і його номер = 1)
FOR i:=1 TO 30 DO
if m[i]> buf: = m [t]; (Заміна)
m[t]:=m[i];
m[i]:=buf;
END;

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


41. Безліч у Паскалі

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

Усі елементи множини повинні належати одному з порядкових типів, що містить не більше 256 значень. Цей тип називається базовим типом множини. Базовий тип визначається діапазоном або перерахуванням.

Область значень типу безліч - набір різноманітних підмножин, складених із елементів базового типу. У виразах мовою Паскаль значення елементів множини вказуються у квадратних дужках: , ["а",“b","с"], ["a".."z"].

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

Безліч може набувати всіх значень базового типу. Базовий тип не повинен перевищувати 256 можливих значень. Тому базовим типом множини можуть бути byte, char, boolean і похідні від них типи.

Безліч у пам'яті зберігається як масив бітів, в якому кожен біт вказує чи є елемент, що належить оголошеній множині, чи ні. Максимальна кількість елементів множини 256, а дані типу множина можуть займати не більше 32 байт.

Число байтів, що виділяються для даних типу безліч, обчислюється за формулою:

ByteSize = (max div 8) - (min div 8) + 1,

де max і min - верхня та нижня межі базового типу даної множини.

Номер байта для конкретного елемента Е обчислюється за такою формулою:

ByteNumber = (E div 8) - (min div 8),

номер біта всередині цього байта за формулою:

BitNumber = E mod 8

Не має значення порядок запису елементів множини всередині конструктора. Наприклад, і – це еквівалентні множини.

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

Змінні множинного типу описуються так:
Var<идентификатор>: set of<базовый тип>;

Наприклад:

Var A, D: Set Of Byte; B: Set Of "a".."z"; C: Set Of Boolean;

Не можна вводити значення у множинну змінну процедуру введення та виводити процедурою виведення.

Множинна змінна може набути конкретного значення лише в результаті виконання оператора присвоєння:
<множественная переменная> := <множественное выражение>;

Наприклад:

A: =; B: = ["m", "n", "k"]; C: =; D: = A;

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

Операції над множинами

Об'єднаннямдвох множин A і B називається множина, що складається з елементів, що входять хоча б в одну з множин A або B. Знак операції об'єднання в Паскалі +.

1) + => 2) +['a'..'z']+['A'..'E', 'k'] => ['A'..'E', 'a'.. 'z']3) + =>

Перетиномдвох множин A і B називається безліч, що складається з елементів, що одночасно входять до множини A і до множини B.

Знак операції перетину в Паскалі «*»

1) * => 2) ['a'..'z']*['A'..'E', 'k'] => ['k']3) * =>

Різницядвох множин A і B називається множина, що складається з елементів множини A, що не входять до множини B.

1a) - => 1b) - => 2a) ['a'..'z']-['A'..'E', 'k'] => ['a'..'j', ' i'..'z']2b) ['A'..'E', 'k'] - ['a'..'z'] => ['A'..'E']3a) - => 3b) - =>

Операція входження. Це операція, що встановлює зв'язок між множиною та скалярною величиною, тип якої збігається з базовим типом множини. Якщо x - така скалярна величина, а M - множина, то операція входження записується так: x in M.

Результат - логічна величина true, якщо значення x входить у безліч M, і false - інакше.

Наприклад, 4 in - true, 5 in - false.

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

1) Натуральне число n двозначним. Замість виразу (n> = 10) and (n<=99) можна записати n in.

2) Символ c є російською літерою. Замість виразу (c >= 'А') and (c<= ‘Я’) or (c>= 'а') and (c<=‘п’) or (c>= 'р') and (c<=‘я’) пишемо c in ['А'.. 'Я', 'а'.. 'п', 'р'.. 'я']і т.д.

Додати новий елемент до множини можна з використанням операції об'єднання. Наприклад, a:= a+ Для цих же цілей Turbo Pascal 7.0 призначена процедура Include: include (M, A) M – множина, A – змінна того ж типу, що й елементи множини M. Той самий приклад можна записати так: Include (a, 5)

Виключити елемент із множини можна за допомогою операції «різниця множин». Наприклад, a:= a- Для цих же цілей Turbo Pascal 7.0 призначена процедура Exclude: exclude (M, A) M – множина, A – змінна того самого типу, що й елементи множини M. Той самий приклад можна записати так: Exclude (a, 5)

Розглянемо кілька прикладів використання множин при розв'язанні задач.

Завдання 1.У місті є n вищих навчальних закладів, які виробляють закупівлю комп'ютерної техніки. Є шість комп'ютерних фірм: "Діалог", "Avicom", "Нета", "Сервер", "Декада", "Dega.ru". Відповісти наступні питання:
1) у яких фірмах закупівля здійснювалася кожним із вузів?
2) у яких фірмах закупівля здійснювалася хоча б одним із вузів?
3) у яких фірмах жоден із вузів не закуповував комп'ютери?

Розв'яжемо задачу з використанням множин. Для зручності подальших маніпуляцій у порядку проходження занумеруємо комп'ютерні фірми, починаючи з одиниці. Занесемо інформації про місце закупівель комп'ютерів кожним із ВНЗ в окрему множину.

Відповідь на перше запитання можна отримати, виконавши перетин всіх таких множин.

Відповідь друге питання – результат об'єднання множин.

І, нарешті, на останній - різниця безлічі всіх фірм і безлічі фірм, де хоча б один вуз робив покупки.

Program ex_set_1;type firma = set of 1..6; v = array of firma; const f: array of string = ("Діалог", "Avicom", "Нета", "Сервер", "Декада", "Dega.ru"); (процедура введення інформації про закупівлю комп'ютерів у черговий фірмі) процес vvod (var a: firma); var i: byte; ans: 0..1;begin a:= ; for i:= 1 to 6 do begin Write("ВНЗ купував комп'ютери у фірмі", f[i], "(1 - так, 0 - ні)?"); ReadLn(ans); if ans = 1 then a:=a+[i] end;end;(процедура виведення елементів масиву, номери яких містяться у множині)procedure Print(a: firma);var i: byte;begin for i:= if i in a then write(f[i]:10); writelnend;(Процедура, що дає відповідь на перше запитання)procedure Rez1(a: v; n: byte; var b: firma); var i: byte; begin b:= ; for i:= 0 to n-1 do b:= b * a[i];end;(Процедура, що дає відповідь на друге питання) : byte; begin b:=; для i:= 0 до n-1 до b:= b + a[i];end;var a: v; n, i: byte; c: firma;begin write("Скільки вузів робили закупівлю?"); readln(n); for i:= 0 to n-1 do vvod(a[i]); Rez1(a, n, c); writeln("Кожен з вузів закупив комп'ютери у фірмах:"); Print(c); Rez2(a, n, c); writeln("Хоч би один із вузів закупив комп'ютери у фірмах: "); Print(c); writeln("Жоден з вузів не закупив комп'ютери у фірмах:"); Print(-c);end.

Завдання 2.Згенерувати nмножин (нумерацію розпочати з 1). Вивести елементи, які входять у всі множини з номерами, кратними трьом, але не входять до першої множини.

Program ex_set_2;type mn = set of byte; v = array of mn; (процедура введення інформації в чергове безліч) procedure vvod (var a: mn); n:= 1 +random(200); for i:= 1 to n do begin vsp:= random(256); a: = a + end; end; (процедура виведення елементів множини) procedure Print (a: mn); var i: byte; writelnend;(Процедура, що дає відповідь на запитання)procedure Rez(a: v; n: byte; var b: mn); var i: byte; begin b:= ; i:= 3; while i<= n do begin b:= b * a[i]; i:= i + 3 end; b:= b - aend;var a: v; n, i: byte; c: mn;begin randomize; write("Сколько множеств? "); readln(n); for i:= 1 to n do begin vvod(a[i]); print (a[i]) end; Rez(a, n, c); Print(c);end.

Program ex_set_3;var m: set of char; s: string; i: byte;begin write("Введіть рядок: "); readln(s); m:=; i:= 1; while i<= length(s) do if s[i] in m then delete(s, i, 1) else begin m:=m+]; i:= i + 1 end; writeln(s)end.

42. Програма пошуку кількості певних символів у тексті.

Тут представлені функції, що найчастіше використовуються. Наведемо приклад програми, що визначає кількість символів та слів у довільному рядку символів .

program pr28;

const YES=1; (Константи, що визначають є )

NO = 0; (Поточний символ елементом слова)

str: string;

nw, (Кількість слів)

nc, (Кількість символів)

inword: integer; (Змінна, що приймає значення

констант YES або NO)

i: integer;

writeln("Введіть рядок символів:");

read(str);

nw:=0;nc:=0;inword:=NO;

for i:=1 to length(str) do

nc:=nc+1;

if str[i] in [":",".",",","","!","?",";"," "](Якщо розділювач,)

then inword:=NO (то поточний символ поза словом)

if inword=NO then

begin inword:=YES;

nw:=nw+1;

writeln ("nc =", nc, "nw =", nw);


43. Символьний тип даних у мові Турбо-Паскаль.