You are on page 1of 35

‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ )‪ / (1‬اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬

‫اﻟﺠﺎﻣﻌﺔ اﻟﺘﻜﻨﻮﻟﻮﺟﯿﺔ‬
‫ﻗﺴﻢ اﻟﮭﻨﺪﺳﺔ اﻟﻤﯿﻜﺎﻧﯿﻜﯿﺔ‬

‫اﻟﺘﻤﺎرﯾﻦ اﻟﻌﻤﻠﯿﺔ ﻟﻤﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ )‪(1‬‬


‫اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬

‫إﻋﺪاد‬
‫ﻋﻤﺎد ﻋﺒﺪ اﻟﺮﺳﻮل ﻋﺒﺪ اﻟﺼﺎﺣﺐ‬
‫ﻣﺪرس‬

‫‪2014‬‬
‫ اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬/ (1) ‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ‬ 2

Introduction to Programming using FORTRAN 90

The language chosen for this module is FORTRAN 90. This is


because FORTRAN is particularly suitable for mathematicians
and engineers ; it is also very widely available. The skills
you acquire working through these notes can be applied to any
computing language. The concepts you will learn are shared in
common with every other computing language.
‫ اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬/ (1) ‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ‬ 3

: 1 ‫ﺗﻣرﯾن‬
‫اﻟﮭدف‬
(2 ‫ واﺳﺗﺧداﻣﺎﺗﮭﺎ ) ﻣﻠﺣق‬Fortran 90 ‫اﻟﺗﻌرف ﻋﻠﻰ واﺟﮭﺔ ﻟﻐﺔ‬
Fortran program .(‫وﻛﺗﺎﺑﺔ ﺑرﻧﺎﻣﺞ ﺑﺳﯾط )اﯾﺟﺎد ﻣﺳﺎﺣﺔ اﻟﻣرﺑﻊ‬
:‫اﻟﺣل‬
Program L = ‫ﻧﻔرض ان طول ﺿﻠﻊ اﻟﻣرﺑﻊ‬
sequare_Area A = ‫ﻣﺳﺎﺣﺔ اﻟﻣرﺑﻊ‬
Real :: A ,L A = L2
Read * , L
A = A**2
Print * ,A
End

: 2 ‫ﺗﻣرﯾن‬
: ‫اﻟﮭدف‬
This Exercise is to use some of FORTRAN intrinsic functions and Arithmetic
Expressions
:‫ ﻛﺗﺎﺑﺔ وﺗﻧﻔﯾذ ﺑرﻧﺎﻣﺞ ﻟﺣﺳﺎب اﻟﻣﻌﺎدﻟﺔ اﻟﺗﺎﻟﯾﺔ‬: ‫اﻟﺗﻣرﯾن‬

Fortran program X 2  3C
D 2
 7D  5
Program Eq_1 (C  A)
: ‫اﻟﺣل‬
Real :: D, X, C, A

Read *,D,X,C,A

D = sqrt(x**2 + 3* C) /
(C + A)**2 + 7*D + 5

Print *, “D = “, D
End
‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ )‪ / (1‬اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬ ‫‪4‬‬

‫ﺗﻣرﯾن ‪: 3‬‬
‫اﻟﮭدف ‪:‬‬
‫‪To generate integer numbers (1 .. 100) without using (Read statement).‬‬

‫اﻟﺗﻣرﯾن ‪ :‬ﻛﺗﺎﺑﺔ وﺗﻧﻔﯾذ ﺑرﻧﺎﻣﺞ ﻻﯾﺟﺎد ﻣﺟﻣوع اﻻﻋداد اﻟﺻﺣﯾﺣﺔ ﻣن ‪ 1‬اﻟﻰ ‪.100‬‬
‫اﻟﺣل ‪:‬‬
‫ﻧﻔرض‬
‫ﻋداد اﻟﺗﻛرار = ‪K‬‬
‫اﻟﻣﺟﻣــــــــوع = ‪Sum‬‬

‫‪Fortran program‬‬

‫‪Program allsum‬‬

‫‪Integer :: K , Sum‬‬

‫‪Sum = 0‬‬

‫‪Do K = 1 , 100‬‬

‫‪Sum = Sum + K‬‬

‫‪Enddo‬‬

‫‪Print *, “Sum =”. Sum‬‬

‫‪End‬‬

‫ﯾﺟب ان ﯾﻛون اﻟﻧﺎﺗﺞ = ‪5050‬‬


‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ )‪ / (1‬اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬ ‫‪5‬‬

‫ﺗﻣرﯾن ‪:4‬‬
‫اﻟﮭدف ‪:‬‬
‫‪To generate even integer numbers (1 .. 100) without using (Read statement).‬‬

‫اﻟﺗﻣرﯾن ‪ :‬ﻛﺗﺎﺑﺔ وﺗﻧﻔﯾذ ﺑرﻧﺎﻣﺞ ﻻﯾﺟﺎد ﻣﺟﻣوع اﻻﻋداد اﻟزوﺟﯾﺔ اﻟﺻﺣﯾﺣﺔ ﻣن ‪ 1‬اﻟﻰ ‪.100‬‬
‫اﻟﺣل ‪:‬‬
‫ﻧﻔرض‬
‫ﻋداد اﻟﺗﻛرار = ‪K‬‬
‫اﻟﻣﺟﻣــــــــوع = ‪Sum‬‬

‫‪Fortran program‬‬

‫‪Program allsum‬‬

‫‪Integer :: K , Sum‬‬

‫‪Sum = 0‬‬

‫‪Do K = 2 , 100,2‬‬

‫‪Sum = Sum + K‬‬

‫‪Enddo‬‬

‫‪Print *, “Even Sum =”. Sum‬‬

‫‪End‬‬

‫ﯾﺟب ان ﯾﻛون اﻟﻧﺎﺗﺞ = ‪2550‬‬


‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ )‪ / (1‬اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬ ‫‪6‬‬

‫ﺗﻣرﯾن ‪:5‬‬
‫اﻟﮭدف ‪:‬‬
‫‪To generate odd integer numbers (1 .. 100) with out using (Read statement).‬‬

‫اﻟﺗﻣرﯾن ‪ :‬ﻛﺗﺎﺑﺔ وﺗﻧﻔﯾذ ﺑرﻧﺎﻣﺞ ﻻﯾﺟﺎد ﻣﺟﻣوع اﻻﻋداد اﻟﻔردﯾﺔ اﻟﺻﺣﯾﺣﺔ ﻣن ‪ 1‬اﻟﻰ ‪.100‬‬
‫اﻟﺣل ‪:‬‬
‫ﻧﻔرض‬
‫ﻋداد اﻟﺗﻛرار = ‪K‬‬
‫‪Fortran program‬‬ ‫اﻟﻣﺟﻣــــــــوع = ‪Sum‬‬
‫‪Program allsum‬‬

‫‪Integer :: K , Sum‬‬

‫‪Sum = 0‬‬

‫‪Do K = 1 , 100,2‬‬

‫‪Sum = Sum + K‬‬

‫‪Enddo‬‬

‫‪Print *, “Odd Sum =”. Sum‬‬

‫‪End‬‬

‫ﯾﺟب ان ﯾﻛون اﻟﻧﺎﺗﺞ = ‪2500‬‬


‫ اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬/ (1) ‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ‬ 7

:6 ‫ﺗﻣرﯾن‬
: ‫اﻟﮭدف‬
To use sine , cosine and tangent functions to get values for some angles
without using (Read statement).

‫( ﻟﻠزواﯾﺎ اﻟﺗﺎﻟﯾﺔ )ﺑدون اﺳﺗﺧدام اﯾﻌﺎز اﻟﻘراءة‬Sine , cosine ,Tangent) ‫ﻛﺗﺎﺑﺔ وﺗﻧﻔﯾذ ﺑرﻧﺎﻣﺞ ﻻﯾﺟﺎد‬
(Read
: ‫وطﺑﺎﻋﺔ اﻟﻧﺗﺎﺋﺞ‬
( 1,3,5,7,9,10,15.20.25.30,45,60,75,90) : ‫اﻟزواﯾﺎ‬
.Ǒǜңқƣ
ỸǎǑҳỸƚƧỸƹỷƳүƣ
ỷƊƹƧǜ ƩỷỸƧƤƋ

: ‫اﻟﺣل‬
‫ﻧﻔرض‬
K= ‫اﻟزاوﯾـــــﺔ‬

Fortran program

Program sine_cosine_tangent

Integer :: K

Do K = 1 , 10, 2

Print *,”sine =”,sind(k),”cosine = “,cosd(k), “tangent = “,tand(k)

Enddo

Do K = 15 , 90, 5

Print *,”sine =”,sind(k),”cosine = “,cosd(k), “tangent = “,tand(k)

Enddo

End
‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ )‪ / (1‬اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬ ‫‪8‬‬

‫ﺗﻣرﯾن ‪:7‬‬
‫اﻟﮭدف ‪:‬‬
‫‪To use Ohm law for some current values without using (Read statement).‬‬

‫ﻟدﯾك اﻟﻣﻌﺎدﻟﺔ اﻟﺗﺎﻟﯾﺔ)ﻗﺎﻧون اوم( ‪V = IR‬‬


‫اﻛﺗب ﺑرﻧﺎﻣﺞ ﻟﺣﺳﺎب ﻗﯾﻣﺔ ‪ R‬وطﺑﺎﻋﺗﮭﺎ ﻟﻠﻘﯾم اﻟﺗﺎﻟﯾﺔ‪(V = 220 volt) :‬‬
‫و ‪ (1,2,3,4,5,10,12,14,16,18,20 amp) = I‬ﺑدون اﺳﺗﺧدام اﯾﻌﺎز اﻟﻘراءة) ‪(read‬؟‬
‫اﻟﺣل ‪:‬‬
‫ﻧﻔرض‬
‫ﻋداد اﺗﺗﯾﺎر = ‪K‬‬
‫اﻟﻣﻘﺎوﻣــﺔ = ‪R‬‬
‫اﻟﻔوﻟﺗﺑــــﺔ = ‪V‬‬
‫‪Fortran program‬‬
‫‪R=V/I‬‬
‫‪Program ohms_law‬‬

‫‪Integer :: I , V‬‬

‫‪Real :: R‬‬

‫‪V = 220‬‬

‫‪Do I = 1 , 5‬‬

‫‪R=V/I‬‬

‫‪Print * , “R = “,R‬‬

‫‪Enddo‬‬

‫‪Do I = 10, 20, 2‬‬

‫‪R=V/I‬‬

‫‪Print * , “R = “,R‬‬

‫‪Enddo‬‬
‫ اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬/ (1) ‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ‬ 9

:8 ‫ﺗﻣرﯾن‬
: ‫اﻟﮭدف‬
To generate integer numbers (1 .. 1000) that are multiple of (5) without using
(Read statement ) and use the rule of multiplication.

.. 1) ‫ واﻟﻣﺣﺻورة ﺑﯾن اﻻﻋداد‬5 ‫ﻛﺗﺎﺑﺔ ﺑرﻧﺎﻣﺞ ﻻﯾﺟﺎد ﺣﺎﺻل ﺿرب اﻻﻋداد اﻟﺻﺣﯾﺣﺔ ﻣن ﻣﺿﺎﻋﻔﺎت اﻟﻌدد‬
.(Read statement() ǐ‫ ‮‬ỷңƚƣ
ỷүƌƹỷƥỷқҗǔҳỷƩƳқǎ( 1000

: ‫اﻟﺣل‬
‫ﻧﻔرض‬
K = ‫اﻟرﻗـــــــــــــــم‬
Fortran program Mult = ‫ﺣﺎﺻل اﻟﺿرب‬
Program Multiplication

Integer :: K , Mult

Mult = 1

Do K = 5,1000. 5

Mult = Mult * K

Enddo

Print *, “multiplication =“, Mult

end
‫ اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬/ (1) ‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ‬ 10

: 9 ‫ﺗﻣرﯾن‬
Using Fortran programming language to solve

:‫ﻛﺗﺎﺑﺔ وﺗﻧﻔﯾذ ﺑرﻧﺎﻣﺞ ﻟﺣﺳﺎب اﻟﻣﻌﺎدﻟﺔ اﻟﺗﺎﻟﯾﺔ‬


Y = X + X2 + X3 ……… Xn

: ‫اﻟﺣل‬
‫ﻧﻔرض‬
Fortran program K = ‫ﻋداد اﻟﺗﻛرار‬

Program eq1

Real :: X, Y

Integer:: K, n

Read *, X, n

Y=0

Do K = 1, n

Y = Y + X**k

Enddo

Print *,”y = “, Y

End
‫ اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬/ (1) ‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ‬ 11

: 10 ‫ﺗﻣرﯾن‬
Using Fortran programming language to solve equations

: ‫ ﻓﻲ اﻟﻣﻌﺎدﻟﺔ اﻟﺗﺎﻟﯾﺔ‬Y ‫ﻛﺗﺎﺑﺔ وﺗﻧﻔﯾذ ﺑرﻧﺎﻣﺞ ﻟﺣﺳﺎب‬

1 2 3 n
Y  9 2  4  6 ..........
. 2n
X X X X
: ‫اﻟﺣل‬
‫ﻧﻔرض‬
K = ‫ﻋداد اﻟﺗﻛرار‬
Fortran program

Program eq2

Real :: X, Y

Integer:: K, n,s

Read *, X, n

Y=9

S = -1

Do K = 1, n

Y = Y + S * K / X**(2*k)

S=-S

Enddo

Print *,”y = “, Y

End
‫ اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬/ (1) ‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ‬ 12

: 11 ‫ﺗﻣرﯾن‬
Using Fortran programming language to solve equations

: ‫ ﻓﻲ اﻟﻣﻌﺎدﻟﺔ اﻟﺗﺎﻟﯾﺔ‬Y ‫ﻛﺗﺎﺑﺔ وﺗﻧﻔﯾذ ﺑرﻧﺎﻣﺞ ﻟﺣﺳﺎب‬

1 2 3 2n  1
Y  5  3
 5  7  ........... 2 n 1
X X X X
: ‫اﻟﺣل‬
‫ﻧﻔرض‬
K = ‫ﻋداد اﻟﺗﻛرار‬
Fortran program

Program eq3

Real :: X, Y

Integer:: K, n,s

Read *, X, n

Y=5

S = -1

Do K = 1, 2*n+1

Y = Y + S * (2*K+1) / X**(2*k+1)

S=-S

Enddo

Print *,”y = “, Y

End
‫ اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬/ (1) ‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ‬ 13

: 12 ‫ﺗﻣرﯾن‬
‫اﻟﮭدف‬
Using Fortran programming language to solve equations
: ‫ ﻓﻲ اﻟﻣﻌﺎدﻟﺔ اﻟﺗﺎﻟﯾﺔ‬Y ‫ﻛﺗﺎﺑﺔ وﺗﻧﻔﯾذ ﺑرﻧﺎﻣﺞ ﻟﺣﺳﺎب‬
4 8 12 ?
Y  6   ..........
.
X3 X 4 X5 X n2
: ‫اﻟﺣل‬
‫ﻧﻔرض‬
K = ‫ﻋداد اﻟﺗﻛرار‬
J= ‫اﻟﺑﺳط‬
Fortran program

Program eq3

Real :: X, Y

Integer:: K, n,s.j

Read *, X, n

Y=5

S = -1

J=4

Do K = 1, n+2

Y = Y + S * J * / X**(k+2)

S=-S

J=J+4

Enddo

Print *,”y = “, Y
End
‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ )‪ / (1‬اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬ ‫‪14‬‬

‫ﺗﻣرﯾن ‪: 13‬‬
‫اﻟﮭدف‬
‫‪Using Fortran programming language to calculate the average‬‬
‫ﻛﺗﺎﺑﺔ وﺗﻧﻔﯾذ ﺑرﻧﺎﻣﺞ ﻟﻘراءة ‪ 50‬درﺟﺔ ﺣرارة ﻣﺧﺗﻠﻔﺔ و اﯾﺟﺎد اﻟﻣﻌدل ‪.‬‬

‫اﻟﺣل ‪:‬‬
‫ﻧﻔرض‬
‫‪Fortran program‬‬ ‫درﺟﺔ اﻟﺣرارة = ‪Temp‬‬
‫ﻋداد اﻟﺗﻛرار = ‪K‬‬
‫‪Program avg‬‬

‫‪Real :: Temp, Sum‬‬

‫‪Integer :: K‬‬

‫‪Sum = 0‬‬

‫‪Do K = 1 , 50‬‬

‫‪Read *, Temp‬‬

‫‪Sum = Sum + Temp‬‬

‫‪Enddo‬‬

‫‪Print *, “ average = “, Sum / 50‬‬

‫‪End‬‬

‫ﻣﻼﺣظﺔ ‪ :‬ﯾﺗم ﻓﺣص اﻟﺑرﻧﺎﻣﺞ ﻟﺧﻣﺳﺔ درﺟﺎت ﺣرارة ﻣﺧﺗﻠﻔﺔ‪.‬‬


‫ اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬/ (1) ‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ‬ 15

:14 ‫ﺗﻣرﯾن‬
‫اﻟﮭدف‬
Using Fortran programming language to use the arrays, calculate the average
and using conditional IF statement.

: ‫ﻛﺗﺎﺑﺔ وﺗﻧﻔﯾذ ﺑرﻧﺎﻣﺞ ﻻداء اﻟﻣﮭﺎم اﻟﺗﺎﻟﯾﺔ‬


.Degree ‫ﻓﻲ ﻣﺻﻔوﻓﺔ‬ 20ǐ‫ ‮‬ỷңƙ 
. (50 =< ‫ اﯾﺟﺎد ﻣﻌدل اﻟدرﺟﺎت اﻟﻧﺎﺟﺣﺔ وﻣﻌدل اﻟدرﺟﺎت اﻟراﺳﺑﺔ )درﺟﺔ اﻟﻧﺟﺎح‬

: ‫اﻟﺣل‬
‫ﻧﻔرض‬
Deg = ‫اﻟدرﺟﺔ اﻻﻣﺗﺟﺎﻧﯾﺔ‬
Pcnt = ‫ﻋداد اﻟدرﺟﺎت اﻟﻧﺎﺟﺣﺔ‬ Psum = ‫ﻣﺟﻣوع اﻟدرﺟﺎت اﻟﻧﺎﺟﺣﺔ‬
Fcnt = ‫ﻋداد اﻟدرﺟﺎت اﻟراﺳﺑﺔ‬ Fsum = ‫ﻣﺟﻣوع اﻟدرﺟﺎت اﻟراﺳﺑﺔ‬
K = ‫ﻋداد اﻟﺗﻛرار‬
Fortran program
Program deg_avg
Integer :: Degree(20), Deg, K, Psum.Pcnt, Fsum, Fcnt
Psum = 0
Pcnt = 0
Fsum = 0
Fcnt = 0
Do k = 1, 20
Read * , Deg
IF ( Deg >= 50) then
Psum = Psum + Deg
Pcnt = Pcnt + 1
Else
Psum = Psum + Deg
Pcnt = Pcnt + 1
Endif
Enddo
Print *, “ Pass average = “, Psum / Pcnt
Print *, “ Fail average = “, Fsum / Fcnt
End

.‫ ﯾﺗم ﻓﺣص اﻟﺑرﻧﺎﻣﺞ ﻟﺧﻣﺳﺔ درﺟﺎت ﺣرارة ﻣﺧﺗﻠﻔﺔ‬: ‫ﻣﻼﺣظﺔ‬


‫ اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬/ (1) ‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ‬ 16

: 15 ‫ﺗﻣرﯾن‬
‫اﻟﮭدف‬
Using Fortran programming language to use the arrays and reversing the
array contents inside the same array
: ‫ﻛﺗﺎﺑﺔ وﺗﻧﻔﯾذ ﺑرﻧﺎﻣﺞ ﻻداء اﻟﻣﮭﺎم اﻟﺗﺎﻟﯾﺔ‬
.A ‫ ﻋدد ﻣﺧﺗﻠف ﻓﻲ ﻣﺻﻔوﻓﺔ‬11 ‫ ﻗراءة‬
.‫ داﺧل اﻟﻣﺻﻔوﻓﺔ ﻧﻔﺳﮭﺎ‬A ‫ ﻗﻠب ﻣﺣﺗوﯾﺎت اﻟﻣﺻﻔوﻓﺔ‬
.‫ ﺑﻌد اﻧﺗﮭﺎء اﻟﺧطوة اﻋﻼه‬A ‫ طﺑﺎﻋﺔ ﻣﺣﺗوﯾﺎت اﻟﻣﺻﻔوﻓﺔ‬
: ‫اﻟﺣل‬
‫ﻧﻔرض‬
Fortran program N = ‫اﻟﻌـــــــــدد‬
K = ‫ﻋداد اﻟﺗﻛرار‬
Program array_reverse

Real :: A(11), n,c

Integer :: K

Do k = 1,11

Read * , A(k)

Enddo

Do K = 1, int(11/2)

C = A(k)

A(k) = A(12 - k)

A(12 – k) = C

Enddo

Do k = 1,11

Print * , A(k)

Enddo

End
‫ اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬/ (1) ‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ‬ 17

: 16 ‫ﺗﻣرﯾن‬
‫اﻟﮭدف‬
Using Fortran programming language to find maximum and minimum
temperatures
‫ واﻟدرﺟﺔ‬, .‫( واﯾﺟﺎد اﻟدرﺟﺔ اﻻﻋﻠﻰ‬T) ‫ درﺟﺔ ﺣرارة ﻣﺧﺗﻠﻔﺔ ﻓﻲ ﻣﺻﻔوﻓﺔ‬50 ‫ﻛﺗﺎﺑﺔ وﺗﻧﻔﯾذ ﺑرﻧﺎﻣﺞ ﻟﻘراءة‬
.‫اﻻدﻧﻰ‬
Fortran program : ‫اﻟﺣل‬
Program max_min ‫ﻧﻔرض‬
Real :: Temp, maxt, mint, T(50) K = ‫ﻋداد اﻟﺗﻛرار‬
Do k = 1, 50 maxt = ‫اﻋﻠﻰ درﺟﺔ ﺣرارة‬
Read T (k) mint = ‫ادﻧﻰ درﺟﺔ ﺣرارة‬
Enddo
Mint = T(1)
Maxt = T(1)
Do k = 2,50
If ( T(k) > maxt) then
Maxt = T(k)
Else
If ( T(k) < mint) then
Mint = T(k)
Endif
Endif
Enddo
Print *, “minimum temperature = “ , mint
Print *, “maximum temperature = “ , maxt
End

.‫ ﯾﺗم ﻓﺣص اﻟﺑرﻧﺎﻣﺞ ﻟﺧﻣﺳﺔ درﺟﺎت ﺣرارة ﻣﺧﺗﻠﻔﺔ‬: ‫ﻣﻼﺣظﺔ‬


‫ اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬/ (1) ‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ‬ 18

: 17 ‫ﺗﻣرﯾن‬
‫اﻟﮭدف‬
Using Fortran programming language to print “slow”. Medium” and “fast”
depending on speed.
‫( ﺳرﻋﺔ ﻣرﻛﺑﺔ ﻣﺧﺗﻠﻔﺔ‬20) ‫ﻗراءة‬
: ‫طﺑﺎﻋﺔ ﻣﺎ ﯾﻠﻲ وﺣﺳب ﻗﯾﻣﺔ ﺳرﻋﺔ اﻟﻣرﻛﺑﺔ‬
(Slow) ‫اطﺑﻊ‬ ‫ <= اﻟﺳرﻋﺔ‬40 
(Medium) ‫ اطﺑﻊ‬70 < ‫ > اﻟﺳرﻋﺔ‬40 
(Fast) ‫اطﺑﻊ‬ ‫ => اﻟﺳرﻋﺔ‬70 
: ‫اﻟﺣل‬
‫ﻧﻔرض‬
Fortran program K = ‫ﻋداد اﻟﺗﻛرار‬
Program fast_slow speed = ‫ة‬JJJ‫اﻟﺳرع‬
.‫ ﯾﺗم ﻓﺣص اﻟﺑرﻧﺎﻣﺞ ﻟﺧﻣﺳﺔ ﺳرع ﻣﺧﺗﻠﻔﺔ‬: ‫ﻣﻼﺣظﺔ‬
Real :: speed
Integer:: K
Do k = 1,20
Read *.speed
If ( speed >= 70 ) then
Print * , “Fast”
Else
If ( speed <= 40 ) then
Print * , “slow”
Else
Print “medium”
Endif
Endif
Enddo
End
‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ )‪ / (1‬اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬ ‫‪19‬‬

‫ﻣﻼﺣظﺔ ‪:‬‬

‫ﯾﺗم ﻣﻧﺎﻗﺷﺔ ﻣﻌظم اﻟﺗﻣﺎرﯾن أﻋﻼه ﺧﻼل اﻟﻣﺣﺎﺿرات اﻟﻧظرﯾﺔ وﺣﺳب ﻣوﺿوع اﻟﻣﺣﺎﺿرة‪.‬‬

‫ﻗد ﯾﺗم أداء أﻛﺛر ﻣن ﺗﻣرﯾن واﺣد ﻓﻲ اﻟﺣﺻﺔ اﻟﻣﺧﺗﺑرﺑﺔ اﻟواﺣدة ‪ ،‬ﻣﻊ إﻣﻛﺎﻧﯾﺔ ﺗﺣوﯾر اﻟﺗﻣرﯾن اﻟﻣﻘرر ﻟﺗﻠك‬
‫اﻟﺣﺻﺔ اﻟﻣﺧﺗﺑرﯾﺔ و إﺿﺎﻓﺔ ﻣﺧرﺟﺎت )‪ (output‬أﺧرى أو ﺗﻣﺎرﯾن ﺗﻘرر ﺣﯾﻧﮭﺎ‪.‬‬
‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ )‪ / (1‬اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬ ‫‪20‬‬

‫ﻣﻠﺤﻖ ‪1‬‬

‫ﻣﻠﺨﺺ ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ‬


‫ﻓﻮرﺗﺮان ‪90‬‬
‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ )‪ / (1‬اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬ ‫‪21‬‬

‫اﻟﮭﯿﻜﻞ اﻟﻌﺎم ﻟﺒﺮﻧﺎﻣﺞ ﻓﻮرﺗﺮان ‪#Program Structure‬‬


‫ﻻﺣﻆ اﻟﻤﺜﺎل اﻟﺒﺴﯿﻂ اﻟﺘﺎﻟﻲ ‪:‬‬
‫اﺳﻢ اﻟﺒﺮﻧﺎﻣﺞ ‪program sum‬‬
‫ﺗﻌﺮﯾﻒ اﻟﻤﺘﻐﯿﺮات اﻟﺮﻗﻤﯿﺔ اﻟﺤﻘﯿﻘﯿﺔ ‪real :: answer,x,y‬‬
‫"‪print *, "Enter two numbers‬‬ ‫اﻇﮭﺎر ﻋﻠﻰ اﻟﺸﺎﺷﺔ اﻟﻌﺒﺎرة ﺑﯿﻦ‬
‫ﻋﻼﻣﺎت‬
‫اﻻﻗﺘﺒﺎس )""(‬
‫‪read *, x‬‬ ‫ﻗﺮاءة ﻣﻌﻠﻮﻣﺔ ﻓﻲ اﻟﻤﺘﻐﯿﺮ ‪ X‬ﻣﻦ ﺧﻼل ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ‬
‫‪read *, y‬‬ ‫ﻣﻦ ﺧﻼل ﻟﻮﺣﺔ‬ ‫اﻟﻤﺘﻐﯿﺮ‬
‫ﻗﺮاءة ﻣﻌﻠﻮﻣﺔ ﻓﻲ ‪Y‬‬
‫اﻟﻤﻔﺎﺗﯿﺢ‬ ‫‪X‬‬
‫اﺟﺮاء ﻋﻤﻠﯿﺔ ﺣﺴﺎﺑﯿﺔ ‪answer=x+y‬‬
‫‪print *, 'The total is ', answer‬‬ ‫ﻃﺒﺎﻋﺔ ﻧﺎﺗﺞ اﻟﻌﻤﻠﯿﺔ اﻟﺤﺴﺎﺑﯿﺔ‬

‫‪end‬‬ ‫ﻧﮭﺎﯾﺔ اﻟﺒﺮﻧﺎﻣﺞ )اﺧﺮ ﺧﻄﻮة ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ(‬


‫‪ Program‬وﯾﻨﺘﮭﻲ‬ ‫ﻓﺎﻟﺒﺮﻧﺎﻣﺞ ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﺔ ﻓﻮرﺗﺮان ﯾﺒﺪأ ﺑﻌﺒﺎرة‬
‫‪END‬‬ ‫ﺑﻌﺒﺎرة‬
‫‪# Arithmetic‬‬ ‫اﻟﻌﻤﻠﯿﺎت اﻟﺤﺴﺎﺑﯿﺔ‬
‫اﻟﻌﻼﻣﺎت اﻟﺤﺴﺎﺑﯿﺔ ھﻲ‬

‫اﻟﺠﻤﻊ واﻟﻄﺮح ‪+,- plus and minus‬‬


‫اﻟﻀﺮب واﻟﻘﺴﻤﺔ ‪*,/ multiply and divide‬‬
‫اﻷس )‪** exponentiation (raise to the power‬‬
‫اﻻﻗﻮاس ‪() brackets‬‬
‫وﺗﺨﻀﻊ ﻻﺳﺒﻘﯿﺎت اﻻﺣﺘﺴﺎب وﻛﻤﺎ ھﻮ ﻣﻌﻤﻮل ﺑﮫ ﻣﻊ اﻟﺮﯾﺎﺿﯿﺎت‬

‫‪# Variables‬‬ ‫اﻟﻤﺘﻐﯿﺮات‬


‫‪Integer ::‬‬ ‫ﻟﻮﺻﻒ اﻟﻤﺘﻐﯿﺮات اﻟﺮﻗﻤﯿﺔ اﻟﺼﺤﯿﺤﺔ )ﺑﺪون ﻛﺴﻮر(‬
‫)‪Examples (1 ,99 , -99 ,10‬‬
‫‪Real ::‬‬ ‫ﻟﻮﺻﻒ اﻟﻤﺘﻐﯿﺮات اﻟﺮﻗﻤﯿﺔ اﻟﺤﻘﯿﻘﯿﺔ )ﺑﻮﺟﻮد ﻛﺴﻮر(‬
‫)‪Examples (1.5 ,99.325 , -99.3 ,10.7‬‬
‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ )‪ / (1‬اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬ ‫‪22‬‬

‫‪# Intrinsic Functions‬‬ ‫اﻟﺪوال اﻟﺪاﺧﻠﯿﺔ‬


‫ﺗﻮﻓﺮ ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ ﻓﻮرﺗﺮان ﻣﺠﻤﻮﻋﺔ ﻛﺒﯿﺮة ﻣﻦ اﻟﺪوال اﻟﺪاﺧﻠﯿﺔ‬
‫واﻟﺘﻲ ﺗﺘﯿﺢ ﻟﻠﻤﺒﺮﻣﺞ اﺳﺘﺨﺪاﻣﮭﺎ ﻣﺒﺎﺷﺮة ﻣﻨﮭﺎ ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ‪:‬‬
‫اﻟﺠﯿﺐ )‪sin(x‬‬
‫اﻟﺠﯿﺐ ﺗﻤﺎم )‪cos(x‬‬
‫اﻟﻈﻞ )‪tan(x‬‬
‫ﻣﻌﺎﻛﺲ اﻟﻈﻞ )‪atan(x‬‬
‫اﻟﻘﯿﻤﺔ اﻟﻤﻄﻠﻘﺔ )‪abs(x‬‬
‫اﻟﺠﺬر اﻟﺘﺮﺑﯿﻌﻲ )‪sqrt(x‬‬
‫ﻟﻠﺤﺼﻮل ﻋﻠﻰ اﻟﻘﯿﻤﺔ اﻟﺼﺤﯿﺤﺔ ﻣﻦ ﻋﺪد ﺣﻘﯿﻘﻲ )‪Int(x‬‬
‫‪Example int(7.4)  7‬‬
‫)‪Mod(a/b‬‬ ‫ﻟﻠﺤﺼﻮل ﻋﻠﻰ ﺑﺎﻗﻲ اﻟﻘﺴﻤﺔ‬
‫‪Example mod(17/4)  1‬‬
‫ﺟﻤﯿﻊ اﻟﺰواﯾﺎ اﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ اﻟﺪوال اﻟﺨﺎﺻﺔ ﺑﺎﻟﺰواﯾﺎ اﻋﻼه ﯾﺠﺐ ان‬
‫ﺗﻜﻮن ‪Radian (1 radian = 180/Pi degrees).‬‬
‫‪program trig‬‬ ‫ﻣﺜﺎل ﻟﺘﺤﻮﯾﻞ ﻗﯿﺎس اﻟﺰواﯾﺎ‬
‫‪real :: a,pi‬‬
‫'‪print *,'Enter an angle between 0 and 90‬‬
‫‪read *, a‬‬
‫)‪pi=4.0*atan(1.0‬‬
‫)‪print *,'the sine of ',a,' is ',sin(a*pi/180‬‬
‫‪end‬‬
‫‪# Making decision‬‬ ‫اﺗﺨﺎذ اﻟﻘﺮار‬
‫‪If statement‬‬
‫اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ ﻟﮭﺎ ھﻲ ‪:‬‬
‫‪If ( condition ) Then‬‬
‫ﻣﺠﻤﻮﻋﺔ اﻟﺠﻤﻞ ﻓﻲ ﺣﺎﻟﺔ ﺗﺤﻘﻖ اﻟﺸﺮط‬
‫‪Else‬‬
‫ﻣﺠﻤﻮﻋﺔ اﻟﺠﻤﻞ ﻓﻲ ﺣﺎﻟﺔ ﻋﺪم ﺗﺤﻘﻖ اﻟﺸﺮط‬
‫‪Endif‬‬
‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ )‪ / (1‬اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬ ‫‪23‬‬

‫اﻟﻌﻼﻗﺎت اﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ اﻟﺸﺮط ھﻲ‬


‫ﻟﻠﻤﺴﺎواة ‪== equal to‬‬
‫ﻻ ﯾﺴﺎوي ‪/= not equal to‬‬
‫اﻗﻞ ﻣﻦ ‪< less than‬‬
‫اﻗﻞ ﻣﻦ او ﯾﺴﺎوي ‪<= less than or equal to‬‬
‫اﻛﺒﺮ ﻣﻦ ‪> greater than‬‬
‫اﻛﺒﺮ ﻣﻦ او ﯾﺴﺎوي ‪>= greater than or equal to‬‬
‫‪Example‬‬
‫‪if (y > z) then‬‬
‫اﻟﺠﻤﻞ اﻟﻤﻨﻔﺬة اذا ﺗﺤﻘﻖ اﻟﺸﺮط‬
‫‪end if‬‬

‫‪# The do loop‬‬


‫ﺗﻮﻓﺮ ﻟﻐﺔ ﻓﻮرﺗﺮان ﻟﺘﻜﺮار ﺟﻤﻠﺔ ﻣﻌﯿﻨﺔ او ﻋﺪد ﻣﻦ اﻟﺠﻤﻞ ﻋﺪد ﻣﻦ‬
‫اﻟﻤﺮات ﻣﻦ ﺧﻼل اﺳﺘﺨﺪام ‪Do .. Loop‬‬
‫اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ‬
‫‪DO‬‬ ‫‪variable=sv,ev,step‬‬
‫ﺣﯿﺚ ان‬
‫اﻟﻘﯿﻤﺔ اﻻوﻟﻰ ‪Sv = start value‬‬
‫‪Ev = end value‬‬ ‫اﻟﻘﯿﻤﺔ اﻻﺧﯿﺮة‬
‫ﻣﻘﺪار اﻟﺰﯾﺎدة ﺑﻌﺪ ﻛﻞ ﺧﻄﻮة = ‪Step‬‬
‫ﻣﻊ ﻣﻼﺣﻈﺔ ان ﺟﻤﯿﻊ اﻟﻘﯿﻢ اﻋﻼه ﯾﻤﻜﻦ ان ﺗﻜﻮن ﻣﻮﺟﺒﺔ او ﺳﺎﻟﺒﺔ‬
‫‪Example1‬‬
‫‪Do k = 1,10‬‬
‫اﻟﺠﻤﻞ اﻟﻤﻜﺮرة‬
‫‪End do‬‬
‫ﻓﻲ اﻟﻤﺜﺎل اﻋﻼه ﺗﻜﺮر اﻟﺠﻤﻞ ﻋﺸﺮة ﻣﺮات وﺗﻜﻮن ﻗﯿﻤﺔ اﻟﻤﺘﻐﯿﺮ‬
‫)‪K (1,2,3,…..,10‬‬
‫ﻓﻲ ﻛﻞ ﺧﻄﻮة ﻣﻦ ﺧﻄﻮات اﻟﺘﻜﺮار اي ﺑﺰﯾﺎدة ‪ 1‬ﻓﻲ ﻛﻞ ﺧﻄﻮة‬
‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ )‪ / (1‬اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬ ‫‪24‬‬

‫‪Example2‬‬
‫‪Do k = 1,10,2‬‬
‫اﻟﺠﻤﻞ اﻟﻤﻜﺮرة‬
‫‪End do‬‬
‫ﻓﻲ اﻟﻤﺜﺎل اﻋﻼه ﺗﻜﺮر اﻟﺠﻤﻞ ﺧﻤﺴﺔ ﻣﺮات وﺗﻜﻮن ﻗﯿﻤﺔ اﻟﻤﺘﻐﯿﺮ‬
‫)‪K (1,3,5,7,9‬‬
‫ﻓﻲ ﻛﻞ ﺧﻄﻮة ﻣﻦ ﺧﻄﻮات اﻟﺘﻜﺮار اي ﺑﺰﯾﺎدة ‪ 2‬ﻓﻲ ﻛﻞ ﺧﻄﻮة‬
‫‪Example1‬‬
‫‪Do k = -10,1,-1‬‬
‫اﻟﺠﻤﻞ اﻟﻤﻜﺮرة‬
‫‪End do‬‬
‫ﻓﻲ اﻟﻤﺜﺎل اﻋﻼه ﺗﻜﺮر اﻟﺠﻤﻞ ﻋﺸﺮة ﻣﺮات وﺗﻜﻮن ﻗﯿﻤﺔ اﻟﻤﺘﻐﯿﺮ‬
‫)‪K (10,9,8,7,…..,1‬‬
‫ﻓﻲ ﻛﻞ ﺧﻄﻮة ﻣﻦ ﺧﻄﻮات اﻟﺘﻜﺮار اي ﺑﺰﯾﺎدة )‪ (-1‬ﻓﻲ ﻛﻞ ﺧﻄﻮة‬
‫‪# Arrays‬‬ ‫اﻟﻤﺼﻔﻮﻓﺎت‬
‫اﻟﻤﺼﻔﻮﻗﺎت ﻓﻲ اﻟﺒﺮﻣﺠﺔ ھﻲ ﻟﺤﺠﺰ ﻋﺪد ﻣﺘﺘﺎﻟﻲ ﻣﻦ اﻟﺨﻼﯾﺎ ﻓﻲ اﻟﺬاﻛﺮة ‪:‬‬
‫‪Examples :‬‬
‫)‪Real :: A(5‬‬ ‫ﻟﺤﺠﺰ ‪ 5‬ﺧﻼﯾﺎﻣﻦ اﻟﻨﻮع اﻟﺮﻗﻤﻲ اﻟﺤﻘﯿﻘﻲ‬
‫)‪A(1‬‬
‫)‪A(2‬‬
‫)‪A(3‬‬
‫)‪A(4‬‬
‫)‪A(5‬‬

‫)‪Integer :: B(20‬‬ ‫ﻟﺤﺠﺰ ‪ 20‬ﺧﻠﯿﺔ ﻣﻦ اﻟﻨﻮع اﻟﺮﻗﻤﻲ اﻟﺼﺤﯿﺢ‬


‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ )‪ / (1‬اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬ ‫‪25‬‬

‫ﻣﻠﺤﻖ ‪2‬‬

‫ﻛﺘﺎﺑﺔ وﺗﻨﻔﯿﺬ ﺑﺮﻧﺎﻣﺞ‬


‫ﻓﻲ ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ‬
‫ﻓﻮرﺗﺮان ‪90‬‬
‫ اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬/ (1) ‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ‬ 26

To write anew FORTRAN program follow the following steps


1 – After executing Fortran 90 compiler the following screen will appear

2 – From File menu select NEW -> PROJECT WORKSPACE -> Console application after entering the
project name then choose Create
‫ اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬/ (1) ‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ‬ 27

FILE
NAME

3 -The following screen will appear then choose New Source file

New
Source
‫ اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ‬/ (1) ‫ﻣﺨﺘﺒﺮ ﺑﺮﻣﺠﺔ‬ 28

4 – Write the source code then


File -> save as -> file name
5 – Compile the source code by choosing
Build  Compile filename
6 – If the source program is error free then execute the program by choosing
Build  Execute program name

SOURCE
PROGRAM
AREA

SUMMERY:

To write a program using FORTRAN 90 programming language, follow


the following steps:

1) Create a project workspace. FILE  NEW  Project Workspace


2) Write the source program. (Inside the source program area)
3) Compile the source program. BUILD  COMPILE
4) Execute the program. BUILD  EXECUTE

You might also like