Program Example_4;
Var x, y : real;
Begin
writeln;
write(‘Введите x = ‘);
read(x);
write(‘Введите y = ‘);
read(y);
if (y <= 0) and (y >= x – 1) and (y >= -x – 1)
then writeln(‘Точка принадлежит заштрихованной области’)
else writeln(‘Точка не принадлежит заштрихованной области’);
readln
end.
Данные для тестирования
1) Для x = -0.3, y = -0.6 ð Точка принадлежит заштрихованной области;
2) Для x = -0.3, y = -1 ð Точка не принадлежит заштрихованной области;
3) Для x = 0.6, y = -0.3 ð Точка принадлежит заштрихованной области;
4) Для x = 0.3, y = 1 ð Точка не принадлежит заштрихованной области;
Пример 2.3 . Дано действительное число a. Для функции f(x), график которой представлен на рисунке, вычислить значение f(a).
Математическая модель задачи
Опишем на математическом языке представленную на графике функцию:
1 при x < -2
f(x) = - х - 1 при - 2 <= x < 0
х - 1 в остальных случаях
Блок-схема алгоритма
Текст программы на языке Паскаль
Program Example_5;
Var a, f : real;
Begin
writeln;
write(‘Введите a = ‘);
read(a);
if a < -2 then f := 1
else if a < 0 then f := -x -1
else f := x – 1;
writeln(‘Результат: f(‘, a:3:2, ‘) = ‘, f:4:2);
readln
end.
Данные для тестирования
1) Для a = -4 ð Результат: f(-4.00) = 1.00
2) Для a = -1.3 ð Результат: f(-1.30) = 0.30
3) Для a = 2.7 ð Результат: f(2.70) = 1.70
ПРОСТЕЙШИЕ ЦИКЛЫ
При решении задач этой темы используются алгоритмы, имеющие циклическую структуру. В зависимости от последовательности рассмотрения материала (операторов цикла), предполагается, что для реализации решения на языке Паскаль могут использоваться оператор цикла с предусловием while или оператор цикла с постусловием repeat.
Пример 3.1 . Даны натуральные числа А, В. Найти наименьшее общее кратное этих двух чисел.
Математическая модель задачи
Наименьшим общим кратным двух чисел является наименьшее число, которое делится нацело, т.е. без остатка, на оба этих числа. Таким числом может оказаться одно из заданных чисел – то, которое больше.
Введём переменную R – наименьшее общее кратное.
Для сокращения числа проверок, вначале можно найти большее из двух заданных чисел и в качестве начального значения переменной R принять это число. Затем в цикле добавлять к R по единице, пока R не будет делиться нацело на оба заданных числа. В этом примере удобнее использовать оператор цикла с постусловием repeat.
Блок-схема алгоритма
Текст программы на языке Паскаль
Program Example_6;
Var A, B, R : word;
Begin
writeln;
write(‘Введите натуральное число A = ‘);
read(A);
write(‘Введите натуральное число B = ‘);
read(B);
if A < B then R := B – 1 else R := A – 1;
repeat
R := R + 1
until (R mod A = 0) and (R mod B = 0);
writeln(R, ‘ - наименьшее общее кратное чисел ‘, A, ‘ и ’, В);
readln
end.
Данные для тестирования
1) Для А = 5, В = 3
ð 15 - наименьшее общее кратное чисел 5 и 3
2) Для А = 5, В = 30
ð 30 - наименьшее общее кратное чисел 5 и 30
3) Для А = 10, В = 25
ð 50 - наименьшее общее кратное чисел 10 и 25
Пример 3.2 . Найти наибольшее и наименьшее значение функции y = 3x2 + x – 4, если на заданном отрезке [А, В] значения х изменяются с шагом 0,1.
Дата: 2019-03-05, просмотров: 283.