ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 28.03.2025
Просмотров: 274
Скачиваний: 1
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:= ’Ложь’.
Переходя к очередному тесту, заменяем значения переменных.
Перечень логических формул:
(x < y) (z < y) p (y < 1) (q t);
(p q t) (x 0) (y – x < 0) p (q t);
(x + y – z/2 < x y) p q t p (x – y > 0);
(x + y > z) ( p t) q (x + y – 2z < 0);
(x < 0) ( p q) ( p q) (x y > 0);
(q t) t (y/z > 0) (y + z > x) (q t);
(3x + 1 8) (x + 2y < 5) (x y) (p q);
(x = y) (y 1) (p q) (x/2 + y < 1);
(x + y = 1) (x – y < 0) (p t) ( p t);
(x > y + 2) (p t) (p q) (x + 2y > 5);
(p q) (2x – 1 < y) ( p q) (x – y < 0);
( p q) (x > y) (p q) (x y = 0);
(x y) (y 1) (p q t) (y + 2 > x);
(x + y 0) (y > 0) (p q t) t q;
t q (x + 1 y) (t q) (x + y 0);
p q (x 1) (t p q) (y 0);
q (x y z = 96) q (x < z) (x/z 2) (x + y > z – 5);
(z/(x + y) < 1) (y = x) p ((y > x + 1) (z/x = 1));
(z = 3x) (y > x + 1) q (x + y 7) (x/y < 3);
q (x = y) (y x z) t (z/2 < x + y) p;
q ((z = y) (x = 2)) (x + z < y) (z/y x + 2) q;
p (x 3) (2y = 8) q (x/2 > 1) (x y > 98);
(x > y) (z > x) p t (z/x > 3) (z + x = 1);
(x y < z + 5) (x > y) q (x y +1);
(x/(y +1) < 1) (p q) t (x + y < 0);
q (z > x) (y + 3 5) (x z > 0) (z y –1);
(x = y) (z 0) (x + 0,5 2) (x – y > 2);
(x < z) p (x + 2 > y + z) q (x/z > y) (x y = 3);
(x < y) (x/z = 2) q (z x + y) (z x/2) q;
(x + y =24) (x – y = 12) (x > 5) q (z < 4) t;
(y z)) (x > y) (y > z) p ((y x) (x – y = z x).
Задание 2. Переменные x, y — это координаты точки. Для заданного варианта запишите логическое выражение, имеющее значение «истина», только если точка оказывается в закрашенной области рисунка. Используемые криволинейные фигуры — круг и эллипс.
Варианты задания
|
1 |
|
2 |
|
3 |
|
|
4 |
|
5 |
|
6 |
|
|
7 |
|
8 |
|
9 |
|
|
10 |
|
11 |
|
12 |
|
|
13 |
|
14 |
|
15 |
|
|
16 |
|
17 |
|
18 |
|
|
19 |
|
20 |
|
21 |
|
|
22 |
|
23 |
|
24 |
|
|
25 |
|
26 |
|
27 |
|
|
28 |
|
29 |
|
30 |
|





























