Nejde se to naučit z vět, které nejsou v kontextu.
I had seen that film before – tady není kontext. Tahle událost musí
předcházet nějaké jiné. I didn't come because I had seen that
film. Nepřišel jsem, protože jsem ten film už viděl (předtím,
v minulosti). Samostatně je to, jak uvádíte, nejlepší
s předpřítomným časem.
I have been writing this letter – většinou se i uvádí nějaký
číselný údaj (např. for ages – věky). Tahle věta znamená, že už
píšete ten dopis nějakou dobu, píšete ho, zdůrazňujete činnost, ten
dopis není dopsaný. Nebo jste k někomu přišel, vzal mu do ruky dopis a
pronesl tuhle větu, což taky nutně nemusí znamenat, že jste ten dopis
dopsal, ale že už ho píšete a prostě zdůrazňujete tu činnost samotnou.
V takových případech nelze použít přítomný čas průběhový (I am writing this letter for 2 hours).
Předpřítomný prostý a průběhový se dají v některých
případech zaměnit podle postoje autora např. se slovesy
live nebo work. Pak záleží na tom, jestli
se vám ta činnost zdá už natolik dlouhá, že je stálá a ne
přechodná – I have lived here for 10 years. X I have been living here
for 10 years. Druhý případ to nepovažuje za dlouhou dobu, chce se
přestěhovat atp. Není to černobílé.
Doporučuju přečíst a zkusit vstřebat:
http://www.helpforenglish.cz/…pritomny-cas
http://www.helpforenglish.cz/…s-v-kontextu
http://www.helpforenglish.cz/…as-prubehovy
(Stačí ten jev (čas) napsat do vyhledáváče.)
A na konec ta maturita. Předpřítomný čas určitě ano. S ostatníma se
tam můžete setkat, bylo by fajn o nich vědět. Záleží na tom, jestli
chcete po maturitě angličtinu zahodit (nedoporučoval bych), nebo se něco
naučit a naučit používat.
Edit: Psal jsem moc dlouho.