Статьи /  Pascal /  
Pascal Операторы ввода и вывода

Pascal. Операторы ввода и вывода.

Если оператор или группа операторов необходимо повторить, то используются операторы цикла.


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

Общая структура:
for j := j1 to j2 do begin
    оператор 1;
    оператор 2;
    ...
    оператор N;
end;
Элементы в заголовке цикла j, j1 и j2 относятся к переменным любого целого типа. j - переменная цикла, которой последовательно будет присваиваться значения из диапазона [j1; j2] включительно.

Задача: Составить программу, вычисляющую сумму

program cycle1;
uses crt;
var s, k : integer;
begin
    clrscr;{очищение экрана}
    s:=0; {обнуление первоначальной суммы}
    for k := 1 to 10 do s := s + sqr(k);
        write('S=', s);
    readln;{удержание экрана}
end.

Оператор цикла while

Оператор while используется в тех задачах, когда заранее неизвестно число повторов

Общая структура:
<инициализация переменной цикла>;
while<условие для выполнения цикла>
do begin
    оператор 1;
    оператор 2;
    ...
    оператор N;
    <изменение переменной цикла>;
end;
Элементы в заголовке цикла j, j1 и j2 относятся к переменным любого целого типа. j - переменная цикла, которой последовательно будет присваиваться значения из диапазона [j1; j2] включительно.

Задача: Для произвольного длинного целого получить число, цифры которого расположены в обратном порядке по отношению к исходному числу (палиндром).

program cycle2;
uses crt;
var n, nNew : longint; res : integer;
begin
    clrscr;
    write('/n=');
    readln(n);
    nNew := 0;
    while (n > 0) do begin
        res := n mod 10; {определение последней цифры введенного числа}
        nNew := 10 * nNew + res; {к новому числу дописываем определенную цифру}
        n := n div 10; {от старого числа отбрасываем последнюю цифру}
    end;
    write('nNew=', nNew);
    readln;
end.

Оператор цикла repeat..until

Оператор repeat..until Используется для задачи с заранее неизвестным числом повторений, как и цикл while, но в отличие от последнего операторы данного цикла выполняются по крайней мере 1 раз.

Общая структура:
<инициализация переменной цикла>;
repeat
do begin
    оператор 1;
    оператор 2;
    ...
    оператор N;
until <условие завершения цикла>;

Задача: решить трансцендентное уравнение x – cos(x) = 0.

Подобное уравнения не имеют аналитического решения и могут быть решены посредством математических формул.

Решить трансцендентное уравнение
,где f(x) – функция, для которой нужно определить корень

Схема ньютона позволяет выяснить очередное приближение к корню по его предыдущему приближению, такие схемы называются итерационными.

Таким образом, необходимо составить программу
Решить трансцендентное уравнение
Program cycle3;
uses crt;
var x1, x2, eps : real;
begin
    clrscr;
    x1 := 0; {начальное приближение}
    Repeat
        x2 := x1 – (x1 – cos(x1))/1+sin(x1);
        writeln(x2:0:9);
        eps := abs(x1 – x2);
        x1 := x2;
    until (eps < 0,0000001);
    readln;
end.

Схема Ньютона позволяет с высокой точностью получить решение за несколько итераций.

Яндекс.Метрика