Решение 50 типовых задач по программированию на языке Pascal Дата размещения сборника в сети


Download 1.52 Mb.
Pdf ko'rish
bet35/77
Sana03.02.2023
Hajmi1.52 Mb.
#1152062
TuriРешение
1   ...   31   32   33   34   35   36   37   38   ...   77
Bog'liq
Задачи на Pascal

Формулировка. Дано натуральное число n. Вывести на экран решения всех квадратных урав-
нений вида x
2
2ax – 3 = 0 
для всех a от 1 до n
Решение. Эта задача очень похожа на задачу 12. В принципе, ее можно было бы решить, ис-
пользуя код этой задачи, взяв первый и последний коэффициенты равными 1 и –3 соответственно и 
запустив цикл по всем a от 1 до n, умножив a на 2 во всех формулах. 
Однако исследуем это уравнение математически и попытаемся оптимизировать решение: 
1) Найдем дискриминант уравнения: 
( )
( )
(
)
2
2
2
4 1
3
4
12
4
3
D
a
a
a
=
− ⋅ ⋅ − =
+
=
+
Очевидно, что найденная величина неотрицательна, и, если быть точнее, то при a от 1 до n она 
всегда принимает значение не меньше 16 (так как при a = 1 она равна 4 * (1 + 3) = 4 * 4 = 16). 
Следовательно, наше уравнение всегда имеет решение, причем их два. 
2) Найдем формулы корней уравнения: 
(
)
2
2
2
2
2
1
2
2
4
3
2
4
3
2
2
3
3, 3
2
2
2
a
a
a
a
a
a
x
a
a
x
a
a
− +
+
− +
+
− +
+
=
=
=
= − +
+
= − −
+
Итак, формулы корней уравнения получены, и теперь только осталось вывести в цикле значе-
ния корней для всех a от 1 до n, не забыв сделать вывод форматированным (так как решения будут 
вещественными). 
Код: 
1.
program MyQuadraticEquation; 
2.
3.
var 
4.
a, n: word; 
5.
x1, x2: real; 
6.
7.
begin 
8.
readln(n); 
9.
for a := 1 to n do begin 
10.
x1 := sqrt(a * a + 3) - a; 
11.
x2 := -a - sqrt(a * a + 3); 
12.
writeln('a = ', a, ', x1 = ', x1:4:2, ', x2 = ', 
x2:4:2) 
13.
end 
14.
end. 

Download 1.52 Mb.

Do'stlaringiz bilan baham:
1   ...   31   32   33   34   35   36   37   38   ...   77




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling