ALTE DOCUMENTE
|
||||||||||
На практике часто приходится встречаться с программами, содержащими ошибки. Например, в сети Интернет можно у 19319l113t ;казать много зарубежных и отечественных сайтов, которые время от времени дают сбои.
требуемое
b 2. Требуемые результаты - пара чисел х1 и x2, являющихся корнями уравнения. Посмотрим, будут ли корнями уравнения пары чисел:
а) х1 = 2, x2 = 3; б) x1 = -2, x2 = -3.
- неправильно,
- неправильно.
b x +
a, b,
х1, х2 - корни.
а b
а b
а
x1 = (-b + )/(2
x2 (-b - a)
D = b2 -
(-b + a)
+ b
[(-b +)/(2 b (-b + a) +
= (-b + )2/(4 b (-b + a) + с = (b + (-b +)/(4
= (-b2 + D)/(4 a) + с = (-b2 + b2 - 4
(-b - a).
b2 - 4 0. При нарушении этого условия не только уравнение не имеет решений, но и метод решения также не дает результатов из-за необходимости вычисления корней от отрицательного дискриминанта: D < 0.
D: = b*b - 4*а*с D = b2 -
если D > при D >= 0
= (-b )/(2*a) х1 = (-b + a)
= (-b )/(2*a) х2 = (-b - a)
инеc а
если b b
-c/b xl -c/b
Алгоритм содержит ошибки, если можно у 19319l113t ;казать допустимые исходные данные, при которых либо будут получены неправильные результаты, либо результаты не будут получены вовсе. Использование алгоритмов, содержащих ошибки, приводит к созданию программ, также содержащих ошибки.
XС,УС
XА,УА Xв,Ув
А = (x , yА)
xВ, yВ) - координаты вершин треугольника
С = (xС,yС)
Р = LАВ +LВС+LСА
LАВ = ,
LВС
LСА
L(A,B) L(B,C) L(C,A);
здесь L[(x,y),(u,v)] = .
LAB: =
LBC
LCA : =
LAB LBC + LCA
Р = LAB LBC + LCA
способ
методы
сценарий алгоритмы
программа
дефекты в сценариях диалога с ЭВМ;
ошибки организации ввода данных;
неправильная реализация методов решения.
фамилия рост вес
Метод вычисления
(D1 DN) S0
где D = [Fam,R,V] Sk = Sk-1 vk
Fam R V k N)]
Vsum Vsum = SN
Где: Vsum v1 v2 vN
При: N > 0.
Правильность метода вычислений можно доказать по индукции. Рассмотрим результаты вычислений на 1-м, 2-м и k-м шагах. Отметим, что начальное значение S0
На первом шаге при k = 1 результат вычисления
S1 = S0 +v1 = v1
На следующем, втором шаге при k = 2 результат
S2 S1 v2 v1 v2
На третьем шаге при k = 3 результат
S3= S2 + v3 v1 v2 v3
В общем случае можно предположить, что к k-му шагу результат вычисления
Sk-1=v1+...+vk-1.
Тогда результат вычислений после k-го шага (исходя из описания метода)
Sk = Sk-1 +vk = v1 vk-1 vk
В силу принципа математической индукции утверждение верно для всех k = 1, 2,.... N. Следовательно, на последнем шаге при k = N конечный результат:
SN = v1 + ... + vN.
data
dano:
<Fam1> <V1> <R1> data
. . data
<FamN> <VN> <RN> data
data «», 0, 0
= <Vsum>
cls
s s
do
fam$, r, v read fam$, r, v
fam$=«» if fam$=«» then exit do
(fam$, v, r) fam$; v; r
s s v s s v
loop
vsum s vsum s
вec=»,vsum) vsum
end
Правильность приведенного алгоритма можно у 19319l113t ;видеть из описания результатов его выполнения.
s: = 0 s0
fam$, r, v
fam$=«»
(fam$, v, r) <famk> <vk> <rk>
s: s + v sk = sk-1 + vk
[k = (1...n)]
vsum s vsum sn
вec=»,vsum) <vsum>
х + b = 0, с помощью формулы х = -b/а (при а
b x +
а b
d y = f.
х = Dx/D,
y = Dy/D.
D, Dx Dy
D = a d - b c,
Dx e d f b,
Dy a f c e.
b
S ,
b
l =
6. Дана прямоугольная матрица АNxM - прямоугольная числовая таблица размера N
|