不:①表示否定:不好|不去|不同意。②用在句子末尾,表示疑問:飯好吃不?|你明天來不?③不齊;缺。④與“ 就 ” 搭配,表示選擇:他不是做作業就是看書。⑤單用,表示否定的回答:吃點飯吧?不,我剛吃過。
沒:用在動詞或形容詞前面,表示對過去的行為、動作或狀態的否定。如:沒大(沒有怎么);沒巧不成話(沒有巧合就沒有故事);沒走完的路;沒等你請,我自個來了;天還沒亮,我們就上路了.用在選擇問句末,代表選擇問句的否定方面。如:你吃飯沒?這本書你看完沒?
從嚴格的詞匯意義上來說,有和沒有,有兩層含義:

1、是否存在 有 就是存在, 沒有 就是不存在。
2、是否發生 發生就是有,例如本文例句,吃過飯了么? 如果沒吃過,就是吃飯這個行為沒有發生,那就回答 沒有 。
是和不是,一般指肯定或者否定,而不能用來回答某種行為有沒有發生這樣的問題。
這是從詞匯意義上來辨析。
語言學習,更重要的,還是日常生活中的應用。用多了,就習慣成自然了,不用每次都來辨析。