Ограниченные (интервальные) типы  

Ограниченные (интервальные) типы

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

Type

= ..;

Тип, из которого выбирается отрезок, называется базовым. Так, например, если определить тип Short как отрезок целого типа:

Type

Short = 1..20;

и описать переменную k этого типа:

Var

k : Short;

транслятор во время выполнения программы будет контролировать выход значения переменной k за границы диапазона 1–20.

Определить принадлежность переменных к отрезкам типов можно и непосредственно в разделе описания переменных, задав при этом в разделе типов базовые скалярные типы. Например:

Type

Color = (red, yellow, green, blue);

Var

Light : red..green;

Liquid : red..blue;

k : 1..20;

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

Пример программы

Пусть необходимо вычислить первые пятнадцать членов ряда Фибоначчи, определяемые рекуррентным соотношением , при , и найти их сумму. Особенностью решения данной задачи является необходимость сдвига получаемых значений вправо, при вычислении каждого нового значения ряда, и накопление суммы по рекуррентному соотношению Начальное значение суммы должно быть принято равным Алгоритм представлен на рис. 4.4, ниже приведен текст программы.

Рис. 4.4. Алгоритм вычисления членов ряда Фибоначчи

{Цель- нахождение последовательности }

{ чисел Фибоначчи и их суммы }

{Переменные:f0,f1,f2 – числа Фибоначчи; }

{ n – количество чисел; S – их сумма; }

{ i – параметр цикла; }

{Программист – Светлов Н.А. }

{Дата написания - 12.11.07 г. }

Program Fib;

Var

i, n: integer;

f0, f1, f2, S : integer;

Begin {Fib}

{Ввод и эхо-печать исходных данных}

WriteLn('Введите число членов последовательности');

Readln(n);

WriteLn('Сформировано следующих', n:3, 'чисел:');

{Инициализация переменных}

S:=1;

f0:=0; f1:=1;

Write(f0:4, f1:4);

for i := 3 to n do{Начало цикла}

Begin

{Формирование и суммирование чисел Фибоначчи}

f2 := f1 + f0;

Write(f2:4);

S := S + f2;

f0 := f1; f1 := f2

end; {Конец цикла}

WriteLn;

WriteLn('Их сумма равна:', S:5);



ReadLn

End. {Fib}

Вопросы для самоконтроля

1. Какова общая структура цикла с параметром?

2. Каковы основные правила организации цикла с параметром?

3. Как оформить тело цикла с параметром для нескольких операторов?

4. Переменные каких типов могут быть параметром в операторе for?

5. Каким образом изменяется параметр цикла в операторе for?

6. В чем отличие алгоритма вычисления суммы от алгоритма вычисления произведения?

7. Приведите пример вычисления конечной суммы.

8. Приведите пример с параметром цикла не целого типа.

9. Дайте определение перечисляемого типа.

10. Каким образом определяется интервальный тип данных?

Упражнения

1. Вычислить

где x = -2(0,2)2, A = -5, B = 12.

2. Вычислить значение функции f(x) по графику

для значения аргумента x = x0(hx) xn, где x0 = -2; hx = 0,5; xn= 2.

3. Вычислить значение функции одной переменной

в интервале -3 £ x £ 6 с шагом hx = 0,5. Точки разрыва исключить.

4. Вычислить сумму

5. Вычислить сумму

6. Вычислить произведение

7. Вычислить значение интеграла

по формуле прямоугольников

f(xi) – подынтегральная функция. Принять a = 0, b = p/4, n = 30.

8. Вычислить сумму

Для контрольного просчета принять x = 1,75.

9. Вычислить значение интеграла

по формуле трапеций

xk = a + kh; f(xk) – подынтегральная функция. Принять a = 1, b = 4, n = 40.

10. Вычислить произведение

11. Вычислить

Для контрольного просчета принять x = 7,5; a = 1,7.

12. Вычислить

причем .

Для контрольного просчета принять k = 5.

13. Определить количество заданных точек (x, y), попавших в указанную область, включая ее границы, где x = x0 + ih; y = y0 + ih; x0 = -1,5; y0 = 0,5; h = 0,1; i = 1(1)10.



14. Определить, сколько четных целых чисел лежит в интервале (a, b), где a < sin x2; b = x4; x = 3.

15. Определить максимальное целое число n, удовлетворяющее условию 3n2 - 730n < 5.

16. Вычислить первые 20 членов последовательности чисел Фибоначчи: u1 = 1; u2 = 2; un = un-1 + un-2, а также значение «золотого сечения» при n=20

.

17. Вычислить

для x = -3(0,5)3; a = 1,35. Причем x = 0 исключить.

18. Вычислить значение интеграла по формуле трапеций при n = 30 (см. вариант 9), где c = 2,1.

19. Вычислить значение интеграла

по формуле трапеций при n = 20 (см. вариант 9), где c = 1,5.

20. Вычислить

для x = 0,5(0,2)1,7. Точки разрыва исключить.

4.2. Программирование циклов
с неизвестным числом повторений


8698789457666817.html
8698852943729041.html

8698789457666817.html
8698852943729041.html
    PR.RU™