Составители:
93
Э. Дийкстр (известный математик) в своей структурной теореме ска-
зал: "Алгоритм любой сложности можно реализовать, используя триаду
"следование" - "повторение (циклы)" - "выбор (развилки)".
Пример 11.6.11 Алгоритм Евклида нахождения наибольшего общего де-
лителя (НОД) неотрицательных целых чисел основан на следующих свой-
ствах этой величины. Пусть m и n одновременно не равные нулю целые
неотрицательные числа и пусть m≥n. Тогда, если n=0, то НОД(n,m)=m, а
если n≠0, то для чисел m, n и r, где r - остаток от деления m на n, выполня-
ется равенство НОД(m,n)=
НОД(n,r). Например, НОД(15,6) = НОД(6,3) =
НОД(3,0) =3
НОД(24,8) = НОД(8,16) = НОД(8,8) = 8
НОД(56,24) = НОД(24,32) = НОД(24,8) =
НОД(8,16) = НОД(8,8) = 8
Даны натуральные числа n, m. Исполь-
зуя алгоритм Евклида, найти наибольший
общий делитель n и m.
10 REM “Алгоритм Евклида”
20 INPUT M, N
30 IF M<>N THEN 40 ELSE 60
40 IF M>N THEN M=M-N ELSE N=N-M
50 GOTO 30
60 PRINT “НОД=”; M
70 END
Пример 11.6.12
Задано n
троек чисел a, b, c. Определить,
сколько из предложенных троек
можно использовать для построе-
ния треугольника, если
a, b, c – длины его сторон.
10 REM “Треугольник”
20 INPUT N
30 FOR I=1 TO N
40 INPUT “A=”;A
50 INPUT “B=”;B
60 INPUT “C=”;C
70 IF A>C+B AND B>A+C AND
C>A+B THEN K=K+1
80 NEXT I
90 PRINT “Пригодно троек”; K
100 END
M;N
M>N
начало
M≠N
да
нет
M
конец
M:=M-N N:=N-M
да нет
начало
N
K:=0
I=1, N; 1
A, B, C
A>C+B
B>A+C
C>A+B
K:=K+1
K
конец
Да Нет
93
Э. Дийкстр (известный математик) в своей структурной теореме ска-
зал: "Алгоритм любой сложности можно реализовать, используя триаду
"следование" - "повторение (циклы)" - "выбор (развилки)".
Пример 11.6.11 Алгоритм Евклида нахождения наибольшего общего де-
лителя (НОД) неотрицательных целых чисел основан на следующих свой-
ствах этой величины. Пусть m и n одновременно не равные нулю целые
неотрицательные числа и пусть m≥n. Тогда, если n=0, то НОД(n,m)=m, а
если n≠0, то для чисел m, n и r, где r - остаток от деления m на n, выполня-
ется равенство НОД(m,n)=НОД(n,r). Например, НОД(15,6) = НОД(6,3) =
НОД(3,0) =3
НОД(24,8) = НОД(8,16) = НОД(8,8) = 8 начало
НОД(56,24) = НОД(24,32) = НОД(24,8) =
НОД(8,16) = НОД(8,8) = 8 M;N
Даны натуральные числа n, m. Исполь-
зуя алгоритм Евклида, найти наибольший да нет
общий делитель n и m. M≠N
10 REM “Алгоритм Евклида” да нет
20 INPUT M, N M>N
30 IF M<>N THEN 40 ELSE 60
40 IF M>N THEN M=M-N ELSE N=N-M M:=M-N N:=N-M
50 GOTO 30
60 PRINT “НОД=”; M
70 END
M
начало
конец
N
Пример 11.6.12 Задано n
K:=0 троек чисел a, b, c. Определить,
сколько из предложенных троек
I=1, N; 1 можно использовать для построе-
A, B, C ния треугольника, если
a, b, c – длины его сторон.
Да A>C+B Нет 10 REM “Треугольник”
B>A+C 20 INPUT N
K:=K+1 C>A+B
30 FOR I=1 TO N
40 INPUT “A=”;A
50 INPUT “B=”;B
60 INPUT “C=”;C
70 IF A>C+B AND B>A+C AND
K C>A+B THEN K=K+1
80 NEXT I
конец 90 PRINT “Пригодно троек”; K
100 END
Страницы
- « первая
- ‹ предыдущая
- …
- 91
- 92
- 93
- 94
- 95
- …
- следующая ›
- последняя »
