21 груд. 2015 р.

Оператор повторення. Цикл з параметром

Залежно від того, чи відома заздалегідь кількість повторів, розрізняють цикл з умовою та цикл з параметром. Цикл з параметром застосовують тоді, коли кількість повторів відома. Для підрахунку кількості повторів вводиться змінна-параметр одного з порядкових типів: integer, boolean або char тощо.
Оператор параметричного циклу має наступну структуру:
1. For <параметр>:= A to B do
  begin 
<тіло циклу>
  end;
(Для <параметр>:= A до B виконати)

2.  For <параметр>:= A downto B do
 begin
<тіло циклу>
 end;
(Для <параметр>:= A назад до B виконати)

Тут А - початкове значення параметра, В - кінцеве значення, якого набуде параметр. Тіло циклу - це набір команд, які будуть виконуватись до того часу, поки параметр не досягне свого кінцевого значення. Якщо команд кілька, то їх слід взяти у операторні дужки: begin - end. Під час кожного виконання вказівки значення параметра збільшується або зменшується на одиницю, залежно від того, яку вказівку застосовано: to чи downto. Таким чином параметр набуватиме значень: А, А + 1, А+2..., В-1, В або навпаки.
(На основі матеріалів підручника "Інформатика 7 клас" Пилипчук О.П., Ріпко Н.А., Шестопалов Є.А. 2015 рік )

Задача. Знайти суму перших N натуральних чисел. Число N вводиться з клавіатури.
Аналіз умови задачі: Відомо, що кількість повторів визначена, вона точно буде дорівнювати числу N, яке ми вводимо з клавіатури. Оскільки перше натуральне число дорівнює 1, а останнє - N, то можемо застосувати параметричний цикл. Змінну-параметр часто позначають буквою i. Суму чисел позначимо буквою S. Оскільки числа натуральні, то їх сума буде натуральним числом, як і сам параметр. Оберемо тип даних word.
Реалізація на мові Pascal:
var S, i, N: word;
begin
  read(N); {зчитується значення змінної N, яке ввів користувач}
  for i:=1 to N do S:=S+i;  {для i від 1 до N виконати: до змінної S додати значення параметра і. За замовчуванням значення змінної S = 0, якщо перед початком тіла циклу ми не змінювали його, значення параметра i постійно збільшується на 1, поки не досягне значення N}
  writeln (S) {вивести значення змінної S}
end.
Змінимо умову задачі наступним чином:
Задача. Знайти суму перших N натуральних чисел. Результат кожної дії виводити на екран. Число N вводиться з клавіатури.
Тоді доведеться не тільки декілька разів додавати до S (суми) параметр і, а ще і кожного разу виводити результат на екран. Таким чином у тілі циклу виконуватиметься не одна, а група вказівок: обчислити і вивести значення. У такому випадку тіло циклу потрібно взяти в операторні дужки begin - end. Тоді програма набуде наступного вигляду:
var S, i, N: word;
begin
read(N);
for i:=1 to N do
  begin
     S:=S+i; 
     writeln (S)
   end; 
end.  

Немає коментарів:

Дописати коментар