Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект_лекций.doc
Скачиваний:
18
Добавлен:
26.04.2019
Размер:
1.11 Mб
Скачать
      1. Программа вычисления корня по формуле Герона.

Текстовое описание алгоритма программы.

  1. Прочесть (консольно) значение вещественного числа «а» и целого числа N-количество итераций.

  2. Проверить допустимость введенного числа a>0,

  3. Присвоить некое исходное значение переменной «х»,

  4. Присвоить начальное значение счетчику цикла, т.е. некой целочисленной переменной ii=0.

  5. Вычислить очередное приближение корня по формуле (2).

  6. Увеличить счетчик цикла на единицу.

  7. Проверить значение счетчика: если ii<N то перейти (вернуться) к выполнению пункта 5.

  8. Вывести на экран результат расчетов.

Текст программы.

Program Pr1; {текст программы следует сохранить

в одноименном файле, т.е. в файле с именем PR1.PAS !}

Var ii, N: integer; x, a: real;

Label MMM;

Write(‘Введите положительное число а=’); Readln(a);

Write(‘Введите количество итераций N=’); Readln(N);

if a<0 then

begin

Writeln(‘Программа извлекает корни только из положительных чисел’);

Exit {команда: завершить выполнение программы}

end;

x:=1; ii:=0;

MMM: x:=0.5*(x+a/x);

ii:=ii+1;

{печать промежуточных результатов: удобно для отладки программы !}

WRITELN(ii,’ ‘,x);

if ii<N then goto MMM;

Writeln(‘корень x=’,x,’ квадрат корня =’,x*x);

end.

6.9.3. Оператор цикла for to

Синтаксис оператора:

FOR Iсчет := Iнач TO Iкон DO Опер ;

FOR – ключевое слово оператора, за которым обязательно следует разделитель-пробел (пробелы),

Iсчет – целочисленная переменная – счетчик цикла,

:= два символа – разделителя (избыточный синтаксис языка Pascal),

Iнач - целочисленная константа или переменная, содержащая начальное (наименьшее) значение счетчика цикла,

TO - служебное слово-разделитель (избыточный синтаксис языка Pascal),

Iкон - целочисленная константа или переменная, содержащая конечное (наибольше) значение счетчика цикла,

DO - служебное слово-разделитель (избыточный синтаксис языка Pascal),

Опер – оператор, выполнение которого повторяется несколько раз, т.е. собственно само «тело цикла».

Пример:

Var ii, k: integer;

. . . . . . . . . . . .

for ii:=k to 7 do a:=Sqrt(a+1);

Звуковая транскрипция операторов управления обычно дается несколькими предложениями-командами: Повторяй выполнение оператора, указанного после слова DO, последовательно наращивая на единицу содержимое переменной ii! Начальное значение возьми из переменной k!. Как только значение счетчика цикла превысит число семь - выполнение оператора прекрати!

Текст программы, реализующей задачу из предыдущего раздела,

но использующей новый оператор цикла.

Program Pr2; {программу сохранить в файле PR2.PAS !}

Var ii, N: integer; x, a: real;

Write(‘Введите положительное число а=’); Readln(a);

Write(‘Введите количество итераций N=’); Readln(N);

if a<0 then begin Writeln(‘Требуется A>0’); Exit end;

x:=1;

for ii:=1 to N do

begin

x:=0.5*(x+a/x);

WRITELN(ii,’ ‘,x);

end;

Writeln(‘корень x=’,x,’ квадрат корня =’,x*x);

end.

Настоятельно рекомендуется: записывать сложносоставные операторы управления – СТРУКТУРИРОВАНО, как это сделано в примере. Визуальное восприятие таких операторов существенно облегчается, если служебные слова FOR BEGIN и END (или IF BEGIN END) размещать:

  • либо в разных строках, но начиная с одной и той же позиции,

  • либо все три слова в одной строке, что возможно только для коротких предложений.