الگوریتم و فلوچارت
1.76K subscribers
334 photos
9 videos
459 files
280 links
برنامه نویسی را از اینجا شروع کنید‌؛
آموزش طراحی فلوچارت و الگوریتم |
مثال‌های عملی + دانلود رایگان |
مناسب برای برنامه‌نویسان مبتدی
#flowgorithm
گروه چت حل تمرین
https://t.me/flowchart_algorithmGp

جهت ارتباط با ادمین و تبلیغات
@Programer24h 💻
Download Telegram
سوالات پرتکرار درس مبانی برنامه‌نویسی با زبان ++C همراه با پاسخ تشریحی و خلاصه آورده شده است؛ این‌ها جزو رایج‌ترین سؤالات امتحانی هستند.


🔹 ۱. تفاوت while و do while چیست؟
پاسخ:
در while ابتدا شرط بررسی می‌شود، سپس بدنه اجرا می‌شود.
در do while ابتدا بدنه اجرا می‌شود و سپس شرط بررسی می‌شود، بنابراین حداقل یک‌بار اجرا می‌شود.
while(condition) { // ممکن است اجرا نشود } do { // حداقل یک بار اجرا می‌شود } while(condition);
🔹 ۲. تفاوت ++i و i++ چیست؟
پاسخ:
++i (پیش‌افزایش): ابتدا مقدار افزایش می‌یابد سپس استفاده می‌شود.
i++ (پس‌افزایش): ابتدا استفاده می‌شود سپس مقدار افزایش می‌یابد.
int i = 5; cout << ++i; // 6 cout << i++; // 6 (بعداً 7 می‌شود)
🔹 ۳. متغیر محلی و سراسری چیست؟
پاسخ:
محلی (Local): داخل تابع تعریف می‌شود و فقط در همان تابع قابل استفاده است.
سراسری (Global): خارج از توابع تعریف می‌شود و در کل برنامه قابل دسترسی است.
🔹 ۴. آرایه چیست؟
پاسخ:
آرایه مجموعه‌ای از چند متغیر هم‌نوع است که با یک نام مشترک و اندیس استفاده می‌شوند.
int a[5] = {1,2,3,4,5};
اندیس آرایه‌ها از ۰ شروع می‌شود.
🔹 ۵. تابع چیست و چرا استفاده می‌شود؟
پاسخ:
تابع مجموعه‌ای از دستورات است که یک کار مشخص انجام می‌دهد.
مزایا:
کاهش تکرار کد
افزایش خوانایی
اشکال‌یابی ساده‌تر
int sum(int a, int b) { return a + b; }
🔹 ۶. تفاوت break و continue چیست؟
پاسخ:
break → خروج کامل از حلقه
continue → پرش به تکرار بعدی حلقه
🔹 ۷. مقداردهی پیش‌فرض متغیرها چگونه است؟
پاسخ:
متغیرهای سراسری → صفر (0)
متغیرهای محلی → مقدار نامشخص (garbage)
🔹 ۸. اشکال کد زیر چیست؟
int a[5];
for(int i=1; i<=5; i++) cin >> a[i];

پاسخ:
اندیس آرایه از 0 تا 4 است ولی در این کد از 1 تا 5 استفاده شده.
کد صحیح:
for(int i=0; i<5; i++) cin >> a[i];
🔹 ۹. برنامه تشخیص عدد اول
int n, c = 0; cin >> n; for(int i=1; i<=n; i++) if(n % i == 0) c++; if(c == 2)
cout << "Prime";
else
cout << "Not Prime";

🔹 ۱۰. تفاوت = و == چیست؟
پاسخ:
= → انتساب مقدار
== → مقایسه دو مقدار
if(x == 5) // درست x = 5; // انتساب
🔹 ۱۱. فاکتوریل یک عدد با تابع
int fact(int n)
{ int f = 1;
for(int i=1; i<=n; i++) f *= i;
return f;
}

🔹 ۱۲. ورودی و خروجی در ++C
int x; cin >> x; cout << x;
📌 نکته امتحانی مهم
بیشترین نمره معمولاً از حلقه‌ها + آرایه + تابع + شرط می‌آید.



برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
2
📌 جزوه خلاصه شب امتحان
مبانی برنامه‌نویسی با ++C


🔹 1. ساختار کلی برنامه در ++C
#include <iostream> using namespace std; int main() { // دستورات return 0; }
🔹 2. انواع داده‌های مهم
نوع دادهحجم تقریبیint4 بایتfloat4 بایتdouble8 بایتchar1 بایت
🔹 3. عملگرها
ریاضی: + - * / %
مقایسه‌ای: == != < > <= >=
منطقی: && || !
افزایش/کاهش: ++ --
📌 تفاوت مهم:
i++; // بعد از استفاده افزایش ++i; // قبل از استفاده افزایش
🔹 4. شرط‌ها (if / else)
if (x > 0) cout << "Positive"; else cout << "Negative";
🔹 5. حلقه‌ها (بسیار مهم)
🔸 for
for(int i=0; i<5; i++) cout << i;
🔸 while
while(x > 0) { x--; }
🔸 do while
do { cin >> x; } while(x < 0);
📌 تفاوت مهم: do while حداقل یک‌بار اجرا می‌شود.
🔹 6. دستورات کنترلی
break → خروج از حلقه
continue → رفتن به تکرار بعدی
return → خروج از تابع
🔹 7. آرایه‌ها (پرتکرار)
int a[5] = {1,2,3,4,5};
📌 نکات مهم:
اندیس از 0 شروع می‌شود
آخرین اندیس = size - 1
🔹 8. رشته‌ها (string)
string name; cin >> name; cout << name;
🔹 9. توابع
int sum(int a, int b) { return a + b; }
📌 مزایا:
کاهش تکرار
خوانایی بیشتر
استفاده مجدد
🔹 10. متغیرها
🔸 محلی
داخل تابع
مقدار اولیه نامشخص
🔸 سراسری
خارج از تابع
مقدار اولیه صفر
🔹 11. ارسال پارامتر
🔸 مقدار (Value)
void f(int x) { x++; }
🔸 مرجع (Reference)
void f(int &x) { x++; }
🔹 12. ورودی و خروجی
cin >> x; cout << x;
🔹 13. برنامه‌های خیلی پرتکرار
عدد اول
bool prime(int n) { if(n < 2) return false; for(int i=2; i<n; i++) if(n % i == 0) return false; return true; }
فاکتوریل
int fact(int n)
{ int f = 1;
for(int i=1; i<=n; i++) f *= i;
return f;
}

بزرگ‌ترین عضو آرایه
int max = a[0];
for(int i=1; i<n; i++) if(a[i] > max) max = a[i];

🔹 14. اشکالات رایج امتحانی
استفاده از = به‌جای ==
خروج از محدوده آرایه
فراموش‌کردن return 0;
استفاده از متغیر محلی بدون مقداردهی
🎯 جمع‌بندی طلایی شب امتحان
اگر این‌ها را بلد باشی:


حلقه‌ها
آرایه
تابع
شرط‌ها

#flowgorithm
#فلوگوریتم
#الگوریتم #فلوچارت

برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
🙏1
۲۰ سؤال دام‌دار و پرتکرار اساتید درس مبانی برنامه‌نویسی++C همراه با پاسخ دقیق و نکته امتحانی آورده شده است. این‌ها دقیقاً همان جاهایی هستند که بیشترین اشتباه دانشجوها اتفاق می‌افتد.


🔥 ۲۰ سؤال دام‌دار ++C (با پاسخ)


---

1️⃣ خروجی کد زیر چیست؟

int i = 5;
cout << i++ + ++i;

پاسخ: 12
📌 توضیح:

i++ → 6

++i → 6



---

2️⃣ خروجی چیست؟

int x = 1;
cout << x++ << ++x;

پاسخ: 13


---

3️⃣ خروجی؟

int a = 10;
if(a = 5)
cout << "Yes";
else
cout << "No";

پاسخ: Yes
📌 دام: استفاده از = به‌جای ==


---

4️⃣ خروجی؟

int i = 0;
while(i < 3)
cout << i++;

پاسخ: 012


---

5️⃣ خروجی؟

for(int i=0; i<5; i++);
cout << i;

پاسخ: خطای کامپایل
📌 دام: سمی‌کالن اضافه بعد از for


---

6️⃣ خروجی؟

int a[3] = {1,2,3};
cout << a[3];

پاسخ: مقدار نامشخص (Garbage)
📌 دام: خروج از محدوده آرایه


---

7️⃣ خروجی؟

int x = 0;
if(x)
cout << "True";
else
cout << "False";

پاسخ: False


---

8️⃣ خروجی؟

int i = 1;
do {
cout << i;
i++;
} while(i < 1);

پاسخ: 1


---

9️⃣ خروجی؟

int x = 5;
cout << (x > 3 ? x : 3);

پاسخ: 5


---

🔟 خروجی؟

int i = 0;
for(; i<3; )
cout << ++i;

پاسخ: 123


---

1️⃣1️⃣ خروجی؟

int a = 5;
int &b = a;
b = 10;
cout << a;

پاسخ: 10


---

12 خروجی؟

int i = 1;
while(i <= 3);
{
cout << i;
i++;
}

پاسخ: حلقه بی‌نهایت
📌 دام: سمی‌کالن بعد از while


---

13 خروجی؟

int x = 10;
cout << x / 4;

پاسخ: 2
📌 دام: تقسیم صحیح (integer division)


---

14 خروجی؟

int x = 5;
cout << sizeof(x);

پاسخ: معمولاً 4


---

15 خروجی؟

char c = 'A';
cout << c + 1;

پاسخ: 66
📌 دام: تبدیل خودکار char به int (کد ASCII)


---

16 خروجی؟

int i = 5;
cout << i-- << --i;

پاسخ: 53


---

17 خروجی؟

int a = 3, b = 4;
cout << (a > b && b > 2);

پاسخ: 0 (false)


---

18 خروجی؟

int i = 0;
cout << i && i++;

پاسخ: 0
📌 دام: short-circuit → i++ اجرا نمی‌شود


---

19 خروجی؟

int x = 2;
switch(x) {
case 1: cout << "A";
case 2: cout << "B";
case 3: cout << "C";
}

پاسخ: BC
📌 دام: نبودن break


---
20 خروجی؟

int a = 0;
cout << !a;

پاسخ: 1


---

🎯 نکات طلایی استادها

سمی‌کالن بعد از for و while

استفاده از = به‌جای ==

خروج از محدوده آرایه

تقسیم صحیح

فراموشی break در switch

#flowgorithm
#فلوگوریتم #الگوریتم #فلوچارت

برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
2🤔1
📱هوش مصنوعی های طراحی سایت

#هوش_مصنوعی

@flowchart_algorithm
۳۰ سؤال تستی (چهارگزینه‌ای) زبان برنامه‌نویسی پایتون در سطح متوسط تا پیشرفته به‌همراه پاسخ صحیح آورده شده است.
سؤالات مفهومی، کدنویسی و رفتاری (behavior) پایتون را پوشش می‌دهند.

---

🟦 بخش اول: سطح متوسط (۱–۱۵)

1. خروجی کد زیر چیست؟

x = [1, 2, 3]
y = x
y.append(4)
print(x)

A) [1, 2, 3]
B) [4]
C) [1, 2, 3, 4]
D) Error

