Дипломная работа: Викладання теми "Історія інформатики" в школі

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

К-во Просмотров: 191
Бесплатно скачать Дипломная работа: Викладання теми "Історія інформатики" в школі