The difference is very small in these sentences.
The past tense is used to talk about an action in the past, while the present perfect is used to talk about a present situation as a result of an action in the past. In these cases, you could use either; British speakers prefer to use the present perfect, while American speakers prefer to use the past tense.
The first sentence means I now believe that you have rooms to let, while the second sentence means that at some time in the past, somebody told me that you have rooms to let. Again, the first sentence is more British, and the second sentence is more American (although an American would probably say "for rent" instead of "to let").I have heard that you have rooms to let
I heard that you have rooms to let
The first sentence is asking if John called at any time between the last time I was here and now; in other words, "Do you have a message from John?" The second sentence is asking if John called at some time in the past. Yet again, British speakers prefer the first sentence, and American speakers prefer the second sentence.Has John phoned?
Did John phone?
Note that you cannot use the present perfect even in British English if the period of time you are thinking about is completely in the past. For example, you would ask "Has John phoned?" when you come into the office and expect to be given a message from John; but you would ask "Did John phone?" the next day, or the next week:
"...so I told John to phone me on Monday."
"And did he phone?" [Did he phone you on Monday?]
"No; and he still hasn't phoned." [He didn't phone on Monday, and he hasn't phoned between Monday and now.]
The first sentence means "I no longer have your old radio, because I gave it to Philip, and now he has it." The second sentence means "At some time in the past, I gave your old radio to Philip." Yet again, British speakers prefer the first sentence, and American speakers prefer the second.I've given your old radio to Philip
I gave your old radio to Philip
In sentences like these, there is very little difference (especially in American English), and you can choose either version.
However, you have to know that the present perfect focuses on the present, not the past, and this means that if you mention a definite time in the past when the action took place, you cannot use the present perfect, even if you're speaking British English. The following sentences are all incorrect:
The rain has stopped half an hour ago.
I have heard yesterday that you have rooms to let.
Has John phoned on Monday?
I've given your old radio to Philip in 2003.