پاسخ: C


---

2. کدام ساختار داده در پایتون غیرقابل تغییر (immutable) است؟

A) list
B) dict
C) set
D) tuple

پاسخ: D


---

3. خروجی کد زیر چیست؟

print(type(lambda x: x))

A) <class 'function'>
B) <class 'lambda'>
C) <class 'generator'>
D) Error

پاسخ: A


---

4. تفاوت اصلی append() و extend() در لیست چیست؟

A) هر دو یکسان‌اند
B) append چند عضو اضافه می‌کند
C) extend لیست را به‌صورت عضو اضافه می‌کند
D) extend عناصر iterable را جداگانه اضافه می‌کند

پاسخ: D


---

5. خروجی کد زیر؟

print(0.1 + 0.2 == 0.3)

A) True
B) False
C) Error
D) None

پاسخ: B


---

6. کدام یک برای مدیریت استثناء استفاده می‌شود؟

A) if / else
B) try / except
C) for / while
D) assert

پاسخ: B


---

7. خروجی کد زیر چیست؟

a = [1, 2, 3]
b = a[:]
print(a is b)

A) True
B) False
C) Error
D) None

پاسخ: B


---

8. کدام گزینه باعث ایجاد generator می‌شود؟

A) {x for x in range(5)} B) [x for x in range(5)] C) (x for x in range(5)) D) range(5)

