- •Лабораторная работа №1. Работа в среде Norton Commander
- •Лабораторная работа n 2. Среда программирования turbo pascal 7.0
- •Лабораторная работа n 3. Программирование в среде turbo pascal 7.0
- •Лабораторная работа n°4.Ознакомление со средствами компиляции и отладки в среде Turbo Pascal 7.0.
- •Лабораторная работа n 5. Ввод/вывод на языке программирования Паскаль
- •Лабораторная работа n 6.Программирование алгоритмов линейной структуры
- •Лабораторная работа n 7. Программирование алгоритмов ветвящейся структуры
- •Лабораторная работа n 8. Программирование алгоритмов циклической структуры
- •Лабораторная работа n 9.Одномерные массивы
- •Лабораторная работа n 10. Многомерные массивы
Лабораторная работа 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 включительно.