УРОК 23. Обробка лінійних таблиць
Мета уроку: навчити розв’язувати типові задачі з обробки лінійних таблиць.
На початку уроку бажано зробити опитування за матеріалом попереднього уроку та повторити тему «Команда повторення», особливо різновид циклу — цикл з параметром. Далі рекомендується розглянути методирозв ‘язування типових задач з обробки лінійних таблиць. Зверніть увагу на те, що дуже велика кількість задач з обробки масивів потребує виконання однотипних дій з усіма елементами, тому зручно в цих випадках використовувати цикл із параметром для організації повторення.
ЗАДАЧА № 300
Умова: Барон Мюнхгаузен, вийшовши на екологічно чисте полювання, зарядив свою рушницю кісточками вишень. Після того, як він вдало влучив поміж роги оленям (в яких влучило відповідно k1, k2,-.;kN кісточок), у них на головах виросли чудові молоді вишеньки. Скільки саджанців зміг подарувати барон Мюнхгаузен садівникам-дослідникам?
Розв’язання: Для розв’язування цієї задачі пропонується використати масив для зберігання кількості кісточок, що влучили поміж роги оленям. Оскільки кількість кісточок є цілим числом, масив повинен мати розмірність N елементів цілого типу. Для спрощення відлагодження програми доречно використовувати автоматичне заповнення масиву за допомогою генератора випадкових чисел, а з метою перевірки правильності роботи програми після заповнення масив виводиться на екран. Програма, що реалізує розв’язання цієї задачі, має такий вигляд:
Program Ехашр1е_300;
Uses crt;
Var N:word;
К:array[1..100] of longint;
{K — зарезервований масив для зберігання кількості кісточок, що влучили в оленів}
і,Sum:longint; {і — змінна циклу, Sum — загальна кількість кісточок, що влучили в оленів}
Begin
Randomize;
{Ця процедура запускається з метою зробити числа генератора випадкових чисел ще більш «випадковими»}
Clrscr;
Sum:=0; {Спочатку Мюнхгаузен ще ні в кого не влучив}
Write(‘Олені, в яких влучив Мюнхгаузен (<=100): ‘);
Readln(N);
For і:=1 to N do
Begin
К[і]:=random(5 0)+2 0; {Заповнення масиву випадковими числами в діапазоні від 20 до 70}
Write(К[і]:5); {Виведення на екран для контролю}
Sum: =Sum+K [і] ; {Знаходження кількості влучених кісточок}
End;
Writeln; {Переведення курсору на новий рядок}
Writeln(‘Кількість нових саджанців ‘,Sum);
Readkey; {Затримка зображення на екрані}
End.
ЗАДАЧА № 309
Умова: Дано натуральне число А. Складіть програму, що представляє його у вигляді многочлена. Наприклад,
123 = 1 * 102 + 2* 101 + 3*10°.
Розв ‘язання. Ця задача фактично зводиться до пошуку окремих цифр числа. Оскільки ми не знаємо на початку роботи, скільки цифр має число, для їх зберігання