پاسخ: C


---

9. خروجی کد زیر؟

print(bool([]), bool({}), bool(""))

A) True True True
B) False False False
C) False True False
D) True False True

پاسخ: B


---

10. هدف اصلی init در کلاس چیست؟

A) حذف شی
B) مقداردهی اولیه شی
C) تعریف متد خصوصی
D) ایجاد کلاس

پاسخ: B


---

11. کدام گزینه یک decorator معتبر است؟

A)

@my_func
def f(): pass

B)

@decorator
def f(): pass

C)

decorator f(): pass

D)

#decorator

پاسخ: B


---

12. خروجی کد زیر؟

print("5" * 3)

A) 15
B) "555"
C) Error
D) None

پاسخ: B


---

13. کدام عملگر برای مقایسه هویت استفاده می‌شود؟

A) ==
B) =
C) is
D) in

پاسخ: C


---

14. خروجی کد زیر؟

x = None
print(x is None)

A) True
B) False
C) Error
D) 0

پاسخ: A


---

15. کدام گزینه برای خواندن فایل متنی مناسب است؟

A) open("a.txt", "w") B) open("a.txt", "r") C) open("a.txt", "a") D) open("a.txt", "x")

پاسخ: B

🟪 بخش دوم: سطح پیشرفته (۱۶–۳۰)

16. خروجی کد زیر چیست؟

def f(x, l=[]):
l.append(x)
return l

print(f(1))
print(f(2))

A) [1] و [2]
B) [1] و [1,2]
C) Error
D) [2] و [1]

پاسخ: B

17. مفهوم GIL در پایتون چیست؟

A) مدیریت حافظه
B) جلوگیری از اجرای همزمان threadها
C) افزایش سرعت CPU
D) مدیریت I/O

پاسخ: B


18. کدام گزینه باعث lazy evaluation می‌شود؟

A) list comprehension
B) tuple
C) generator
D) set

پاسخ: C



19. خروجی؟

print({i:i*i for i in range(3)})

A) {0,1,4}
B) {0:0,1:1,2:4}
C) [0,1,4]
D) Error

پاسخ: B

20. کدام ماژول برای برنامه‌نویسی async استفاده می‌شود؟

A) threading
B) multiprocessing
C) asyncio
D) concurrent

پاسخ: C

21. تفاوت اصلی @staticmethod و @classmethod چیست؟

A) staticmethod به کلاس دسترسی ندارد
B) classmethod به self دسترسی دارد
C) staticmethod کندتر است
D) تفاوتی ندارند

پاسخ: A

22. خروجی کد زیر؟

print([i for i in range(5) if i % 2])

A) [0,2,4]
B) [1,3]
C) [1,2,3,4]
D) []

پاسخ: B

23. کدام ساختار برای ارتباط بین threadها امن‌تر است؟

A) list
B) dict
C) queue.Queue
D) tuple

پاسخ: C


24. مفهوم duck typing یعنی؟

A) بررسی نوع متغیر
B) بررسی ارث‌بری
C) تمرکز بر رفتار به‌جای نوع
D) استفاده از isinstance

پاسخ: C

25. خروجی؟

print(all([True, 1, "a"]))

A) False
B) True
C) Error
D) None

پاسخ: B

26. کدام دستور حافظه اشغال‌شده توسط نام را آزاد می‌کند؟

A) free
B) del
C) clear
D) remove

پاسخ: B


27. تفاوت deep copy و shallow copy چیست؟

A) deep copy فقط مرجع را کپی می‌کند
B) shallow copy داده‌ها را جداگانه کپی می‌کند
C) deep copy تمام ساختارهای تو در تو را کپی می‌کند
D) تفاوتی ندارند

پاسخ: C


28. خروجی؟

print(type(iter([])))

A) list
B) iterator
C) <class 'list_iterator'>
D) generator

پاسخ: C

29. کدام ابزار برای تست واحد (Unit Test) استاندارد است؟

A) pytest
B) unittest
C) nose
D) doctest

پاسخ: B


30. کدام گزینه بهترین کاربرد with است؟
A) حلقه
B) مدیریت منابع (file, lock)
C) مدیریت استثناء
D) شرط

پاسخ: B


برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
1🔥1
bubble_sort_highlighted.gif
64 KB
مرتب‌سازی حبابی (Bubble Sort) یک الگوریتم ساده برای مرتب کردن آرایه است.

🔹 ایدهٔ اصلی:
در هر مرحله، دو عنصرِ کنار هم با هم مقایسه می‌شوند و اگر ترتیبشان اشتباه باشد، جابه‌جا می‌شوند.
این کار آن‌قدر تکرار می‌شود تا آرایه کاملاً مرتب شود.

🔹 چرا «حبابی»؟
چون در هر دور، بزرگ‌ترین عنصر مثل حباب به انتهای آرایه می‌رود.

🔹 ویژگی‌ها:

ساده و قابل فهم

مناسب برای آموزش مفاهیم اولیه

کارایی پایین برای داده‌های بزرگ


🔹 پیچیدگی زمانی:

حالت معمول و بدترین حالت: O(n²)

اگر آرایه تقریباً مرتب باشد: بهتر عمل می‌کند


🔹 مثال کوتاه:
[7, 2, 5] → [2, 7, 5] → [2, 5, 7]



برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
1👍1
۱۰ نمونه سؤال از مبانی برنامه‌نویسی، الگوریتم و فلوچارت (در سطح ترم اول دانشگاه) همراه با پاسخ کوتاه آورده شده است:
۱. الگوریتم چیست؟
پاسخ کوتاه:
مجموعه‌ای از مراحل مرتب و مشخص برای حل یک مسئله که ورودی را گرفته و خروجی تولید می‌کند.
۲. سه ویژگی اصلی یک الگوریتم خوب را نام ببرید.
پاسخ کوتاه:
خاتمه‌پذیری
داشتن ورودی و خروجی مشخص
واضح و بدون ابهام بودن مراحل
۳. فلوچارت چیست؟
پاسخ کوتاه:
نمایش گرافیکی الگوریتم با استفاده از اشکال استاندارد مانند بیضی، مستطیل و لوزی.
۴. کاربرد شکل لوزی در فلوچارت چیست؟
پاسخ کوتاه:
برای نمایش شرط و تصمیم‌گیری (مانند if).
۵. الگوریتمی بنویسید که عددی را گرفته و زوج یا فرد بودن آن را مشخص کند.
پاسخ کوتاه:
شروع
دریافت عدد n
اگر n mod 2 = 0 → چاپ "زوج"
در غیر این صورت → چاپ "فرد"
پایان
۶. تفاوت حلقه for و while چیست؟
پاسخ کوتاه:
در for معمولاً تعداد تکرار مشخص است؛ در while تکرار وابسته به برقرار بودن شرط است.
۷. متغیر چیست؟
پاسخ کوتاه:
محلی در حافظه برای ذخیره داده که مقدار آن می‌تواند تغییر کند.
۸. خروجی الگوریتم زیر چیست؟
x = 3 y = 2 z = x * y + 1 print(z)
پاسخ کوتاه:
7
۹. الگوریتمی برای محاسبه مجموع اعداد 1 تا n بنویسید.
پاسخ کوتاه:
شروع
دریافت n
sum = 0
از i=1 تا n
sum = sum + i
چاپ sum
پایان
۱۰. تفاوت کامپایلر و مفسر چیست؟
پاسخ کوتاه:
کامپایلر کل برنامه را یک‌جا ترجمه می‌کند؛ مفسر خط به خط اجرا و ترجمه می‌کند.

برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
1🔥1
۱۰ نمونه سؤال کمی پیشرفته‌تر از مبانی برنامه‌نویسی، الگوریتم و فلوچارت همراه با پاسخ کوتاه:
۱. مرتبه زمانی (Time Complexity) الگوریتم زیر چیست؟
for i = 1 to n for j = 1 to n print(i, j)
پاسخ کوتاه:
O(n²)
۲. خروجی الگوریتم زیر چیست؟
sum = 0 for i = 1 to 4 sum = sum + i print(sum)
پاسخ کوتاه:
10
۳. الگوریتمی برای یافتن بزرگ‌ترین عدد در آرایه‌ای با n عضو بنویسید.
پاسخ کوتاه:
max = اولین عضو
پیمایش از عضو دوم تا آخر
اگر عنصر فعلی > max → به‌روزرسانی max
چاپ max
۴. تفاوت الگوریتم بازگشتی (Recursive) و تکراری (Iterative) چیست؟
پاسخ کوتاه:
در بازگشتی تابع خودش را فراخوانی می‌کند؛ در تکراری از حلقه استفاده می‌شود.
۵. شرط خاتمه در الگوریتم بازگشتی چه اهمیتی دارد؟
پاسخ کوتاه:
برای جلوگیری از اجرای بی‌نهایت و ایجاد خطای Stack Overflow.
۶. مقدار خروجی تابع بازگشتی زیر چیست؟
function f(n): if n == 1: return 1 else: return n * f(n-1) print(f(4))
پاسخ کوتاه:
24 (فاکتوریل 4)
۷. الگوریتمی برای تشخیص اول بودن یک عدد n بنویسید.
پاسخ کوتاه:
اگر n ≤ 1 → اول نیست
از i=2 تا √n
اگر n mod i = 0 → اول نیست
در غیر این صورت → اول است
۸. پیچیدگی زمانی جستجوی دودویی (Binary Search) چیست؟
پاسخ کوتاه:
O(log n)
۹. خروجی الگوریتم زیر چیست؟
i = 1 while i <= 5: print(i) i = i + 2
پاسخ کوتاه:
1 3 5
۱۰. تفاوت آرایه و لیست پیوندی چیست؟
پاسخ کوتاه:
آرایه حافظه پیوسته دارد و دسترسی مستقیم سریع دارد؛ لیست پیوندی حافظه غیرپیوسته دارد و درج/حذف آسان‌تر است.
اگر بخواهی می‌توانم یک نمونه آزمون کامل سخت با سطح پایان‌ترم (حل مسئله ترکیبی + تحلیل مرتبه زمانی) هم طراحی کنم.

برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
🔥21
10 نمونه سوال پایان ترم مبانی برنامه‌نویسی با زبان C++ از کتاب جعفرنژاد قمی به همراه پاسخ‌های تشریحی کوتاه ارائه شده است:

سوال 1:

سوال: برنامه‌ای بنویسید که مجموع اعداد صحیح از 1 تا N را محاسبه کند.

پاسخ:
#include <iostream>
using namespace std;

int main() {
    int N, sum = 0;
    cout << "Enter a number: ";
    cin >> N;
    for (int i = 1; i <= N; ++i) {
        sum += i;
    }
    cout << "Sum is: " << sum << endl;
    return 0;
}

این برنامه با استفاده از یک حلقه for مجموع اعداد از 1 تا N را محاسبه می‌کند.

---

سوال 2:

سوال: تابعی بنویسید که یک عدد صحیح را گرفته و بررسی کند که آیا این عدد اول است یا نه.

پاسخ:
#include <iostream>
using namespace std;

bool isPrime(int n) {
    if (n <= 1) return false;
    for (int i = 2; i <= n / 2; ++i) {
        if (n % i == 0) return false;
    }
    return true;
}

int main() {
    int number;
    cout << "Enter a number: ";
    cin >> number;
    if (isPrime(number))
        cout << number << " is prime." << endl;
    else
        cout << number << " is not prime." << endl;
    return 0;
}

این تابع با بررسی تقسیم‌پذیری عدد، تعیین می‌کند که آیا عدد اول است یا خیر.

---

سوال 3:

سوال: یک کلاس به نام Rectangle ایجاد کنید که طول و عرض را به عنوان ویژگی‌های خود داشته باشد و متدهایی برای محاسبه مساحت و محیط مستطیل داشته باشد.

پاسخ:
#include <iostream>
using namespace std;

class Rectangle {
public:
    float length, width;

    Rectangle(float l, float w) : length(l), width(w) {}

    float area() {
        return length * width;
    }

    float perimeter() {
        return 2 * (length + width);
    }
};

int main() {
    Rectangle rect(5.0, 3.0);
    cout << "Area: " << rect.area() << endl;
    cout << "Perimeter: " << rect.perimeter() << endl;
    return 0;
}

کلاس Rectangle دارای متدهایی برای محاسبه مساحت و محیط است.

---

سوال 4:

سوال: برنامه‌ای بنویسید که عناصر یک آرایه را معکوس کند.

پاسخ:
#include <iostream>
using namespace std;

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int n = sizeof(arr) / sizeof(arr[0]);
   
    for (int i = 0; i < n / 2; ++i) {
        swap(arr[i], arr[n - i - 1]);
    }
   
    cout << "Reversed array: ";
    for (int i = 0; i < n; ++i) {
        cout << arr[i] << " ";
    }
    cout << endl;
    return 0;
}

این برنامه با استفاده از تابع swap عناصر آرایه را معکوس می‌کند.

---

سوال 5:

سوال: یک برنامه بنویسید که اعداد فرد و زوج را از 1 تا N جدا کند.

پاسخ:
#include <iostream>
using namespace std;

int main() {
    int N;
    cout << "Enter a number: ";
    cin >> N;

    cout << "Odd numbers: ";
    for (int i = 1; i <= N; i += 2) {
        cout << i << " ";
    }
   
    cout << "\nEven numbers: ";
    for (int i = 2; i <= N; i += 2) {
        cout << i << " ";
    }
   
    cout << endl;
    return 0;
}

برنامه اعداد فرد و زوج را با استفاده از دو حلقه جداگانه چاپ می‌کند.

---

سوال 6:

سوال: تابعی بنویسید که بزرگترین عدد را از میان سه عدد ورودی پیدا کند.

پاسخ:
#include <iostream>
using namespace std;

int maxOfThree(int a, int b, int c) {
    return max(max(a, b), c);
}

int main() {
    int x, y, z;
    cout << "Enter three numbers: ";
    cin >> x >> y >> z;
    cout << "Maximum is: " << maxOfThree(x, y, z) << endl;
    return 0;
}

این تابع با استفاده از تابع max بزرگترین عدد را پیدا می‌کند.

---

سوال 7:

سوال: برنامه‌ای بنویسید که فاکتوریل یک عدد را محاسبه کند.

پاسخ:
#include <iostream>
using namespace std;

int factorial(int n) {
    if (n == 0) return 1;
    return n * factorial(n - 1);
}

int main() {
    int num;
    cout << "Enter a number: ";
    cin >> num;
    cout << "Factorial is: " << factorial(num) << endl;
    return 0;
}

این برنامه از یک تابع بازگشتی برای محاسبه فاکتوریل استفاده می‌کند.

---

سوال 8:

سوال: یک برنامه بنویسید که رشته‌ای را دریافت کرده و تعداد حروف آن را شمارش کند.

پاسخ:
#include <iostream>
#include <string>
using namespace std;

int main() {
    string str;
    cout << "Enter a string: ";


برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
2
    getline(cin, str);
   
    cout << "Length of the string is: " << str.length() << endl;
    return 0;
}

این برنامه از متد length برای شمارش حروف رشته استفاده می‌کند.

---

سوال 9:

سوال: کلاس Student ایجاد کنید که نام و نمره دانش‌آموز را ذخیره کند و متدی برای نمایش اطلاعات آن داشته باشد.

پاسخ:
#include <iostream>
using namespace std;

class Student {
public:
    string name;
    float score;

    Student(string n, float s) : name(n), score(s) {}

    void displayInfo() {
        cout << "Name: " << name << ", Score: " << score << endl;
    }
};

int main() {
    Student student("Alice", 90.5);
    student.displayInfo();
    return 0;
}

این کلاس اطلاعات دانش‌آموز را ذخیره و نمایش می‌دهد.

---

سوال 10:

سوال: برنامه‌ای بنویسید که اعداد فیبوناچی را تا N تولید کند.

پاسخ:
#include <iostream>
using namespace std;

void fibonacci(int N) {
    int a = 0, b = 1, nextTerm;
   
    for (int i = 1; i <= N; ++i) {
        cout << a << " ";
        nextTerm = a + b;
        a = b;
        b = nextTerm;
    }
}

int main() {
    int N;
    cout << "Enter the number of terms: ";
    cin >> N;
   
    fibonacci(N);
   
    return 0;
}

این برنامه با استفاده از یک حلقه، اعداد فیبوناچی را تولید و چاپ می‌کند.

برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
2🔥2
دانستنی های برنامه نویسی

دیجی‌کالا
یک پلتفرم بسیار بزرگ و پیچیده است، بنابراین تنها با یک زبان نوشته نشده است. این شرکت از مجموعه‌ای از تکنولوژی‌ها (Tech Stack) استفاده می‌کند که بسته به بخش‌های مختلف (سایت، اپلیکیشن، هوش مصنوعی و سرور) متفاوت هستند.

در اینجا تفکیک زبان‌های برنامه‌نویسی دیجی‌کالا آورده شده است:

📚 ۱. سمت سرور (Backend)
این بخش "مغز" دیجی‌کالا است که پردازش سفارش‌ها و داده‌ها را انجام می‌دهد. دیجی‌کالا در ابتدا یک سیستم یکپارچه (Monolith) مبتنی بر PHP بود، اما اکنون به معماری میکروسرویس (Microservices) مهاجرت کرده است:

PHP: همچنان بخش‌های زیادی از هسته سیستم و سرویس‌های قدیمی‌تر با فریم‌ورک‌هایی مثل Laravel یا Symfony کار می‌کنند.
Go (Golang): برای سرویس‌هایی که نیاز به سرعت بسیار بالا و مدیریت ترافیک سنگین دارند (مثل سیستم لاگین یا جستجو)، از زبان Go استفاده می‌شود.
Python: برای بخش‌های مربوط به هوش مصنوعی، تحلیل داده (Big Data)، سیستم پیشنهاد دهنده کالا و یادگیری ماشین استفاده می‌شود.
ASP.NET Core: در برخی از زیرمجموعه‌ها یا سرویس‌های خاص (مانند بخش لجستیک یا مالی) ممکن است استفاده شود.

————————

📚 ۲. سمت کاربر وب‌سایت (Frontend)
آنچه شما در مرورگر خود می‌بینید:

JavaScript: زبان اصلی.
React.js: دیجی‌کالا از فریم‌ورک React (و فریم‌ورک Next.js برای سئو و رندر سمت سرور) استفاده می‌کند تا تجربه‌ای سریع و شبیه به اپلیکیشن در وب ارائه دهد. آن‌ها پلتفرمی به نام «پیشران» توسعه داده‌اند که بر پایه همین تکنولوژی‌هاست.

————————

📚 ۳. اپلیکیشن‌های موبایل
نسخه اندروید (Android): به صورت Native نوشته شده است، که عمدتاً از زبان‌های Java و Kotlin استفاده می‌کند.
نسخه آیفون (iOS): نسخه اصلی نیتیو با زبان Swift نوشته شده بود. اما به دلیل تحریم‌های اپل و حذف اپلیکیشن‌های ایرانی، دیجی‌کالا اکنون بیشتر روی نسخه PWA (وب‌اپلیکیشن پیش‌رونده) تمرکز دارد که در واقع همان نسخه وب (React) است که شبیه اپلیکیشن رفتار می‌کند.

————————

📚 ۴. پایگاه داده‌ها (Databases)
برای ذخیره‌سازی حجم عظیم اطلاعات، آن‌ها از ترکیبی از موارد زیر استفاده می‌کنند:
MySQL / MariaDB: برای داده‌های رابطه‌ای (مثل اطلاعات کاربران و سفارش‌ها).
MongoDB: برای داده‌های غیر ساختار‌یافته (مثل لاگ‌ها).
Redis: برای کش کردن اطلاعات و افزایش سرعت.
ElasticSearch: موتور قدرتمندی که برای جستجوی سریع کالاها در سایت استفاده می‌شود.

برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
🤯2
📚 منابع بسیار عالی برای کسب درآمد از طریق ایمیل مارکتینگ

[1] بازاریابی ایمیلی و هر آنچه برای کسب درآمد از طریق آن باید بدانید (amazontele.com)
[2] ۱۳ نکته کاربردی برای ایمیل مارکتینگ یا بازاریابی ایمیلی - کارلنسر (karlancer.com)
[3] 30 راهکار طلایی برای کمپین ایمیل مارکتینگ موفق و موثر [1402] (avadis.net)
[4] کسب درآمد آنلاین از ایمیل مارکتینگ - افیلی (affili.ir)
[5] ۷ راه کسب درآمد با لیست ایمیل خود در سال ۱۴۰۳ - MailerEver (mailerever.com)
[6] 11 نکته مهم در بازاریابی ایمیلی - سلکتک (selectak.com)
[7] 10 راه برای کسب درآمد با ایمیل مارکتینگ [2024] (blog.sabavision.com)
[8] کمپین ایمیل مارکتینگ و نکات کلیدی آن (lavan.agency)
[9] چطور با ارسال ایمیل کسب درآمد کنیم؟ - موسسه آموزشی کامکار (modirekamkar.ir)
[10] آموزش ایمیل مارکتینگ: 37 نکته برای تبلیغات بهتر | نوین (novin.com)
[11] نکات مهم ایمیل مارکتینگ برای بهبود کسب‌وکار - مگ هاست ایران (mag.hostiran.net)
[12] ایمیل مارکتینگ چیست؟ چطور با بازاریابی ایمیلی به درآمد برسیم؟ (aloohimi.com)

@flowchart_algorithm
📚 بهترین منابع یاد گیری برنامه‌نویسی و توسعه وب

[1] 10 کتاب برنامه نویسی که حتما باید آن‌ها را بخوانید - سون لرن (7learn.com)
[2] معرفی منابع آموزشی مناسب برای یادگیری و شروع برنامه نویسی - چطور (chetor.com)
[3] 6 تا از بهترین منابع یادگیری برنامه نویسی - راست چین آکادمی (academy.rtl-theme.com)
[4] معرفی 5 مورد از بهترین منابع طراحی وب در دنیا - ادمین سایت (adminesite.com)
[5] بهترین وب‌سایت‌ها برای یادگیری زبان برنامه نویسی - IranTalent (irantalent.com)
[6] ۲۴ کتاب آموزش برنامه نویسی کامپیوتر که لازم است بخوانید (blog.faradars.org)
[7] معرفی بهترین منابع یادگیری برنامه نویسی از مبتدی تا پیشرفته (youtube.com)
[8] چگونه برنامه نویس وب شوم؟ - کدیاد (codeyad.com)
[9] 8 منبع خوب برای طراحان و برنامه نویسی وب - صعود (soud.ir)
[10] معرفی بهترین سایت های آموزش برنامه نویسی رایگان 2023 (konkurcomputer.ir)

#معرفی_منابع_آموزشی

@flowchart_algorithm
🙏1
🚀 ۱۰ تا از بهترین منابع یوتیوب برای یادگیری برنامه‌نویسی (از صفر تا حرفه‌ای)
اگه دنبال اینی که برنامه‌نویسی رو اصولی و درست یاد بگیری، این ۱۰ تا کانال یوتیوب واقعاً جزو بهترین‌ها هستن! 🎯
(هم برای مبتدی‌ها، هم حرفه‌ای‌ها 💻)


---

🥇 1. freeCodeCamp.org
آموزش‌های کامل و پروژه‌محور برای همه زبان‌ها
📌 مناسب برای: Python, JS, Web, AI
🔗 https://www.youtube.com/@freecodecamp


---

🔥 2. Traversy Media
یکی از بهترین کانال‌ها برای طراحی سایت و برنامه‌نویسی وب
📌 مناسب برای: HTML, CSS, JS, React, Node
🔗 https://www.youtube.com/@TraversyMedia


---

💡 3. Programming with Mosh
آموزش‌های خیلی روان و حرفه‌ای، مخصوصاً برای مبتدی‌ها
📌 مناسب برای: Python, Java, C#, Web
🔗 https://www.youtube.com/@programmingwithmosh


---

🧠 4. The Net Ninja
ویدیوهای کوتاه و دقیق با آموزش مرحله به مرحله
📌 مناسب برای: JavaScript, React, Vue, Firebase
🔗 https://www.youtube.com/@NetNinja


---

🐍 5. Corey Schafer
بهشتِ آموزش پایتون 😄 فوق‌العاده تمیز و کاربردی
📌 مناسب برای: Python, Django, Automation
🔗 https://www.youtube.com/@coreyms


---

6. Fireship
آموزش‌های سریع، جذاب و خیلی خفن با سبک متفاوت 🔥
📌 مناسب برای: Web, JS, Tech Concepts
🔗 https://www.youtube.com/@Fireship


---

📚 7. CS50 (Harvard University)
یکی از بهترین دوره‌های دانشگاهی دنیا، کاملاً رایگان
📌 مناسب برای: مبانی برنامه‌نویسی و علوم کامپیوتر
🔗 https://www.youtube.com/@cs50


---

👨‍💻 8. Kevin Powell
پادشاه CSS 👑 اگه طراحی سایت می‌خوای این کانال عالیه
📌 مناسب برای: CSS, Responsive Design
🔗 https://www.youtube.com/@KevinPowell


---

🌍 9. Academind
آموزش‌های کامل و سطح بالا برای برنامه‌نویسی مدرن
📌 مناسب برای: React, Angular, Node, Web Dev
🔗 https://www.youtube.com/@academind


---

🤖 10. Tech With Tim
عالی برای پایتون و پروژه‌های جذاب و کاربردی
📌 مناسب برای: Python, AI, Projects
🔗 https://www.youtube.com/@TechWithTim


---

اگر دوست داری برنامه‌نویسی رو جدی شروع کنی، همین ۱۰ تا کانال برای چند سالِ آینده‌ت کافیه!
📌 کدومشون رو می‌شناختی؟ تو کامنت‌ها بگو 😄👇

#برنامه_نویسی #یوتیوب #آموزش_رایگان #Python #WebDevelopment 🚀💻


برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
🔥1👌1
برای تبدیل شدن به یک برنامه‌نویس، مراحل زیر می‌توانند به شما کمک کنند:

1. انتخاب زبان برنامه‌نویسی مناسب
- زبان‌های مبتدی: اگر تازه شروع کرده‌اید، زبان‌هایی مانند Python، JavaScript یا Ruby گزینه‌های خوبی هستند.
- زبان‌های تخصصی: اگر هدف خاصی دارید (مثلاً توسعه وب، اپلیکیشن‌های موبایل، یا هوش مصنوعی)، زبان‌های مناسب آن حوزه را انتخاب کنید. مثلاً:
- توسعه وب: HTML/CSS، JavaScript، PHP
- اپلیکیشن‌های موبایل: Swift (برای iOS)، Kotlin (برای اندروید)
- هوش مصنوعی: Python، R

2. یادگیری مفاهیم پایه
- متغیرها و انواع داده‌ها
- ساختارهای کنترلی (شرط‌ها، حلقه‌ها)
- توابع و کلاس‌ها
- الگوریتم‌ها و ساختار داده‌ها (مثل لیست‌ها، صف‌ها، درخت‌ها)

3. تمرین و کدنویسی
- پروژه‌های کوچک: شروع به ساخت پروژه‌های ساده کنید (مثلاً ماشین حساب، لیست کارها).
- حل مسائل: از پلتفرم‌هایی مانند LeetCode، HackerRank یا Codewars استفاده کنید.

4. یادگیری ابزارها و فناوری‌ها
- ویرایشگرهای کد: مانند VS Code، Sublime Text یا PyCharm.
- سیستم‌های کنترل نسخه: مانند Git و GitHub.
- پایگاه داده: یادگیری مفاهیم پایه‌ای مانند SQL و NoSQL.

5. یادگیری مستمر
- کتاب‌ها: کتاب‌های معروف برنامه‌نویسی را مطالعه کنید.
- دوره‌های آنلاین: از پلتفرم‌هایی مانند Coursera، Udemy، edX یا Khan Academy استفاده کنید.
- مقالات و وبلاگ‌ها: از منابع آنلاین مانند Medium، Stack Overflow یا Dev.to استفاده کنید.

