Мітки та переходи, Детальна інформація

Мітки та переходи
Тип документу: Реферат
Сторінок: 8
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 13.8
Скачувань: 1078
pnxn+pn-1xn-1+ … +p1x+p0=(... (pnx+pn-1)x+ … +p1)x+p0,

то значення v полінома можна подати як значення останнього члена послідовності: v0=0, v1=v0\xF0D7 x+pn, v2=v1\xF0D7 x+pn-1, … , vn+1=vn\xF0D7 x+p0. Неважко переконатися, що вона задається рекурентним співвідношенням

vi=vi-1\xF0D7 x+pn+1-i, i=1, 2, … n+1,

причому перед його першим застосуванням треба знати лише перший коефіцієнт, перед другим – другий тощо. Тому цикл має складатися з читання чергового коефіцієнта й застосування співвідношення. У будь-який момент виконання програми треба знати лише один, останній прочитаний коефіцієнт, тому для збереження коефіцієнтів достатньо однієї змінної.

Отже, спочатку прочитаємо значення x, потім степінь полінома n, потім n+1 коефіцієнт, застосовуючи "по дорозі" рекурентне співвідношення:

V:=0;

writeln('задайте точку дійсної прямої :'); readln(x);

writeln('задайте цілий невід'ємний степінь полінома :'); readln(n);

for i:=1 to n+1 do

begin

writeln( 'задайте ', n+1-i, '-й коеф-т :'); readln(p);

V:=V*x+p

end;

{прочитано n+1 коефіцієнт; значення V – шукане}

Оформлення алгоритму у вигляді підпрограми залишаємо вправою. \xF0E7

2. Відомо особливе значення, поява якого в послідовності вхідних значень позначає її кінець і як вхідне не розглядається. Для опису читання зручно скористатися repeat-оператором, тому що треба прчитати не менше, ніж одне значення перед тим, як з'явиться ознака кінця.

Приклад 2. На контрольно-пропускному пункті митниці працює одна бригада інспекторів. Автомобілі прибувають, стають у чергу (якщо вона є) і проходять контроль у порядку прибуття. Для кожного автомобіля відома тривалість його контролю t: автомобіль покидає митницю через t одиниць часу після початку його контролю. Прибуття першого автомобіля задано відносно початкового моменту часу, а прибуття кожного наступного – відносно моменту прибуття попереднього. Отже, вхідними даними є пари цілих чисел x1, t1, x2, t2, … , причому xi\xF0B3 0, ti>0, крім останнього: t=0 позначає кінець послідовності вхідних даних. За вхідною послідовністю треба визначити послідовність моментів виїздів автомобілів із контрольно-пропускного пункту.

Перше наближення до розв'язання очевидно:

t0:=0; {особливе значення}

repeat

readln(x, t);

if t>t0 then обробити x, t і обчислити момент від'їзду y

until t=t0.

Припустимо, що в контролі автомобілів немає пауз: контроль наступного автомобіля, якщо він уже прибув, починається відразу після від'їзду попереднього. За x1 і t1 можна обчислити момент від'їзду y1: y1=x1+t1. Введемо поняття "момент початку контролю автомобіля" і позначимо його bi: bi=max{yi-1,xi}. Тоді yi=bi+ti. Звідси очевидним є уточнення фрази "обробити x, t і обчислити момент від'їзду y":

if y
else b:=y; {y – момент від'їзду попереднього автомобіля}

y:=b+t; {тепер y – момент від'їзду чергового автомобіля}

Для першого автомобіля момент від'їзду попереднього відсутній, тому для нього повинно бути b:=x. Щоб не розглядати окремо випадки, перший або не перший автомобіль, будемо вважати початковий момент часом від'їзду "нульового" автомобіля. Тоді алгоритм набуває вигляду:

t0:=0; y:=0;

repeat

The online video editor trusted by teams to make professional video in minutes