@set2018 to prove if a grammar is unambiguous is undecidable. we can try to see if the given grammar is LL(k) or LR(k) since they are unambiguous. note that unambiguity does not imply the grammar is LL(k) or LR(k). The grammar in the question is not LR(1). so unambiguity should be concluded by careful observation.
Yes. It is unambiguous grammar since for any string no more than $1$ parse tree is possible.
For precedency draw the parse tree and find the depth of operator - and / .
Here "/" having more depth than " - " operator so precedency of" /" is higher than "-".
@Raas Star As you said let us say that / has higher precedence as it is within () then how is "id2/(id3-id4))" evaluated? We just know left operand we dont know the value of right operand. For that we surely need to evaluate - first instead of /. The issue is because of last grammar production where 1st Non terminal is again called. So I think there is no concept of precedence here. We can make parse tree where - has more precedence than / and another where / has more precedence than -.