Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LABs1-10a.doc
Скачиваний:
6
Добавлен:
17.11.2019
Размер:
833.54 Кб
Скачать

Лабораторная работа n 8. Программирование алгоритмов циклической структуры

==================================================

Цель и задача работы : научиться использовать в программах опе-

---------------------- раторы цикла. Написать программу выполня-

ющую определенные действия в цикле.

Теоретические положения.

------------------------

Идея цикла - это одно из мощнейших средств любого языка прог-

раммирования. Операторы цикла заставляют выполняться входящие в их

состав операторы несколько раз, в частности один раз или ни разу.

Существует три различных оператора циклов в языке программи-

рования Паскаль: FOR - цикл повторяется заданное число раз, WHILE -

цикл с предусловием, REPEAT - цикл с постусловием.

А) Oператор цикла с параметром:

формат оператора цикла с параметром:

оператор-FOR = "FOR" параметр-цикла ":=" список-FOR "DO" опе-

ратор

параметр-цикла = идентификатор

список-FOR = начальное_значение ("TO"!"DOWNTO") конечное-зна-

чение

начальное_значение = выражение

конечное_значение = выражение.

Характерные особенности :

- число повторений известно к началу выполнения

- управление циклом осуществляется с помощью переменной

упорядоченного типа (INTEGER, BOOLEAN, CHAR), которая в

этом циклическом процессе принимает последовательные зна-

чения от заданного до конечного используя функции SUCC (TO)

или PRED (DOWNTO)

- цикл может ни разу не выполниться.

Данный оператор работает следующим образом: при входе в цикл

вычисляется начальное и конечное значения цикла, затем параметру

цикла присваивается начальное значение и сравнивается с конечным,

если параметр цикла больше конечного значения (цикл с "TO") или

меньше конечного значения (цикл с "DOWNTO"), то цикл заканчивается,

иначе происходит выполнение оператора цикла, после этого параметр

цикла изменяется с помощью функций SUCC (цикл с "TO") или PRED

(цикл с "DOWNTO"), происходит сравнивание с конечным значением и

т.д.

I

/^\

/ \

/ \ Ложно

+---------------< E1 <= E2 >------------+

I \ / I

I \ / I

I \ / I

I I I

I I истинно I

I +---------+----------+ I

I I т е л о ц и к л а I I

I +---------+----------+ I

I I I

+---------------------+ I

I

+------------------+

I

где E1 - начальное значение, а E2 - конечное значение.

Б) Оператор цикла с постусловием:

формат оператора:

оператор-REPEAT = "REPEAT" оператор [";" оператор] "UNTIL"

["("] условие [")"]

условие = логическое выражение.

Последовательность операторов между REPEAT и UNTIL выполняется

до тех пор, пока значение условия не станет TRUE. Характерная

особенность - цикл выполняется по крайней мере один раз. Повторными

выполнениями управляют с помощью условия, значения которого вычис-

ляется после каждой итерации.

I

+--------------------+

I +----------+---------+

I I Т е л о ц и к л а I

I +----------+---------+

I I

I /^\

I / \

I / \

I ложно / \

+------------< у с л о в и е >

\ /

\ /

\ /

\ /

I истинно

в) Оператор цикла с предусловием:

формат оператора:

оператор=WHILE = "WHILE" ["("] условие [")"] "DO" оператор.

I

+----------------------------------+

/^\ I

/ \ I

/ \ I

/ \ Истинно I

< у с л о в и е >------------+ I

\ / I I

\ / +----------+---------+ I

\ / I т е л о ц и к л а I I

\ / +----------+---------+ I

Ложно I I I

I +-------------+

I

Перед выполнением цикла проверяется условие, если оно TRUE,

то выполняется оператор, иначе оператор не выполняется. Характер-

ная особенность - цикл может ни разу не выполниться.

Пример :

--------

VAR CH: CHAR; I, N: INTEGER; B: BOOLEAN;

а) Печать в строку заглавных букв латинского алфавита:

FOR CH:='A' TO 'Z' DO WRITE(CH);

б) Печать в строку чисел от 0 до 9:

I:=0;

REPEAT

WRITE(I); I:=SUCC(I);

UNTIL (I=10);

в) Вычисление суммы чисел от 0 до 32 включительно:

B:=TRUE; I:=0; CH:=CHR(33); N:=0;

WHILE (B) DO IF (CHR(I)=CH)

THEN B:=FALSE

ELSE BEGIN

N:=N+1; I:=SUCC(I);

END;

Варианты заданий :

------------------

1) Вычислить первые N чисел ряда фиббоначчи (ряд Фиббоначчи это

числа равные сумме двух предыдущих чисел: 1,1,2,3,5,8,13,...)

