Have to is the same as must. It implies that you don’t have a choice.
John has to go to work everyday.
The students have to study tonight.
To be supposed to means an obligation. It is something that you should do, or something that another person expects you to do. Don’t forget to use the verb be in front of supposed to.
Sally is supposed to meet her friend tonight.
All of the employees are supposed to attend today’s meeting.
Ought to means a suggestion. You should do something but you don’t have to do it.
We ought to clean the house tonight.
Phillip ought to help you with your homework.
(Notice that all of these words are modals. They are followed by a verb.)
You may feel confused about the slight differences between these words. Just think about what the speaker is implying.
I have to do my homework. (If I don’t, will be in trouble.)
I am supposed to do my homework. (If I don’t, my teacher will notice that I didn’t do it.)
I ought to do my homework. (I don’t have to if I don’t want to, but I feel I should do it because I want to do well in the class.)