6. ساخت پروژه‌های واقعی
- پورتفولیو: پروژه‌های خود را در GitHub یا وب‌سایت شخصی نمایش دهید.
- همکاری در پروژه‌های متن‌باز: مشارکت در پروژه‌های متن‌باز به شما تجربه عملی می‌دهد.

7. یادگیری کار تیمی و مهارت‌های نرم
- همکاری با دیگران: یاد بگیرید چگونه با دیگر برنامه‌نویسان همکاری کنید.
- حل مسئله: مهارت‌های حل مسئله و تفکر منطقی خود را تقویت کنید.

8. یافتن شغل یا فرصت‌های فریلنسری
- رزومه‌سازی: رزومه‌ای حرفه‌ای بسازید و مهارت‌های خود را به‌طور واضح بیان کنید.
- شبکه‌سازی: در رویدادها و کنفرانس‌های برنامه‌نویسی شرکت کنید.
- درخواست شغل: از پلتفرم‌هایی مانند LinkedIn، Indeed یا Glassdoor استفاده کنید.

9. به‌روز ماندن
- فناوری‌های جدید: همیشه در حال یادگیری فناوری‌های جدید باشید.
- اجتماعات برنامه‌نویسی: در انجمن‌ها و گروه‌های برنامه‌نویسی عضو شوید.

با پشتکار و تمرین مداوم، می‌توانید به یک برنامه‌نویس حرفه‌ای تبدیل شوید. موفق باشید! 🚀
@flowchart_algorithm
👍21
دانلود جزوه آموزشی
الگوریتم و فلوچارت


به‌ همراه بیش از 200 سوال و جواب حل شده
آموزش زبان برنامه نویسی ++C
منبع بسیار عالی برای مبتدیان
قالب فایل : PDF
تعداد صفحات : 395 صفحه
توضیحات کامل حلقه های for, while



برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
🔥1🙏1
دانلود جزوه جامع آموزش
SQL Server 2022


📘دوره SQL Server 2022 – از طراحی دیتابیس تا آمادگی برای بازار کار

✍️ تألیف و تدوین:میترا سادات حسینی هاشمی
منبع : سماتک

این جزوه جامع، به شما کمک می‌کند تا از مبانی طراحی دیتابیس تا پیاده‌سازی حرفه‌ای دیتابیس‌های پیچیده در SQL Server 2022 را به طور کامل یاد بگیرید.


با این جزوه، شما نه تنها یاد خواهید گرفت که چگونه دیتابیس‌ها را طراحی کنید، بلکه توانایی بهینه‌سازی و کار با SQL Server 2022 را به دست خواهید آورد تا در بازار کار موفق باشید.

#کتاب_آموزشی

برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
1👍1🔥1
جهت کسب درآمد تعدادی سایت معروف برای فریلنسری
به شما معرفی می کنیم :

1. پونیشا (Ponisha.ir)
- یکی از بزرگ‌ترین پلتفرم‌های فریلنسری در ایران است که پروژه‌های متنوعی در زمینه‌های طراحی، برنامه‌نویسی، نویسندگی و غیره ارائه می‌دهد.

2. پارس‌کدرز (Parscoders.com)
- این سایت نیز یکی از محبوب‌ترین پلتفرم‌ها برای فریلنسرهاست و پروژه‌های زیادی در حوزه‌های مختلف فنی و غیرفنی دارد.

3. انجام می‌دم (Anjammidam.com)
- این سایت به کاربران اجازه می‌دهد تا پروژه‌های خود را ثبت کنند و فریلنسرها برای انجام آنها پیشنهاد دهند.
4. کارلنسر (Karlancer.com)
- یک پلتفرم فریلنسری دیگر که در آن می‌توانید پروژه‌های مختلفی پیدا کنید و به عنوان فریلنسر فعالیت کنید.


@flowchart_algorithm
👍1
الگوریتم و فلوچارت
#نمونه_سوالات_الگوریتم_فلوچارت #نمونه_سوالات_برنامه_نویسی برنامه‌نویسی را از اینجا شروع کنید👇 @flowchart_algorithm
در زبان برنامه‌نویسی C، متغیرها می‌توانند انواع مختلفی داشته باشند.

▎1. int

• تعریف: نوع داده‌ای برای ذخیره اعداد صحیح (بدون اعشار).
• حجم: معمولاً 4 بایت (32 بیت) در اکثر سیستم‌ها.
• محدوده: از -2,147,483,648 تا 2,147,483,647 (در سیستم‌های 32 بیتی).
• مثال:
int age = 25;


▎2. float

• تعریف: نوع داده‌ای برای ذخیره اعداد اعشاری با دقت کم.
• حجم: معمولاً 4 بایت (32 بیت).
• دقت: حدود 6 تا 7 رقم اعشار.
• مثال:
float temperature = 36.5f;


▎3. double

• تعریف: نوع داده‌ای برای ذخیره اعداد اعشاری با دقت بالا.
• حجم: معمولاً 8 بایت (64 بیت).
• دقت: حدود 15 تا 16 رقم اعشار.
• مثال:
double pi = 3.141592653589793;


▎4. char

• تعریف: نوع داده‌ای برای ذخیره یک کاراکتر.
• حجم: معمولاً 1 بایت (8 بیت).
• محدوده: می‌تواند یکی از 256 کاراکتر (از -128 تا 127 در ASCII) باشد.
• مثال:
char initial = 'A';


▎جمع‌بندی

• int: برای اعداد صحیح.
• float: برای اعداد اعشاری با دقت کم.
• double: برای اعداد اعشاری با دقت بالا.
• char: برای یک کاراکتر.

این انواع داده‌ای به شما کمک می‌کنند تا متناسب با نیاز برنامه‌تان از حافظه استفاده کنید و داده‌ها را به درستی مدیریت کنید.

برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
1🔥1