- •1. Разработка алгоритмов с простой структурой
- •1.2. Запись и вычисление логических выражений
- •Перечень логических формул:
- •Варианты задания
- •1.4. Обработка векторов в цикле с ветвлением
- •1.5. Нахождение экстремумов на множестве значений
- •Варианты задания
- •1.6. Вычисления в цикле по рекуррентным формулам
- •1.7. Управление циклом по сложному условию
1. Разработка алгоритмов с простой структурой
Запись формул, вычисление сумм и произведений
Задание. а) Записать формулу из табл. 1.1как арифметическое выражение на языке программирования (ЯП) .
б) Вычислить в цикле это выражение для аргумента x = 0,1; 0,2; 0,3; 0,4; 0,5.
в) Вычислить в этом же цикле сумму значений выражения, полученных для x = 0,1; 0,2; 0,3; 0,4; 0,5.
г) В том же цикле найдите произведение этих значений выражения.
Программу реализации задания можно записать по следующей схеме:
{Y – значение, получаемое по формуле при заданном аргументе X, C – сумма, P – произведение этих значений }
X = 0,1; C = 0; P = 1;
ДЛЯ j = 1 ШАГ 1 ДО 5 ВЫПОЛНЯТЬ
НАЧАЛО
Y = <Формула>;
ВЫВОД Y // Значения Y выводятся в таблицу строк
C = C + Y; P = P · Y;
X = X + 0,1
КОНЕЦ ЦИКЛА;
ВЫВОД C, P // Значения C и P выводятся в окна Edit1, Edit2.
Если вы используете иную схему алгоритма, ее надо обосновать.
Указания. Для вывода значения приводятся к текстовому виду функцией FloatToStr, например FloatToStr (Y). Пять значений Y займут пять ячеек таблицы строк. Для их вывода в первую строку таблицы запишем (в цикле) оператор вывода
StringGrid1.cells [j, 1] := FloatToStr (Y).
Вывод значений C и P записывается проще: Edit1.text:= FloatToStr(C); Edit2.text:= FloatToStr(P);
Контрольное значение. При правильной записи формул будут получены значения сумм, показанные справа от формул
Т а б л и ц а 1.1
№ |
Формула F(x) |
Сумма |
1 |
|
11,67 |
2 |
|
–7,2 |
3 |
|
2,8 |
4 |
|
3,95 |
5 |
|
8,64 |
6 |
|
–31,54 |
7 |
|
–7,68 |
8 |
|
5,3 |
9 |
|
–1,99 |
10 |
|
3,8 |
11 |
|
4.3 |
12 |
|
–4,19 |
13 |
|
1,76 |
14 |
|
–5,19 |
15 |
|
43,52 |
16 |
|
–6,01 |
17 |
|
–8,92 |
18 |
|
12,03 |
19 |
|
108,45 |
20 |
|
1,16 |
21 |
|
2,81 |
22 |
|
22,19 |
23 |
|
12,58 |
24 |
|
3,22 |
25 |
|
–3,33 |
26 |
|
–5,16 |
27 |
|
–8,25 |
28 |
|
2,37 |
29 |
|
3,97 |
30 |
|
0,69 |
1.2. Запись и вычисление логических выражений
Задание 1. Для логической формулы установить, при каких значениях переменных она истинна и при каких она ложна. По условию переменные p, q, t — логического типа, x, y, z, v — числовые. Проверьте ваш ответ, выполнив составленную вами программу вычисления формулы для каждого из ваших тестов (наборов значений).
Пример выполнения для пункта № 0 перечня формул.
Вспомним сначала таблицы значений функций и их приоритет:
A |
a |
|
a b |
a b |
a b |
|
Приоритет операций | |
False |
true |
|
false false |
false |
false |
|
1 |
|
True |
false |
|
false true |
false |
true |
|
2 |
|
|
|
|
True false |
false |
true |
|
3 |
|
|
|
|
True true |
true |
true |
|
|
|
Пусть p =true, q = false, t = false , x =5.2, y =10, z =3.
(x < y) (z < y) p (y < 1) (q t) = [ (x < y) (z < y) p ] [ (y < 1) (q t) ] =
[ (5.2< 10) (3 < 10) true ] [ (10 < 1) (false true) ]= [ (true) (true) true ] [ (false) (false false) ] =
= [ true ] [ (false) (false) ] = [ true ] [ false ] = true false = true
Для выполнения тестов на компьютере заменяем формулу логическим выражением, записывая его в операторе ЕСЛИ после задания переменных:
If (x < y) and (z < y) and p or (y < 1) and (q or not t) then Edit1.text:= ’Истина’
else Edit1.text:= ’Ложь’.
Переходя к очередному тесту, заменяем значения переменных.