Завдання № 40. Вивести на екран твір парних елементів заданій послідовності натуральних чисел » Pascal - основи програмування

Основи програмування на мові Pascal

 

Спонсори

Завдання № 40. Вивести на екран твір парних елементів заданій послідовності натуральних чисел

Завдання № 40. Вивести на екран твір парних елементів заданій послідовності натуральних чисел
Формулювання. Дана послідовність натуральних чисел, обмежена введенням нуля. Вивести на екран твір парних елементів цієї послідовності. При цьому нуль не рахується членом послідовності.
Примітка: завдання подібного роду вимагають виконання будь-яких дій в залежно-сті від деякого характеристичного властивості. Більшість з них математично нецікаві, проте розвивають здатність поєднувати окремі прийоми і методи програмування, тому, в основному, сприяють напрацюванню досвіду.
Рішення. Так як нам заздалегідь невідома довжина розглянутої послідовності, але ми знаємо про те, що вона обмежується введенням нуля, і тому можемо зробити цикл з предусло-Вієм a <> 0, де a - поточний введений член. Так як немає необхідності працювати з нескольки-ми членами одночасно, ми можемо слідувати даній схемі і в конкретний момент часу працювати лише з одним елементом послідовності.
При всьому цьому перед циклом нам необхідно вважати перший член a, щоб увійти в цикл, якщо послідовність непорожній (а якщо порожня, тобто складається з одного нуля, то і не потрібно входити в цикл і що-небудь робити):

read (a);
while a <> 0 do begin
  ...
  read (a)
end;

До речі, ми використовуємо оператор введення read, щоб можна було вводити члени через пробіл, а не через enter, як при використанні readln. Всередині циклу замість крапки повинна розташовуватися деяка послідовність операторів, які і будуть виконувати обробку даних, що вводяться. Після кожної ітерації необхідно ввести наступний член послідовник-ності і продовжити обробку, якщо він не дорівнює нуля, і закінчити в іншому випадку.
Примітно, що лише за деякими винятками саме в циклі такого виду буде розташовуватися основний блок обробки для всіх задач на послідовність, обмежену введенням нуля.
Що ж стосується поточного завдання, то для її вирішення ми в циклі повинні перевірити кожен елемент на парність, і якщо він парний, домножити на нього деяку змінну prod для накопичення результату (яку спочатку потрібно зробити рівний 1). При цьому якщо за завершити-ванні програми змінна prod буде як і раніше дорівнює 1, то це означає, що послідовник-ність або порожня, або в ній немає парних елементів, що спонукає зробити в цьому випадку відпо-ствующую перевірку з висновком результату або повідомлення про відсутність елементів. У зв'язку з написаним виникає такий код:
read (a);
prod: = 1;
while a <> 0 do begin
  if a mod 2 = 0 then prod: = prod * a;
  read (a)
end;
if prod <> 1 then writeln (prod) else writeln ('No such ele-ments!');

При цьому перевіряється нерівність prod одиниці, так як хотілося б помістити в then-блоці умовного оператора висновок «позитивного» відповіді (який відповідає критерію завдання), а в else-блоці - обробку «виродженого випадку». Насправді ж такий порядок не повинен бути самоціллю і не вважається «хорошим тоном» в програмуванні, та й робиться тільки з примхи автора, так що не було б ніякої різниці, якби в останній сходинці було:
if prod = 1 then writeln ('No such elements!') else writeln (prod);

Код:


  1. program ProductOfEven;
  2. var
  3. a, prod: word;
  4. begin
  5. read(a);
  6. prod := 1;
  7. while a <> 0 do begin
  8. if a mod 2 = 0 then prod := prod * a;
  9. read(a)
  10. end;
  11. if prod <> 1 then writeln(prod) else writeln(' No such elements!')
  12. end.

0040.-ProductOfEven.rar [665 b] (cкачувань: 2)

 

скачать dle 10.4фильмы бесплатно Наступна сторінка » Завдання № 41. Вивести на екран твір дв... Попередня сторінка » Завдання № 39. Перевірити, чи є натурал...