Salut,
3. has learned (atunci când intervalul de timp nu este precizat, deci atunci când este importantă acțiunea, atunci se folosește Present Perfect Simple);
4. had been sailing este corect, este forma Past Perfect Continuous (în română este mai mult ca parfectul, se traduce prin navigaseră). Acțiunea de navigare are forma continuă în engleză (în română nu avem așa ceva), iar ca acțiune navigarea a avut loc înainte de a fi ei salvați, deci clar se folosește Past Perfect Continuous;
5. are taking - pentru că este o acțiune temporară, definită de "this year", deci folosim Present Continuous;
6. was writing este corect, acțiunea continuă de scriere, în desfășurare a fost întreruptă de sosirea ta (you arrived). Este situația clasică în care se folosește Past Continuous Simple;
7. have visited este corect, pentru că intervalul de timp nu este precizat, accentul se pune pe acțiunea în sine (vizitarea Londrei), deci se folosește Present Perfect Simple.
Ai înțeles ?
Green eyes.