View previous topic :: View next topic |
Author |
Message |
SaintMichael57
Joined: 28 Nov 2016 Posts: 14
|
Posted: Wed Feb 21, 2018 6:37 pm Post subject: A Fortran 90/95 Equivalent of Pascal |
|
|
Dear Silverfrost Community:
Do any of you know of a function (intrinsic or otherwise) that returns the
same argument as that of the DIV intrinsic function of Pascal? Thank you. |
|
Back to top |
|
|
mecej4
Joined: 31 Oct 2006 Posts: 1888
|
Posted: Wed Feb 21, 2018 8:12 pm Post subject: |
|
|
Did you mean 'result' rather than 'argument'?
No function is needed. If a and b are of type INTEGER, a/b gives you the integer quotient. If either is of some other type, and if appropriate, use INT(a)/INT(b) . |
|
Back to top |
|
|
SaintMichael57
Joined: 28 Nov 2016 Posts: 14
|
Posted: Wed Feb 21, 2018 10:27 pm Post subject: A reply |
|
|
Dear mecej4:
I meant "result" rather than "argument." Thank you. |
|
Back to top |
|
|
John-Silver
Joined: 30 Jul 2013 Posts: 1520 Location: Aerospace Valley
|
Posted: Fri Mar 02, 2018 5:34 am Post subject: |
|
|
... or INT(AINT(A/B) maybe , for any A,B integer or real ? _________________ ''Computers (HAL and MARVIN excepted) are incredibly rigid. They question nothing. Especially input data.Human beings are incredibly trusting of computers and don't check input data. Together cocking up even the simplest calculation ... " |
|
Back to top |
|
|
mecej4
Joined: 31 Oct 2006 Posts: 1888
|
Posted: Fri Mar 02, 2018 12:50 pm Post subject: Re: |
|
|
John-Silver wrote: | ... or INT(AINT(A/B)) maybe , for any A,B integer or real ? | In Pascal, the two operands of the div operator must be one of the integer types. The result (the quotient) is also of integer type. The Fortran intrinsic AINT must be given a real argument, and I see no reason to use it for the purpose stated in the first post. For many combinations of values, such as A = 65537 and B = 4097, INT(AINT(A/B)) gives the wrong result. In this case, it gives 16, whereas the actual quotient is 15. |
|
Back to top |
|
|
John-Silver
Joined: 30 Jul 2013 Posts: 1520 Location: Aerospace Valley
|
Posted: Mon Mar 05, 2018 10:35 pm Post subject: |
|
|
so what about INT(AINT(FLOAT(A)/FLOAT(B))) then ? _________________ ''Computers (HAL and MARVIN excepted) are incredibly rigid. They question nothing. Especially input data.Human beings are incredibly trusting of computers and don't check input data. Together cocking up even the simplest calculation ... " |
|
Back to top |
|
|
mecej4
Joined: 31 Oct 2006 Posts: 1888
|
Posted: Mon Mar 05, 2018 11:54 pm Post subject: |
|
|
That looks reasonable and appropriate -- for a CDC 6xxx machine. The 6XXX CPUs did not have instructions for general integer arithmetic! |
|
Back to top |
|
|
|