
- •Экзаменационный вопрос №1 базовые понятия алгоритмизации
- •Экзаменационный вопрос №2 средства изображения алгоритмов
- •Экзаменационный вопрос № 3 базовые канонические структуры алгоритмов
- •Экзаменационный вопрос № 16. Общая характеристика языка программирования паскаль
- •Экзаменационный вопрос № 17. Программирование ввода-вывода данных различного типа
- •Экзаменационный вопрос № 18. Программирование линейных вычислительных процессов
- •Экзаменационный вопрос № 19. Программирование разветвляющихся вычислительных процессов с использованием if -then –else
- •Экзаменационный вопрос № 20. Программирование разветвляющихся вычислительных процессов с использованием оператора case
- •Экзаменационный вопрос № 21.
- •Экзаменационный вопрос № 22. Программа вычисления корней квадратного уравнения
- •Экзаменационный вопрос № 23. Программирование разветвляющихся структур с использованием в цикле операторов repeat – until
- •Экзаменационный вопрос № 24. Программа вычисления суммы бесконечного ряда
- •Экзаменационный вопрос № 25. Программирование циклических вычислительных структур
- •Экзаменационный вопрос № 26. Программирование с использованием цикла с параметрами
- •Экзаменационный вопрос № 27. Программирование циклов с постусловием
- •Экзаменационный вопрос № 28. Программирование с использованием подпрограмм
- •Экзаменационный вопрос № 29. Алгоритмы нахождения корней уравнений
- •Экзаменационный вопрос № 30. Алгоритмы численного интегрирования
- •Экзаменационный вопрос № 31. Программа вычисления определенного интеграла методом прямоугольников
- •Экзаменационный вопрос № 32. Программа вычисления определенного интеграла методом трапеций
- •Экзаменационный вопрос № 33. Программа вычисления определенного интеграла методом симпсона
- •Экзаменационный вопрос № 34. Программа вычисления корней алгебраического уравнения методом половинного деления
- •Экзаменационный вопрос № 35. Программа вычисления корней алгебраического уравнения методом ньютона
- •Экзаменационный вопрос № 36. Программа вычисления корней алгебраического уравнения методом хорд
- •Экзаменационный вопрос № 37. Программирование операций в одномерных массивах
- •Экзаменационный вопрос № 38. Программирование операций в двумерных массивах (На примере задания 1)
- •Экзаменационный вопрос № 39. Программирование операций в двумерных массивах (На примере задания 2)
- •Экзаменационный вопрос № 40. Построение графических изображений
- •Экзаменационный вопрос № 41. Программа для построения объекта с циклическим изменением цвета
- •Экзаменационный вопрос № 42. Программа для построения динамического объекта
Экзаменационный вопрос № 24. Программа вычисления суммы бесконечного ряда
Задание. Составить программу для вычисления суммы членов ряда. Вычисление прекращается, если найден член ряда, по абсолютной величине не превосходящий Epsilon. Первоначально N = 1. Использовать рекуррентные формулы для перехода от предыдущего члена ряда к последующему.
Исходные данные.
Общий член ряда
X(–1)N,
N!
Epsilon = 10–3, X = 2,1; N = 1.
Решение.
При
N
= 1 → T
= X(–1)/1!
= –X;
T=
–X;
проводим
следующие преобразования:
,
т. е. в программе используем выражение
T
= T(–1)/N.
Код программы.
PROGRAM primer6;
CONST
Epsilon = 0.001;
X = 2.1;
VAR
Summ,T : REAL;
N : INTEGER;
BEGIN
Summ:=0; {первоначальное значение суммы}
N:=1; {увеличение номера члена ряда}
T:=-X; {первоначальное значение элемента}
REPEAT
N:=N+1; {вычисление элемента}
WRITELN('Итерация: ',N, ', Член ряда: ',T:7:4);
Summ:=Summ+T; {накопление суммы}
T:=T*(–1)/N; {вычисление элемента}
UNTIL ABS(T)<Epsilon; {условие выхода}
WRITELN('Число итераций: ',N);
WRITELN('Сумма ряда: ',Summ:7:4);
END.
Экзаменационный вопрос № 25. Программирование циклических вычислительных структур
Один из характерных приемов программирования заключается в организации многократного (повторяющегося) выполнения некоторой последовательности операторов (команд), записанных в программе только один раз. Если требуется выполнить некоторый оператор заданное число раз, причем это число не зависит от результата работы оператора, необходимо использовать оператор цикла с параметром, имеющим следующую структуру:
FOR <парам.цикл.>:=<нач.знач.> TO <кон.знач.> DO <оператор>;
Здесь <парам.цикл.> — целочисленная переменная, определяющая построение циклической структуры; <нач.знач.>, <кон.знач> — соответственно начальное и конечное значения параметра цикла; <оператор> — оператор (простой или составной) языка Turbo - Pascal.
П р и м е р
J:=1;
FOR I:=3 TO 7 DO j:=j+I*3;
Оператор цикла FOR выполняет несколько действий:
1) присваивает параметру цикла начальное значение;
2) проверяет, не превосходит ли текущее значение параметра цикла конечное. Если не превосходит, то выполняется <оператор>, после чего значение <парам.цикл.> увеличивается на единицу и действия повторяются, в противном случае выполнение оператора FOR заканчивается.
Еще один вид оператора FOR:
FOR <парам.цикл.>:=<нач.знач.> DOWNTO <кон.знач.> DO <оператор>;
Он отличается от предыдущего только тем, что шаг изменения параметра цикла не 1, а –1.
Задание. Составить программу для вычисления значений функции F(X) на отрезке [A, B] в точках
Xi = A + iH, где H = (B – A)/M
(M — заданное целое число).
Исходные данные.
Функция F(X) = сos(2X), A = 0, B = 5, M = 15.
Код программы.
PROGRAM primer1;
USES CRT;
CONST
A = 0;
B = 5;
M = 15;
VAR
F,X,H : REAL;
I : INTEGER;
BEGIN
ClrScr;
H:=(B–A)/M; {определение шага}
FOR I:=0 TO M DO
BEGIN
X:=A+I*H;
F:=сos(2*X); {вычисление функции F}
WRITELN('X=',X:6:3, ', F(X)=',F:6:3); {вывод результата}
END;
END.