Дипломная работа: Викладання теми "Історія інформатики" в школі
20FOR B=0 ТЕ 9
30FOR C=0 ТЕ 9
4 0FOR D=0 TO 9
50Р=(У)*(З)*(A-D)*(З)*(B-D)*(C-D)
60ІF P=0 THEN 90
70ІF 10*A+B-10*C-Do+B+C+D THEN 90
80PRІNT А/ У; З; D
90NEXT D, З, У, А
Розбираючи наведене розв’язання, автор піддає його жорстокій критиці, відзначаючи, що для визначення шуканих чисел (усього їх буде 56) треба було перебрати 9000 варіантів, на що пішло приблизно 5 хвилин часу при роботі на шкільній ЕОМ "Агат".
Інші варіанти розв’язання можна знайти при аналізі і перетворенні умов поставленої задачі. Наведемо другий варіант.
Розкриваючи другу умову і приводячи подібні члени, одержуємо:
(10а + b) - (10с + d) = а + b + c + d - 9а – 11с = 2d.
Видно, що b зникло, тому цикл по цій змінній можна усунути. Зрозуміло, що зовсім обійтися без b не можна, тому що за умовою ми повинні шукати чотиризначні числа. Тому, перед тим як друкувати результат, потрібно "згадати" про b і виводити знайдене число тільки при тих b, що відмінні від а, c, d. Розв’язання може мати такий вигляд:
5DEFІNT A-D, P
10FOR A=l TO 9
20FOR C=0 TO 9
30FOR D=0 TO 9
40Р=(А-С)*(A-D)*(C-D)
50ІF Р=0 THEN 110
60ІF 9*A-11*C<>2*D THEN 110
70FOR B=0 TO 9
80ІF B=A OR B=C OR B=D THEN 100
90PRІNT А; У; С; D
100NEXT
110 NEXT D, З, А
Неважко визначити, що в цьому випадку проглядається 980 варіантів, програма на "Агаті" працює близько 30 секунд.
Продовжуючи подальший аналіз умов і їхнє перетворення, Юнов С. В. поступово (розглядається 6 випадків) приходить до оптимального (з точки зору економії машинного часу - у той час це було особливо актуально!) варіанту програми. Приведемо його нижче:
5DEFІNT A-D
10FOR A=2 ТО 9