End;
Readkey;
End.
ЗАДАЧА №231
Умова: Скласти програму, яка б допомогла працівникам ДАІ визначати кількість порушників перевищення швидкості на трасі, якщо відомо, що на даному проміжку траси встановлено обмеження на швидкість V max , a прилад фіксує швидкість автомобілів V 1 V 2 , ..., V n .
Розв ‘язання : В даній задачі ніяким чином не обумовлена умова виходу з циклу, тому є пропозиція: процес підрахування порушників необхідно закінчити тоді, коли чергове введене число буде недодатнім (дійсно, з від’ємною або нульовою швидкістю автомобіль рухатися не може). Для тимчасового зберігання значення швидкості чергового автомобіля ми будемо знову використовувати одну змінну. Програма, що виконує задані обчислення, має наступний вигляд:
Program Example_231;
Uses crt;
Var V,Vmax:real; {V - швидкість автомобіля, Vmax - максимально дозволена швидкість}
Count:longint; {Count - кількість порушників}
Begin
Clrscr;
Count:=0; {На початку роботи порушники відсутні}
Write(‘Значення максимально дозволеної, швидкості: ‘);
Readln(Vmax);
Vmax:=abs (Vmax) ; {Знаходження модуля для виключення помилки введення від’ємної максимальної швидкості}
Repeat
Write(‘Значення швидкості чергового автомобіля: ‘);
Readln(V);
If V>Vmax then Count:=Count+1;
Until V<=0;
Writeln(‘Кількість порушників ‘,Count);
Readkey;
End.
ЗАДАЧА №251
Умова : Дано натуральне число п і дійсні числа а 1 а 2 , .... а п . Відомо, що в заданій послідовності є хоча б одне нульове значення. Розглядаючи члени послідовності, що розташовані до першого нульового члена, визначити середнє арифметичне членів.
Розв ‘язання: Для розв’язку цієї задачі значення п є зайвим, якщо серед членів послідовності буде хоча б один нульовий елемент, тому ми враховувати цю змінну не будемо (хоча дітям можна пояснити, що у випадку відсутності нульового члена послідовності змінна nможе використовуватись як додаткова для виходу з циклу, щоб виключити зациклення програми).
Отже, оскільки ми не знаємо, коли зустрінеться нульовий елемент, у програмі знаходиться сума всіх чисел послідовності (змінна sum ) та кількість введених чисел (змінна count ), а після виходу з циклу вже знаходиться безпосередньо середнє арифметичне членів послідовності як результат ділення суми на кількість чисел, зменшену на одиницю. Зменшення на одиницю відбувається тому, що фактично в тілі циклу буде підраховано один зайвий нульовий елемент (останній).
Програма має вигляд
Program Example_251_5;
Uses crt;
Var count:word; {count - кількість членів послідовності до першого нульового елемента}
a,Sum:real; {a - черговий член послідовності. Sum - сума членів послідовності до першого «0»}
SA:real; {SA - середнє арифметичне}
Begin
Clrscr;
Sum:=0;
count:=0; {Початкові значення дорівнюють «0»}
repeat
write(‘Введіть черговий член послідовності: ‘) ;
readln(a);
Sum:=Sum+a;
count:=count+1;
until a=0;
SA:=Sum/(count-1);
Writeln(‘Середнє арифметичне = ‘,SA:8:2);
Readkey;
End.
Домашнє завдання:
• Повторити теоретичний матеріал із роботи циклу з післяумовою;
• Виконати задачі №185, №187, №208(5), №234(4), №239(4), №251(4).
УРОК 22. Табличні величини
Мета уроку: дати поняття табличних величин та їх опису мовою програмування. Поняття лінійних таблиць, введення елементів таблиць та виведення їх на екран.
Теоретичний матеріал
Поняття таблиці було введене програмістами для запам’ятовування та обробки великих наборів однотипних даних. Наприклад, якщо ми хочемо знайти середній бал кожного учня класу з інформатики за чверть, нам слід знайти суму дуже великої кількості оцінок. Як зберігати всі ці оцінки? Зарезервувати для цього 40 (а може і більше змінних)? Це дуже незручно. Ось тут і знадобиться такий структурований тип даних, як таблиця, або інакше — масив .
Масив — це структура даних, що являє собою однорідну (за типом), фіксовану (за розміром і конфігурацією) сукупність елементів, упорядкованих за номерами.
Читать дальше