Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по TURBO PASCAL.doc
Скачиваний:
18
Добавлен:
04.11.2018
Размер:
1.13 Mб
Скачать
    1. Нахождение произведения

Похожим образом находится произведение нескольких различных элементов. Только начальное значение переменной, в которой будет храниться произведение, должно быть равно не нулю, а единице. И множители надо не прибавлять, а домножать:

program The_product_of_natural_numbers_from_1_to_5;

var p, i : integer;

begin

p := 1; { вначале произведение равно 1 }

For i := 1 to 5 do

begin

p := p * i { находим произведение }

end;

writeln (’Произведение чисел от 1 до 5 равно ’, p)

end.

Эта программа находит произведение первых пяти натуральных чисел. Измените эту программу так, чтобы она находила произведение первых 10 натуральных чисел и объясните причину полученного неправильного результата. Исправьте программу так, чтобы она давала правильный результат. А чему равно произведение чисел от -5 до 5? Почему?

    1. Нахождение количества

Очень часто приходится решать задачу, в которой необходимо найти количество чисел, которые удовлетворяют некоторым условиям. Например, найти количество нечётных чисел в заданном интервале. Для решения этой задачи необходимо организовать цикл, в котором будут поочерёдно перебираться все значения из заданного интервала. В теле цикла надо будет проверять: удовлетворяет ли параметр цикла указанному условию? Если да, то это найденное значение надо посчитать, то есть увеличить счётчик найденных элементов на единицу (в самом начале этот счётчик должен быть равен нулю); если нет, то перейти к следующему элементу.

Применим всё вышесказанное к решению такой задачи: "Найти количество нечётных чисел из интервала от 30 до 50".

Для этого нам надо будет организовать цикл для переменной i, которая будет перебирать поочерёдно значения от 30 до 50. В теле цикла мы должны будем проверять: является ли i нечётным числом? Помните как это делать? Нужно сравнить остаток от деления i на 2 с нулём – чётные числа делятся на 2, нечётные нет. Для такой проверки надо использовать условный оператор if. Если i – число чётное, то этот остаток не равен нулю. В этом случае нужно увеличить счётчик на единицу, то есть посчитать найденное число. В конце программы выводим результат на экран.

Переведём теперь это всё с русского на язык паскаль:

program Skoko_nechetnyx_chisel_ot_30_do_50;

var k, i : integer;

begin

k := 0; { вначале счётчик равен 0 }

For i := 30 to 50 do

begin

if k mod 2 <> 0 { Если число не делится на 2, то оно нечётное … }

then k := k + 1 { … и его надо посчитать }

end;

writeln('В интервале от 30 до 50 ', k, ' нечётных чисел')

end.

Как вы уже заметили, цикл For используют тогда, когда заранее, перед началом его работы известно, сколько раз он должен выполниться. Однако, порой бывает необходимо организовать такой цикл, о котором заранее не будет известно, сколько раз его надо выполнять. Например, задача о нахождении суммы цифр данного числа N. Если мы не знаем, сколько в этом числе цифр, то не сможем решить эту задачу используя цикл For. Для таких целей используют цикл While – цикл пока.