Решение:
1. Nina has been learning English for 2 years. (Present Perfect Continuous используется, чтобы подчеркнуть длительность действия.)
2. The birds have already flown to the South. (Present Perfect используется, когда важен результат, а не процесс.)
3. They have known him for many years. (Present Perfect используется для выражения длительного состояния.)
4. Mike has forgotten to learn the poem. (Present Perfect используется, чтобы сказать о завершенном действии, результат которого важен.)
5. The children have been watching cartoons for 2 hours. (Present Perfect Continuous используется, чтобы подчеркнуть длительность действия.)
6. The train has just come. (Present Perfect используется для выражения только что завершенного действия.)
7. We haven't had a holiday for 5 years. (Present Perfect используется для выражения опыта к настоящему моменту.)
8. She has been teaching at this school for twenty years. (Present Perfect Continuous используется, чтобы подчеркнуть длительность действия.)
9. David has been painting in his studio since 10 o'clock. (Present Perfect Continuous используется, чтобы подчеркнуть, что действие началось в прошлом и продолжается до сих пор.)
10. Mary and Sam have been collecting stamps for 3 years. (Present Perfect Continuous используется, чтобы подчеркнуть длительность действия.)
11. Their parents have been friends since their childhood. (Present Perfect используется для выражения состояния, которое началось в прошлом и продолжается до сих пор.)
12. Dave has been a student for 2 years. (Present Perfect используется для выражения состояния, которое началось в прошлом и продолжается до сих пор.)