Лабораторные и практические работы №5 и 6 (Смотрите тему занятий «Создание алгоритмов и отладка программ циклической структуры» в таблице) являются для студентов достаточно сложными работами.
Поэтому, для лучшего понимания и усвоения данного материала я рекомендовал бы вам предварительно познакомиться (еще лучше, изучить) с содержанием ГЛАВы 8. ТЕХНОЛОГИИ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ:
8.1. Этапы решения задач на компьютере
8.2. Понятие алгоритма и его свойства
8.3. Способы записи алгоритмов
8.4. Основные виды алгоритмов Основные виды алгоритмов
8.5. Принципы программирования
8.6. Языки программирования
8.7. Классификация и обзор языков программирования
Вопросы для самопроверки
в моих электронных книгах «Информатика и ИТ. Нейросети» (выпуски 1 и 2).
В этой книге я попробую кратко и на конкретных примерах рассмотреть вопросы, касающиеся создания алгоритмов и отладки программ циклической структуры при работе с системой программирования на языке Паскаль.
1.Операторы цикла
Операторы цикла используются для вычислений, которые повторяются многократно. В Паскале имеется три вида циклов: цикл с предусловием while, цикл с постусловием repeat и цикл с параметром for.
1.1.Структурные схемы
Циклы с предусловием (на рис.1, левый) и с постусловием (рис.1, правый)
Формат оператора с предусловием:
while выражение do оператор
Формат оператора с постусловием:
repeat тело цикла until выражение
1.2.Примеры
Программа печати таблицы значений функции sin для аргумента, изменяющегося в заданных пределах с заданным шагом.
program tabl_fun;
var
Xn, Xk: real; {начальное и конечное значения аргумента}
dX: real; {шаг изменения аргумента}
x, y: real; {текущие значения аргумента и функции}
begin
writeln («Введите Xn, Xk, dX»);
readln (Xn, Xk, dX);
writeln (» — — — — — — — — — — — —»); {заголовок таблицы}
writeln (»│ X │ Y │»);
writeln (» — — — — — — — — — — — —»);
x:= Xn; {первое значение аргумента}
while x <= Xk do {заголовок цикла}
begin
y:= sin (x); {вычисление значения функции}
writeln (»│», x:9:2, ‘ │», y:9:2, ‘ │»); {вывод строки таблицы}
x:= x+dX; {переход к следующему значению аргумента}
end;
writeln (» — — — — — — — — — — — —»);
readln;
end.
Программа, вычисляющая квадратный корень вещественного аргумента Х с заданной точностью eps по итерационной формуле:
уn = (yn-1 + x/yn-1) /2,
где yn-1 — предыдущее приближение к корню (в начале вычислений выбирается произвольно), уn — последующее приближение. Процесс вычислений прекращается, когда приближения станут отличаться друг от друга по абсолютной величине менее, чем на величину заданной точности.
program square_root;
var
X, eps, {аргумент и точность}
Yp, Y: real; {предыдущее и последующее приближение}
begin
repeat
writeln («Введите X, eps’);
readln (X, eps);
until (X> 0) and (eps> 0);
Y:= 1;
repeat
Yp:= Y;
Y:= (Yp + X / Yp) / 2;
until abs (Y — Yp) <eps;
writeln («Корень из», Х:6:3, «с точностью», eps:7:5, «равен», Y:9:5);
readln;
end.
1.3.Цикл с параметром for
Параметром цикла называется переменная, которая используется при проверке условия продолжения цикла и принудительно изменяется на одну и ту же величину на каждой итерации. Если параметр цикла целочисленный, то он называется счётчиком цикла.
В циклах for языка Паскаль используется счётчик, который автоматически либо увеличивается, либо уменьшается на единицу.
Соответственно, могут быть две формы записи этого цикла:
for параметр:= выражение_1 to выражение_2 do оператор
for параметр:= выражение_2 downto выражение_1 do оператор
1.3.1.Структурная схема
1.3.2.Примеры.
1. Вывести на экран в столбик числа от 1 до 10.
program digit;
var i: integer;
begin
for i:= 1 to 10 do writeln (i)
end.
2. Вывести на экран в столбик числа от 10 до 1 и подсчитать их сумму.
program digit;
var i, sum: integer;
begin
sum:= 0;
for i:= 10 downto 1 do
begin
writeln (i);
inc (sum, i) {инкремент — inc (х) –увеличивает х на 1, inc (х, 3) — на 3}
end;
writeln («Сумма чисел:», sum);
readln;
end.
2.Реализация программы, ее тестирование и отладка на примере решения задачи определения наибольшего общего делителя
2.1.Черновой вариант алгоритма определения наибольшего общего делителя
На рисунке 3 показан черновой (рабочий) вариант алгоритма решения данной задачи. Он содержит неточности и ошибки, допущенные при его оформлении. Вам предлагается самостоятельно их устранить.
2.2.Реализация программы, ее тестирование и отладка
Бесплатный фрагмент закончился.
Купите книгу, чтобы продолжить чтение.