ݺߣ

ݺߣShare a Scribd company logo
Computer Programming Core Concepts
‫کامپیوتر‬ ‫نویسی‬ ‫برنامه‬ ‫اساسی‬ ‫مفاهیم‬
https://hosseinzahed.com
hello@hosseinzahed.com
1
Hossein Zahed ‫زاهد‬ ‫حسین‬
-
Computer Parts – ‫کامپیوتر‬ ‫اجزای‬
•
‫اصلی‬ ‫بورد‬
(Mother Board)
•
‫مدت‬ ‫بلند‬ ‫حافظه‬
(Hard Disk)
•
‫مدت‬ ‫کوتاه‬ ‫حافظه‬
(RAM)
•
‫اصلی‬ ‫پردازشگر‬
(CPU)
•
‫گرافیکی‬ ‫پردازشگر‬
(GPU)
•
‫سیم‬ ‫بی‬ ‫ارتباطی‬ ‫ابزارهای‬
(WIFI, Bluetooth)
•
‫خروجی‬ ‫و‬ ‫ورود‬ ‫های‬ ‫پورت‬
(USB, HDMI, DP)
•
‫برق‬ ‫تغذیه‬ ‫منبع‬
(Power)
https://hosseinzahed.com
hello@hosseinzahed.com
2
Variables – ‫متغیرها‬
•
‫از‬ ‫استفاده‬ ‫و‬ ‫دسترسی‬ ‫برای‬ ‫روشی‬
RAM
•
‫دهی‬ ‫مقدار‬
(
‫در‬ ‫ذخیره‬
RAM
)
•
‫بازخوانی‬
(
‫از‬ ‫خواندن‬
RAM
)
•
‫از‬ ‫شدن‬ ‫حذف‬
RAM
https://hosseinzahed.com
hello@hosseinzahed.com
3
x = 5
print(x)
Memory (RAM)
…
5
…
…
…
…
Data Types – ‫داده‬ ‫انواع‬
Data Type ‫داده‬ ‫نوع‬
Character (Unicode / UTF-8) ‫حرف‬ ‫تک‬
(
‫زبانها‬ ‫تمام‬ ‫به‬
)
String ‫حروف‬ ‫از‬ ‫ای‬ ‫رشته‬
(
‫متن‬ ،‫جمله‬ ،‫کلمه‬
)
Boolean (true or false) ‫خیر‬ ‫یا‬ ‫بله‬ ،‫غلط‬ ‫یا‬ ‫درست‬ ،‫یک‬ ‫و‬ ‫صفر‬
Number ‫عدد‬
(
‫اعشاری‬ ،‫صحیح‬ ،‫منفی‬ ،‫مثبت‬
)
Date & Time ‫ساعت‬ ‫و‬ ‫تاریخ‬
Array / List / Collection ‫مجموعه‬ ،‫لیست‬ ،‫آرایه‬
Dictionary (Key-Value pair) ‫کلید‬ ‫از‬ ‫لیستی‬
-
‫مقدار‬
Null / None / Nil ‫خالی‬ ،‫نشده‬ ‫دهی‬ ‫مقدار‬
Object ‫ها‬ ‫متغیر‬ ‫تمام‬ ‫ای‬ ‫ریشه‬ ‫و‬ ‫اصلی‬ ‫ساختار‬
Stack, Tree, Queue, Graph, Linked List ‫تر‬ ‫پیچیده‬ ‫ساختارهای‬
(
‫متصل‬ ‫های‬ ‫لیست‬ ،‫گراف‬ ،‫درخت‬
)
https://hosseinzahed.com
hello@hosseinzahed.com
4
Coding Syntax – ‫کدنویسی‬ ‫روش‬
•
‫مختلف‬ ‫های‬ ‫زبان‬ ‫در‬ ‫کدنویسی‬ ‫روش‬
•
‫کد‬ ‫های‬ ‫بلوک‬ ‫ساختار‬
•
‫زبان‬ ‫هر‬ ‫در‬ ‫کدنویسی‬ ‫های‬ ‫قرارداد‬
https://hosseinzahed.com
hello@hosseinzahed.com
5
// C++ code
#include <iostream>
using namespace std;
int main() {
string greet = "Hello World";
cout << greet;
return 0;
}
# python code
greet = "Hello World"
print(greet)
Algorithms – ‫ها‬ ‫الگوریتم‬
•
‫مسئله‬ ‫یک‬ ‫حل‬ ‫های‬ ‫روش‬
•
‫نهایتا‬ ‫که‬ ‫دستورات‬ ‫از‬ ‫ترتیبی‬
‫توسط‬
CPU
‫شوند‬ ‫می‬ ‫پردازش‬
•
‫چارت‬ ‫فلو‬
–
Flow Chart
(
‫دستورات‬ ‫و‬ ‫ها‬ ‫پروسه‬ ‫نمایش‬
)
•
‫مصنوعی‬ ‫کدنویسی‬
–
Pseudocode
https://hosseinzahed.com
hello@hosseinzahed.com
6
Flow Structure – Selection (Conditionals)
‫شرطی‬ ‫یا‬ ‫انتخابی‬ ‫ساختار‬
•
‫شرط‬ ‫یک‬ ‫ارزیابی‬ ‫برای‬ ‫گیری‬ ‫تصمیم‬ ‫روش‬
•
‫های‬ ‫کد‬
if – else – elseif
‫ای‬ ‫مرحله‬ ‫ارزیابی‬ ‫برای‬
•
‫های‬ ‫کد‬
switch
‫فرض‬ ‫پیش‬ ‫های‬ ‫حالت‬ ‫ارزیابی‬ ‫برای‬
https://hosseinzahed.com
hello@hosseinzahed.com
7
number = 10
if number > 0:
print('Positive number')
else:
print('Negative number')
lang = input("What's the programming language you want to learn? ")
match lang:
case "Python":
print("You can become a Data Scientist")
case “Java":
print("You can become a mobile app developer")
case _:
print("The language doesn't matter, what matters is solving problems.")
Flow Structure – Iteration (Loops)
‫حلقه‬ ‫ساختار‬
•
‫شرط‬ ‫یک‬ ‫مبنای‬ ‫بر‬ ‫کد‬ ‫از‬ ‫بخشی‬ ‫تکرار‬ ‫برای‬ ‫روشی‬
•
‫خاص‬ ‫کاربردهای‬ ‫برای‬ ‫شرط‬ ‫بدون‬ ‫های‬ ‫حلقه‬
https://hosseinzahed.com
hello@hosseinzahed.com
8
fruits = ["apple", "banana", "cherry"]
for item in fruits:
print(item)
fruits = ["apple", "banana", "cherry"]
for item in fruits:
if item == "banana":
break
print(item)
IDE (Integrated Development Environment)
‫نویسی‬ ‫برنامه‬ ‫جامع‬ ‫های‬ ‫محیط‬
• Visual Studio Code (Microsoft)
• Visual Studio (Microsoft)
• Rider (JetBrains)
• IntelliJ (JetBrains)
• Eclipse (Eclipse Foundation)
Main Features
- Code compilation
- Syntax highlighting
- Debugging
- Testing
- Organizing
https://hosseinzahed.com
hello@hosseinzahed.com
9
Debugging – ‫زدایی‬ ‫اشکال‬
•
‫کدنویسی‬ ‫در‬ ‫اشکاالت‬ ‫رفع‬ ‫و‬ ‫یافتن‬ ‫برای‬ ‫هایی‬ ‫تکنیک‬ ‫و‬ ‫روشها‬
•
‫فراوان‬ ‫حوصله‬ ‫و‬ ‫صبر‬ ‫و‬ ‫کنجاوی‬ ‫نیازمند‬
•
‫میشود‬ ‫تقویت‬ ‫تجربه‬ ‫با‬ ‫که‬ ‫مهارتی‬
•
‫امکانات‬ ‫از‬ ‫صحیح‬ ‫استفاده‬
IDE
https://hosseinzahed.com
hello@hosseinzahed.com
10
Programming Paradigms
‫نویسی‬ ‫برنامه‬ ‫های‬ ‫پارادایم‬
•
‫آنها‬ ‫امکانات‬ ‫مبنای‬ ‫بر‬ ‫نویسی‬ ‫برنامه‬ ‫های‬ ‫زبان‬ ‫بندی‬ ‫دسته‬ ‫برای‬ ‫روشی‬
• OOP: C#, Java, Python, PHP, C++
• Functional: F#, Haskell, Lisp, Erlang
• Machine Code: Assembly
https://en.wikipedia.org/wiki/Programming_paradigm
https://hosseinzahed.com
hello@hosseinzahed.com
11
The Best Programming Language
‫نویسی‬ ‫برنامه‬ ‫زبان‬ ‫بهترین‬
•
‫نویسی؟‬ ‫برنامه‬ ‫زبان‬ ‫بهترین‬
!
•
‫اساس‬ ‫بر‬ ‫زبان‬ ‫انتخاب‬
:
•
‫آن‬ ‫کاربرد‬ ‫و‬ ‫پارادایم‬
•
‫پیشین‬ ‫های‬ ‫تجربه‬
•
‫پروژه‬ ‫نیازمندهای‬
•
‫میزبانی‬ ‫فضای‬ ‫امکانات‬
•
‫همکاران‬ ‫و‬ ‫فنی‬ ‫تیم‬ ‫دانش‬
•
‫آموزشی‬ ‫منابع‬
•
‫فنی‬ ‫پشتیبانی‬
•
‫یادگیری‬ ‫منحنی‬
(Learning Curve)
https://hosseinzahed.com
hello@hosseinzahed.com
12

More Related Content

مفاهیم اساسی برنامه نویسی کامپیوتر

  • 1. Computer Programming Core Concepts ‫کامپیوتر‬ ‫نویسی‬ ‫برنامه‬ ‫اساسی‬ ‫مفاهیم‬ https://hosseinzahed.com hello@hosseinzahed.com 1 Hossein Zahed ‫زاهد‬ ‫حسین‬ -
  • 2. Computer Parts – ‫کامپیوتر‬ ‫اجزای‬ • ‫اصلی‬ ‫بورد‬ (Mother Board) • ‫مدت‬ ‫بلند‬ ‫حافظه‬ (Hard Disk) • ‫مدت‬ ‫کوتاه‬ ‫حافظه‬ (RAM) • ‫اصلی‬ ‫پردازشگر‬ (CPU) • ‫گرافیکی‬ ‫پردازشگر‬ (GPU) • ‫سیم‬ ‫بی‬ ‫ارتباطی‬ ‫ابزارهای‬ (WIFI, Bluetooth) • ‫خروجی‬ ‫و‬ ‫ورود‬ ‫های‬ ‫پورت‬ (USB, HDMI, DP) • ‫برق‬ ‫تغذیه‬ ‫منبع‬ (Power) https://hosseinzahed.com hello@hosseinzahed.com 2
  • 3. Variables – ‫متغیرها‬ • ‫از‬ ‫استفاده‬ ‫و‬ ‫دسترسی‬ ‫برای‬ ‫روشی‬ RAM • ‫دهی‬ ‫مقدار‬ ( ‫در‬ ‫ذخیره‬ RAM ) • ‫بازخوانی‬ ( ‫از‬ ‫خواندن‬ RAM ) • ‫از‬ ‫شدن‬ ‫حذف‬ RAM https://hosseinzahed.com hello@hosseinzahed.com 3 x = 5 print(x) Memory (RAM) … 5 … … … …
  • 4. Data Types – ‫داده‬ ‫انواع‬ Data Type ‫داده‬ ‫نوع‬ Character (Unicode / UTF-8) ‫حرف‬ ‫تک‬ ( ‫زبانها‬ ‫تمام‬ ‫به‬ ) String ‫حروف‬ ‫از‬ ‫ای‬ ‫رشته‬ ( ‫متن‬ ،‫جمله‬ ،‫کلمه‬ ) Boolean (true or false) ‫خیر‬ ‫یا‬ ‫بله‬ ،‫غلط‬ ‫یا‬ ‫درست‬ ،‫یک‬ ‫و‬ ‫صفر‬ Number ‫عدد‬ ( ‫اعشاری‬ ،‫صحیح‬ ،‫منفی‬ ،‫مثبت‬ ) Date & Time ‫ساعت‬ ‫و‬ ‫تاریخ‬ Array / List / Collection ‫مجموعه‬ ،‫لیست‬ ،‫آرایه‬ Dictionary (Key-Value pair) ‫کلید‬ ‫از‬ ‫لیستی‬ - ‫مقدار‬ Null / None / Nil ‫خالی‬ ،‫نشده‬ ‫دهی‬ ‫مقدار‬ Object ‫ها‬ ‫متغیر‬ ‫تمام‬ ‫ای‬ ‫ریشه‬ ‫و‬ ‫اصلی‬ ‫ساختار‬ Stack, Tree, Queue, Graph, Linked List ‫تر‬ ‫پیچیده‬ ‫ساختارهای‬ ( ‫متصل‬ ‫های‬ ‫لیست‬ ،‫گراف‬ ،‫درخت‬ ) https://hosseinzahed.com hello@hosseinzahed.com 4
  • 5. Coding Syntax – ‫کدنویسی‬ ‫روش‬ • ‫مختلف‬ ‫های‬ ‫زبان‬ ‫در‬ ‫کدنویسی‬ ‫روش‬ • ‫کد‬ ‫های‬ ‫بلوک‬ ‫ساختار‬ • ‫زبان‬ ‫هر‬ ‫در‬ ‫کدنویسی‬ ‫های‬ ‫قرارداد‬ https://hosseinzahed.com hello@hosseinzahed.com 5 // C++ code #include <iostream> using namespace std; int main() { string greet = "Hello World"; cout << greet; return 0; } # python code greet = "Hello World" print(greet)
  • 6. Algorithms – ‫ها‬ ‫الگوریتم‬ • ‫مسئله‬ ‫یک‬ ‫حل‬ ‫های‬ ‫روش‬ • ‫نهایتا‬ ‫که‬ ‫دستورات‬ ‫از‬ ‫ترتیبی‬ ‫توسط‬ CPU ‫شوند‬ ‫می‬ ‫پردازش‬ • ‫چارت‬ ‫فلو‬ – Flow Chart ( ‫دستورات‬ ‫و‬ ‫ها‬ ‫پروسه‬ ‫نمایش‬ ) • ‫مصنوعی‬ ‫کدنویسی‬ – Pseudocode https://hosseinzahed.com hello@hosseinzahed.com 6
  • 7. Flow Structure – Selection (Conditionals) ‫شرطی‬ ‫یا‬ ‫انتخابی‬ ‫ساختار‬ • ‫شرط‬ ‫یک‬ ‫ارزیابی‬ ‫برای‬ ‫گیری‬ ‫تصمیم‬ ‫روش‬ • ‫های‬ ‫کد‬ if – else – elseif ‫ای‬ ‫مرحله‬ ‫ارزیابی‬ ‫برای‬ • ‫های‬ ‫کد‬ switch ‫فرض‬ ‫پیش‬ ‫های‬ ‫حالت‬ ‫ارزیابی‬ ‫برای‬ https://hosseinzahed.com hello@hosseinzahed.com 7 number = 10 if number > 0: print('Positive number') else: print('Negative number') lang = input("What's the programming language you want to learn? ") match lang: case "Python": print("You can become a Data Scientist") case “Java": print("You can become a mobile app developer") case _: print("The language doesn't matter, what matters is solving problems.")
  • 8. Flow Structure – Iteration (Loops) ‫حلقه‬ ‫ساختار‬ • ‫شرط‬ ‫یک‬ ‫مبنای‬ ‫بر‬ ‫کد‬ ‫از‬ ‫بخشی‬ ‫تکرار‬ ‫برای‬ ‫روشی‬ • ‫خاص‬ ‫کاربردهای‬ ‫برای‬ ‫شرط‬ ‫بدون‬ ‫های‬ ‫حلقه‬ https://hosseinzahed.com hello@hosseinzahed.com 8 fruits = ["apple", "banana", "cherry"] for item in fruits: print(item) fruits = ["apple", "banana", "cherry"] for item in fruits: if item == "banana": break print(item)
  • 9. IDE (Integrated Development Environment) ‫نویسی‬ ‫برنامه‬ ‫جامع‬ ‫های‬ ‫محیط‬ • Visual Studio Code (Microsoft) • Visual Studio (Microsoft) • Rider (JetBrains) • IntelliJ (JetBrains) • Eclipse (Eclipse Foundation) Main Features - Code compilation - Syntax highlighting - Debugging - Testing - Organizing https://hosseinzahed.com hello@hosseinzahed.com 9
  • 10. Debugging – ‫زدایی‬ ‫اشکال‬ • ‫کدنویسی‬ ‫در‬ ‫اشکاالت‬ ‫رفع‬ ‫و‬ ‫یافتن‬ ‫برای‬ ‫هایی‬ ‫تکنیک‬ ‫و‬ ‫روشها‬ • ‫فراوان‬ ‫حوصله‬ ‫و‬ ‫صبر‬ ‫و‬ ‫کنجاوی‬ ‫نیازمند‬ • ‫میشود‬ ‫تقویت‬ ‫تجربه‬ ‫با‬ ‫که‬ ‫مهارتی‬ • ‫امکانات‬ ‫از‬ ‫صحیح‬ ‫استفاده‬ IDE https://hosseinzahed.com hello@hosseinzahed.com 10
  • 11. Programming Paradigms ‫نویسی‬ ‫برنامه‬ ‫های‬ ‫پارادایم‬ • ‫آنها‬ ‫امکانات‬ ‫مبنای‬ ‫بر‬ ‫نویسی‬ ‫برنامه‬ ‫های‬ ‫زبان‬ ‫بندی‬ ‫دسته‬ ‫برای‬ ‫روشی‬ • OOP: C#, Java, Python, PHP, C++ • Functional: F#, Haskell, Lisp, Erlang • Machine Code: Assembly https://en.wikipedia.org/wiki/Programming_paradigm https://hosseinzahed.com hello@hosseinzahed.com 11
  • 12. The Best Programming Language ‫نویسی‬ ‫برنامه‬ ‫زبان‬ ‫بهترین‬ • ‫نویسی؟‬ ‫برنامه‬ ‫زبان‬ ‫بهترین‬ ! • ‫اساس‬ ‫بر‬ ‫زبان‬ ‫انتخاب‬ : • ‫آن‬ ‫کاربرد‬ ‫و‬ ‫پارادایم‬ • ‫پیشین‬ ‫های‬ ‫تجربه‬ • ‫پروژه‬ ‫نیازمندهای‬ • ‫میزبانی‬ ‫فضای‬ ‫امکانات‬ • ‫همکاران‬ ‫و‬ ‫فنی‬ ‫تیم‬ ‫دانش‬ • ‫آموزشی‬ ‫منابع‬ • ‫فنی‬ ‫پشتیبانی‬ • ‫یادگیری‬ ‫منحنی‬ (Learning Curve) https://hosseinzahed.com hello@hosseinzahed.com 12