SlideShare a Scribd company logo
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
9
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
GRADING (
‫ارزیابی‬
)
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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?
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
13
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
COURSE PLAN
‫هفته‬
‫موضوع‬
1
،‫آشنایی‬
‫ها‬ ‫دوتایی‬ ‫یک؛‬ ‫و‬ ‫صفر‬ ‫دنیای‬ ‫به‬ ‫ورود‬ ‫آشنایی‬
2
‫چیست؟‬ ‫محاسبه‬
3
‫کامپیوتر‬ ‫اصلی‬ ‫ساختار‬
4
‫چیست؟‬ ‫نویسی‬ ‫برنامه‬
5
‫فرترن‬ ‫نویسی‬ ‫برنامه‬ ‫با‬ ‫آشنایی‬
6
‫نویسی‬ ‫برنامه‬ ‫شناسی‬ ‫روش‬
7
‫محاسباتی‬ ‫های‬ ‫عبارت‬
8
‫الگوریتم‬
9
‫فلوچارت‬
10
‫هستند؟‬ ‫چه‬ ‫نویسی‬ ‫برنامه‬ ‫اجزای‬
11
‫ها‬ ‫شرطی‬
12
‫ها‬ ‫حلقه‬
13
‫ها‬ ‫زیربرنامه‬
14
‫ها‬ ‫تابع‬
15
‫نویسی‬ ‫برنامه‬ ‫درست‬ ‫شیوه‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
14
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
 Chapman
Fortran 95/2003 for Scientists
and Engineers
3rd Ed., 2007
REFERENCES
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
15
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫چپمن‬
‫فرترن‬ ‫آموزشی‬ ‫کتاب‬
90/95
‫ناقوس‬ ‫انتشارات‬ ،‫ممتاز‬ ‫و‬ ‫قدسی‬ ‫ناصر‬ ‫ترجمه‬
،
1389
TEXTS & REFERENCES
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
16
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Frequently-Asked Questions (FAQ)
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
17
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫برویم‬ ‫یک‬ ‫و‬ ‫صفر‬ ‫دنیای‬ ‫به‬ ‫خواهیم‬ ‫می‬
...

‫بگیریم‬ ‫نظر‬ ‫در‬ ‫را‬ ‫الکتریکی‬ ‫سوییچ‬ ‫یک‬
.
‫باشد‬ ‫داشته‬ ‫تواند‬ ‫می‬ ‫حالت‬ ‫دو‬ ‫تنها‬
:
‫روشن‬ ‫ـ‬ ‫خاموش‬
‫سوییچ‬ ‫این‬ ‫اسم‬
‫بیت‬
(Bit)
‫است‬
.

‫دهد‬ ‫نشان‬ ‫را‬ ‫عدد‬ ‫دو‬ ‫تواند‬ ‫می‬ ‫تنها‬ ‫اعداد‬ ‫همه‬ ‫بین‬ ‫از‬ ‫بیت‬
:
‫یک‬ ‫و‬ ‫صفر‬

‫داد؟‬ ‫نشان‬ ‫سوییچ‬ ‫این‬ ‫با‬ ‫را‬ ‫اعداد‬ ‫همه‬ ‫توان‬ ‫می‬ ‫چگونه‬
BINARIES (‫)دوتایی‌ها‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
18
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫برویم‬ ‫یک‬ ‫و‬ ‫صفر‬ ‫دنیای‬ ‫به‬ ‫خواهیم‬ ‫می‬
...

‫داد؟‬ ‫نشان‬ ‫سوییچ‬ ‫این‬ ‫با‬ ‫را‬ ‫اعداد‬ ‫همه‬ ‫توان‬ ‫می‬ ‫چگونه‬

‫دهیم‬ ‫انجام‬ ‫باید‬ ‫کار‬ ‫دو‬ ‫اعداد‬ ‫سایر‬ ‫دادن‬ ‫نشان‬ ‫برای‬
:

‫باشیم‬ ‫داشته‬ ‫بیت‬ ‫دسته‬ ‫یک‬ ‫تا‬ ‫دهیم‬ ‫قرار‬ ‫هم‬ ‫کنار‬ ‫را‬ ‫بیت‬ ‫تعدادی‬

‫ببریم‬ ‫یک‬ ‫و‬ ‫صفر‬ ‫فضای‬ ‫به‬ ‫را‬ ‫اعداد‬
(
‫کنیم‬ ‫تبدیل‬
)
‫دهیم‬ ‫نشان‬ ‫ها‬ ‫بیت‬ ‫دسته‬ ‫با‬ ‫بتوانیم‬ ‫تا‬
BINARIES (‫)دوتایی‌ها‬
0 1 1 0 1 0 0 1
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
19
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫دهد؟‬ ‫می‬ ‫معنی‬ ‫چه‬ ‫یک‬ ‫و‬ ‫صفر‬ ‫دسته‬ ‫این‬
BINARIES (‫)دوتایی‌ها‬
0 1 1 0 1 0 0 1
2 3 7
2102 3101 7100
0 1 1 0 1 0 0 1
‌‫اعداد‌در‌مبنای‬
10
‌‫اعداد‌در‌مبنای‬
2
120
021
022
123
125
126
027
024
= 0128+164+132+016+18+04+02+11=105 = 2100+ 310+ 71=237
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
20
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫سوال‬
1
:

‫بنویسید‬ ‫را‬ ‫خود‬ ‫دانشجویی‬ ‫شماره‬
.
‫عدد‬ ‫با‬ ‫را‬ ‫دارد‬ ‫فرد‬ ‫رقم‬ ‫جا‬ ‫هر‬
1
‫کنید‬ ‫جایگزین‬ ‫صفر‬ ‫با‬ ‫را‬ ‫زوج‬ ‫رقم‬ ‫و‬
.
‫مبنای‬ ‫در‬ ‫آمده‬ ‫دست‬ ‫به‬ ‫عدد‬ ‫کنید‬ ‫فرض‬
2
‫است‬
.
‫مبنای‬ ‫در‬ ‫آمده‬ ‫دست‬ ‫به‬ ‫عدد‬
10
‫است؟‬ ‫مقدار‬ ‫چه‬
EXERCISE
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
21
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
 Assignment 1 ( ‫مشق‬
1 )

‫فایل‬
ICSP-Assignment 01.PDF
‫نمایید‬ ‫دریافت‬ ‫کالس‬ ‫وبسایت‬ ‫از‬ ‫را‬
.

‫کنید‬ ‫عمل‬ ‫راهنما‬ ‫طبق‬ ‫دقیقا‬ ‫و‬ ‫بخوانید‬ ‫دقت‬ ‫با‬ ‫را‬ ‫فایل‬
.
BINARIES (‫)دوتایی‌ها‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
22
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Lecture
BINARIES
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
23
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫داد؟‬ ‫نشان‬ ‫سوییچ‬ ‫این‬ ‫با‬ ‫را‬ ‫اعداد‬ ‫همه‬ ‫توان‬ ‫می‬ ‫چگونه‬
BINARIES (‫)دوتایی‌ها‬
0 1 1 0 1 0 0 1
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
24
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫مبنای‬ ‫از‬ ‫را‬ ‫اعداد‬ ‫چگونه‬
2
‫مبنای‬ ‫به‬
10
‫کنیم؟‬ ‫تبدیل‬

1
.
‫چپ‬ ‫به‬ ‫راست‬ ‫از‬ ‫های‬ ‫توان‬

2
.
‫ضرب‬
‫توان‬ ‫در‬ ‫رقم‬

3
.
‫مقدارها‬ ‫جمع‬
6 5 4 3 2 1 0
2 2 2 2 2 2 2
64 32 16 8 4 2 1
1 64 1 32 0 16 1 8 0 4 0 2 1 1
1 1 0 1 0 0 1
64 32 0 8 0 0 1 105
      
      
BINARIES (‫)دوتایی‌ها‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
25
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫مبنای‬ ‫از‬ ‫را‬ ‫اعداد‬ ‫چگونه‬
10
‫مبنای‬ ‫به‬
2
‫کنیم؟‬ ‫تبدیل‬

1
.
‫بر‬ ‫تقسیم‬ ‫را‬ ‫عدد‬
2
‫کنیم‬ ‫می‬

2
.
‫کنیم‬ ‫می‬ ‫یاداشت‬ ‫قبلی‬ ‫رقم‬ ‫چپ‬ ‫سمت‬ ‫در‬ ‫را‬ ‫باقیمانده‬
.

3
.
،‫است‬ ‫تمام‬ ‫کار‬ ‫شده‬ ‫صفر‬ ‫قسمت‬ ‫خارج‬ ‫اگر‬
‫نوشته‬ ‫اصلی‬ ‫عدد‬ ‫جای‬ ‫به‬ ‫را‬ ‫قسمت‬ ‫خارج‬ ‫غیراینصورت‬ ‫در‬
‫کنیم‬ ‫می‬ ‫تکرار‬ ‫را‬ ‫قبل‬ ‫مراحل‬ ‫و‬
105 104 1 (1)
52
2 2 2
52 52 0 (0)
26
2 2 2
26 26 0 (0)
13
2 2 2
13 12 1 (1)
6
2 2 2
6 6 0 (0)
3
2 2 2
3 2 1 (1)
1
2 2 2
1 (1)
0
2 2

  

  

  

  

  

  
 
1 1 0 1 0 0 1
BINARIES (‫)دوتایی‌ها‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
26
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫مبنای‬ ‫از‬ ‫را‬ ‫اعداد‬ ‫چگونه‬
10
‫مبنای‬ ‫به‬
2
‫کنیم؟‬ ‫تبدیل‬

‫رایج‬ ‫های‬ ‫اشتباه‬
!

‫جواب‬ ‫آزمایش‬
!
99 98 1 (0)
48
2 2 2
49 49 1 1
24
2 2 2
24 12 0 (0)
6
2 2 2
6 6 0 (0)
3
2 2 2
3 2 1 (1)
1
2 2 2
2 (0)
1
2 2

  

  

  

  

  
  0 1 0 0 0
BINARIES (‫)دوتایی‌ها‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
27
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
 BINARIES (‫ها‬ ‫)دوتایی‬

‫سوال‬
2
:

‫مبنای‬ ‫از‬ ‫را‬ ‫خود‬ ‫دانشجویی‬ ‫شماره‬ ‫راست‬ ‫سمت‬ ‫رقم‬ ‫سه‬
10
‫مبنای‬ ‫به‬
2
‫کنید‬ ‫تبدیل‬
.

‫کنید‬ ‫آزمایش‬ ‫را‬ ‫جواب‬
!
Introduction to the Course
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
28
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
BINARIES (‫)دوتایی‌ها‬
 Bit, Byte
0 1 1 0 1 0 0 1
1
 
 
Bit 0,1 =2
Byte = 8 Bit 0,1,2,...,255 256

‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
29
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
BINARIES (‫)دوتایی‌ها‬

‫مبنای‬
8

‫مثال‬

‫مبنای‬
8
‫مبنای‬ ‫اعداد‬ ‫بهتر‬ ‫خوانایی‬ ‫و‬ ‫نویسی‬ ‫ساده‬ ‫برای‬
2
‫شود‬ ‫می‬ ‫استفاده‬
.
‫مبنای‬ ‫اعداد‬ ‫توان‬ ‫می‬ ‫کار‬ ‫این‬ ‫برای‬
2
‫مبنای‬ ‫معادل‬ ‫و‬ ‫کرد‬ ‫جدا‬ ‫رقم‬ ‫سه‬ ‫رقم‬ ‫سه‬ ‫را‬
10
‫نوشت‬ ‫را‬ ‫آنها‬
.
‫مبنای‬ ‫در‬ ‫نهایت‬ ‫در‬ ‫آمده‬ ‫دست‬ ‫به‬ ‫عدد‬
8
‫خواهد‬
‫بود‬
.
2 2
000 0 111 7
 
 
 
2
2
8
010001001100
010 001 001 100
2 1 1 4


‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
30
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
BINARIES (‫)دوتایی‌ها‬

‫مبنای‬
16

‫مثال‬

‫مبنای‬
16
‫مبنای‬ ‫اعداد‬ ‫بهتر‬ ‫خوانایی‬ ‫و‬ ‫نویسی‬ ‫ساده‬ ‫برای‬
2
‫شود‬ ‫می‬ ‫استفاده‬
.
‫اعداد‬ ‫توان‬ ‫می‬ ‫کار‬ ‫این‬ ‫برای‬
‫مبنای‬
2
‫مبنای‬ ‫معادل‬ ‫و‬ ‫کرد‬ ‫جدا‬ ‫رقمی‬ ‫چهار‬ ‫های‬ ‫دسته‬ ‫در‬ ‫را‬
10
‫نوشت‬ ‫را‬ ‫آنها‬
.
‫در‬ ‫نهایت‬ ‫در‬ ‫آمده‬ ‫دست‬ ‫به‬ ‫عدد‬
‫مبنای‬
16
‫بود‬ ‫خواهد‬
.
2 2
0000 0 1111 15
 
 
 
 
2
2
16
16
16
010001001100
0100 0100 1100
4 4 12
4 4 C 44C


 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 2 3 4 5 6 7 8 9 A B C D E F
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
31
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫کنند؟‬ ‫می‬ ‫ذخیره‬ ‫حافظه‬ ‫در‬ ‫چطور‬ ‫را‬ ‫ها‬ ‫داده‬
BINARIES (‫)دوتایی‌ها‬
DATA
‫ها‬ ‫داده‬
‫اعداد‬
Integer
‫صحیح‬
Real
‫حقیقی‬
Character
‫حروف‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
32
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
BINARIES (‫)دوتایی‌ها‬

‫داد؟‬ ‫نمایش‬ ‫یک‬ ‫و‬ ‫صفر‬ ‫با‬ ‫را‬ ‫منفی‬ ‫اعداد‬ ‫توان‬ ‫می‬ ‫چگونه‬

‫قرارداد‬
:
‫است‬ ‫عالمت‬ ‫دهنده‬ ‫نشان‬ ‫باینری‬ ‫عدد‬ ‫چپ‬ ‫سمت‬ ‫رقم‬
.
0
‫مثبت‬
‫و‬
1
‫منفی‬
X
0 0
1 1
   

   

   
XXX
000 0
001 1
010 2
011 3
100 4
101 3
110 2
111 1
   
   
   
   
   
   

   

   

   
   

   

   
   
XXXX
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 7
1010 6
1011 5
1100 4
1101 3
1110 2
1111 1
   
   
   
   
   
   
   
   
   
   
   
   

   

   
   

   

   
   

   

   
   

   

   
   

   
XXXXXXX
00000000 0
00000001 1
00000010 2
... ...
... ...
01111110 126
01111111 127
10000000 128
10000001 127
... ...
... ...
11111101 3
11111110 2
11111111 1
  
  
  
  
  
  
  
  
  
  
  


  
  
  
  
  
  
   
  

  
  
  




















 

XX
00 0
01 1
10 2
11 1
   
   
   

   

   

   
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
33
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫کنند؟‬ ‫می‬ ‫ذخیره‬ ‫حافظه‬ ‫در‬ ‫چطور‬ ‫را‬ ‫صحیح‬ ‫اعداد‬

‫حساب‬
‫مکمل‬
2

‫منفی‬ ‫عدد‬ ‫به‬ ‫مثبت‬ ‫عدد‬ ‫یک‬ ‫تبدیل‬ ‫برای‬
.1
‫عدد‬ ‫نمودن‬ ‫مکمل‬
)
‫صفر‬ ‫به‬ ‫ها‬ ‫یک‬ ‫همه‬ ‫و‬ ‫یک‬ ‫به‬ ‫صفرها‬ ‫همه‬ ‫تبدیل‬
)
.2
‫شده‬ ‫مکمل‬ ‫عدد‬ ‫به‬ ‫یک‬ ‫نمودن‬ ‫اضافه‬

‫مثال‬
:
‫مبنای‬ ‫در‬ ‫را‬ ‫زیر‬ ‫اعداد‬
2
‫صورت‬ ‫به‬ ‫و‬
8
‫دهید‬ ‫نشان‬ ‫بیتی‬
.

3 + 4

(-3) + (-4)

3 + (-4)
BINARIES (‫)دوتایی‌ها‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
34
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫کنند؟‬ ‫می‬ ‫ذخیره‬ ‫حافظه‬ ‫در‬ ‫چطور‬ ‫را‬ ‫صحیح‬ ‫اعداد‬

‫معموال‬
‫با‬ ‫را‬ ‫صحیح‬ ‫اعداد‬
4 byte
‫دهند‬ ‫می‬ ‫نشان‬

‫با‬ ‫که‬ ‫صحیح‬ ‫عدد‬ ‫کوچکترین‬ ‫و‬ ‫بزرگترین‬
4 byte
‫چیست؟‬ ‫کرد‬ ‫ذخیره‬ ‫توان‬ ‫می‬ ‫حافظه‬
BINARIES (‫)دوتایی‌ها‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
35
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫کنند؟‬ ‫می‬ ‫ذخیره‬ ‫حافظه‬ ‫در‬ ‫چطور‬ ‫را‬ ‫عالیم‬ ‫و‬ ‫حروف‬

‫از‬ ‫کمتر‬ ‫غیرشرقی‬ ‫های‬ ‫زبان‬ ‫در‬ ‫نوشتن‬ ‫برای‬ ‫نیاز‬ ‫مورد‬ ‫نمادهای‬ ‫و‬ ‫حروف‬ ‫تمام‬ ‫تعداد‬
256
‫است‬
.
‫و‬ ‫دهند‬ ‫می‬ ‫اختصاص‬ ‫کد‬ ‫یک‬ ‫کدام‬ ‫هر‬ ‫به‬ ‫بنابراین‬
1 byte
‫کاراکتر‬ ‫هر‬ ‫برای‬ ‫حافظه‬
character
‫استفاده‬
‫کنند‬ ‫می‬

‫گذاری‬ ‫کد‬ ‫روش‬ ‫مهمترین‬
ASCII
‫است‬

‫از‬ ‫بیشتر‬ ‫شرقی‬ ‫های‬ ‫زبان‬
256
‫دارند‬ ‫نیاز‬ ‫حرف‬
.
‫نام‬ ‫به‬ ‫کدگذاری‬ ‫روش‬ ‫یک‬ ‫آنها‬ ‫سازگاری‬ ‫برای‬
Unicode
‫بوجود‬
‫است‬ ‫آمده‬
.
‫شود‬ ‫می‬ ‫استفاده‬ ‫حافظه‬ ‫بایت‬ ‫دو‬ ‫از‬ ‫روش‬ ‫این‬ ‫در‬
.
256
‫با‬ ‫آن‬ ‫اول‬ ‫حرف‬
ASCII
‫است‬ ‫یکی‬
.

‫سوال‬
:
‫روش‬
unicode
‫دهد؟‬ ‫نشان‬ ‫تواند‬ ‫می‬ ‫را‬ ‫حرف‬ ‫تعداد‬ ‫چه‬
BINARIES (‫)دوتایی‌ها‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
36
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
BINARIES (‫)دوتایی‌ها‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
37
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
BINARIES (‫)دوتایی‌ها‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
38
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫کنند؟‬ ‫می‬ ‫ذخیره‬ ‫حافظه‬ ‫در‬ ‫چطور‬ ‫را‬ ‫حقیقی‬ ‫اعداد‬

‫شوند‬ ‫می‬ ‫نوشته‬ ‫علمی‬ ‫نمادگذاری‬ ‫با‬ ‫آسانی‬ ‫به‬ ‫کوچک‬ ‫بسیار‬ ‫یا‬ ‫بزرگ‬ ‫بسیار‬ ‫اعداد‬

‫مثال‬
:
‫نور‬ ‫سرعت‬
299800000
‫متربرثانیه‬
.
2.998108

‫مبنای‬ ‫در‬ ‫حقیقی‬ ‫عدد‬
2
:
‫نما‬
2

‫اعشاری‬ ‫جزء‬
=
‫مقدار‬

XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx

‫نما‬
8
‫اعشاری‬ ‫جزء‬ ‫بیتی‬
24
‫بیتی‬

‫دقت‬ ‫دهنده‬ ‫نشان‬ ‫بازه‬ ‫دهنده‬ ‫نشان‬
BINARIES (‫)دوتایی‌ها‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
39
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
 Problem

‫مساله‬
:

‫بنویسید‬ ‫را‬ ‫خود‬ ‫دانشجویی‬ ‫شماره‬
.
‫کنید‬ ‫جدا‬ ‫دانشجویی‬ ‫شماره‬ ‫از‬ ‫رقمی‬ ‫دو‬ ‫عدد‬ ‫دو‬ ‫راست‬ ‫سمت‬ ‫از‬
.

‫کنید‬ ‫دوم‬ ‫عدد‬ ‫منهای‬ ‫را‬ ‫اول‬ ‫عدد‬
.

‫مبنای‬ ‫در‬ ‫را‬ ‫باال‬ ‫تفریق‬
2
‫دهید‬ ‫انجام‬
.

‫مثال‬
:
BINARIES (‫)دوتایی‌ها‬
No.2 No.1
XXXX XX XX
No.2 No.1
839310 65
65 10 55
 
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
40
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
 Assignment 01 ( ‫مشق‬
1 )
 How to start programming in FORTRAN
‫کنم؟‬ ‫شروع‬ ‫را‬ ‫فرترن‬ ‫در‬ ‫نویسی‬ ‫برنامه‬ ‫چگونه‬
ASSIGNMENT
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
41
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Lecture

WHAT IS COMPUTATION?
WHAT IS PROGRAMMING?
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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?
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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

 

 
  
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫مدار‬ ‫یک‬ ‫به‬ ‫خودکار‬ ‫صورت‬ ‫به‬ ‫کار‬ ‫این‬ ‫انجام‬ ‫برای‬
(
‫الکتریکی‬
)
‫داریم‬ ‫نیاز‬
‫یک‬ ‫ما‬ ‫صورت‬ ‫این‬ ‫در‬
‫ثابت‬ ‫برنامه‬ ‫کامپیوتر‬
‫یا‬
‫آغازین‬ ‫کامپیوتر‬
‫داشت‬ ‫خواهیم‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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

‫است‬ ‫مهم‬ ‫الگوریتم‬ ‫در‬ ‫چیز‬ ‫دو‬
:

‫دستورات‬

‫دستورات‬ ‫اجرای‬ ‫ترتیب‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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?
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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 (‫)برنامه‌نویسی‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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 (‫)زبان‌های‌برنامه‌نویسی‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
50
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
 Frequently-Asked Questions (FAQ)
?
PROGRAMMING
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
51
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Lecture
 Programming
 Data Types
 Operators
 Variables
INTRODUCTION PROGRAMMING
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
52
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
 Building Blocks of Programs (‫برنامه‬ ‫اولیه‬ ‫)اجزای‬
 Values (‫)مقدارها‬: Primitive data elements ‫ابتدایی‬ ‫های‬ ‫داده‬
 Numbers ‫اعداد‬
 Integer ‫صحیح‬ ‫اعداد‬ 3
 Floating point or Real ‫اعشار‬ ‫یا‬ ‫حقیقی‬ ‫اعداد‬ 3.14
 Characters ‫ها‬ ‫رشته‬ ‫یا‬ ‫حروف‬ ’abc’ ’52’ ≠ 52
 Variables (‫)متغیرها‬
 myname = ‘abc’ string or character (‫حرف‬ ‫یا‬ ‫)رشته‬
 myage = 25 integer (‫)صحیح‬
 myweight = 87.5 real or float (‫)حقیقی‬
 Operators (‫)عملگرها‬
 Arithmetic operators ‫حساب‬ ‫عملگرهای‬ + * - / **
 Comparisons ‫ای‬ ‫مقایسه‬ ‫عملگرهای‬ == > < >= /=
 Logic Operators ‫منطقی‬ ‫عملگرهای‬ .and. .or. .not.
BUILDING BLOCKS OF PROGRAMS (‫)اجزای‌اولیه‌برنامه‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
53
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
 A variable is an address!
 Variable Types (‫متغیرها‬ ‫)نوع‬
 Integer (‫)صحیح‬
 Real (‫)حقیقی‬
 Character / String ( ‫حرف‬
/
‫حروف‬ ‫رشته‬ )
VARIABLES
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
54
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
 ‫برنامه‬ ‫یک‬ ‫ساختمان‬ ‫آجرهای‬
 Values (‫)مقدارها‬
 Operator (‫)عملگرها‬ ====> Expressions (‫ها‬ ‫)عبارت‬
 Variables (‫)متغیر‬
 Commands (‫)فرمان‬
 Assignment (‫)تخصیص‬
 Statement (‫)دستور‬
BUILDING BLOCKS OF PROGRAMS
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
55
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
THE STRUCTURE OF FORTRAN PROGRAM
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
56
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫فرترن‬ ‫برنامه‬ ‫یک‬ ‫ساختار‬

‫معرفی‬ ‫بخش‬

‫اجرا‬ ‫بخش‬

‫پایانی‬ ‫بخش‬
THE STRUCTURE OF FORTRAN PROGRAM
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
57
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
‫معرفی‬
‫اجرا‬
‫پایان‬

‫فرترن‬ ‫برنامه‬ ‫یک‬ ‫ساختار‬ ‫با‬ ‫آشنایی‬

‫کنیم‬ ‫می‬ ‫تعریف‬ ‫برنامه‬ ‫معرفی‬ ‫قسمت‬ ‫در‬ ‫را‬ ‫آنها‬ ‫نوع‬ ‫و‬ ‫استفاده‬ ‫مورد‬ ‫متغیرهای‬ ‫اسم‬
.
‫مثال‬
:
THE STRUCTURE OF FORTRAN PROGRAM
program pro1
implicit none
real :: a
integer :: i,j
character(12)::name
a = 3.14
i = 1
j = 23
name = ‘Hamid’
print *, a, i, j, name
end program
‌‫‌متغیر‌حقیقی‬،‫این‌دستور‬
a
‫را‌معرفی‌می‌کند‬
‌‫دو‌متغیر‌صحیح‬
i
‌‫و‬
j
‫را‌معرفی‌می‌کند‬
‌‫یک‌متغیر‌حرفی‌با‬
12
‫حرف‬
‌‫به‌نام‬
name
‫معرفی‌می‌کند‬
‫در‌بخش‌اجرا‌دستورات‌به‌ترتیب‬
‫خط‌به‌خط‌از‌باال‌به‌پایین‌خوانده‌و‌اجرا‌می‌شوند‬
.
‌،‫به‌ترتیب‌اجرای‌دستورات‬
‫جریان‬ ‫کنترل‬
‫برنامه‌گویند‬
.
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
58
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
 ‫ورودی‬ ‫دستورات‬
/
‫خروجی‬

‫متغیر‬ ‫یک‬ ‫در‬ ‫آن‬ ‫ذخیره‬ ‫و‬ ‫کلید‬ ‫صفحه‬ ‫از‬ ‫مقدار‬ ‫یک‬ ‫خواندن‬ ‫برای‬

‫نمایشگر‬ ‫روی‬ ‫عبارت‬ ‫یک‬ ‫حاصل‬ ‫یا‬ ‫متغیر‬ ‫یک‬ ‫یا‬ ،‫مقدار‬ ‫یک‬ ‫نمایش‬ ‫برای‬
INPUT / OUTPUT COMMANDS
READ *
PRINT *
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
59
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
INTRODUCTION TO PROGRAMMING
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
60
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
COMMANDS
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
61
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
EXPRESSIONS
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
64
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Lecture
 Lecture 5:
FORTRAN EXPRESSIONS
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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 ‫دستور‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
71
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
 Operation Precedence (‫عملگرها‬ ‫اجرای‬ ‫)ترتیب‬

‫کنید‬ ‫برآورد‬ ‫را‬ ‫روبرو‬ ‫عبارت‬
.

‫عملگرها‬ ‫اجرای‬ ‫ترتیب‬
1
.
‫بیرون‬ ‫به‬ ‫داخل‬ ‫از‬ ‫ـ‬ ‫پرانتز‬
( )
2
.
‫توان‬
_
‫چپ‬ ‫به‬ ‫راست‬ ‫از‬
**
3
.
‫راست‬ ‫به‬ ‫چپ‬ ‫از‬ ‫ـ‬ ‫تقسیم‬ ‫و‬ ‫ضرب‬
* /
4
.
‫راست‬ ‫به‬ ‫چپ‬ ‫از‬ ‫ـ‬ ‫تفریق‬ ‫و‬ ‫جمع‬
+ -

‫عبارت‬
‫را‬ ‫زیر‬
‫کنید‬ ‫برآورد‬
.
Introduction to Programming
3 + 4 * 5
3. + 2. ** 2 ** 3 * 6 / ( 2 * (1 + 3)) * 4.
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
72
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫کنید‬ ‫برآورد‬ ‫را‬ ‫زیر‬ ‫های‬ ‫عبارت‬
.
Introduction to Programming
13 / 5 * 6
int(13. / 5) * 6
nint(13. / 5) * 6
mod(13,5) * 6
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
73
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫کنید‬ ‫برآورد‬ ‫را‬ ‫زیر‬ ‫عبارت‬
.
Introduction to Programming
2. * (3. + 5.) * 4. + 10. / 2. ** 3.
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
74
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫بنویسید‬ ‫ریاضی‬ ‫رابطه‬ ‫صورت‬ ‫به‬ ‫را‬ ‫زیر‬ ‫فرترن‬ ‫عبارت‬
.
Introduction to Programming
distance = 0.5 * accel * t ** 2. + vel_0 * t + pos_0
freq = 1. / (2. * pi * sqrt(l * c))
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
 
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
 

 
 

‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
77
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
INTRINSIC FUNCTIONS
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
78
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
INTRINSIC FUNCTIONS
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫در‬ ‫خوب‬ ‫شیوه‬
‫نویسی‬ ‫برنامه‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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.
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
81
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
UNITS
 ‫کمیت‬ ‫یک‬ ‫نوشتن‬ ‫و‬ ‫خواندن‬ ‫هنگام‬
(
‫مقدار‬
)
‫کنید‬ ‫بیان‬ ‫را‬ ‫واحد‬ ‫همیشه‬ ‫برنامه‬ ‫در‬ ‫فیزیکی‬
.
 ‫برنامه‬ ‫متن‬ ‫در‬ ‫هم‬
(
‫توضیح‬ ‫صورت‬ ‫به‬
)
‫ورودی‬ ‫هم‬ ‫و‬
/
‫خروجی‬
 ‫است‬ ‫ما‬ ‫ذهن‬ ‫در‬ ‫ها‬ ‫واحد‬ ،‫کند‬ ‫می‬ ‫کار‬ ‫عددها‬ ‫با‬ ‫رایانه‬
Good Style
in Programming
‫در‬ ‫خوب‬ ‫شیوه‬
‫نویسی‬ ‫برنامه‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
82
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
83
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Lecture
 How to Solve Problems with Programming?
 Straight line programs
PROBLEM SOLVING
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
84
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫مساله‬ ‫حل‬ ‫روش‬
‫نویسی‬ ‫برنامه‬ ‫کمک‬ ‫به‬
IDENTIFICATION
‫مساله‬ ‫شناسایی‬
INPUT / OUTPUT
‫ورودی‬ ‫تعیین‬
/
‫خروجی‬
ALGORITHM
‫مساله‬ ‫حل‬ ‫الگوریتم‬ ‫نوشتن‬
FLOWCHART
‫برنامه‬ ‫فلوچارت‬ ‫رسم‬
FORTRAN PROGRAM
‫فرترن‬ ‫کد‬ ‫نوشتن‬
TESTING
‫برنامه‬ ‫آزمایش‬
1
2
3
4
5
6
HOW TO SOLVE PROBLEMS WITH PROGRAMMING
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
85
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫مثال‬
:
‫محاسب‬ ‫را‬ ‫دکارتی‬ ‫مختصات‬ ‫دستگاه‬ ‫در‬ ‫مشخص‬ ‫نقطه‬ ‫دو‬ ‫فاصله‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬
‫کند‬ ‫ه‬
.
‫است‬ ‫مساله‬ ‫شناسایی‬ ‫مساله‬ ‫هر‬ ‫حل‬ ‫بخش‬ ‫مهمترین‬ ‫همیشه‬
.

‫کنید‬ ‫رسم‬ ‫را‬ ‫مساله‬ ‫هندسه‬ ‫یا‬ ‫شکل‬
.

‫بنویسید‬ ‫کوتاه‬ ‫و‬ ‫ساده‬ ‫های‬ ‫گزاره‬ ‫با‬
:

‫خواهد؟‬ ‫می‬ ‫چه‬ ‫مساله‬

‫چیست؟‬ ‫یک‬ ‫هر‬ ‫واحد‬ ‫و‬ ‫جنس‬ ‫کدامند؟‬ ‫ها‬ ‫مجهول‬ ‫و‬ ‫ها‬ ‫معلوم‬

‫داریم؟‬ ‫دسترس‬ ‫در‬ ‫ریاضی‬ ‫روابط‬ ‫یا‬ ‫اطالعات‬ ‫چه‬

‫نکنید‬ ‫فراموش‬
:
‫شناسایی‬ ‫مرحله‬ ‫در‬
‫نیستیم‬ ‫جواب‬ ‫دنبال‬ ‫به‬
!
IDENTIFICATION
‫شناسایی‬
1
How To Solve Problems with Programming
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
86
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫مثال‬
:
‫محاسب‬ ‫را‬ ‫دکارتی‬ ‫مختصات‬ ‫دستگاه‬ ‫در‬ ‫مشخص‬ ‫نقطه‬ ‫دو‬ ‫فاصله‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬
‫کند‬ ‫ه‬
.

‫کنید‬ ‫رسم‬ ‫را‬ ‫مقابل‬ ‫نمودار‬
.

‫بنویسید‬ ‫دایره‬ ‫در‬ ‫و‬ ‫کرده‬ ‫انتخاب‬ ‫را‬ ‫برنامه‬ ‫اسم‬
.

‫کرده‬ ‫تعیین‬ ‫را‬ ‫ها‬ ‫خروجی‬ ‫و‬ ‫ها‬ ‫ورودی‬
‫کنید‬ ‫لیست‬ ‫مربوطه‬ ‫پیکان‬ ‫زیر‬ ‫و‬
.

‫ورودی‬ ‫هر‬ ‫متغیر‬ ‫برای‬ ‫اسم‬ ‫یک‬
/
‫کنید‬ ‫انتخاب‬ ‫خروجی‬
.

‫ورودی‬ ‫هر‬ ‫نوع‬
/
‫کنید‬ ‫تعیین‬ ‫را‬ ‫خروجی‬
.
?
IN OUT
INPUT / OUTPUT
‫ورودی‬
/
‫خروجی‬
2
How To Solve Problems with Programming
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
87
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫مثال‬
:
‫محاسب‬ ‫را‬ ‫دکارتی‬ ‫مختصات‬ ‫دستگاه‬ ‫در‬ ‫مشخص‬ ‫نقطه‬ ‫دو‬ ‫فاصله‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬
‫کند‬ ‫ه‬
.

‫دهید‬ ‫اختصاص‬ ‫فرضی‬ ‫مقادیر‬ ‫ها‬ ‫ورودی‬ ‫به‬
.

‫کنید‬ ‫حل‬ ‫را‬ ‫مساله‬ ‫فرضی‬ ‫های‬ ‫ورودی‬ ‫با‬
..

‫است‬ ‫شده‬ ‫طی‬ ‫مراحلی‬ ‫چه‬ ‫مساله‬ ‫حل‬ ‫برای‬ ‫ببینید‬
.

‫کنید‬ ‫لیست‬ ‫ترتیب‬ ‫به‬ ‫را‬ ‫مساله‬ ‫حل‬ ‫مراحل‬
.

‫بنویسید‬ ‫را‬ ‫کلی‬ ‫مراحل‬ ‫ابتدا‬ ‫است‬ ‫پیچیده‬ ‫مساله‬ ‫اگر‬
.

‫کنید‬ ‫حل‬ ‫جداگانه‬ ‫مساله‬ ‫یک‬ ‫صورت‬ ‫به‬ ‫را‬ ‫کلی‬ ‫مرحله‬ ‫هر‬ ‫سپس‬
.

‫کنید‬ ‫آزمایش‬ ‫را‬ ‫الگوریتم‬
.
?
IN OUT
ALGORITHM
‫مساله‬ ‫حل‬ ‫الگوریتم‬
3
How To Solve Problems with Programming
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
88
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫مثال‬
:
‫محاسب‬ ‫را‬ ‫دکارتی‬ ‫مختصات‬ ‫دستگاه‬ ‫در‬ ‫مشخص‬ ‫نقطه‬ ‫دو‬ ‫فاصله‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬
‫کند‬ ‫ه‬
.

‫نماد‬ ‫با‬ ‫را‬ ‫فلوچارت‬ ‫رسم‬
START
‫کنید‬ ‫آغاز‬
.

‫کنید‬ ‫رسم‬ ‫مرحله‬ ‫به‬ ‫مرحله‬ ‫را‬ ‫شده‬ ‫لیست‬ ‫الگوریتم‬
.

‫االضالع‬ ‫متوازی‬ ‫نماد‬ ‫با‬ ‫ها‬ ‫ورودی‬

‫تخصیص‬ ‫و‬ ‫محاسبات‬
(
‫فرایند‬
)
‫مستطیل‬ ‫نماد‬ ‫با‬

‫خروجی‬ ‫نماد‬ ‫با‬ ‫ها‬ ‫خروجی‬

‫پایین‬ ‫به‬ ‫باال‬ ‫از‬ ‫برنامه‬ ‫جریان‬ ‫کنترل‬ ‫خط‬

‫نماد‬ ‫با‬ ‫برنامه‬ ‫پایان‬
END
‫شروع‬ ‫مشابه‬

‫کنید‬ ‫آزمایش‬ ‫را‬ ‫فلوچارت‬
.
FLOWCHART
‫فلوچارت‬
4
START / END
‫پایان‬
/
‫شروع‬
PROCESS
‫فرایند‬ ‫ـ‬ ‫محاسبات‬
INPUT
‫ورودی‬
OUTPUT
‫خروجی‬
DECISIONS
‫گیری‬ ‫تصمیم‬
How To Solve Problems with Programming
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫در‬ ‫خوب‬ ‫شیوه‬
‫نویسی‬ ‫برنامه‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
93
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
How To Solve Problems with Programming

‫مثال‬
:
‫محاسب‬ ‫را‬ ‫دکارتی‬ ‫مختصات‬ ‫دستگاه‬ ‫در‬ ‫مشخص‬ ‫نقطه‬ ‫دو‬ ‫فاصله‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬
‫کند‬ ‫ه‬
.
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫در‬ ‫خوب‬ ‫شیوه‬
‫نویسی‬ ‫برنامه‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
95
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫مثال‬
:
‫ک‬ ‫محاسبه‬ ‫را‬ ‫آن‬ ‫وتر‬ ‫طول‬ ‫و‬ ‫گرفته‬ ‫را‬ ‫الزاویه‬ ‫قائم‬ ‫مثلث‬ ‫ضلع‬ ‫دو‬ ‫طول‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬
‫ند‬
.
How To Solve Problems with Programming
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
96
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
Lecture
 CONDITIONALS
BRANCHING PROGRAMS
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
97
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫ای‬ ‫شاخه‬ ‫های‬ ‫برنامه‬

‫مثال‬
:
‫دانشجو‬ ‫یک‬ ‫درسی‬ ‫نمره‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬
‫دانشجو‬ ‫که‬ ‫کند‬ ‫مشخص‬ ‫خروجی‬ ‫در‬ ‫و‬ ‫گرفته‬ ‫را‬
‫است؟‬ ‫شده‬ ‫رد‬ ‫یا‬ ‫گذرانده‬ ‫را‬ ‫درس‬
Branching Programs, Conditionals
IDENTIFICATION
‫شناسایی‬
INPUT / OUTPUT
‫ورودی‬
/
‫خروجی‬
ALGORITHM
‫الگوریتم‬
FLOWCHART
‫فلوچارت‬
FORTRAN PROGRAM
‫فرترن‬ ‫کد‬
TESTING
‫آزمایش‬
1
2
3
4
5
6
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
98
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫ای‬ ‫شاخه‬ ‫های‬ ‫برنامه‬

‫مثال‬
:
‫دانشجو‬ ‫یک‬ ‫درسی‬ ‫نمره‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬
‫دانشجو‬ ‫که‬ ‫کند‬ ‫مشخص‬ ‫خروجی‬ ‫در‬ ‫و‬ ‫گرفته‬ ‫را‬
‫است؟‬ ‫شده‬ ‫رد‬ ‫یا‬ ‫گذرانده‬ ‫را‬ ‫درس‬

‫بین‬ ‫درسی‬ ‫نمره‬ ‫یک‬ ‫ورودی‬
0
‫تا‬
20

‫است‬ ‫حرف‬ ‫نوع‬ ‫از‬ ‫متغیر‬ ‫یک‬ ‫خروجی‬
‫خروجی‬ ‫متغیر‬ ،‫شده‬ ‫وارد‬ ‫نمره‬ ‫مقدار‬ ‫به‬ ‫بسته‬ ‫که‬
‫باشد‬ ‫داشته‬ ‫تواند‬ ‫می‬ ‫مقدار‬ ‫دو‬
:
“Pass”
‫یا‬
“Fail”
Branching Programs, Conditionals
?
IN
mark
(real)
OUT
state
(character)
INPUT / OUTPUT
‫ورودی‬
/
‫خروجی‬
2
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
99
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫ای‬ ‫شاخه‬ ‫های‬ ‫برنامه‬

‫مثال‬
:
‫دانشجو‬ ‫یک‬ ‫درسی‬ ‫نمره‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬
‫دانشجو‬ ‫که‬ ‫کند‬ ‫مشخص‬ ‫خروجی‬ ‫در‬ ‫و‬ ‫گرفته‬ ‫را‬
‫است؟‬ ‫شده‬ ‫رد‬ ‫یا‬ ‫گذرانده‬ ‫را‬ ‫درس‬

‫مساله‬ ‫حل‬ ‫الگوریتم‬
:
1
-
mark
‫بخوان‬ ‫ورودی‬ ‫از‬ ‫را‬
2
-
‫اگر‬
mark>10
‫آنگاه‬ ‫بود‬
2
-
1
-
state
‫برابر‬ ‫را‬
“Pass”
‫بده‬ ‫قرار‬
3
-
‫اگر‬
mark<10
‫آنگاه‬ ‫بود‬
3
-
1
-
‫متغیر‬
state
‫برابر‬ ‫را‬
“Fail”
‫بده‬ ‫قرار‬
4
-
‫متغیر‬ ‫مقدار‬
state
‫کن‬ ‫چاپ‬ ‫خروجی‬ ‫در‬ ‫را‬
Branching Programs, Conditionals
?
IN
mark
(real)
OUT
state
(character)
ALGORITHM
‫الگوریتم‬
3
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
102
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫ای‬ ‫شاخه‬ ‫های‬ ‫برنامه‬

‫مثال‬
:
‫دانشجو‬ ‫یک‬ ‫درسی‬ ‫نمره‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬
‫دانشجو‬ ‫که‬ ‫کند‬ ‫مشخص‬ ‫خروجی‬ ‫در‬ ‫و‬ ‫گرفته‬ ‫را‬
‫است؟‬ ‫شده‬ ‫رد‬ ‫یا‬ ‫گذرانده‬ ‫را‬ ‫درس‬

‫مساله‬ ‫حل‬ ‫الگوریتم‬
(
‫روش‬
2
:)
1
-
mark
‫بخوان‬ ‫ورودی‬ ‫از‬ ‫را‬
2
-
‫اگر‬
mark>10
‫آنگاه‬ ‫بود‬
2
-
1
-
state
‫برابر‬ ‫را‬
“Pass”
‫بده‬ ‫قرار‬
3
-
‫آنگاه‬ ‫بود‬ ‫درغیراینصورت‬
3
-
1
-
‫متغیر‬
state
‫برابر‬ ‫را‬
“Fail”
‫بده‬ ‫قرار‬
4
-
‫متغیر‬ ‫مقدار‬
state
‫کن‬ ‫چاپ‬ ‫خروجی‬ ‫در‬ ‫را‬
Branching Programs, Conditionals
?
IN
mark
(real)
OUT
state
(character)
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
103
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫ای‬ ‫شاخه‬ ‫های‬ ‫برنامه‬

‫مثال‬
:
‫دانشجو‬ ‫یک‬ ‫درسی‬ ‫نمره‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬
‫دانشجو‬ ‫که‬ ‫کند‬ ‫مشخص‬ ‫خروجی‬ ‫در‬ ‫و‬ ‫گرفته‬ ‫را‬
‫است؟‬ ‫شده‬ ‫رد‬ ‫یا‬ ‫گذرانده‬ ‫را‬ ‫درس‬

‫مساله‬ ‫حل‬ ‫الگوریتم‬
(
‫روش‬
3
:)
1
-
mark
‫بخوان‬ ‫ورودی‬ ‫از‬ ‫را‬
2
-
state
‫برابر‬ ‫را‬
‘Pass’
‫بده‬ ‫قرار‬
3
-
‫اگر‬
mark<10
‫آنگاه‬ ‫بود‬
3
-
1
‫متغیر‬
state
‫برابر‬ ‫را‬
“Fail”
‫بده‬ ‫قرار‬
4
-
‫متغیر‬ ‫مقدار‬
state
‫کن‬ ‫چاپ‬ ‫خروجی‬ ‫در‬ ‫را‬
Branching Programs, Conditionals
?
IN
mark
(real)
OUT
state
(character)
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
104
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫ای‬ ‫شاخه‬ ‫های‬ ‫برنامه‬

‫مثال‬
:
‫و‬ ‫بگیرد‬ ‫ورودی‬ ‫از‬ ‫صحیح‬ ‫عدد‬ ‫یک‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬
‫فرد‬ ‫عدد‬ ‫که‬ ‫کند‬ ‫مشخص‬ ‫خروجی‬ ‫در‬
(Odd)
‫زوج‬ ‫یا‬ ‫است‬
(Even)
‫؟‬
Branching Programs, Conditionals
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
INT. COMP. SCI. & PROGRAMMING
106
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬
Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.

‫خروجی‬
‫زیر‬ ‫های‬ ‫برنامه‬ ‫از‬ ‫یک‬ ‫هر‬
‫چیست؟‬
Branching Programs, Conditionals
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬
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
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx
ICSP-Lectures 5ed, Jafari, 2017.pptx

More Related Content

Similar to ICSP-Lectures 5ed, Jafari, 2017.pptx

Similar to ICSP-Lectures 5ed, Jafari, 2017.pptx (20)

Micro-UUT(MoHaNDeS-EE.IR)
Micro-UUT(MoHaNDeS-EE.IR)Micro-UUT(MoHaNDeS-EE.IR)
Micro-UUT(MoHaNDeS-EE.IR)
 
سخت افزار
سخت افزارسخت افزار
سخت افزار
 
آموزش برنامه نویسی اندروید از صفر تا صد به صورت پروژه محور برای ورود به بازار...
آموزش برنامه نویسی اندروید از صفر تا صد به صورت پروژه محور برای ورود به بازار...آموزش برنامه نویسی اندروید از صفر تا صد به صورت پروژه محور برای ورود به بازار...
آموزش برنامه نویسی اندروید از صفر تا صد به صورت پروژه محور برای ورود به بازار...
 
Software Fault Avoidance in Implementation
Software Fault Avoidance in ImplementationSoftware Fault Avoidance in Implementation
Software Fault Avoidance in Implementation
 
How to program with c in persian
How to program with c in persianHow to program with c in persian
How to program with c in persian
 
شرایط شرکت در آزمون نظام مهندسی برق .pdf
شرایط شرکت در آزمون نظام مهندسی برق  .pdfشرایط شرکت در آزمون نظام مهندسی برق  .pdf
شرایط شرکت در آزمون نظام مهندسی برق .pdf
 
resome
resomeresome
resome
 
Resume
ResumeResume
Resume
 
نمونه سوالات مبانی-الهام جهانپور-منطقه فارسان
نمونه سوالات مبانی-الهام جهانپور-منطقه فارساننمونه سوالات مبانی-الهام جهانپور-منطقه فارسان
نمونه سوالات مبانی-الهام جهانپور-منطقه فارسان
 
ده فرمان قبولي در آزمون نظام مهندسي تاسيسات برقي
ده فرمان قبولي در آزمون نظام مهندسي تاسيسات برقيده فرمان قبولي در آزمون نظام مهندسي تاسيسات برقي
ده فرمان قبولي در آزمون نظام مهندسي تاسيسات برقي
 
MSc Thesis: Fingerprint Detection and Classification using Computational Geom...
MSc Thesis: Fingerprint Detection and Classification using Computational Geom...MSc Thesis: Fingerprint Detection and Classification using Computational Geom...
MSc Thesis: Fingerprint Detection and Classification using Computational Geom...
 
Mohamady zahedy c#
Mohamady zahedy c#Mohamady zahedy c#
Mohamady zahedy c#
 
مصاحبه با میرزایی مدرس سیستم اعلام حریق
مصاحبه با میرزایی مدرس سیستم اعلام حریقمصاحبه با میرزایی مدرس سیستم اعلام حریق
مصاحبه با میرزایی مدرس سیستم اعلام حریق
 
گزارش از ساختمانهای پروژه مهر سازمان مسکن و شهرسازی
گزارش از ساختمانهای پروژه مهر سازمان مسکن و شهرسازیگزارش از ساختمانهای پروژه مهر سازمان مسکن و شهرسازی
گزارش از ساختمانهای پروژه مهر سازمان مسکن و شهرسازی
 
فیلم آمادگی آزمون نظام مهندسی برق-طراحی
فیلم آمادگی آزمون نظام مهندسی برق-طراحیفیلم آمادگی آزمون نظام مهندسی برق-طراحی
فیلم آمادگی آزمون نظام مهندسی برق-طراحی
 
C++
C++C++
C++
 
C++
C++C++
C++
 
روش درآمد زایی از نظام مهندسی برق
روش درآمد زایی از نظام مهندسی برق روش درآمد زایی از نظام مهندسی برق
روش درآمد زایی از نظام مهندسی برق
 
سوالات کاربر تولید محتوا از فصل 4 تا 7
سوالات کاربر تولید محتوا از فصل 4  تا 7سوالات کاربر تولید محتوا از فصل 4  تا 7
سوالات کاربر تولید محتوا از فصل 4 تا 7
 
روش المان محدود-تحلیل سازه
روش المان محدود-تحلیل سازهروش المان محدود-تحلیل سازه
روش المان محدود-تحلیل سازه
 

ICSP-Lectures 5ed, Jafari, 2017.pptx

  • 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
  • 7. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 9 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. 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
  • 10. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 13 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. COURSE PLAN ‫هفته‬ ‫موضوع‬ 1 ،‫آشنایی‬ ‫ها‬ ‫دوتایی‬ ‫یک؛‬ ‫و‬ ‫صفر‬ ‫دنیای‬ ‫به‬ ‫ورود‬ ‫آشنایی‬ 2 ‫چیست؟‬ ‫محاسبه‬ 3 ‫کامپیوتر‬ ‫اصلی‬ ‫ساختار‬ 4 ‫چیست؟‬ ‫نویسی‬ ‫برنامه‬ 5 ‫فرترن‬ ‫نویسی‬ ‫برنامه‬ ‫با‬ ‫آشنایی‬ 6 ‫نویسی‬ ‫برنامه‬ ‫شناسی‬ ‫روش‬ 7 ‫محاسباتی‬ ‫های‬ ‫عبارت‬ 8 ‫الگوریتم‬ 9 ‫فلوچارت‬ 10 ‫هستند؟‬ ‫چه‬ ‫نویسی‬ ‫برنامه‬ ‫اجزای‬ 11 ‫ها‬ ‫شرطی‬ 12 ‫ها‬ ‫حلقه‬ 13 ‫ها‬ ‫زیربرنامه‬ 14 ‫ها‬ ‫تابع‬ 15 ‫نویسی‬ ‫برنامه‬ ‫درست‬ ‫شیوه‬
  • 11. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 14 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  Chapman Fortran 95/2003 for Scientists and Engineers 3rd Ed., 2007 REFERENCES
  • 12. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 15 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫چپمن‬ ‫فرترن‬ ‫آموزشی‬ ‫کتاب‬ 90/95 ‫ناقوس‬ ‫انتشارات‬ ،‫ممتاز‬ ‫و‬ ‫قدسی‬ ‫ناصر‬ ‫ترجمه‬ ، 1389 TEXTS & REFERENCES
  • 13. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 16 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. Frequently-Asked Questions (FAQ)
  • 14. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 17 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫برویم‬ ‫یک‬ ‫و‬ ‫صفر‬ ‫دنیای‬ ‫به‬ ‫خواهیم‬ ‫می‬ ...  ‫بگیریم‬ ‫نظر‬ ‫در‬ ‫را‬ ‫الکتریکی‬ ‫سوییچ‬ ‫یک‬ . ‫باشد‬ ‫داشته‬ ‫تواند‬ ‫می‬ ‫حالت‬ ‫دو‬ ‫تنها‬ : ‫روشن‬ ‫ـ‬ ‫خاموش‬ ‫سوییچ‬ ‫این‬ ‫اسم‬ ‫بیت‬ (Bit) ‫است‬ .  ‫دهد‬ ‫نشان‬ ‫را‬ ‫عدد‬ ‫دو‬ ‫تواند‬ ‫می‬ ‫تنها‬ ‫اعداد‬ ‫همه‬ ‫بین‬ ‫از‬ ‫بیت‬ : ‫یک‬ ‫و‬ ‫صفر‬  ‫داد؟‬ ‫نشان‬ ‫سوییچ‬ ‫این‬ ‫با‬ ‫را‬ ‫اعداد‬ ‫همه‬ ‫توان‬ ‫می‬ ‫چگونه‬ BINARIES (‫)دوتایی‌ها‬
  • 15. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 18 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫برویم‬ ‫یک‬ ‫و‬ ‫صفر‬ ‫دنیای‬ ‫به‬ ‫خواهیم‬ ‫می‬ ...  ‫داد؟‬ ‫نشان‬ ‫سوییچ‬ ‫این‬ ‫با‬ ‫را‬ ‫اعداد‬ ‫همه‬ ‫توان‬ ‫می‬ ‫چگونه‬  ‫دهیم‬ ‫انجام‬ ‫باید‬ ‫کار‬ ‫دو‬ ‫اعداد‬ ‫سایر‬ ‫دادن‬ ‫نشان‬ ‫برای‬ :  ‫باشیم‬ ‫داشته‬ ‫بیت‬ ‫دسته‬ ‫یک‬ ‫تا‬ ‫دهیم‬ ‫قرار‬ ‫هم‬ ‫کنار‬ ‫را‬ ‫بیت‬ ‫تعدادی‬  ‫ببریم‬ ‫یک‬ ‫و‬ ‫صفر‬ ‫فضای‬ ‫به‬ ‫را‬ ‫اعداد‬ ( ‫کنیم‬ ‫تبدیل‬ ) ‫دهیم‬ ‫نشان‬ ‫ها‬ ‫بیت‬ ‫دسته‬ ‫با‬ ‫بتوانیم‬ ‫تا‬ BINARIES (‫)دوتایی‌ها‬ 0 1 1 0 1 0 0 1
  • 16. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 19 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫دهد؟‬ ‫می‬ ‫معنی‬ ‫چه‬ ‫یک‬ ‫و‬ ‫صفر‬ ‫دسته‬ ‫این‬ BINARIES (‫)دوتایی‌ها‬ 0 1 1 0 1 0 0 1 2 3 7 2102 3101 7100 0 1 1 0 1 0 0 1 ‌‫اعداد‌در‌مبنای‬ 10 ‌‫اعداد‌در‌مبنای‬ 2 120 021 022 123 125 126 027 024 = 0128+164+132+016+18+04+02+11=105 = 2100+ 310+ 71=237
  • 17. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 20 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫سوال‬ 1 :  ‫بنویسید‬ ‫را‬ ‫خود‬ ‫دانشجویی‬ ‫شماره‬ . ‫عدد‬ ‫با‬ ‫را‬ ‫دارد‬ ‫فرد‬ ‫رقم‬ ‫جا‬ ‫هر‬ 1 ‫کنید‬ ‫جایگزین‬ ‫صفر‬ ‫با‬ ‫را‬ ‫زوج‬ ‫رقم‬ ‫و‬ . ‫مبنای‬ ‫در‬ ‫آمده‬ ‫دست‬ ‫به‬ ‫عدد‬ ‫کنید‬ ‫فرض‬ 2 ‫است‬ . ‫مبنای‬ ‫در‬ ‫آمده‬ ‫دست‬ ‫به‬ ‫عدد‬ 10 ‫است؟‬ ‫مقدار‬ ‫چه‬ EXERCISE
  • 18. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 21 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  Assignment 1 ( ‫مشق‬ 1 )  ‫فایل‬ ICSP-Assignment 01.PDF ‫نمایید‬ ‫دریافت‬ ‫کالس‬ ‫وبسایت‬ ‫از‬ ‫را‬ .  ‫کنید‬ ‫عمل‬ ‫راهنما‬ ‫طبق‬ ‫دقیقا‬ ‫و‬ ‫بخوانید‬ ‫دقت‬ ‫با‬ ‫را‬ ‫فایل‬ . BINARIES (‫)دوتایی‌ها‬
  • 19. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 22 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. Lecture BINARIES
  • 20. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 23 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫داد؟‬ ‫نشان‬ ‫سوییچ‬ ‫این‬ ‫با‬ ‫را‬ ‫اعداد‬ ‫همه‬ ‫توان‬ ‫می‬ ‫چگونه‬ BINARIES (‫)دوتایی‌ها‬ 0 1 1 0 1 0 0 1
  • 21. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 24 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫مبنای‬ ‫از‬ ‫را‬ ‫اعداد‬ ‫چگونه‬ 2 ‫مبنای‬ ‫به‬ 10 ‫کنیم؟‬ ‫تبدیل‬  1 . ‫چپ‬ ‫به‬ ‫راست‬ ‫از‬ ‫های‬ ‫توان‬  2 . ‫ضرب‬ ‫توان‬ ‫در‬ ‫رقم‬  3 . ‫مقدارها‬ ‫جمع‬ 6 5 4 3 2 1 0 2 2 2 2 2 2 2 64 32 16 8 4 2 1 1 64 1 32 0 16 1 8 0 4 0 2 1 1 1 1 0 1 0 0 1 64 32 0 8 0 0 1 105               BINARIES (‫)دوتایی‌ها‬
  • 22. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 25 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫مبنای‬ ‫از‬ ‫را‬ ‫اعداد‬ ‫چگونه‬ 10 ‫مبنای‬ ‫به‬ 2 ‫کنیم؟‬ ‫تبدیل‬  1 . ‫بر‬ ‫تقسیم‬ ‫را‬ ‫عدد‬ 2 ‫کنیم‬ ‫می‬  2 . ‫کنیم‬ ‫می‬ ‫یاداشت‬ ‫قبلی‬ ‫رقم‬ ‫چپ‬ ‫سمت‬ ‫در‬ ‫را‬ ‫باقیمانده‬ .  3 . ،‫است‬ ‫تمام‬ ‫کار‬ ‫شده‬ ‫صفر‬ ‫قسمت‬ ‫خارج‬ ‫اگر‬ ‫نوشته‬ ‫اصلی‬ ‫عدد‬ ‫جای‬ ‫به‬ ‫را‬ ‫قسمت‬ ‫خارج‬ ‫غیراینصورت‬ ‫در‬ ‫کنیم‬ ‫می‬ ‫تکرار‬ ‫را‬ ‫قبل‬ ‫مراحل‬ ‫و‬ 105 104 1 (1) 52 2 2 2 52 52 0 (0) 26 2 2 2 26 26 0 (0) 13 2 2 2 13 12 1 (1) 6 2 2 2 6 6 0 (0) 3 2 2 2 3 2 1 (1) 1 2 2 2 1 (1) 0 2 2                           1 1 0 1 0 0 1 BINARIES (‫)دوتایی‌ها‬
  • 23. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 26 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫مبنای‬ ‫از‬ ‫را‬ ‫اعداد‬ ‫چگونه‬ 10 ‫مبنای‬ ‫به‬ 2 ‫کنیم؟‬ ‫تبدیل‬  ‫رایج‬ ‫های‬ ‫اشتباه‬ !  ‫جواب‬ ‫آزمایش‬ ! 99 98 1 (0) 48 2 2 2 49 49 1 1 24 2 2 2 24 12 0 (0) 6 2 2 2 6 6 0 (0) 3 2 2 2 3 2 1 (1) 1 2 2 2 2 (0) 1 2 2                       0 1 0 0 0 BINARIES (‫)دوتایی‌ها‬
  • 24. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 27 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  BINARIES (‫ها‬ ‫)دوتایی‬  ‫سوال‬ 2 :  ‫مبنای‬ ‫از‬ ‫را‬ ‫خود‬ ‫دانشجویی‬ ‫شماره‬ ‫راست‬ ‫سمت‬ ‫رقم‬ ‫سه‬ 10 ‫مبنای‬ ‫به‬ 2 ‫کنید‬ ‫تبدیل‬ .  ‫کنید‬ ‫آزمایش‬ ‫را‬ ‫جواب‬ ! Introduction to the Course
  • 25. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 28 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. BINARIES (‫)دوتایی‌ها‬  Bit, Byte 0 1 1 0 1 0 0 1 1     Bit 0,1 =2 Byte = 8 Bit 0,1,2,...,255 256 
  • 26. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 29 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. BINARIES (‫)دوتایی‌ها‬  ‫مبنای‬ 8  ‫مثال‬  ‫مبنای‬ 8 ‫مبنای‬ ‫اعداد‬ ‫بهتر‬ ‫خوانایی‬ ‫و‬ ‫نویسی‬ ‫ساده‬ ‫برای‬ 2 ‫شود‬ ‫می‬ ‫استفاده‬ . ‫مبنای‬ ‫اعداد‬ ‫توان‬ ‫می‬ ‫کار‬ ‫این‬ ‫برای‬ 2 ‫مبنای‬ ‫معادل‬ ‫و‬ ‫کرد‬ ‫جدا‬ ‫رقم‬ ‫سه‬ ‫رقم‬ ‫سه‬ ‫را‬ 10 ‫نوشت‬ ‫را‬ ‫آنها‬ . ‫مبنای‬ ‫در‬ ‫نهایت‬ ‫در‬ ‫آمده‬ ‫دست‬ ‫به‬ ‫عدد‬ 8 ‫خواهد‬ ‫بود‬ . 2 2 000 0 111 7       2 2 8 010001001100 010 001 001 100 2 1 1 4  
  • 27. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 30 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. BINARIES (‫)دوتایی‌ها‬  ‫مبنای‬ 16  ‫مثال‬  ‫مبنای‬ 16 ‫مبنای‬ ‫اعداد‬ ‫بهتر‬ ‫خوانایی‬ ‫و‬ ‫نویسی‬ ‫ساده‬ ‫برای‬ 2 ‫شود‬ ‫می‬ ‫استفاده‬ . ‫اعداد‬ ‫توان‬ ‫می‬ ‫کار‬ ‫این‬ ‫برای‬ ‫مبنای‬ 2 ‫مبنای‬ ‫معادل‬ ‫و‬ ‫کرد‬ ‫جدا‬ ‫رقمی‬ ‫چهار‬ ‫های‬ ‫دسته‬ ‫در‬ ‫را‬ 10 ‫نوشت‬ ‫را‬ ‫آنها‬ . ‫در‬ ‫نهایت‬ ‫در‬ ‫آمده‬ ‫دست‬ ‫به‬ ‫عدد‬ ‫مبنای‬ 16 ‫بود‬ ‫خواهد‬ . 2 2 0000 0 1111 15         2 2 16 16 16 010001001100 0100 0100 1100 4 4 12 4 4 C 44C     0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 A B C D E F
  • 28. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 31 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫کنند؟‬ ‫می‬ ‫ذخیره‬ ‫حافظه‬ ‫در‬ ‫چطور‬ ‫را‬ ‫ها‬ ‫داده‬ BINARIES (‫)دوتایی‌ها‬ DATA ‫ها‬ ‫داده‬ ‫اعداد‬ Integer ‫صحیح‬ Real ‫حقیقی‬ Character ‫حروف‬
  • 29. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 32 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. BINARIES (‫)دوتایی‌ها‬  ‫داد؟‬ ‫نمایش‬ ‫یک‬ ‫و‬ ‫صفر‬ ‫با‬ ‫را‬ ‫منفی‬ ‫اعداد‬ ‫توان‬ ‫می‬ ‫چگونه‬  ‫قرارداد‬ : ‫است‬ ‫عالمت‬ ‫دهنده‬ ‫نشان‬ ‫باینری‬ ‫عدد‬ ‫چپ‬ ‫سمت‬ ‫رقم‬ . 0 ‫مثبت‬ ‫و‬ 1 ‫منفی‬ X 0 0 1 1               XXX 000 0 001 1 010 2 011 3 100 4 101 3 110 2 111 1                                                          XXXX 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 7 1010 6 1011 5 1100 4 1101 3 1110 2 1111 1                                                                                                              XXXXXXX 00000000 0 00000001 1 00000010 2 ... ... ... ... 01111110 126 01111111 127 10000000 128 10000001 127 ... ... ... ... 11111101 3 11111110 2 11111111 1                                                                                              XX 00 0 01 1 10 2 11 1                           
  • 30. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 33 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫کنند؟‬ ‫می‬ ‫ذخیره‬ ‫حافظه‬ ‫در‬ ‫چطور‬ ‫را‬ ‫صحیح‬ ‫اعداد‬  ‫حساب‬ ‫مکمل‬ 2  ‫منفی‬ ‫عدد‬ ‫به‬ ‫مثبت‬ ‫عدد‬ ‫یک‬ ‫تبدیل‬ ‫برای‬ .1 ‫عدد‬ ‫نمودن‬ ‫مکمل‬ ) ‫صفر‬ ‫به‬ ‫ها‬ ‫یک‬ ‫همه‬ ‫و‬ ‫یک‬ ‫به‬ ‫صفرها‬ ‫همه‬ ‫تبدیل‬ ) .2 ‫شده‬ ‫مکمل‬ ‫عدد‬ ‫به‬ ‫یک‬ ‫نمودن‬ ‫اضافه‬  ‫مثال‬ : ‫مبنای‬ ‫در‬ ‫را‬ ‫زیر‬ ‫اعداد‬ 2 ‫صورت‬ ‫به‬ ‫و‬ 8 ‫دهید‬ ‫نشان‬ ‫بیتی‬ .  3 + 4  (-3) + (-4)  3 + (-4) BINARIES (‫)دوتایی‌ها‬
  • 31. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 34 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫کنند؟‬ ‫می‬ ‫ذخیره‬ ‫حافظه‬ ‫در‬ ‫چطور‬ ‫را‬ ‫صحیح‬ ‫اعداد‬  ‫معموال‬ ‫با‬ ‫را‬ ‫صحیح‬ ‫اعداد‬ 4 byte ‫دهند‬ ‫می‬ ‫نشان‬  ‫با‬ ‫که‬ ‫صحیح‬ ‫عدد‬ ‫کوچکترین‬ ‫و‬ ‫بزرگترین‬ 4 byte ‫چیست؟‬ ‫کرد‬ ‫ذخیره‬ ‫توان‬ ‫می‬ ‫حافظه‬ BINARIES (‫)دوتایی‌ها‬
  • 32. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 35 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫کنند؟‬ ‫می‬ ‫ذخیره‬ ‫حافظه‬ ‫در‬ ‫چطور‬ ‫را‬ ‫عالیم‬ ‫و‬ ‫حروف‬  ‫از‬ ‫کمتر‬ ‫غیرشرقی‬ ‫های‬ ‫زبان‬ ‫در‬ ‫نوشتن‬ ‫برای‬ ‫نیاز‬ ‫مورد‬ ‫نمادهای‬ ‫و‬ ‫حروف‬ ‫تمام‬ ‫تعداد‬ 256 ‫است‬ . ‫و‬ ‫دهند‬ ‫می‬ ‫اختصاص‬ ‫کد‬ ‫یک‬ ‫کدام‬ ‫هر‬ ‫به‬ ‫بنابراین‬ 1 byte ‫کاراکتر‬ ‫هر‬ ‫برای‬ ‫حافظه‬ character ‫استفاده‬ ‫کنند‬ ‫می‬  ‫گذاری‬ ‫کد‬ ‫روش‬ ‫مهمترین‬ ASCII ‫است‬  ‫از‬ ‫بیشتر‬ ‫شرقی‬ ‫های‬ ‫زبان‬ 256 ‫دارند‬ ‫نیاز‬ ‫حرف‬ . ‫نام‬ ‫به‬ ‫کدگذاری‬ ‫روش‬ ‫یک‬ ‫آنها‬ ‫سازگاری‬ ‫برای‬ Unicode ‫بوجود‬ ‫است‬ ‫آمده‬ . ‫شود‬ ‫می‬ ‫استفاده‬ ‫حافظه‬ ‫بایت‬ ‫دو‬ ‫از‬ ‫روش‬ ‫این‬ ‫در‬ . 256 ‫با‬ ‫آن‬ ‫اول‬ ‫حرف‬ ASCII ‫است‬ ‫یکی‬ .  ‫سوال‬ : ‫روش‬ unicode ‫دهد؟‬ ‫نشان‬ ‫تواند‬ ‫می‬ ‫را‬ ‫حرف‬ ‫تعداد‬ ‫چه‬ BINARIES (‫)دوتایی‌ها‬
  • 33. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 36 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. BINARIES (‫)دوتایی‌ها‬
  • 34. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 37 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. BINARIES (‫)دوتایی‌ها‬
  • 35. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 38 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫کنند؟‬ ‫می‬ ‫ذخیره‬ ‫حافظه‬ ‫در‬ ‫چطور‬ ‫را‬ ‫حقیقی‬ ‫اعداد‬  ‫شوند‬ ‫می‬ ‫نوشته‬ ‫علمی‬ ‫نمادگذاری‬ ‫با‬ ‫آسانی‬ ‫به‬ ‫کوچک‬ ‫بسیار‬ ‫یا‬ ‫بزرگ‬ ‫بسیار‬ ‫اعداد‬  ‫مثال‬ : ‫نور‬ ‫سرعت‬ 299800000 ‫متربرثانیه‬ . 2.998108  ‫مبنای‬ ‫در‬ ‫حقیقی‬ ‫عدد‬ 2 : ‫نما‬ 2  ‫اعشاری‬ ‫جزء‬ = ‫مقدار‬  XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx  ‫نما‬ 8 ‫اعشاری‬ ‫جزء‬ ‫بیتی‬ 24 ‫بیتی‬  ‫دقت‬ ‫دهنده‬ ‫نشان‬ ‫بازه‬ ‫دهنده‬ ‫نشان‬ BINARIES (‫)دوتایی‌ها‬
  • 36. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 39 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  Problem  ‫مساله‬ :  ‫بنویسید‬ ‫را‬ ‫خود‬ ‫دانشجویی‬ ‫شماره‬ . ‫کنید‬ ‫جدا‬ ‫دانشجویی‬ ‫شماره‬ ‫از‬ ‫رقمی‬ ‫دو‬ ‫عدد‬ ‫دو‬ ‫راست‬ ‫سمت‬ ‫از‬ .  ‫کنید‬ ‫دوم‬ ‫عدد‬ ‫منهای‬ ‫را‬ ‫اول‬ ‫عدد‬ .  ‫مبنای‬ ‫در‬ ‫را‬ ‫باال‬ ‫تفریق‬ 2 ‫دهید‬ ‫انجام‬ .  ‫مثال‬ : BINARIES (‫)دوتایی‌ها‬ No.2 No.1 XXXX XX XX No.2 No.1 839310 65 65 10 55  
  • 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 (‫)زبان‌های‌برنامه‌نویسی‬
  • 47. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 50 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  Frequently-Asked Questions (FAQ) ? PROGRAMMING
  • 48. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 51 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. Lecture  Programming  Data Types  Operators  Variables INTRODUCTION PROGRAMMING
  • 49. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 52 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  Building Blocks of Programs (‫برنامه‬ ‫اولیه‬ ‫)اجزای‬  Values (‫)مقدارها‬: Primitive data elements ‫ابتدایی‬ ‫های‬ ‫داده‬  Numbers ‫اعداد‬  Integer ‫صحیح‬ ‫اعداد‬ 3  Floating point or Real ‫اعشار‬ ‫یا‬ ‫حقیقی‬ ‫اعداد‬ 3.14  Characters ‫ها‬ ‫رشته‬ ‫یا‬ ‫حروف‬ ’abc’ ’52’ ≠ 52  Variables (‫)متغیرها‬  myname = ‘abc’ string or character (‫حرف‬ ‫یا‬ ‫)رشته‬  myage = 25 integer (‫)صحیح‬  myweight = 87.5 real or float (‫)حقیقی‬  Operators (‫)عملگرها‬  Arithmetic operators ‫حساب‬ ‫عملگرهای‬ + * - / **  Comparisons ‫ای‬ ‫مقایسه‬ ‫عملگرهای‬ == > < >= /=  Logic Operators ‫منطقی‬ ‫عملگرهای‬ .and. .or. .not. BUILDING BLOCKS OF PROGRAMS (‫)اجزای‌اولیه‌برنامه‬
  • 50. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 53 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  A variable is an address!  Variable Types (‫متغیرها‬ ‫)نوع‬  Integer (‫)صحیح‬  Real (‫)حقیقی‬  Character / String ( ‫حرف‬ / ‫حروف‬ ‫رشته‬ ) VARIABLES
  • 51. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 54 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫برنامه‬ ‫یک‬ ‫ساختمان‬ ‫آجرهای‬  Values (‫)مقدارها‬  Operator (‫)عملگرها‬ ====> Expressions (‫ها‬ ‫)عبارت‬  Variables (‫)متغیر‬  Commands (‫)فرمان‬  Assignment (‫)تخصیص‬  Statement (‫)دستور‬ BUILDING BLOCKS OF PROGRAMS
  • 52. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 55 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. THE STRUCTURE OF FORTRAN PROGRAM
  • 53. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 56 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫فرترن‬ ‫برنامه‬ ‫یک‬ ‫ساختار‬  ‫معرفی‬ ‫بخش‬  ‫اجرا‬ ‫بخش‬  ‫پایانی‬ ‫بخش‬ THE STRUCTURE OF FORTRAN PROGRAM
  • 54. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 57 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. ‫معرفی‬ ‫اجرا‬ ‫پایان‬  ‫فرترن‬ ‫برنامه‬ ‫یک‬ ‫ساختار‬ ‫با‬ ‫آشنایی‬  ‫کنیم‬ ‫می‬ ‫تعریف‬ ‫برنامه‬ ‫معرفی‬ ‫قسمت‬ ‫در‬ ‫را‬ ‫آنها‬ ‫نوع‬ ‫و‬ ‫استفاده‬ ‫مورد‬ ‫متغیرهای‬ ‫اسم‬ . ‫مثال‬ : THE STRUCTURE OF FORTRAN PROGRAM program pro1 implicit none real :: a integer :: i,j character(12)::name a = 3.14 i = 1 j = 23 name = ‘Hamid’ print *, a, i, j, name end program ‌‫‌متغیر‌حقیقی‬،‫این‌دستور‬ a ‫را‌معرفی‌می‌کند‬ ‌‫دو‌متغیر‌صحیح‬ i ‌‫و‬ j ‫را‌معرفی‌می‌کند‬ ‌‫یک‌متغیر‌حرفی‌با‬ 12 ‫حرف‬ ‌‫به‌نام‬ name ‫معرفی‌می‌کند‬ ‫در‌بخش‌اجرا‌دستورات‌به‌ترتیب‬ ‫خط‌به‌خط‌از‌باال‌به‌پایین‌خوانده‌و‌اجرا‌می‌شوند‬ . ‌،‫به‌ترتیب‌اجرای‌دستورات‬ ‫جریان‬ ‫کنترل‬ ‫برنامه‌گویند‬ .
  • 55. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 58 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫ورودی‬ ‫دستورات‬ / ‫خروجی‬  ‫متغیر‬ ‫یک‬ ‫در‬ ‫آن‬ ‫ذخیره‬ ‫و‬ ‫کلید‬ ‫صفحه‬ ‫از‬ ‫مقدار‬ ‫یک‬ ‫خواندن‬ ‫برای‬  ‫نمایشگر‬ ‫روی‬ ‫عبارت‬ ‫یک‬ ‫حاصل‬ ‫یا‬ ‫متغیر‬ ‫یک‬ ‫یا‬ ،‫مقدار‬ ‫یک‬ ‫نمایش‬ ‫برای‬ INPUT / OUTPUT COMMANDS READ * PRINT *
  • 56. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 59 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. INTRODUCTION TO PROGRAMMING
  • 57. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 60 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. COMMANDS
  • 58. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 61 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. EXPRESSIONS
  • 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
  • 61. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 64 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. Lecture  Lecture 5: FORTRAN 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
  • 68. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 71 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  Operation Precedence (‫عملگرها‬ ‫اجرای‬ ‫)ترتیب‬  ‫کنید‬ ‫برآورد‬ ‫را‬ ‫روبرو‬ ‫عبارت‬ .  ‫عملگرها‬ ‫اجرای‬ ‫ترتیب‬ 1 . ‫بیرون‬ ‫به‬ ‫داخل‬ ‫از‬ ‫ـ‬ ‫پرانتز‬ ( ) 2 . ‫توان‬ _ ‫چپ‬ ‫به‬ ‫راست‬ ‫از‬ ** 3 . ‫راست‬ ‫به‬ ‫چپ‬ ‫از‬ ‫ـ‬ ‫تقسیم‬ ‫و‬ ‫ضرب‬ * / 4 . ‫راست‬ ‫به‬ ‫چپ‬ ‫از‬ ‫ـ‬ ‫تفریق‬ ‫و‬ ‫جمع‬ + -  ‫عبارت‬ ‫را‬ ‫زیر‬ ‫کنید‬ ‫برآورد‬ . Introduction to Programming 3 + 4 * 5 3. + 2. ** 2 ** 3 * 6 / ( 2 * (1 + 3)) * 4.
  • 69. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 72 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫کنید‬ ‫برآورد‬ ‫را‬ ‫زیر‬ ‫های‬ ‫عبارت‬ . Introduction to Programming 13 / 5 * 6 int(13. / 5) * 6 nint(13. / 5) * 6 mod(13,5) * 6
  • 70. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 73 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫کنید‬ ‫برآورد‬ ‫را‬ ‫زیر‬ ‫عبارت‬ . Introduction to Programming 2. * (3. + 5.) * 4. + 10. / 2. ** 3.
  • 71. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 74 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫بنویسید‬ ‫ریاضی‬ ‫رابطه‬ ‫صورت‬ ‫به‬ ‫را‬ ‫زیر‬ ‫فرترن‬ ‫عبارت‬ . Introduction to Programming distance = 0.5 * accel * t ** 2. + vel_0 * t + pos_0 freq = 1. / (2. * pi * sqrt(l * c))
  • 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        
  • 74. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 77 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. INTRINSIC FUNCTIONS
  • 75. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 78 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. INTRINSIC FUNCTIONS
  • 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.
  • 78. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 81 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. UNITS  ‫کمیت‬ ‫یک‬ ‫نوشتن‬ ‫و‬ ‫خواندن‬ ‫هنگام‬ ( ‫مقدار‬ ) ‫کنید‬ ‫بیان‬ ‫را‬ ‫واحد‬ ‫همیشه‬ ‫برنامه‬ ‫در‬ ‫فیزیکی‬ .  ‫برنامه‬ ‫متن‬ ‫در‬ ‫هم‬ ( ‫توضیح‬ ‫صورت‬ ‫به‬ ) ‫ورودی‬ ‫هم‬ ‫و‬ / ‫خروجی‬  ‫است‬ ‫ما‬ ‫ذهن‬ ‫در‬ ‫ها‬ ‫واحد‬ ،‫کند‬ ‫می‬ ‫کار‬ ‫عددها‬ ‫با‬ ‫رایانه‬ Good Style in Programming ‫در‬ ‫خوب‬ ‫شیوه‬ ‫نویسی‬ ‫برنامه‬
  • 79. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 82 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.
  • 80. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 83 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. Lecture  How to Solve Problems with Programming?  Straight line programs PROBLEM SOLVING
  • 81. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 84 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫مساله‬ ‫حل‬ ‫روش‬ ‫نویسی‬ ‫برنامه‬ ‫کمک‬ ‫به‬ IDENTIFICATION ‫مساله‬ ‫شناسایی‬ INPUT / OUTPUT ‫ورودی‬ ‫تعیین‬ / ‫خروجی‬ ALGORITHM ‫مساله‬ ‫حل‬ ‫الگوریتم‬ ‫نوشتن‬ FLOWCHART ‫برنامه‬ ‫فلوچارت‬ ‫رسم‬ FORTRAN PROGRAM ‫فرترن‬ ‫کد‬ ‫نوشتن‬ TESTING ‫برنامه‬ ‫آزمایش‬ 1 2 3 4 5 6 HOW TO SOLVE PROBLEMS WITH PROGRAMMING
  • 82. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 85 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫مثال‬ : ‫محاسب‬ ‫را‬ ‫دکارتی‬ ‫مختصات‬ ‫دستگاه‬ ‫در‬ ‫مشخص‬ ‫نقطه‬ ‫دو‬ ‫فاصله‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬ ‫کند‬ ‫ه‬ . ‫است‬ ‫مساله‬ ‫شناسایی‬ ‫مساله‬ ‫هر‬ ‫حل‬ ‫بخش‬ ‫مهمترین‬ ‫همیشه‬ .  ‫کنید‬ ‫رسم‬ ‫را‬ ‫مساله‬ ‫هندسه‬ ‫یا‬ ‫شکل‬ .  ‫بنویسید‬ ‫کوتاه‬ ‫و‬ ‫ساده‬ ‫های‬ ‫گزاره‬ ‫با‬ :  ‫خواهد؟‬ ‫می‬ ‫چه‬ ‫مساله‬  ‫چیست؟‬ ‫یک‬ ‫هر‬ ‫واحد‬ ‫و‬ ‫جنس‬ ‫کدامند؟‬ ‫ها‬ ‫مجهول‬ ‫و‬ ‫ها‬ ‫معلوم‬  ‫داریم؟‬ ‫دسترس‬ ‫در‬ ‫ریاضی‬ ‫روابط‬ ‫یا‬ ‫اطالعات‬ ‫چه‬  ‫نکنید‬ ‫فراموش‬ : ‫شناسایی‬ ‫مرحله‬ ‫در‬ ‫نیستیم‬ ‫جواب‬ ‫دنبال‬ ‫به‬ ! IDENTIFICATION ‫شناسایی‬ 1 How To Solve Problems with Programming
  • 83. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 86 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫مثال‬ : ‫محاسب‬ ‫را‬ ‫دکارتی‬ ‫مختصات‬ ‫دستگاه‬ ‫در‬ ‫مشخص‬ ‫نقطه‬ ‫دو‬ ‫فاصله‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬ ‫کند‬ ‫ه‬ .  ‫کنید‬ ‫رسم‬ ‫را‬ ‫مقابل‬ ‫نمودار‬ .  ‫بنویسید‬ ‫دایره‬ ‫در‬ ‫و‬ ‫کرده‬ ‫انتخاب‬ ‫را‬ ‫برنامه‬ ‫اسم‬ .  ‫کرده‬ ‫تعیین‬ ‫را‬ ‫ها‬ ‫خروجی‬ ‫و‬ ‫ها‬ ‫ورودی‬ ‫کنید‬ ‫لیست‬ ‫مربوطه‬ ‫پیکان‬ ‫زیر‬ ‫و‬ .  ‫ورودی‬ ‫هر‬ ‫متغیر‬ ‫برای‬ ‫اسم‬ ‫یک‬ / ‫کنید‬ ‫انتخاب‬ ‫خروجی‬ .  ‫ورودی‬ ‫هر‬ ‫نوع‬ / ‫کنید‬ ‫تعیین‬ ‫را‬ ‫خروجی‬ . ? IN OUT INPUT / OUTPUT ‫ورودی‬ / ‫خروجی‬ 2 How To Solve Problems with Programming
  • 84. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 87 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫مثال‬ : ‫محاسب‬ ‫را‬ ‫دکارتی‬ ‫مختصات‬ ‫دستگاه‬ ‫در‬ ‫مشخص‬ ‫نقطه‬ ‫دو‬ ‫فاصله‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬ ‫کند‬ ‫ه‬ .  ‫دهید‬ ‫اختصاص‬ ‫فرضی‬ ‫مقادیر‬ ‫ها‬ ‫ورودی‬ ‫به‬ .  ‫کنید‬ ‫حل‬ ‫را‬ ‫مساله‬ ‫فرضی‬ ‫های‬ ‫ورودی‬ ‫با‬ ..  ‫است‬ ‫شده‬ ‫طی‬ ‫مراحلی‬ ‫چه‬ ‫مساله‬ ‫حل‬ ‫برای‬ ‫ببینید‬ .  ‫کنید‬ ‫لیست‬ ‫ترتیب‬ ‫به‬ ‫را‬ ‫مساله‬ ‫حل‬ ‫مراحل‬ .  ‫بنویسید‬ ‫را‬ ‫کلی‬ ‫مراحل‬ ‫ابتدا‬ ‫است‬ ‫پیچیده‬ ‫مساله‬ ‫اگر‬ .  ‫کنید‬ ‫حل‬ ‫جداگانه‬ ‫مساله‬ ‫یک‬ ‫صورت‬ ‫به‬ ‫را‬ ‫کلی‬ ‫مرحله‬ ‫هر‬ ‫سپس‬ .  ‫کنید‬ ‫آزمایش‬ ‫را‬ ‫الگوریتم‬ . ? IN OUT ALGORITHM ‫مساله‬ ‫حل‬ ‫الگوریتم‬ 3 How To Solve Problems with Programming
  • 85. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 88 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫مثال‬ : ‫محاسب‬ ‫را‬ ‫دکارتی‬ ‫مختصات‬ ‫دستگاه‬ ‫در‬ ‫مشخص‬ ‫نقطه‬ ‫دو‬ ‫فاصله‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬ ‫کند‬ ‫ه‬ .  ‫نماد‬ ‫با‬ ‫را‬ ‫فلوچارت‬ ‫رسم‬ START ‫کنید‬ ‫آغاز‬ .  ‫کنید‬ ‫رسم‬ ‫مرحله‬ ‫به‬ ‫مرحله‬ ‫را‬ ‫شده‬ ‫لیست‬ ‫الگوریتم‬ .  ‫االضالع‬ ‫متوازی‬ ‫نماد‬ ‫با‬ ‫ها‬ ‫ورودی‬  ‫تخصیص‬ ‫و‬ ‫محاسبات‬ ( ‫فرایند‬ ) ‫مستطیل‬ ‫نماد‬ ‫با‬  ‫خروجی‬ ‫نماد‬ ‫با‬ ‫ها‬ ‫خروجی‬  ‫پایین‬ ‫به‬ ‫باال‬ ‫از‬ ‫برنامه‬ ‫جریان‬ ‫کنترل‬ ‫خط‬  ‫نماد‬ ‫با‬ ‫برنامه‬ ‫پایان‬ END ‫شروع‬ ‫مشابه‬  ‫کنید‬ ‫آزمایش‬ ‫را‬ ‫فلوچارت‬ . FLOWCHART ‫فلوچارت‬ 4 START / END ‫پایان‬ / ‫شروع‬ PROCESS ‫فرایند‬ ‫ـ‬ ‫محاسبات‬ INPUT ‫ورودی‬ OUTPUT ‫خروجی‬ DECISIONS ‫گیری‬ ‫تصمیم‬ How To Solve Problems with Programming
  • 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
  • 93. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 96 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech. Lecture  CONDITIONALS BRANCHING PROGRAMS
  • 94. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 97 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫ای‬ ‫شاخه‬ ‫های‬ ‫برنامه‬  ‫مثال‬ : ‫دانشجو‬ ‫یک‬ ‫درسی‬ ‫نمره‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬ ‫دانشجو‬ ‫که‬ ‫کند‬ ‫مشخص‬ ‫خروجی‬ ‫در‬ ‫و‬ ‫گرفته‬ ‫را‬ ‫است؟‬ ‫شده‬ ‫رد‬ ‫یا‬ ‫گذرانده‬ ‫را‬ ‫درس‬ Branching Programs, Conditionals IDENTIFICATION ‫شناسایی‬ INPUT / OUTPUT ‫ورودی‬ / ‫خروجی‬ ALGORITHM ‫الگوریتم‬ FLOWCHART ‫فلوچارت‬ FORTRAN PROGRAM ‫فرترن‬ ‫کد‬ TESTING ‫آزمایش‬ 1 2 3 4 5 6
  • 95. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 98 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫ای‬ ‫شاخه‬ ‫های‬ ‫برنامه‬  ‫مثال‬ : ‫دانشجو‬ ‫یک‬ ‫درسی‬ ‫نمره‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬ ‫دانشجو‬ ‫که‬ ‫کند‬ ‫مشخص‬ ‫خروجی‬ ‫در‬ ‫و‬ ‫گرفته‬ ‫را‬ ‫است؟‬ ‫شده‬ ‫رد‬ ‫یا‬ ‫گذرانده‬ ‫را‬ ‫درس‬  ‫بین‬ ‫درسی‬ ‫نمره‬ ‫یک‬ ‫ورودی‬ 0 ‫تا‬ 20  ‫است‬ ‫حرف‬ ‫نوع‬ ‫از‬ ‫متغیر‬ ‫یک‬ ‫خروجی‬ ‫خروجی‬ ‫متغیر‬ ،‫شده‬ ‫وارد‬ ‫نمره‬ ‫مقدار‬ ‫به‬ ‫بسته‬ ‫که‬ ‫باشد‬ ‫داشته‬ ‫تواند‬ ‫می‬ ‫مقدار‬ ‫دو‬ : “Pass” ‫یا‬ “Fail” Branching Programs, Conditionals ? IN mark (real) OUT state (character) INPUT / OUTPUT ‫ورودی‬ / ‫خروجی‬ 2
  • 96. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 99 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫ای‬ ‫شاخه‬ ‫های‬ ‫برنامه‬  ‫مثال‬ : ‫دانشجو‬ ‫یک‬ ‫درسی‬ ‫نمره‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬ ‫دانشجو‬ ‫که‬ ‫کند‬ ‫مشخص‬ ‫خروجی‬ ‫در‬ ‫و‬ ‫گرفته‬ ‫را‬ ‫است؟‬ ‫شده‬ ‫رد‬ ‫یا‬ ‫گذرانده‬ ‫را‬ ‫درس‬  ‫مساله‬ ‫حل‬ ‫الگوریتم‬ : 1 - mark ‫بخوان‬ ‫ورودی‬ ‫از‬ ‫را‬ 2 - ‫اگر‬ mark>10 ‫آنگاه‬ ‫بود‬ 2 - 1 - state ‫برابر‬ ‫را‬ “Pass” ‫بده‬ ‫قرار‬ 3 - ‫اگر‬ mark<10 ‫آنگاه‬ ‫بود‬ 3 - 1 - ‫متغیر‬ state ‫برابر‬ ‫را‬ “Fail” ‫بده‬ ‫قرار‬ 4 - ‫متغیر‬ ‫مقدار‬ state ‫کن‬ ‫چاپ‬ ‫خروجی‬ ‫در‬ ‫را‬ Branching Programs, Conditionals ? IN mark (real) OUT state (character) ALGORITHM ‫الگوریتم‬ 3
  • 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
  • 99. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 102 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫ای‬ ‫شاخه‬ ‫های‬ ‫برنامه‬  ‫مثال‬ : ‫دانشجو‬ ‫یک‬ ‫درسی‬ ‫نمره‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬ ‫دانشجو‬ ‫که‬ ‫کند‬ ‫مشخص‬ ‫خروجی‬ ‫در‬ ‫و‬ ‫گرفته‬ ‫را‬ ‫است؟‬ ‫شده‬ ‫رد‬ ‫یا‬ ‫گذرانده‬ ‫را‬ ‫درس‬  ‫مساله‬ ‫حل‬ ‫الگوریتم‬ ( ‫روش‬ 2 :) 1 - mark ‫بخوان‬ ‫ورودی‬ ‫از‬ ‫را‬ 2 - ‫اگر‬ mark>10 ‫آنگاه‬ ‫بود‬ 2 - 1 - state ‫برابر‬ ‫را‬ “Pass” ‫بده‬ ‫قرار‬ 3 - ‫آنگاه‬ ‫بود‬ ‫درغیراینصورت‬ 3 - 1 - ‫متغیر‬ state ‫برابر‬ ‫را‬ “Fail” ‫بده‬ ‫قرار‬ 4 - ‫متغیر‬ ‫مقدار‬ state ‫کن‬ ‫چاپ‬ ‫خروجی‬ ‫در‬ ‫را‬ Branching Programs, Conditionals ? IN mark (real) OUT state (character)
  • 100. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 103 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫ای‬ ‫شاخه‬ ‫های‬ ‫برنامه‬  ‫مثال‬ : ‫دانشجو‬ ‫یک‬ ‫درسی‬ ‫نمره‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬ ‫دانشجو‬ ‫که‬ ‫کند‬ ‫مشخص‬ ‫خروجی‬ ‫در‬ ‫و‬ ‫گرفته‬ ‫را‬ ‫است؟‬ ‫شده‬ ‫رد‬ ‫یا‬ ‫گذرانده‬ ‫را‬ ‫درس‬  ‫مساله‬ ‫حل‬ ‫الگوریتم‬ ( ‫روش‬ 3 :) 1 - mark ‫بخوان‬ ‫ورودی‬ ‫از‬ ‫را‬ 2 - state ‫برابر‬ ‫را‬ ‘Pass’ ‫بده‬ ‫قرار‬ 3 - ‫اگر‬ mark<10 ‫آنگاه‬ ‫بود‬ 3 - 1 ‫متغیر‬ state ‫برابر‬ ‫را‬ “Fail” ‫بده‬ ‫قرار‬ 4 - ‫متغیر‬ ‫مقدار‬ state ‫کن‬ ‫چاپ‬ ‫خروجی‬ ‫در‬ ‫را‬ Branching Programs, Conditionals ? IN mark (real) OUT state (character)
  • 101. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 104 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫ای‬ ‫شاخه‬ ‫های‬ ‫برنامه‬  ‫مثال‬ : ‫و‬ ‫بگیرد‬ ‫ورودی‬ ‫از‬ ‫صحیح‬ ‫عدد‬ ‫یک‬ ‫که‬ ‫بنویسید‬ ‫ای‬ ‫برنامه‬ ‫فرد‬ ‫عدد‬ ‫که‬ ‫کند‬ ‫مشخص‬ ‫خروجی‬ ‫در‬ (Odd) ‫زوج‬ ‫یا‬ ‫است‬ (Even) ‫؟‬ Branching Programs, Conditionals
  • 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
  • 103. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫کامپیوتر‬ ‫علم‬ ‫با‬ ‫آشنایی‬ INT. COMP. SCI. & PROGRAMMING 106 ‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬ ،‫متالورژی‬ ‫و‬ ‫معدن‬ ‫مهندسی‬ ‫دانشکده‬ Dept. of Mine and Metallurgy, Amirkabir Uni. of Tech.  ‫خروجی‬ ‫زیر‬ ‫های‬ ‫برنامه‬ ‫از‬ ‫یک‬ ‫هر‬ ‫چیست؟‬ 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