End.

ЗАДАЧА №342(1)

Умова: Дано натуральне число п та послідовність дійсних чисел а1, а2 ... ап. Визначити усі числа, що входять у послідовність по 1-му разу.

Розв ‘язання: Пошук чисел, що входять у послідовність по одному разу, виконати важко, тому що для цього необхідно порівняти кожне число з кожним. Набагато простіше зробити це у відсортованому масиві, оскільки однакові числа в ньому будуть розташовані поруч. Тобто пропонуємо в даній задачі спочатку відсортувати масив (метод сортування будь-який, наприклад, «бульбашка»), а потім зробити по ньому прохід, порівнюючи сусідні елементи. Якщо вони не рівні, виконуємо підрахунок. Загальна кількість чисел, що входять у послідовність по одному разу, буде на одиницю більша, ніж отримане число в лічильнику.

Program Example_342_l ;

Uses crt;

Const N = 100;

Type Masiv = array[1..N] of real;

Var A:Masiv; {A — масив для вихідної послідовності}

і,j,count:byte; {і,j - змінні циклу, count - кількість елементів, що входять у послідовність один раз}

k: integer; {к - змінна, що коригує праву границю сортування}

Flag:Boolean; {Flag - змінна, що фіксує, чи була перестановка}

Begin

Randomize;

Clrscr;

For i:=1 to N do

Begin

A[i]:=random(300)/ll-random*15;

Write(A[i]:8:2);

End;

k:=1;

Repeat

Flag:=false;

For i:=1 to N-k do

Begin If A[i]<A[i+l] then

begin {Обмін елементів масиву через третю змінну}

Rez:=A[i]; А[і]:=А[і+1]; A[i+1]:=Rez;

Flag:=true;

end;

k:=k-1;

End;

Until Flag = false;

count:=0;

For i:=1 to N-1 do

Begin If A[i]OA[i+l] then count: =count+1; End;

count:=count+l;

Writeln;

Write (‘Кількість елементів, що входять у послідовність 1 paз ‘) ;

Writeln(count);

Readkey;

End.

Домашнє завдання:

• Задача №339(2), №342(3,5), №367

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату