Introduction to Computer Science and Programming with FORTRAN, Amirkabir University of Technology (Tehran Polytechnic), Department of Materials and Metallurgical Engineering , Amin Jafari-Ramiani
1. INTRODUCTION TO COMPUTER
SCIENCE AND PROGRAMMING
نویس برنامه و کامپیوتر علم با آشنایی
ی
5th ed., 2017
امیرکبیرصنعتیدانشگاه،متالورژیومعدنمهندسیدانشکده
Dept. of Mine and Metallurgy Eng., Amirkabir University of Technology,
A Course of Under-graduate Program in Materials Engineering
Instructor: A. Jafari
2. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
2
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Course Title: INTRODUCTION TO COMPUTER SCIENCE AND PROGRAMMING
نویسی برنامه و کامپیوتر علم با آشنایی
AUT-ICSP
Course Credit: 3 Units
Lectures: 32 Sessions
Timing: ...........................
Location: ...........................
Instructor: Amin Jafari Ramiani
Email: ajafari.uni@gmail.com
Website: www.mse1.webs.com
INTRODUCTION TO COMPUTER SCIENCE AND PROGRAMMING
3. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
3
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Lecture
OBJECTIVES (
اهداف
)
PREREQUISITES (
نیازها
شپی
)
GRADING (
ارزیابی
)
HOW TO ACHIEVE MORE?
REFERENCES (
مراجع
)
INTRODUCTION TO THE COURSE
1
4. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
4
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Goals
To Write and Read small pieces of codes
What will you able to do when you leave the course? (Skills)
Computational thinking
Vocabulary of programming to understand codes (Read )
To understand abilities and limits of codes
To be able to map problems into codes (Write)
هدف
کوچک های برنامه نوشتن و خواندن توانایی
داشت؟ خواهید توانایی چه کنید تمام را دوره این شما وقتی
(
ها مهارت
)
محاسباتی تفکر
کدها فهم برای نویسی برنامه ادبیات با آشنایی
(
خواندن
)
کدها های محدودیت و ها قابلیت شناختن
برنامه شکل به مهندسی مسایل کردن ترسیم و نگاشتن توانایی
(
نوشتن
)
OBJECTIVES
5. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
5
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Prerequisites
All the students are supposed to be qualified.
Some students may be overqualified!
نیازها پیش
هستند دوره این گذراندن برای الزم شرایط دارای دانشجویان تمام
.
باشند داشته آموزشی دوره این از بیشتری توانایی دانشجویان از برخی است ممکن
!
INTRODUCTION TO THE COURSE
6. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
7
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Home-Works …………….…………………………. 20%
Exam and Class-Works …..……..…………….. 20%
Final Exams ………………………..……...………...60%
Class Participation ……………….………………… 5%
GRADING
8. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
10
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Who could get more out of this
course?
S/he is ready to take the initiative
S/he has a schedule
and manages her/his time.
S/he studies the text
S/he is attempting
to get
something
different.
HOW TO ACHIEVE MORE?
9. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
12
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
The world of 0-1; Binaries
What is computation?
Basic structure of a computer
What is Programming?
Introduction to FORTRAN programming
How to solve problems by programming?
Algorithm and Flowchart
What are the Elements of Programming
Conditionals
Loops
Subroutines and Functions
Good Style of Programming
ها دوتایی یک؛ و صفر دنیای به ورود
چیست؟ محاسبه
کامپیوتر اصلی ساختار
چیست؟ نویسی برنامه
فرترن نویسی برنامه با آشنایی
کنیم؟ حل نویسی برنامه کمک به را مسایل چگونه
فلوچارت و الگوریتم
هستند؟ چه نویسی برنامه اجزای
ها شرطی
ها حلقه
ها تابع و ها زیربرنامه
نویسی برنامه درست شیوه
TOPICS
37. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
40
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Assignment 01 ( مشق
1 )
How to start programming in FORTRAN
کنم؟ شروع را فرترن در نویسی برنامه چگونه
ASSIGNMENT
38. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
41
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Lecture
WHAT IS COMPUTATION?
WHAT IS PROGRAMMING?
39. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
42
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
What is Computation? (
چیست؟ محاسبه
)
بپردازیم دانش مفهوم به است بهتر چیست محاسبه که این درک برای
:
Knowledge ()دانش
Declarative Knowledge (اخباری )دانش
است سالم بدن در سالم عقل
.
عدد
x
عدد جذر
y
است
.
پس
x2 = y
Imperative Knowledge (روش دانش ـ دستوری )دانش
است؟ چگونه سالمت تفکر به رسیدن دستورالعمل
عدد اگر
y
عدد ،باشیم داشته را
x
بیابیم؟ چگونه را
WHAT IS COMPUTATION?
40. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
43
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
WHAT IS COMPUTATION?
اخباری دانش
عدد
x
عدد جذر
y
است
.
پس
x2 = y
دستوری دانش
/
روش
شده می استفاده ها بابلی میان در که قدیمی روش
1
-
عنوان به عدد یک
x
بزن حدس
.
2
-
اگر
x*x
به
y
مساله پاسخ ،بود نزدیک
x
است
.
3
-
میانگین مقدار اینصورت غیر در
x
و
y/x
جای به و کن محاسبه را
x
بده قرار
.
4
-
از استفاده با
x
مرحله به برگرد ،جدید
2
.
25
?
y
x
2
1. Guess
2. If stop and print
3. Otherwise calculate
2
4. Repeat step 2.
x
x y x
y
x
x
x
41. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
44
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
WHAT IS COMPUTATION?
الگوریتم
(Algorithm)
محاسبات اجرای چگونگی
How to perform calculations …
عدد جذر یافتن الگوریتم
y
1
-
عنوان به عدد یک
x
بزن حدس
2
-
اگر
x*x
به
y
مساله پاسخ ،بود نزدیک
x
است
.
3
-
میانگین مقدار اینصورت غیر در
x
و
y/x
جای به و کن محاسبه را
x
بده قرار
.
4
-
مرحله به برگرد
2
To do this mechanically we need a circuit,
then we have a fixed program computer or earliest computer
مدار یک به خودکار صورت به کار این انجام برای
(
الکتریکی
)
داریم نیاز
یک ما صورت این در
ثابت برنامه کامپیوتر
یا
آغازین کامپیوتر
داشت خواهیم
42. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
45
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
WHAT IS COMPUTATION?
الگوریتم
(Algorithm)
محاسبات اجرای چگونگی
How to perform calculations …
عدد جذر یافتن الگوریتم
y
1
-
عنوان به عدد یک
x
بزن حدس
2
-
اگر
x*x
به
y
مساله پاسخ ،بود نزدیک
x
است
.
3
-
میانگین مقدار اینصورت غیر در
x
و
y/x
جای به و کن محاسبه را
x
بده قرار
.
4
-
مرحله به برگرد
2
است مهم الگوریتم در چیز دو
:
دستورات
دستورات اجرای ترتیب
43. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
46
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Now imagine a machine that takes a circuit diagram and reconfigure itself
to act like the input circuit. What would be look like?
گیرد می را الکتریکی مدار یک نقشه که کنید تصور را ماشین یک
کند عمل مدار آن مانند که کند می تنظیم طوری را خودش و
داشت؟ خواهد شکلی چه ماشینی چنین نظر به
Computers ()کامپیوترها
Earliest computers or fixed-programed computers
ثابت برنامه با کامپیوترهای یا آغازین کامپیوترهای
Store-programed computers
ذخیره برنامه با کامپیوترهای
WHAT IS COMPUTATION?
44. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
47
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Basic Structure of Store-programed
computers
ذخیره برنامه با کامپیوترهای اصلی ساختار
STRUCTURE OF COMPUTERS
MEMORY
Control
Unit
Automatic
Logic Unit
Program
Counter
Sequence of Instructions:
Instruction 1
Instruction 2
… 3
…
Input Output
Program is a recipe!
Internal
Memory
CPU
Central
Processing
Unit
45. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
48
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Program: Flow of controlled instruction in order to do computing
برنامه
:
محاسبات انجام منظور به شده کنترل دستورات گردش یا روند
Turing 1939:
Given only 6 single primitives, anything can be described algorithmically by a mechanical
process (could be programmed!)
سال در تورینگ آلن
1939
گفته م
:
تنها داشتن با
6
یک وسیله به و الگوریتم با توان می را محاسباتی کار هر ،ابتدایی عمل
داد انجام ماشینی فرایند
(
نمود ریزی برنامه توان می
)!
Good cook can make anything!
خوب آشپز
(
اولیه مواد قلم چند با
)
کند درست را غذایی هر میتواند
!
All Programming Language work with those primitives. Then:
Anything you can done in one program language can be done in other languages,
کنند می کار ابتدایی عمل چند آن با نویسی برنامه های زبان تمام
.
بنابراین
:
داد انجام توان می نیز دیگر های زبان در ،داد انجام نویسی برنامه زبان یک در بتوان که را کاری هر
.
There is no “best” language!
زبان هیچ
«
بهترین
»
ندارد وجود ی
!
PROGRAMMING ()برنامهنویسی
46. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
49
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Programming Languages (نویسی برنامه های )زبان
Translate controlled flow of instructions to the basic primitives to be able to run the
program mechanically
نماید اجرا ماشینی صورت به را دستورات بتواند تا کند می ترجمه اصلی ابتدایی عملیات به را دستورات شده کنترل گردش
.
Basic, C++, Fortran, MatLab, Python
High-level vs. Low-level (پایین سطح ـ باال )سطح
Much reached set of primitives or more simple operation with primitives
ابتدایی دستورات از ای ساده عملیات با یا ابتدایی عملیات از تری غنی های گروه با
General vs. Targeted (هدفمند ـ )عمومی
C++ is general but MatLab is targeted
Interpreted vs. Compiled (شده گردان هم ـ )تفسیرشده
Control of flow instruction is on the original code or there are some intermediate steps before
running the code
شود انجام آن روی کد اجرای از قبل میانه کارهای برخی یا باشد برنامه خود دست در دستورات گردش کنترل
PROGRAMMING LANGUAGES ()زبانهایبرنامهنویسی
59. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
62
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Can we get help from the language in writing programs?
بگیریم کمک نویسی برنامه زبان از برنامه یابی غلط برای توانیم می آیا
Syntax (نحو ،)گرامر
What are legal expressions?
کدامند؟ مجاز دستورات
e.g. “cast dog boy”
Static-Semantics
Which expression makes sense?
هستند؟ منطقی دستورات کدام
e.g. “my desk is Suzan”
Semantics ()معنا
What does program mean? دارد؟ معنایی چه برنامه
or what happen when we run the program?
The result could be …right answer,
crash, loop for ever, meaningless numbers, … !
هنگامی
افتد می اتفاقی چه کنیم اجرا را برنامه که
؟
بدهد معنی بی اعداد ،بچرخد همیشه برای ،شود متوقف اجرا ،بدهد درست جواب است ممکن
...
Then we need Good Style to write reliable codes
داریم نیاز اعتماد قابل های برنامه نوشتن برای درست شیوه یک به خاطر همین به
lots of help here
some help here
!
No help!
?
BUGS / PROGRAMMING ERROR
60. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
63
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
To interpret ای ترجمه اجرای برای
Expression ()عبارت : operant-operator-operant ( عامل
-
عملگر
-
عامل )
52 + 3
To write Program and Compile
آن همگردانی اجرای و برنامه نوشتن برای
We need commands (داریم نیاز فرمان )به :
Assignment ()تخصیص to refer a variable to a value
x = 3
x = 3 * 5
x = z
Statement ()دستور legal command that Fortran can interpret.
read* x
write* x+5
EXPRESSIONS
62. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
65
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
کنید بررسی را زیر برنامه
.
Introduction to Programming
program test1
implicit none
integer :: a,b,c
a = 4
b = 5
c = a + b
print *, a, b, c
end program
معرفی
اجرا
پایان
Command 1 فرمان : Assignment تخصیص
Command 2 فرمان : Assignment تخصیص
Command 3 فرمان : Assignment تخصیص
Command 4 فرمان : Statement دستور
63. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
66
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
چیست؟ زیر برنامه خروجی
Introduction to Programming
program test1
implicit none
integer :: a,b,c
a = 4
b = 5
c = a + b
print *, a, b, c
end program
64. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
67
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
چیست؟ زیر برنامه خروجی
Introduction to Programming
program test2
implicit none
integer :: a,b,c
a = 4
b = 5
c = a + b
a = 6
print *, a, b, c
end program
65. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
68
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
چیست؟ زیر برنامه خروجی
Introduction to Programming
program test3
implicit none
integer :: a,b,c
a = 4
b = 5
c = a + b
a = a + b
print *, a, b, c
end program
66. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
69
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
چیست؟ زیر برنامه خروجی
Introduction to Programming
program test4
implicit none
integer :: a,b,c,d
a = 4
b = 5
c = (a / 2) * 2
d = (b / 2) * b
print *, c, d
end program
67. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
70
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
چیست؟ زیر برنامه خروجی
Introduction to Programming
program test5
implicit none
integer :: a,b,c, i
a = 4
b = 3
i = 0
c = 0
c = c + a
i = i + 1
! i >= b ? False
c = c + a
i = i + 1
! i >= b ? False
c = c + a
i = i + 1
! i >= b ? True
print *, c
end program
72. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
75
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
بنویسید فرترن عبارت صورت به را زیر ریاضی روابط
.
Introduction to Programming
2
L
T
g
2 2
a b c
2
b
x
a
73. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
76
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
بنویسید فرترن عبارت صورت به را زیر ریاضی روابط
.
Introduction to Programming
5
1
5
i
i
m
m
V
V
Q
RT
n n e
76. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
79
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
COMMENT
Using Comment ()توضیح:
words to the reader of the code, telling you what is going on, which could be
intuition, precondition, explanation … read your code a year after!
in Fortran by ‘!’
توضیح
(Comment)
در که اطالعاتی
سطرهای البالی
ات چه که گوید می برنامه خواننده به و نیست اجرایی اما ،آید می برنامه
در فاقی
است دادن رخ حال
.
عالمت از استفاده با فرترن در
!
برنامه شرح یا فرض پیش یا درک یا ،فیزیک های کمیت واحد مثال
.
Good Style
in Programming
در خوب شیوه
نویسی برنامه
77. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
80
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
EXERCISE
Design a Fortran program that reads an input temperature in degrees
Fahrenheit, converts it to an absolute temperature in kelvins, and writes out
the result.
86. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
89
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
مثال
:
محاسب را دکارتی مختصات دستگاه در مشخص نقطه دو فاصله که بنویسید ای برنامه
کند ه
.
نمود استفاده فرترن کامپایلر از بخش این انجام برای توان می
.
دستور با را برنامه معرفی بخش نوشتن
program
کنید آغاز
.
دستور
implicit none
بنویسید را
.
شود می باعث دستور این
متغیری هیچ از استفاده اجازه
داده
اولیه تعریف با مگر نشود
.
کرده لیست را فلوچارت در شده استفاده متغیرهای تمام
تعیین را آنها نوع و
نمایید
.
کنید تعریف برنامه در را آنها سپس
.
بنویسید فرترن دستورات شکل به را فلوچارت مراحل
.
ببندید پایان دستور نوشتن با را برنامه
.
FORTRAN PROGRAM
فرترن کد نوشتن
5
program test1
implicit none
integer :: a,b,c
a = 4
b = 5
c = a + b
print *, a, b, c
end program
How To Solve Problems with Programming
87. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
90
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
مثال
:
محاسب را دکارتی مختصات دستگاه در مشخص نقطه دو فاصله که بنویسید ای برنامه
کند ه
.
کنید آزمایش دستی صورت به را برنامه حتما
.
1
-
سطرها گذاری شماره
2
-
متغیرها جدول
3
-
سازی شبیه
TESTING
برنامه آزمایش
6
y x n
0
How To Solve Problems with Programming
88. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
91
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
How To Solve Problems with Programming
نویسی برنامه در خوب شیوه
توضیح از استفاده
Using Comment ()توضیح:
words to the reader of the code, telling you what is going on, which could be
intuition, precondition, explanation … read your code a year after!
in Fortran by ‘!’
توضیح
(Comment)
در که است کلماتی
سطرهای البالی
ک گوید می برنامه خواننده به و آید می برنامه
چه ه
باشد برنامه شرح یا فرض پیش یا درک به مربوط است ممکن توضیح است؛ دادن رخ حال در اتفاقی
.
با فرترن در
عالمت از استفاده
!
Good Style
in Programming
در خوب شیوه
نویسی برنامه
89. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
92
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
How To Solve Problems with Programming
نویسی برنامه در خوب شیوه
کنیم انتخاب گویا و مناسب های اسم ،متغیرها برای
:
we should use good descriptive variable names
not good
good
Good Style
in Programming
در خوب شیوه
نویسی برنامه
x, y, z, a , b
first_name
temperature
temp_room, temp_melt
nomre
n_daneshjoo
miangin_term1
90. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
93
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
How To Solve Problems with Programming
مثال
:
محاسب را دکارتی مختصات دستگاه در مشخص نقطه دو فاصله که بنویسید ای برنامه
کند ه
.
91. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
94
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
How To Solve Problems with Programming
نویسی برنامه در خوب شیوه
کنیم آزمایش حتما را خود فلوچارت یا برنامه
.
شماره سه با برنامه آزمایش
1
-
گذاری شماره
2
-
متغیرها جدول
3
-
سازی شبیه
Good Style
in Programming
در خوب شیوه
نویسی برنامه
92. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
95
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
مثال
:
ک محاسبه را آن وتر طول و گرفته را الزاویه قائم مثلث ضلع دو طول بنویسید ای برنامه
ند
.
How To Solve Problems with Programming
97. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
100
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
ای شاخه های برنامه
مثال
:
دانشجو یک درسی نمره که بنویسید ای برنامه
دانشجو که کند مشخص خروجی در و گرفته را
است؟ شده رد یا گذرانده را درس
مساله حل الگوریتم
:
mark
بخوان ورودی از را
اگر
mark>10
آنگاه بود
state
برابر را
“Pass”
بده قرار
اگر
mark<10
آنگاه بود
متغیر
state
برابر را
“Fail”
بده قرار
متغیر مقدار
state
کن چاپ خروجی در را
Branching Programs, Conditionals
FLOWCHART
فلوچارت
4
state=‘Pass’
mark>=10?
N
Y
START
mark
state
state=‘Fail’
mark<10?
END
N
Y
98. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
101
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
ای شاخه های برنامه
مثال
:
دانشجو یک درسی نمره که بنویسید ای برنامه
دانشجو که کند مشخص خروجی در و گرفته را
است؟ شده رد یا گذرانده را درس
Branching Programs, Conditionals
state=‘Pass’
mark>=10?
N
Y
START
mark
state
state=‘Fail’
mark<10?
END
N
Y
FORTRAN PROGRAM
فرترن کد نوشتن
5
program student_mark
implicit none
real :: mark
character(4) :: state
real *, mark
if (mark>=10) then
state = ‘Pass’
end if
if (mark<10) then
state = ‘Fail’
end if
print *, state
end program
102. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
105
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Straight line program (سرراست )برنامه
Example.2
Branching program (ای شاخه )برنامه
can change the order of instructions based on a test, usually value of variable.
Branching Programs, Conditionals
104. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
107
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
If (test1) then
process 1
else if (test2) then
process 2
else if (test3) then
process 3
else
process 4
end if
Branching Programs, Conditionals
PROCESS 1
TEST 1 TEST 2 TEST 3
PROCESS 2 PROCESS 3 PROCESS 4
N N N
Y Y Y
105. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
108
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Branching program
Comparisons (مقایسه یا سنجی )هم
< or .LT.: less than کوچک
از تر
> or .GT.: greater than بزرگ
از تر
== or .EQ.: equal to برابر
/= or .NE.: not equal to نابرابر
<= or .LE.: less than or equal to کوچک
برابر یا تر
>= or .GE.: greater than or equal to برابر یا تر بزرگ
Assignment and Comparison
x = 3
x == 3
x .EQ. 3
Branching Programs, Conditionals
106. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
109
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Boolean Combinations (منطقی های )ترکیب
.AND. .TRUE. if both operands are .TRUE.
.TRUE.
عامل دو هر اگر
.TRUE.
باشند
.OR..TRUE. if at least one operand is .TRUE.
.TRUE.
ها عامل از یکی حداقل اگر
.TRUE.
باشد
.NOT. Negate the following operand
کند می وارون را مقابلش عامل
.EQV. .TRUE. if both operands reduce to the same
.TRUE.
باشند ارز هم عامل دو هر اگر
.NEQV. .TRUE. if both operands are different
.TRUE.
باشند مخالف عامل دو اگر
Branching Programs, Conditionals
107. نویسی برنامه و کامپیوتر علم با آشنایی
INT. COMP. SCI. & PROGRAMMING
110
امیرکبیر صنعتی دانشگاه ،متالورژی و معدن مهندسی دانشکده
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
کند می پیدا حقیقی عدد سه بین از را مقدار کوچکترین که ایم نوشته ای برنامه
.
کنید آزمایش را برنامه این
.
Is that code correct?
کند؟ می کار درست برنامه آیا
چطور؟ زیر های ورودی برای
What about for
x=15 y=13 z=11?
It is not doing all of the comparisons!
Branching Programs, Conditionals