These functions are available in Visualforce and they include logical operations like IF and CASE but using Excel-like syntax where parameters are separated by commas. Basic boolean and numeric expressions are also supported.
So your first example would be:
<apex:outputText value="{! IF(oppt.term__c == 36, '50%', '??%') }"/>
But you can't carry the result of this into another apex:outputText in the page and in any case the needs of presentation (such as displaying the text "50%") are different from the needs of calculation logic (where the number 0.5 would be more useful).
Generally, the derived values that you want to display in Visualforce pages are also needed in reports or emails. So adding formula fields to the SObject is the best way to go, leaving Visualforce to just perform the final display formatting.
Occasionally a wrapper class may make sense instead. The wrapper class would look something like this (assuming no null fields):
public class Wrapper {
public Opportunity sob {get; set;}
public Wrapper(Opportunity sob) {
this.sob = sob;
}
public Decimal getTermModifier() {
return sob.Term__c == 36 ? 0.5 : ??;
}
public Decimal getCommission() {
return getTermModifier() * sob.Amount;
}
}
and be returned by the controller instead of the SObject and referenced in the page like this:
<!-- Direct reference to a SObject field -->
<apex:outputText value="{! opp.sob.Amount }"/>
<!-- Reference to a derived value -->
<apex:outputText value="{! opp.commision }"/>