forums.silverfrost.com Forum Index forums.silverfrost.com
Welcome to the Silverfrost forums
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

A Fortran 90/95 Equivalent of Pascal

 
Post new topic   Reply to topic    forums.silverfrost.com Forum Index -> General
View previous topic :: View next topic  
Author Message
Carl_Mesaros



Joined: 28 Nov 2016
Posts: 11

PostPosted: Wed Feb 21, 2018 6:37 pm    Post subject: A Fortran 90/95 Equivalent of Pascal Reply with quote

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. Smile
Back to top
View user's profile Send private message
mecej4



Joined: 31 Oct 2006
Posts: 879

PostPosted: Wed Feb 21, 2018 8:12 pm    Post subject: Reply with quote

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
View user's profile Send private message
Carl_Mesaros



Joined: 28 Nov 2016
Posts: 11

PostPosted: Wed Feb 21, 2018 10:27 pm    Post subject: A reply Reply with quote

Dear mecej4:
I meant "result" rather than "argument." Thank you. Smile
Back to top
View user's profile Send private message
John-Silver



Joined: 30 Jul 2013
Posts: 764

PostPosted: Fri Mar 02, 2018 5:34 am    Post subject: Reply with quote

... or INT(AINT(A/B) maybe , for any A,B integer or real ?
_________________
"This is the triumph of folly.
The machine, which knows no rest, ought to remain a tool,
... but instead becomes our master and will swallow up our life and soul"
Back to top
View user's profile Send private message
mecej4



Joined: 31 Oct 2006
Posts: 879

PostPosted: Fri Mar 02, 2018 12:50 pm    Post subject: Re: Reply with quote

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
View user's profile Send private message
John-Silver



Joined: 30 Jul 2013
Posts: 764

PostPosted: Mon Mar 05, 2018 10:35 pm    Post subject: Reply with quote

so what about INT(AINT(FLOAT(A)/FLOAT(B))) then ?
_________________
"This is the triumph of folly.
The machine, which knows no rest, ought to remain a tool,
... but instead becomes our master and will swallow up our life and soul"
Back to top
View user's profile Send private message
mecej4



Joined: 31 Oct 2006
Posts: 879

PostPosted: Mon Mar 05, 2018 11:54 pm    Post subject: Reply with quote

That looks reasonable and appropriate -- for a CDC 6xxx machine. The 6XXX CPUs did not have instructions for general integer arithmetic!
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    forums.silverfrost.com Forum Index -> General All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group