Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Формулировка задания:
Пользуясь рекуррентной формулой Yi = Yy-1 + Yi-3 * Yi-3, где i=3,4,…n, для заданного значения n вычислить Yn, если известны Y0, Y1, Y2.
Ввод исходных данных и вывод результатов вычислений должен осуществляться в разных пользовательских окнах.
Program Recur_1;
{Пользуясь рекуррентной формулой y(i)=y(i-1)+y(i-3)^2
где i=3,4,...,n для заданного значения n вычислить y(n),
если известны y(0), y(1), y(2).
Входные данные: y(0),
y(1),
y(2) - значения начальных элементов
n - номер искомого значения.
Выходное данное: y(n) - значение элемента с номером n
}
USES Crt; {подключение модуля}
{Процедура вывода пользовательского окна на экран}
PROCEDURE Okno(xv,yv,xn,yn,colfona,colbukv:BYTE;zag:STRING);
VAR
i:INTEGER;
BEGIN
Window(xv,yv,xn,yn); {Установка размеров окна}
TextColor(colbukv); {Установка цвета шрифта}
TextBackGround(colfona); {Установка цвета фона}
ClrScr; {переводит курсор в левый верхний угол окна и
очищает окно, заливая его цветом установленного фона}
GoToXY((xn-xv) DIV 2 - Length(zag) DIV 2,1);
Write(zag);
Window(xv+1,yv+1,xn-1,yn);
END;
Var
y0, y1, y2, {исходные данные}
y:LongInt; {результат}
a, b, c, {вспомогательные переменные}
i, {номер текущего элемента}
n:Integer; {номер искомого элемента}
txt:string; {вид заголовка пользовательского окна}
Begin
TextBackGround(BLACK);
TextColor(15);
clrscr;
{Окно формулировки задания. Белый текст на синем фоне.}
Okno(8,15,72,20,BLUE,15,'Формулировка задания');
WriteLn('Пользуясь рекуррентной формулой y(i)=y(i-1)+y(i-3)^2');
WriteLn('где i=3,4,...,n для заданного значения n вычислить y(n),');
WriteLn('если известны y(0), y(1), y(2).');
{Окно ввода исходных данных. Белый текст на зеленом фоне.}
Okno(10,2,70,5,2,15,'Ввод');
Write('Задайте значения y(0), y(1) и y(2) -> ');
ReadLn(y0,y1,y2);
Write('Задайте значение n -> ');
ReadLn(n);
a:=y0;
b:=y1;
c:=y2;
{Окно вывода результата. Белый текст на красном фоне.}
Okno(7,7,73,12,4,15,'Вывод');
{Решение с использованием управляющей структуры While-Do}
i:=3;
While i<=n
Do Begin
y:=y2+y0*y0; {значение очередного элемента последовательности}
y0:=y1;
y1:=y2;
y2:=y;
i:=i+1;
End;
WriteLn('While: значение элемента последовательности y(',n,')=',y);
{Решение с использованием управляющей структуры Repeat-Until}
y0:=a;
y1:=b;
y2:=c;
i:=3;
Repeat
y:=y2+y0*y0; {значение очередного элемента последовательности}
y0:=y1;
y1:=y2;
y2:=y;
i:=i+1;
Until i>n;
WriteLn('Repeat: значение элемента последовательности y(',n,')=',y);
{Решение с использованием управляющей структуры For-To-Do}
y0:=a;
y1:=b;
y2:=c;
For i:=3 To n
Do Begin
y:=y2+y0*y0; {значение очередного элемента последовательности}
y0:=y1;
y1:=y2;
y2:=y;
End;
WriteLn('For: значение элемента последовательности y(',n,')=',y);
ReadLn;
End.
Дата публикования: 2014-11-03; Прочитано: 256 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!