Все программы с циклом for, которые мы до этого писали нельзя назвать универсальными. Потому что мы задавали сами число повторений тела цикла.
А что делать, если количество повторений будет зависеть от какого-либо другого значения? Например, пользователь сам хочет задать количество повторений цикла.
Что делать в этом случае?
Все очень просто. Вместо числовых начальных и конечных значений, мы можем использовать любые переменные, которые могут как вычисляться, так и задаваться пользователем.
Например, нам нужно вывести квадраты чисел от 1 до n, где значение переменной n вводится с клавиатуры пользователем.
Программа будет выглядеть следующим образом:
var i, n :integer; // i – переменная цикла, n - максимальное число, у которого вычисляем квадрат
begin
read(n); // ввод n с клавиатуры
for i := 1 to n do // цикл: для всех i от 1 до n - переменная i будет последовательно принимать значения от 1 до n
writeln('Kvadrat chisla ', i, ' raven ', i * i); // Вывод квадрата числа по определенному формату и переход на новую строку
end.
При входе в цикл выполняется оператор i := 1, и затем переменная i с каждым шагом увеличивается на единицу (to). Цикл выполняется пока истинно условие i <= n. В теле цикла единственный оператор вывода печатает на экране само число и его квадрат по заданному формату.
Для возведения в квадрат или другую невысокую степень лучше использовать умножение.
Запустите программу и посмотрите результат ее работы при различных значениях переменной n.