Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка з програмування (школа).doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1 Мб
Скачать
☆

Var n,h:word;

{N — кількість дітей в дитсадочку, Н — висота паркану}

А:аггау[1..100] of longint;

{А — зарезервований масив для зберігання зросту дітей}

і,Count_girl,Count_boy:longint;

{і — змінна циклу, Count_girl — кількість дівчаток,

Countjboy — кількість хлопців}

Begin

Randomize;

Clrscr;

Count_girl:=0; Count_boy:=0;

Write('Введіть висоту паркану: ');

Readln(H);

Write('Введіть кількість дітей в дитсадочку: ');

Readln(N);

For i:=1 to N do

Begin

A[i]:=random(300)-150;

{Заповнення масиву випадковими числами від -150 до +150}

Write(А[і]:5) ;

{Виведення масиву на екран для контролю роботи програми}

if (A[i]<0) and (abs(A[i])>H) then Count_Boy: =Count_Boy+1;

if (A[i]>0) and (A[i]+10>H) then Count_Girl: =Count_Girl+1;

End;

Write('хлопчики, яких видно з-за паркану ',Count_Boy);

Write('дівчатка, яких видно з-за паркану ' ,Count_girl);

Readkey; {Затримка зображення на екрані}

End.

Задача №314(2)

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

Розв 'язання: Перш за все запропонуємо в цій задачі інший метод опису масиву з використанням константи, що задає розмір масиву, та вказівки Туре. А, по-друге, зверніть увагу, що для визначення двох сусідніх елементів масиву використовується загальний опис індексів і та і + 1 (можна і — 1 та і), а це при організації циклу можне викликати ситуацію виходу за межі масиву. Дійсно, якщо організувати цикл з параметром для зміни індексу від 1 до N, де N — кількість елементів масиву, то при і = N значення і + 1 буде виходити за межі масиву. Це є помилкою, що призводить до неочі-куваних результатів, тому цикл треба організовувати для зміни індексу не від 1 до N, а для зміни від 1 до N - 1.

Program Example_314_2;

Uses crt;

Const N=100;

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

Var a:Masiv; {a — масив для зберігання даних чисел}

і,count:byte; {і — змінна циклу, count — кількість сусідств}

Begin

Randomize;

Clrscr;

count:=0;

For і:=1 to N do

Begin

A[i]:=random*100-random*50;

{Заповнення масиву випадковими дійсними числами}

Write(А[і]:8:2);

End;

For i:=l to N-l do

If ((A[i]<0) and (A[i+1]>0)) or ((A[i]>0) and (A[i+1]<0))

then count:=count+l;

Writeln;

Writeln('Кількість заданих сусідств ',count);

Readkey; {Затримка зображення на екрані}

End.

Задача № 321 (1,2)

Умова: Дано одновимірний масив цілих чисел A[i], де i = 1, 2, ..., п. Визначити, скільки разів максимальний елемент зустрічається у даному масиві та порядковий номер першого найбільшого елементу.

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

1) береться будь-який елемент масиву (як правило, перший) і його значення присвоюється змінній max, тобто він вважається за еталон найбільшого елементу;

2) по черзі з масиву вибираються всі останні елементи і, якщо серед них знайдеться більший за обраний еталон, то змінній max присвоюється нове значення, яке тепер буде новим еталоном. В іншій змінній, наприклад, Nmax запам'ятовується номер цього найбільшого елементу (початкове значення цієї змінної було 1, тому що спочатку ми вважали найбільшим 1 -ий елемент). Після закінчення перегляду всього масиву змінна max буде містити шуканий максимум, а змінна N_max — його номер. Щоб запам'ятати номер першого максимального елемента, необхідно шукати в матриці елемент, що точно більший еталону. Якщо ж ми будемо шукати елемент, що не менший за еталон, то в змінній Nmax залишиться номер останнього найбільшого елементу (подумайте чому).

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

Програма, що реалізує описаний алгоритм, наведена нижче:

Program Example_321_1_2;

Uses crt;

Const n = 30;