Understand Fortran Coding Do Loop: VBA Translation Help

In Summary, You are requesting someone to provide the entire code for a particular program. However, due to the complexity of the code, you are not able to offer any help.
  • #1
shei7141
13
0
Can some1 kindly help me understand the following code, I am trying to translate the following code in VBA:

Thanks in advance

FFLC = FLC ...i understand this part
ANGLE=PI/6 !Suppose 30 Degrees ...i understand this part
Do 21800 I=i,5 ...Don't understand this
FLC=FFLC-COS(ANGLE)*NDIA
FLE=SQRT(FLB*FLB+FLC*FLC) ...i understand this part
21800 ANGLE=ATAN2(FLC,FLB)...i understand this part
if (R.NE.o.)D=R/2.+NDIA/2...i understand this part
FLCUT = ... ...i understand this part
LE=IFIX(FLE)...Don't understand this

My answer for FLCUT is 2387 when using the 30 degree angle but fortran result 2397 (after using the iteration which I don't understand)

Can someone please help me understand this please?

Regards
 
Engineering news on Phys.org
  • #2
FFLC = FLC ...i understand this part
ANGLE=PI/6 !Suppose 30 Degrees ...i understand this part

Do 21800 I=i,5 ...Don't understand this --> execute lines until line number 21800, from I=i to I=5 ; that is 5-i+1 iterations


FLC=FFLC-COS(ANGLE)*NDIA
FLE=SQRT(FLB*FLB+FLC*FLC) ...i understand this part
21800 ANGLE=ATAN2(FLC,FLB)...i understand this part
if (R.NE.o.)D=R/2.+NDIA/2...i understand this part
FLCUT = ... ...i understand this part
LE=IFIX(FLE)...Don't understand this-->IFIX must be some function / subroutine otherwise it would be taking dimension of a Real

My answer for FLCUT is 2387 when using the 30 degree angle but fortran result 2397 (after using the iteration which I don't understand)
 
  • #3
thanks mate,

in above equation, I understand that the iteration required to refine the angle. it is starting with 30 degrees angle and iterating it (which I don't understand how)... could you provide me a break down of iteration. I am totally new with fortran. I'll appreciate if you could take me through the step by step and tell me what would be the angle after iterating the equation.

Thanks
 
  • #4
shei7141 said:
thanks mate,

in above equation, I understand that the iteration required to refine the angle. it is starting with 30 degrees angle and iterating it (which I don't understand how)... could you provide me a break down of iteration. I am totally new with fortran. I'll appreciate if you could take me through the step by step and tell me what would be the angle after iterating the equation.

Thanks

Hi :)

You are welcome.

Can you post the whole program code

PROGRAM xxxx
.
.
.
STOP
END.

The dots.
 
  • #5
Fflc=flc
angle=pi/6 !suppose 30 degrees
do 21800 i=1,5
flc=fflc-cos(angle)*ndia
fle=sqrt(flb*flb+flc*flc)
21800 angle =atan2(flc,flb)
if(r.ne.0) d=r/2+ndia/2
flcut=fla+fle-2*(d+ndia/2)*tan(angle/2)+d*angle
le=ifix(fle)
return

where fla = 1865
flb = 145
flc540
r=80
ndia=16

fle should have been 555 (after iteration) but when i ran it with 30 degree my answer was 545.

I am just wondering how should fle be 555 after.

Pls help
 
  • #6
Fflc=flc
angle=pi/6 !suppose 30 degrees
do 21800 i=1,5
flc=fflc-cos(angle)*ndia
fle=sqrt(flb*flb+flc*flc)
21800 angle =atan2(flc,flb)
if(r.ne.0) d=r/2+ndia/2
flcut=fla+fle-2*(d+ndia/2)*tan(angle/2)+d*angle
le=ifix(fle)
return

where fla = 1865
flb = 145
flc540
r=80
ndia=16

fle should have been 555 (after iteration) but when i ran it with 30 degree my answer was 545.

I am just wondering how should fle be 555 after.

Pls help
 
  • #7
shei7141 said:
Fflc=flc
angle=pi/6 !suppose 30 degrees
do 21800 i=1,5
flc=fflc-cos(angle)*ndia
fle=sqrt(flb*flb+flc*flc)
21800 angle =atan2(flc,flb)
if(r.ne.0) d=r/2+ndia/2
flcut=fla+fle-2*(d+ndia/2)*tan(angle/2)+d*angle
le=ifix(fle)
return

where fla = 1865
flb = 145
flc540
r=80
ndia=16

fle should have been 555 (after iteration) but when i ran it with 30 degree my answer was 545.

I am just wondering how should fle be 555 after.

Pls help

I do not t see the entire program , maybe you should manually enter Pi/6 in radians which is appr. =

0,523598776
 
  • #8
i have tried pi/6 and which results in FLE = 545 but program is resulting in 555. This diffirence is likely due to this iteration
 
  • #9
shei7141 said:
Fflc=flc
angle=pi/6 !suppose 30 degrees
do 21800 i=1,5
flc=fflc-cos(angle)*ndia
fle=sqrt(flb*flb+flc*flc)
21800 angle =atan2(flc,flb)
if(r.ne.0) d=r/2+ndia/2
flcut=fla+fle-2*(d+ndia/2)*tan(angle/2)+d*angle
le=ifix(fle)
return

where fla = 1865
flb = 145
flc540
r=80
ndia=16

fle should have been 555 (after iteration) but when i ran it with 30 degree my answer was 545.

I am just wondering how should fle be 555 after.

Pls help
It also could be due to declaration mismatch, try to declare all your values Double Precision or Real and and when doing operations inside the code, use real number formats for numbers
, eg : Pi/6=make it Pi/6.0 where Pi should be declared a REAL or D.P:
 
  • #10
and i am trying to understand what does Do loop is changing in entire process
 
  • #11
please help . . .. i don't understand this... all of my work is waiting at this bugger
 
  • #12
shei7141 said:
please help . . .. i don't understand this... all of my work is waiting at this bugger

Sir/Ma'am, Personally , I need to see the entire code. Otherwise, I am sorry I can not offer any help :(
 
  • #13
btw I am a female ..

this is the entire code... to calculate the bar length of a F shaped steel bar...

there are 99 other codes like these for other types of the shapes but they are similar. so somehow if we figure this code out, will mean all sorted ...

the only place I see Do loop is changing is the angle of the bar. the program is using 30 degree angle as a starting point and than refining the angle using the iteration. And I can't really understand how exactly the do loop is refining the angle...
 
  • #14
shei7141 said:
Fflc=flc
angle=pi/6 !suppose 30 degrees
do 21800 i=1,5
flc=fflc-cos(angle)*ndia
fle=sqrt(flb*flb+flc*flc)
21800 angle =atan2(flc,flb)
if(r.ne.0) d=r/2+ndia/2
flcut=fla+fle-2*(d+ndia/2)*tan(angle/2)+d*angle
le=ifix(fle)
return

where fla = 1865
flb = 145
flc540
r=80
ndia=16

fle should have been 555 (after iteration) but when i ran it with 30 degree my answer was 545.

I am just wondering how should fle be 555 after.

Pls help

Ok I'll do the first and second iterations, you do others

flc=540-8*sqrt(3)

flb = 145 in all iterations

atan2(flc,flb)= atan of the angle of (540-8*sqrt(3) ) + 145 j

angle=0.269 rads=15.43 degrees

2nd iteration

flc=526.1436-sqrt(3)*8
flb=145

atan2(512.2902 , 145)

angle at second iteration becomes angle= 0.2758 rads =15.8 degrees

Something like that
 
  • #15
shei7141 said:
btw I am a female ..

this is the entire code... to calculate the bar length of a F shaped steel bar...

there are 99 other codes like these for other types of the shapes but they are similar. so somehow if we figure this code out, will mean all sorted ...

the only place I see Do loop is changing is the angle of the bar. the program is using 30 degree angle as a starting point and than refining the angle using the iteration. And I can't really understand how exactly the do loop is refining the angle...

BTW your gender would not matter to me but what we are dealing here is Fortran 90 Language, sorry I only can speak WF77.

Hope you'll find help.

Best Regards.
 
  • #16
thank you very for all your help...

I am really really thankful for all your assistance...

I am going to try this now and hope will get the right answers...

Once again thanks
 
  • #17
oh i only mentioned my gender cos you said sir/ madam... i didn't mean any wrong... Apology for any inconvenience
 
  • #18
shei7141 said:
oh i only mentioned my gender cos you said sir/ madam... i didn't mean any wrong... Apology for any inconvenience

My Apologies. I just was being ethical and stuff, I could not think I would cause any misunderstanding. I am Terribly sorry.

Good Luck in the Forum, Lady.
 
  • #19
no need to apologize

I am really very thankful for your time and everything

Kindest regards
 
  • #20
This is what I get with your fortran code:

Code:
 fla =  1865.
 flb =  145.
 flc =  540.
 r   =  80.

 pi =  3.141592

 i =  1
 angle=  0.52359873
 flc =  526.1436
 fle =  545.7583
 angle=  1.3018816

 i =  2
 angle=  1.3018816
 flc =  535.749
 fle =  555.02435
 angle=  1.3064796

 i =  3
 angle=  1.3064796
 flc =  535.82
 fle =  555.09283
 angle=  1.306513

 i =  4
 angle=  1.306513
 flc =  535.8205
 fle =  555.0933
 angle=  1.3065132

 i =  5
 angle=  1.3065132
 flc =  535.8205
 fle =  555.0933
 angle=  1.3065132

 flcut =  2397.086

I would like to point out that having 'pi' defined or not does not make that much of a difference after the first iteration...I have opted to defined it, though, since clearly it was intended to be there.
 
  • #21
By the way, the way the iteration works is simply by using a starting 'angle'; but then, the same variable angle is computed and its value overwritten at the end of the loop so that it has a new value at the starting of the loop on the next iteration

do i=1,5

flc = fflc - cos(angle)*ndia
fle = sqrt(flb*flb+flc*flc)
angle = atan2(flc,flb)

end do
 
  • #22
shei7141 said:
Fflc=flc
angle=pi/6 !suppose 30 degrees
do 21800 i=1,5
flc=fflc-cos(angle)*ndia
fle=sqrt(flb*flb+flc*flc)
21800 angle =atan2(flc,flb)
if(r.ne.0) d=r/2+ndia/2
flcut=fla+fle-2*(d+ndia/2)*tan(angle/2)+d*angle
le=ifix(fle)
return

where fla = 1865
flb = 145
flc540
r=80
ndia=16

fle should have been 555 (after iteration) but when i ran it with 30 degree my answer was 545.

I am just wondering how should fle be 555 after.

Pls help
I do not know other than WF77 but smt struck my eyes.


you set fflc=flc for initial fflc = 540

and the iteration all the time uses with that initial flc=540

and if angle=atan(flb/flc)
cos(angle)=fle/flb


Who knows ? Maybe you should alter the corresponding line as follows

flc=flc-cos(angle)*ndia

and IFIX was meant an intrinsic FORTRAN function which takes Integer value of the operand, just as INT(fle) would do
 
  • #23
OMG!

you both literally saved my life... I am really very thankful

THANK YOU THANK YOU THANK YOU THANK YOU........KINDEST EVER REGARDS
 
  • #24
Hi,

can any of you please explain what does NCCH command do in Fortran

I have following situation:

if (FLA . GT . 2 *(FLB+NDIA) Go To 250
.
.
.
.

250 NCCH = "2 "
 
  • #25
NCCH is not a command, it is a variable...and it is being assigned the value "2 " ...can you look back and make sure that the variable has been declared to be of type "CHARACTER"? If not, they are getting tricky and they are storing two characters into an INTEGER type variable...must be old Fortran.
 
  • #26
hello...i have been given an assignment which needs to be done on fortran90...i have come up with my code but it isn't working for me..

there are four parrts each specifying the values of M1 and angle for which M2 is to be calculated using SECANTS method..

here is the codde with simplified comments

!here i have declared the arrays
!note that there are four parts of this question so i have declared two variables with four values each therefore combinining those parts

!the dimensions of Function f,values of initial gueses x1,x2 and x3 have been declared arbitarily since i do not know the number of iterations needed to come up with the final solution


dimension m1(1:4),rad(1:4),theeta(1:4),f(1:20),x1(1:20),x2(1 :20),x3(1:20)

data (m1(i),i=1,4)/1.0,1.0,1.5,1.5/

data (theeta(i),i=1,4)/10.0,20.0,10.0,20.0/



do i=1,4

rad(i)=theeta(i)*3.142/180
enddo


! here i have started the outer loop so that for each set of M1 and Rad the inner loop shouldd run and calculate the value of M2(taken as x3)
!for e.g for M1=1.0 and rad=10.0 this code should calculate the value for M2 but since i do not know how many iterations will be done i have assigned an arbitary value of 10 in the inner loop



do i=1,4


do j=1,20



!here i have set the tolerance
tol=.00001



!here is the function


F(x)=rad(i)-(6.**(1./2.))*(atan((((x(j))**2.)-1.)/6.)**(1./2.))-((atan((((m1(i))**2.)-1.)/6.)**(1./2.)))+(atan((((x(j))**2.)-1.)**(1./2.))-(atan((((m1(i))**2.)-1.)**(1./2.))))

! here are the two values of initial guesses(which will keep interchanging at each iteration..which i have set as 10 as a guess)


x1(j)=2.0
x2(j)=1.5


!here is secants formula

10 x3(j)=(x1(j)*f(x2(j))-x2(j)*f(x1(j)))/(f(x2(j))-f(x1(j)))

print*,'m1',m1(i),'rad',rad(i),'x1',x1(j),'x2',x2( j),'x3',x3(j)

x1(j)=x2(j)

x2(j)=x3(j)

if (abs (x1(j)-x2(j)).lt.tol) goto 20

goto 10

20 print*,'The value of m2 for part(a) is',x3(j)

end do

end do

end


all well in compiling but gives the following eror when i build it


Linking...
sec.obj : error LNK2001: unresolved external symbol _X@4
sec.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
sec.exe - 2 error(s), 0 warning(s)


WHERE HAVE I GONE WRONG?

please help

thank you


i have attached the question paper for your reference
 
  • #27
Did anyone answer your question? A DO loop is simply a programming control structure that performs an iterative calculation. In this case the calculation is repeated five times. The phrase "I=1,5" simply means "start with I=1 and increment by 1 until you get to 5, repeating everything up to the line number I just told you." The line number is given in the DO statement and has to appear somewhere downstream in the same routine. "Modern" Fortran programmers don't bother with line numbers and simply use an ENDDO statement. I would have written

DO I=1,5
FLC=FFLC - COS(ANGLE)*NDIA
FLE=SQRT(FLB*FLB+FLC*FLC)
ANGLE=ATAN2(FLC,FLB)
ENDDO

which does the same thing. BTW your original question said "I=i,5" not "I=1,5" which would have resulted in a compilation error, I think, since "I" and "i" are the same variable in Fortran.

BBB
 
  • #28
polka129 said:
...
!here is the function


F(x)=rad(i)-(6.**(1./2.))*(atan((((x(j))**2.)-1.)/6.)**(1./2.))-((atan((((m1(i))**2.)-1.)/6.)**(1./2.)))+(atan((((x(j))**2.)-1.)**(1./2.))-(atan((((m1(i))**2.)-1.)**(1./2.))))
...
all well in compiling but gives the following eror when i build it


Linking...
sec.obj : error LNK2001: unresolved external symbol _X@4
sec.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
sec.exe - 2 error(s), 0 warning(s)


WHERE HAVE I GONE WRONG?

please help

thank you


i have attached the question paper for your reference

It looks to me like your statement function assignment is ill-formed. In fact I don't understand what you expect "f" (which is the same as "F") to be -- is it an array with 20 slots containing real numbers, or is it a function that returns an array with 20 reals as a function of array elements of x, m1, m2, etc.? In any case you are telling the compiler to expect the function "F" to have an argument "x" (which you never declared) -- but then you give a subscript to x in the function definition. The compiler is thinking "Hmm, polka has stuck this token x(j) in the statement function. But if it were an array element, he would have declared it up top. Since he didn't, he must mean that x is a function of j. So I will go look for a function x that takes an integer argument... WHERE THE HELL IS IT? I CAN'T RESOLVE THIS EXTERNAL SYMBOL!"

Now I know f90 gives you a lot of leeway to hang yourself with array arguments, but I think you would be better off by writing the statement function in terms of scalar arguments instead of array elements, e.g.

f(argx,argm1,argm2) = atan(argx**2-1.) + argm2 etc...

and then later call the statement function with the subscripted arguments

myresult = f(x(2),m1(2),m2(2))

or whatever it is you need.

BTW some stylistic hints: get control of your parentheses. By inspection at least one set is redundant because part of your statement function reads

...((atan((((m1(i))**2.)-1.)/6.)**(1./2.)))...

I'm also suspicious that you've mangled the formula itself, though I don't have the original to look at. But in some places you've got a sqrt*(atan(...)) and other places atan(sqrt(...)). And BTW instead of (something)**(1./2.) you should write sqrt(something) -- it's easier to read and it executes quicker, depending on the compiler options. And FWIW, entirely optional, but my Fortran style is to use upper case to denote Fortran keywords and lower case for my variables, e.g.

INTEGER*4 ix
REAL*4 x(20), m1(20), m2(20)
DO ix=1,20
x(ix) = ix
ENDDO

etc. I find this makes the code much easier to read, but your mileage may vary.

You should also do type declarations on your variables instead of just using a simple DIMENSION statement. If I read your code correctly you've declared integer arrays m1 and m2 and then tried to assign real values to them, which is a recipe for disaster. You should be type declaring every variable and function in your code. Start your routines with

IMPLICIT NONE

and you won't get tripped up by Fortran's lax and idiosyncratic type assignment defaults ("variable names starting i,j,k,l,m,n denote integers, everything else is real").

BBB
 
  • #29
ok i have made a function..but i still get errors..please spot the error

there is nothing wrong with the parenthesis...






!here i have declared the arrays
!note that there are four parts of this question so i have declared two variables with four values each therefore combinining those parts

!the dimensions of Function f,values of initial gueses x1,x2 and x3 have been declared arbitarily since i do not know the number of iterations needed to come up with the final solution

real formula
real rad,x,m1,theeta

dimension m1(1:4),rad(1:4),theeta(1:4),x1(1:20),x2(1:20),x3(1:20)

data (m1(i),i=1,4)/1.0,1.0,1.5,1.5/

data (theeta(i),i=1,4)/10.0,20.0,10.0,20.0/


do i=1,4

rad(i)=theeta(i)*3.142/180
enddo





! here i have started the outer loop so that for each set of M1 and Rad the inner loop shouldd run and calculate the value of M2(taken as x3)
!for e.g for M1=1.0 and rad=10.0 this code should calculate the value for M2 but since i do not know how many iterations will be done i have assigned an arbitary value of 10 in the inner loop



do i=1,4


do j=1,20

x1(j)=2.0
x2(j)=1.5



!here i have set the tolerance
tol=.00001




! here are the two values of initial guesses(which will keep interchanging at each iteration..which i have set as 10 as a guess)



!here is secants formula

10 x3(j)=(x1(j)*formula(rad,x,m1)-x2*formula(rad, x, m1))/(formula(rad, x, m1)-formula(rad, x, m1))

print*,'m1',m1(i),'rad',rad(i),'x1',x1(j),'x2',x2(j),'x3',x3(j)

x1(j)=x2(j)
x2(j)=x3(j)

if (abs (x1(j)-x2(j)).lt.tol) goto 20
goto 10
20 print*,'The value of m2 for part(a) is',x3(j)

end do

end do

end

! here's the function

REAL FUNCTION formula(rad,x,m1)
REAL rad,x,m1

dimension m1(1:4),rad(1:4),theeta(1:4),x1(1:20),x2(1:20),x3(1:20)



F(rad,x,m1)=rad(i)-(6.**(1./2.))*(atan((((x(j))**2.)-1.)/6.)**(1./2.))-((atan((((m1(i))**2.)-1.)/6.)**(1./2.)))+(atan((((x(j))**2.)-1.)**(1./2.))-(atan((((m1(i))**2.)-1.)**(1./2.))))


RETURN
END
 
  • #30
polka129 said:
! here's the function

REAL FUNCTION formula(rad,x,m1)
REAL rad,x,m1

dimension m1(1:4),rad(1:4),theeta(1:4),x1(1:20),x2(1:20),x3(1:20)



F(rad,x,m1)=rad(i)-(6.**(1./2.))*(atan((((x(j))**2.)-1.)/6.)**(1./2.))-((atan((((m1(i))**2.)-1.)/6.)**(1./2.)))+(atan((((x(j))**2.)-1.)**(1./2.))-(atan((((m1(i))**2.)-1.)**(1./2.))))


RETURN
END

In a FUNCTION routine, you need to assign something to the variable whose name is the function name, i.e. you need to write

formula=rad(i)-(6.**(1./2.))*(atan((((x(j))**2.)-1.)/6.)**(1./2.))-((atan((((m1(i))**2.)-1.)/6.)**(1./2.)))+(atan((((x(j))**2.)-1.)**(1./2.))-(atan((((m1(i))**2.)-1.)**(1./2.))))

The compiler has no way of knowing that you mean "F" to be "formula".

And you still have redundant parentheses around

((atan((((m1(i))**2.)-1.)/6.)**(1./2.)))

You understand that "((expression))" is the same as "(expression)", right?

If you'd clean this up, you might notice that within the function routine, you have never defined the variables i and j. So the compiler will assign them values of 0, and you will get a bounds error on execution, assuming you ever get it to compile. You should really use IMPLICIT NONE to catch such errors in compilation instead of execution. IMPLICIT NONE forces you to declare all variables. You would set this up like this:

REAL*4 FUNCTION formula(rad,x,m1)
IMPLICIT NONE
REAL*4 rad(4),m1(4),x
.
.etc.
.
RETURN
END

However, it seems to me that what you actually want to do is pass the array element to the function, not the whole array, so you would invoke the function with

...formula(rad(i),x(j),m1(j))...

and within the function declare these arguments as scalars, not arrays. This allows the function to work on just those elements that you want the result for at that moment.

Also, in the calling routine, you never assign a value to x in an assignment statement. You use x as an argument to formula() and on the right side of an assignment statement in the function, but you never define it. In the formula itself you use x as a subscripted array but you have never dimensioned it, so as I explained before, the compiler is still looking for a FUNCTION x() and you will still be getting "unresolved external function" errors. YOU NEED TO FIX THIS. YOU NEED TO ASSIGN SOMETHING TO X BEFORE YOU USE IT IN A FORMULA. I pointed out in my previous message that this is why you were getting the error message, but you still haven't fixed this. Fix it or you will keep getting the same error message.

What is x supposed to be?

If I strip all the redundant parentheses from your formula, this is what I get:

REAL*4 FUNCTION formula(rad,x,m1)
IMPLICIT NONE
REAL*4 rad,x,m1

formula = rad - SQRT(6.)*SQRT(ATAN((x**2 - 1.)/6.)) - SQRT(ATAN((m1**2 - 1.)/6.)) + ATAN(SQRT(x**2 - 1.)) - ATAN(SQRT(m1**2 - 1.))

RETURN
END

Does that look correct? BTW you can handle line continuations for long lines with an ampersand, e.g.

formula = rad &
- SQRT(6.)*SQRT(ATAN((x**2 - 1.)/6.)) &
- SQRT(ATAN((m1**2 - 1.)/6.)) &
+ ATAN(SQRT(x**2 - 1.)) &
- ATAN(SQRT(m1**2 - 1.))

Is it true that sqrt(6) only applies to the first term? Seems wrong.

BBB
 

Related to Understand Fortran Coding Do Loop: VBA Translation Help

1. What is a Do Loop in Fortran?

A Do Loop in Fortran is a control structure that allows a program to repeatedly execute a block of code until a certain condition is met. It is similar to a "for" or "while" loop in other programming languages.

2. How do I translate a Do Loop from Fortran to VBA?

To translate a Do Loop from Fortran to VBA, you will need to use a "For...Next" loop in VBA. The syntax and logic of the two loops are similar, so it should not be difficult to make the translation.

3. Can a Do Loop in Fortran be nested?

Yes, a Do Loop in Fortran can be nested, meaning one Do Loop can be placed inside another. This is useful for situations where you need to repeat a set of code multiple times within a larger loop.

4. What is the purpose of the "Do While" statement in a Do Loop?

The "Do While" statement in a Do Loop is used to specify the condition that must be met for the loop to continue executing. It allows the loop to terminate when a certain condition is no longer true.

5. Are there any limitations to using Do Loops in Fortran?

While Do Loops are a useful and common control structure in Fortran, they do have some limitations. For example, they cannot be used for parallel processing and may not be the most efficient option for large datasets. It is important to consider the specific needs of your program before using a Do Loop.

Similar threads

  • Programming and Computer Science
Replies
8
Views
2K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
5
Views
3K
  • Programming and Computer Science
Replies
1
Views
2K
  • Introductory Physics Homework Help
Replies
20
Views
2K
  • Engineering and Comp Sci Homework Help
Replies
1
Views
3K
  • Programming and Computer Science
Replies
3
Views
10K
Replies
5
Views
3K
Back
Top