- •1. Задачи по разработке алгоритмов и программ
- •Программа
- •Результат работы программы
- •1.3. Вычислительные процессы с использованием процедур
- •Решение задачи
- •Программа
- •Результат работы программы
- •Пошаговый словесный алгоритм
- •Решение задачи
- •Пояснения к схеме алгоритма
- •Программа
- •Фрагмент результата работы программы
- •Пошаговый словесный алгоритм
- •Решение задачи
- •Программа
- •Пояснения к схеме алгоритма
- •Решение задачи
- •Программа
- •Результат работы программы
- •Пояснения к схеме алгоритма
- •Решение задачи
- •Пояснения к схеме алгоритма
- •Программа
- •Результат работы программы
- •Решение задачи
- •Пояснения к схеме алгоритма
- •Программа
- •Результат работы программы
- •1.6. Алгоритмы и программы для нахождение сумм и произведений функциональных выражений
- •Решение задачи
- •Пояснения к схеме алгоритма
- •Программа
- •Результат работы программы
Программа
Program Prog1_3;
Var
h, S : Real;
a : Byte;
Begin {начало раздела операторов программы}
for a := 1 to 3 do
Begin {начало цикла 1}
h := 1; {начальное значение высоты h}
While h <= 5 do {выполнять цикл пока h <= 5}
Begin {начало цикла 2}
S := a*h/2; {вычисление площади S}
{вывод на экран}
Writeln('При а = ', a, ' , h = ', h:7:2, ' S = ', S:7:2);
h := h + 0.8; {приращение высоты h}
end; {конец цикла 2}
end; {конец цикла 1}
End. {конец программы}
Результат работы программы
При a = 1 h = 1.00 S = 0.50
При a = 1 h = 1.80 S = 0.90
При a = 1 h = 2.60 S = 1.30
При a = 1 h = 3.40 S = 1.70
При a = 1 h = 4.20 S = 2.10
При a = 2 h = 1.00 S = 1.00
При a = 2 h = 1.80 S = 1.80
При a = 2 h = 2.60 S = 2.60
При a = 2 h = 3.40 S = 3.40
При a = 2 h = 4.20 S = 4.20
При a = 3 h = 1.00 S = 1.50
При a = 3 h = 1.80 S = 2.70
При a = 3 h = 2.60 S = 3.90
При a = 3 h = 3.40 S = 5.10
При a = 3 h = 4.20 S = 6.30
1.3. Вычислительные процессы с использованием процедур
Задача 1.4.Разработать алгоритм и программу для вычисления и вывода на экран значений функцииz= sin[cos4(x·y)]. Значения переменныхxиyвводятся с клавиатуры. Для решения задачи необходимо использовать подпрограмму (function).
Решение задачи
Общий алгоритм решения задачи и схема вычисления функции в подпрограмме (расшифровка символа «Предопределенный процесс») представлены на рис. 1.4, аибсоответственно.
а) |
б) |
Рис. 1.4
Обозначения схемы алгоритма:
x1, y1 – фактические параметры, обозначающие значения переменных x и y соответственно, используемые для передачи значений в функцию Z;
Z(z1, y1) – вызов функции Z для вычисления значения z = sin[cos4(x·y)];
z1 – значение функции z, равное возвращаемому значению функции Z.
Программа
Program Prog1_4;
Var
z1, x1, y1 : Real;
Function Z(x, y : Real) : Real;
Begin {начало функции z}
z := sin(cos(x*y) * cos(x*y) * cos(x*y) * cos(x*y));
End; {конец функции z}
Begin {начало основной программы}
Write('Введите значения x, y ');
Readln(x1, y1); {чтение значений переменных x1, y1}
z1 := Z(x1, y1); {вычисление z1 с использованием функции z}
Writeln('z =' , z1:7:2);{вывод на экран}
end. {конец основной программы}
Результат работы программы
Введите значения x, y 1 –2
z = 0.03
1.4. Алгоритмы и программы табуляции функции
Задача 1.5.Разработать алгоритм и программу для табуляции функции , где переменныеzi,ti(i = 1;n) являются массивами. Число элементов массивовnвводить с клавиатуры. Значенияyвыводить на экран.
Решение задачи
Алгоритм процесса табуляции состоит в последовательном вычислении функции с заданным шагом по переменному аргументу. Требуется организация цикла от 1 до nдля перебора значения массивовziиti. Схема алгоритма решения задачи представлена на рис. 1.5.
Программа
Program Prog1_5;
Var
N, I : Byte;
Z, T : array[1..20] of Real;
Y, a : Real;
Begin {начало раздела операторов программы}
Write('Введите число элементов массивов (до 20) ');
Readln(N); {чтение значения числа элементов массивов}
Write('Введите значение коэффициента а ');
Readln(a); {чтение значение коэффициента а}
for I := 1 to N do
Begin {начало цикла}
Write('Введите ', I, '-е элементы массивов Z и T ');
Readln(Z[I], T[I]); {чтение значений элементов массивов Z, T}
Y := sin(Z[I]) * Exp(a*T[I]); {вычисление Y}
Writeln('Y = ', Y:7:2); {вывод на экран значения Y}
end; {конец цикла}
End. {конец программы}