Зворотний зв'язок

Мітки та переходи

У Турбо Паскаль для указання таких переходів є спеціальні оператори, відповідно, exit, continue і break, тобто "вийти" (з підпрограми), "продовжувати" і "перервати" (виконання циклу). Розумно використовуючи ці оператори, можна обійтися без міток і goto. Насправді ці три оператори – виклики процедур. Їх імена не є службовими словами, але ми будемо виділяти їхнім жирним шрифтом. Приклади їх використання – у наступному підрозділі.

Читання послідовностей

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

1. Спочатку читається кількість значень n, n maxint, потім самі значення в кількості, яка визначається за n. Для опису читання зручно скористатися for-оператором.

Приклад 1. Многочлен, він же поліном pnxn+pn-1xn-1+ … +p1x+p0 задається послідовністю з n+1 коефіцієнтів pn,pn-1, … , p1, p0. Треба прочитати значення x, степінь і коефіцієнти полінома та обчислити його значення в точці x. Оскільки

pnxn+pn-1xn-1+ … +p1x+p0=(... (pnx+pn-1)x+ … +p1)x+p0,

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

vi=vi-1 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 – шукане}

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


Реферати!

У нас ви зможете знайти і ознайомитися з рефератами на будь-яку тему.







Не знайшли потрібний реферат ?

Замовте написання реферату на потрібну Вам тему

Замовити реферат