Паскаль. Основы программирования


Оператор цикла fordowntodo - часть 3


        write('выводить кубы чисел '); readln(n);

        writeln('Кубы чисел следующие:');

        k := 1;

           for i := 1 to n do

              begin

                 s := 0;

                    for j := 1 to i do

                      begin

                         s := s + k; k := k + 2

                      end;

                 writeln('Куб числа ', i, ' равен ', s)

              end

     end.

Разберем работу этой программы

Переменные i и j нужны в качестве переменных первого - внешнего и второго - внутреннего циклов. Переменная k для нечетных чисел, а s для суммы чисел. Тип этих переменных установлен целый, но longint, так как могут быть достаточно большие целые числа, большие 32767.

Программа начинается с запроса для пользователя с помощью операторов writeln и write о вводе натурального числа, до которого надо выдавать таблицу кубов чисел. Затем с помощью оператора readln это значение вводится в память компьютера и присваивается переменной n.

Выводится надпись "Кубы чисел следующие". Она дана перед началом циклов по понятным причинам. В циклах ее дать нельзя, - она будет повторяться несколько раз. По окончании циклов тоже, тогда она будет написана внизу, после вывода самих чисел. Переменной k присваивается первое нечетное значение 1.

Начинается внешний цикл по количеству чисел, от 1 до n. В цикле несколько операторов, поэтому "открываются" операторные скобки: - begin ...

Перед началом внутреннего цикла обнуляется переменная s - сумма. Причем такое обнуление будет происходить каждый раз, когда повторяется внешний цикл, перед началом выполнения внутреннего цикла.

Внутренний цикл выполняется от 1 до i. Почему? В цикле вычисляется сумма и увеличивается нечетное k на 2, т. е. "вырабатывается" следующее нечетное число.

Заметьте!

Переменной k не присваивается перед началом каждого внутреннего цикла 1. Почему?

Следующим оператором writeln внутри внешнего цикла выдается информация на экран. Почему он размещен во внешнем цикле?




Начало  Назад  Вперед