Решение:
Составим таблицу, чтобы было нагляднее:
1. Анализируем условие 1: Богдан работает не в Москве, а Дмитрий – не в Иркутске. Заносим это в таблицу (знак «-» означает «нет»).
2. Анализируем условие 2: Москвич преподаёт не физику. Заносим в таблицу.
3. Анализируем условие 3: Тот, кто работает в Иркутске, преподаёт химию. Это значит, что Дмитрий не преподает химию, потому что он не работает в Иркутске.
4. Анализируем условие 4: Дмитрий преподаёт не биологию.
5. Из условия 1 следует, что Богдан может работать в Иркутске или в Ульяновске. Но так как в Иркутске преподают химию, то Богдан преподает не химию.
6. Так как Дмитрий не преподает химию и биологию, значит он преподает физику.
7. Так как Богдан не преподает химию и физику, значит он преподает биологию.
8. Так как Николай не преподает физику и биологию, значит он преподает химию.
9. Так как Дмитрий преподает физику, а москвич не преподает физику, значит Дмитрий работает не в Москве. Так как он не работает в Иркутске, значит он работает в Ульяновске.
10. Так как химию преподает Николай, а работает в Иркутске тот, кто преподает химию, значит Николай работает в Иркутске.
11. Так как Богдан не работает в Москве и в Иркутске, значит он работает в Москве.
12. Так как Богдан работает в Москве и преподает биологию, значит он работает в Москве и преподает биологию.
<table border="1">
<thead>
<tr>
<th>ФИО</th>
<th>Предмет</th>
<th>Город</th>
</tr>
</thead>
<tbody>
<tr>
<td>Богдан</td>
<td>Биология</td>
<td>Москва</td>
</tr>
<tr>
<td>Дмитрий</td>
<td>Физика</td>
<td>Ульяновск</td>
</tr>
<tr>
<td>Николай</td>
<td>Химия</td>
<td>Иркутск</td>
</tr>
</tbody>
</table>
Ответ: Богдан преподает биологию в Москве, Дмитрий преподает физику в Ульяновске, Николай преподает химию в Иркутске.