haveとtakeですが、これ正直言って私もよくわからない部分があります。あんまり私、英語は得意ではありません。教えてはいるんですけれどもね。
たぶん英語圏の人しか完璧にはわからない感覚なんじゃないですかね。英語ちょっとかじってます、くらいだと無理です。
とりあえずわかる範囲で説明しますと、
haveは持っている、受け入れるといった意味合いが強く、takeは受ける、連れて行くといった、どちらかというと自発性が大きめに出た表現という違いがまずあります。
わかりやすい例でいうと、「have a test」というと「テストがある」となりますが、「take a test」というと「テストを受ける」という違いです。
でも説明できるのはここまでです。
食事する、を英語にすると、自発性があるにもかかわらず「have lunch」って言うじゃないですか。なぜかhaveなんです。
でも薬を飲むっていうときには「take medicine」、takeを使います。
入試で英作文とかやらないといけない場合は、もうそれぞれでそういう表現なんだと思ってhaveとtakeを使い分けるしかないんじゃないかと思います。
なお、これに「get」の使い方も絡めると・・・もうわかんない。