2) Целое число представить в виде суммы двух квадратов

3) Определить, сколько цифр содержит заданное целое число и имеют-

ся ли в нем повторяющиеся цифры

4) Вычислить F=N!, в программе описать тремя вариантами циклов

5) Логической переменной присвоить TRUE или FALSE в зависимости

от того, является ли натуральное число K степенью числа 3 или

нет (т.Е. 3^N=K, Где N любое целое число)

6) Найти два числа Фиббоначчи, удовлетворяющие условию при задан-

ном M: ф(I)<=M<=ф(I+1), вывести эти числа и их порядковые номе-

ра

7) Вычислить сумму всех чисел фиббоначчи, которые не превосходят

заданное чило

8) Не используя стандартные функции, вычислить с точностью EPS>0

Y=LN(1+X)=X-X*X/2+X*X*X/3-...+(-1)^N*X^X/N (IXI<1)

(Где ^N означает число в степени N)

9) Не используя стандартные функции, вычислить с точностью EPS>0

Y=COS(X)=1-X*X/2!+X*X*X*X/4!-...+(-1)^N*X^2N/(2N)!+...

(X<=1)

10) Напечатать таблицу значений функции SIN(X) и COS(X) на задан-

ном интервале [A,B] с заданным шагом D (считать, что при печати

на каждое вещественное число отводиться 8 позиций, а под дроб-

ную часть 6 позиций

11) Приближенно вычислить интеграл от функции LN(2+SIN(X)) в про-

межутке от A до B (где A<B), используя составную формулу пря-

моугольников для заданного шага H>=100 :

интеграл от A до B (где A<B) функции приближенно равен

H*[F(X1)+F(X2)+...+F(XN)], Где H=(B-A)/N, XI=A+I*H-H/2

12) Вычислить количество точек с целочисленными координатами нахо-

дящихся в круге радиуса R (R>0) с центром в точке A(X,Y)

13) Логической переменной присвоить значение TRUE, если целое N

(N>1) - простое число, и значение FALSE иначе и выдать сообщение

14) Напечатать в возрастающем порядке все трехзначные числа, в де-

сятичной записи которых нет одинаковых цифр (операцию деления

не использовать)

15) Приближенно вычислить интеграл от функции EXP(X) в промежутке

от A до B (где A<B) с заданной точностью E>0, используя состав-

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

интеграл от A до B функции приближенно равен

H*[F(A)/2+F(A+H)+F(A+2H)+...+F(B-H)+F(B)/2)], Где H=(B-A)/N

16) Для заданного K, вычислить K-тую цифру последовательности

2 4 6 8 1 0 1 2 1 4 1 6 1 8 2 0 2 2 2 4 2 6 2 8 3 0 ...

(Записаны подряд все четные натуральные числа)

17) Для заданного K, вычислить K-тую цифру последовательности

1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 ...

(Записаны подряд все натуральные числа)

18) Вычислить значение функции для заданного K

Y=COS(1+COS(2+COS(3+...+COS(K-1+COS(K))...)))

19) Вычислить значение функции для заданного K

Y=SIN(K+SIN(K-1+...+SIN(2+SIN(1))...))

20) Вычислить по схеме горнера

Y=X^10+2^2*X^9+3^2*X^8+...+10^2*X+11^2, Где выражение X^10

означает X в степени 10

21) Вычислить K-тое число последовательности целых простых чисел

(где K>1)

22) Представить целое число в виде суммы трех полных квадратов

23) Вычислить сумму кодов всех букв, входящих в заданное слово

(слово состоит из N букв, 0<N<50)

24) Определить количество M-значных натуральных чисел у которых

сумма цифр стоящих на нечетных разрядах равна N (10<=N<=30,

0<M<5)

25) Перевести заданное целое число из одной системы счисления в

другую (основания систем счисления и само целое число вводить

с клавиатуры).

26) Вывести на экран все числа, кратные 3 в интервале от M до N при

заданных M и N.

27) Найти сумму четных чисел в интервале от м до N. Числа м и N

задаются при вводе.

28) Вывести на экран факториал четных чисел в промежутке от 1 до N при

заданном N

29) Составить и вывести на экран таблицу синусов углов в интервале от 0 до

360 градусов при изменении угла на каждые 10 градусов.

30) Вывести на экран сумму цифр первых N четырехзначных чисел, начиная с

числа K при заданном N и K.

31) Вывести на экран все буквы алфавита, коды которых кратны пяти.

32) Составить и вывести на экран таблицу умножения чисел до N включительно.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]