The present perfect usage

Solution 1:

The grammar book whose page you include here is Practical English Usage by Michael Swan. I don't know which edition you are quoting from, but in my (third) edition the explanation is in entry 457 (perfect or past - advanced points) on page 442. Here Swan states:

We normally use the present perfect when we are thinking about past events together with their present results.

  • I can't come to your party because I 've broken my leg.

However, we usually prefer a past tense when we identify the person, thing or circumstances responsible for a present situation (because we are thinking of a past cause, not the present result). Compare:

  • Look what John 's given me! (thinking about the gift)

  • Who gave you that? (thinking about the past action of giving)

  • Some fool has let the cat in.

  • Who let the cat in?

Other examples:

  • Why are you crying? ~ Granny hit me. (NOT...Granny has hit me.)

  • How did you get that bruise?

  • That's a nice picture. Did you paint it yourself?

So, it seems like a good rule of thumb to use the past simple when the speaker's focus is on the cause and the present perfect when the focus is on the result.

Note, however, that Swan hedges his explanation with words such as normally and usually. So there will be edge cases where either choice will sound acceptable to a native speaker. For example:

  • Why are you crying? ~ Granny's hit me again.

The again here seems to imply that the speaker's focus is on the repetition of the action rather than on its perpetrator. Hence the present perfect sounds acceptable.