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

جهت ارتباط با ادمین و تبلیغات
@Programer24h 💻
Download Telegram
سؤال‌های نمونه مناسب پایان ترم برای مبانی برنامه‌نویسی
به زبان ++C با پاسخ



⦁  نوشته زیر چه خروجی‌ای دارد؟
   #include <iostream>
   using namespace std;
   int main() {
   cout << 3 + 4 * 5 << endl;
   return 0;
   }
⦁ پاسخ: 23

⦁  تفاوت بین متغیر و ثابت را با یک مثال بنویسید.
⦁ پاسخ: متغیر مقداری دارد که می‌تواند تغییر کند (مثلاً int a = 5؛ a = 7؛)، ثابت مقداری است که پس از مقداردهی تغییر نمی‌کند (مثلاً const int b = 10؛).

⦁  عبارت شرطی زیر چه نتیجه‌ای دارد؟
   #include <iostream>
   using namespace std;
   int main() {
   int x = 6;
   cout << (x > 4 ? 1 : 0) << endl;
   return 0;
   }
⦁ پاسخ: 1

⦁  کلمه کلیدی مرتبط با کلاس در C++ چیست و چرا استفاده می‌شود؟
⦁ پاسخ: کلاس (class)؛ برای تعریف نوع داده‌ای با ویژگی‌ها (اعضای data) و رفتارها (اعضای تابع) استفاده می‌شود.

⦁  تابعی بنویسید که دو عدد صحیح را گرفته و بزرگ‌ترین آن‌ها را برگرداند. نام تابع max_of_two باشد.
⦁ پاسخ نمونه (حداقل خروجی): int max_of_two(int a, int b) { return (a > b) ? a : b; }

⦁  یک آرایه با اندازه 5 با مقادیر 1 تا 5 تعریف کنید و مقدار اولین عنصر را در چاپ کنید.
⦁ پاسخ:
int arr = {1,2,3,4,5};
std::cout << arr[0] << std::endl;
// خروجی 1

⦁  رشته (string) در C++ چیست و چگونه یک رشته بنویسیم و چاپ کنیم؟
⦁ پاسخ: کلاس string در کتابخانه استاندارد است. نمونه: #include <string> ... std::string s = "سلام"; std::cout << s << std::endl;

⦁  تفاوت بین حلقه for و while را با مثال کوتاه توضیح دهید.
⦁ پاسخ: for زمانی مناسب است که تعداد تکرار مشخص است (برای نمونه برای i = 0; i < n; ++i). while زمانی مناسب است که شمارنده یا شرط تکرار به صورت پویا تعیین می‌شود (مثلاً while (condition)).

⦁  مفهوم ایجاد یک کلاس ساده به نام Point با دو عضو x و y و یک سازنده ( constructor ) بنویسید.
⦁ پاسخ نمونه:
  class Point {
  public:
  int x, y;
  Point(int x_, int y_) : x(x_), y(y_) {}
  };

⦁   یک تابع با بازگشت مقدار بنویسید که مقدار دو عدد را جمع کند و نتیجه را چاپ نکند بلکه برگرداند.
⦁ پاسخ نمونه: int sum(int a, int b) { return a + b; }

نکات کلیدی برای آماده‌سازی پایان ترم
⦁ الگوریتم‌های پایه: شرطی‌ها، حلقه‌ها، توابع، و سازه‌های داده‌ای پایه (آرایه‌ها و استراکچرز/کلاس‌ها) را با مثال‌های کوتاه تمرین کنید.
⦁ مفهوم وراثت، چندریختی (polymorphism) و کلاس‌ها و توابع عضو را در سطح ابتدایی مرور کنید.
⦁ ورودی و خروجی: کار با cin و cout، مدیریت رشته‌ها و کار با کاراکترها را تمرین کنید.
⦁ نکته‌های رایج در سوالات کلاسی: خروجی کدها با تغییر ترتیب اپراتورها یا استفاده از پیش‌زبان‌ها (prefix) و پس‌زبان‌ها (postfix) گاهی سوءتفاهم ایجاد می‌کند؛ حتماً با دقت اجرای پیش‌فرض‌های اولیه را بررسی کنید.



برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
2
سوالات دشوارتر مبانی برنامه‌نویسی++C
(سطح متوسط: اشاره‌گرها، ارجاع، کلاس‌ها، حافظه پویا و آرایه‌ها)


سوالات با پاسخ‌ها
⦁ خروجی کد زیر چیست؟ (اشاره‌گر و افزایش)
#include <iostream>
int main() {
int x = 5;
int *p = &x;
(*p)++;
std::cout << x;
return 0;
}
⦁ پاسخ: 6 (اشاره‌گر p به x اشاره می‌کند؛ *p++ مقدار x را به 6 افزایش می‌دهد).[1]

⦁ تفاوت اشاره‌گر (pointer) و ارجاع (reference) را با مثال بنویسید.
⦁ پاسخ: اشاره‌گر آدرس ذخیره می‌کند و می‌تواند nullptr باشد
(int *p = &x;)؛ ارجاع
alias
متغیر است و همیشه معتبر
(int &r = x; r = 10;
x تغییر می‌کند)
ارجاع نمی‌تواند تغییر کند.
[2]

⦁ تابعی بنویسید که آرایه را با اشاره‌گر معکوس کند (reverse).
⦁ پاسخ نمونه:
void reverse(int *arr, int size) { for(int i=0; i<size/2; i++) std::swap(arr[i], arr[size-1-i]); }
[3]

⦁ کلاس Student با اعضای خصوصی name (string)، grade (int) و تابع عمومی setGrade بنویسید.
⦁ پاسخ نمونه:
class Student {
private:
std::string name;
int grade;
public:
void setGrade(int g) { grade = g; }
int getGrade() { return grade; }
};[4]

⦁ حافظه پویا: آرایه 5 تایی int با new تخصیص دهید، مقدار 10 پر کنید و با delete[] آزاد کنید.
⦁ پاسخ نمونه:
int *arr = new int;
for(int i=0; i<5; i++) arr[i]=10; delete[] arr;
[5][1]

⦁ خروجی:
int a=10, b=20; int &ref = a; ref = b; std::cout << a << " " << b;
⦁ پاسخ:
20 20 (ارجاع ref به a است؛ تغییر ref، a را تغییر می‌دهد اما b نه؛ منتها به ref، مقدار b را به a کپی می‌کند).[6]

⦁ تابعی با ارجاع که دو عدد را مبادله کند (swap by reference).
⦁ پاسخ نمونه:
void swap(int &x, int &y)
{ int temp = x; x = y; y = temp; }
[2]

⦁ اشاره‌گر به اشاره‌گر:
int x=5;
int *p=&x;
int **pp = &p;
**pp = 10;
خروجی *p؟
⦁ پاسخ: 10 (pp به p اشاره می‌کند؛ **pp مقدار x را 10 می‌کند).[1]

⦁ کلاس Rectangle با سازنده و تابع area (مساحت).
⦁ پاسخ نمونه:
class Rectangle {
private:
double width, height;
public:
Rectangle(double w, double h) : width(w), height(h) {}
double area() { return width * height; }
};[4]

⦁ با اشاره‌گر، عنصر میانی آرایه 5 تایی {1,2,3,4,5} را پیدا کنید.
⦁ پاسخ: int arr[]={1,2,3,4,5};
int *mid = arr + 2;
std::cout << *mid;
// 3[1]

نکات برای تمرین بیشتر
⦁ اشاره‌گرها و ارجاع‌ها: همیشه چک کنید nullptr نباشد و حافظه را آزاد کنید تا memory leak جلوگیری شود.
⦁ کلاس‌ها: private برای داده‌ها، public برای متدها؛ سازنده برای مقداردهی اولیه.
⦁ تست کنید: هر کد را در کامپایلر آنلاین مانند onlinegdb اجرا کنید و تغییرات را ببینید.



برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
4
20 سؤال تستی سطح متوسط پایان ترم زبان C با پاسخ

⦁  C چیست؟
⦁ گزینه‌ها:
  ⦁ a) زبان برنامه‌نویسی سطح پایین
  ⦁ b) زبان برنامه‌نویسی سطح بالا
  ⦁ c) زبان برنامه‌نویسی سطح متوسط با کاربرد سیستم‌محور
  ⦁ d) زبان نشانه‌گذاری
⦁ پاسخ: c

⦁  کدام گزینه نحوه استفاده از متغیرها را در C تضمین می‌کند که مقدار اولیه بدهد؟
⦁ الف) اعلان extern
⦁ ب) اعلان static
⦁ ج) اعلان تعریف با مقداردهی اولیه
⦁ د) اعلان typedef
⦁ پاسخ: ج

⦁  کدام یک از داده‌های زیر در C نوع داده اصلی برای کاراکتر است؟
⦁ الف) int
⦁ ب) char
⦁ ج) short
⦁ د) long
⦁ پاسخ: ب

⦁  عملگر شرطی به چه صورت عمل می‌کند؟
⦁ الف) if-else
⦁ ب) switch
⦁ ج) ?:
⦁ د) goto
⦁ پاسخ: ج

⦁  آیا عبارت زیر در C مجاز است: int a = 5, b = 10;؟
⦁ الف) بله
⦁ ب) خیر
⦁ پاسخ: الف

⦁  تعریف تابع با امضای غیر یکتا در چند تابع با نام یکسان در C چه نتیجه‌ای دارد؟
⦁ الف) فرقی ندارد
⦁ ب) هر تابع باید امضای دقیق یکسان داشته باشد
⦁ ج) مجاز است اما با ارجاع پنهانی
⦁ د) تابع با امضاهای متفاوت نمی‌تواند هم‌نام باشد
⦁ پاسخ: د

⦁  کدام یک از واژه‌های کلیدی برای جلوگیری از تغییر مقدار یک متغیر استفاده می‌شود؟
⦁ الف) mutable
⦁ ب) const
⦁ ج) static
⦁ د) volatile
⦁ پاسخ: ب

⦁  کدام ساختار برای اجرای حلقه‌های تکرار استفاده می‌شود؟
⦁ الف) if
⦁ ب) switch
⦁ ج) for، while، do-while
⦁ د) goto
⦁ پاسخ: ج

⦁  در C، مفهوم اشاره‌گر چیست؟
⦁ الف) متغیرهایی که مقدار آنان تغییر می‌کند
⦁ ب) آدرس یک متغیر در حافظه
⦁ ج) تابعی که مقدار بازمی‌گرداند
⦁ د) مجموعه‌ای از متغیرها در یک ساختار
⦁ پاسخ: ب

⦁   مقداردهی به اشاره‌گر NULL چه معنایی دارد؟
⦁ الف) به معنای مقدار صفر است
⦁ ب) به معنای عدم مقداردهی است
⦁ ج) به معنای آدرس حافظه معتبر است
⦁ د) به معنای مقدار همیشه معتبر است
⦁ پاسخ: ب

⦁   کتابخانه استاندارد C چیست و برای چه کارکردی استفاده می‌شود؟
⦁ الف) <stdio.h> برای ورودی/خروجی
⦁ ب) <math.h> برای مثلثات
⦁ ج) <stdlib.h> برای مدیریت حافظه
⦁ د) همه موارد بالا
⦁ پاسخ: د

⦁   sizeof در C چه کاربردی دارد؟
⦁ الف) اندازه نوع داده‌ای را برمی‌گرداند
⦁ ب) طول رشته را می‌سنجد
⦁ ج) اندازه آرایه‌های داینامیک را مشخص می‌کند
⦁ د) سایز حافظه کل برنامه را می‌سنجند
⦁ پاسخ: الف

⦁   کدام گزینه نشان‌دهنده یک تابع بازگشتی صحیح است؟
⦁ الف) تابعی که خود را فراخوانی می‌کند
⦁ ب) تابعی که به صورت غیرمسطح فراخوانی می‌شود
⦁ ج) تابعی که خروجی ندارد
⦁ د) تابعی که تنها از طریق ماکروها کار می‌کند
⦁ پاسخ: الف

⦁   در C، آرایه‌ها چگونه مقداردهی اولیه می‌شوند؟
⦁ الف) فقط با مقداردهی مستقیم
⦁ ب) با استفاده از braced initializer
⦁ ج) با استفاده از malloc
⦁ د) با استفاده از calloc
⦁ پاسخ: ب

⦁   پرچم‌های هدف پیش‌پردازنده چه نقشی دارند؟
⦁ الف) شامل کردن فایل‌ها با #include
⦁ ب) تعریف ماکروها با #define
⦁ ج) شرطی کردن بخش‌های کد با #if
⦁ د) همه موارد بالا
⦁ پاسخ: د

⦁   تفاوت اصلی بین اشاره‌گر و مقدار چیست؟
⦁ الف) آدرس محل ذخیره مقدار است، نه مقدار itself
⦁ ب) مقدار همیشه ثابت است
⦁ ج) اشاره‌گر به هر نوع داده‌ای نمی‌تواند اشاره کند
⦁ د) هیچ تفاوتی وجود ندارد
⦁ پاسخ: الف

⦁   آیا امکان استفاده از متغیرهای داخلی در خارج از بلوک آن وجود دارد؟
⦁ الف) بله
⦁ ب) خیر
⦁ پاسخ: ب

⦁   خطای رایج در استفاده از scanf چیست؟
⦁ الف) فراموشی ampersand برای دریافت آدرس
⦁ ب) استفاده از فرمت‌های منطبق با نوع داده
⦁ ج) عدم چک کردن خطاهای ورودی
⦁ د) همه موارد
⦁ پاسخ: د

⦁   رایج‌ترین دستور برای بازگرداندن مقدار از تابع در C چیست؟
⦁ الف) return
⦁ ب) exit
⦁ ج) throw
⦁ د) break
⦁ پاسخ: الف

⦁   کدام هدر برای کار با ورودی/خروجی استاندارد استفاده می‌شود؟
⦁ الف) <stdio.h>
⦁ ب) <stdlib.h>
⦁ ج) <string.h>
⦁ د) <math.h>
⦁ پاسخ: الف

⦁   چه تفاوتی بین scanf و gets وجود دارد؟
⦁ الف) scanf ایمن‌تر است زیرا اندازه‌گیری می‌کند
⦁ ب) gets امن است چون اندازه‌گیری ندارد
⦁ ج) gets منسوخ است و امنیت ندارد، در مقابل scanf می‌تواند با دفرنس اندازه‌دهی امن‌تر باشد
⦁ د) هیچ تفاوتی ندارند
⦁ پاسخ: ج

برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
۵ نمونه سؤال از آرایه‌ها (Arrays) در زبان ++C به همراه پاسخ و کد نمونه آورده‌ام. سطح سؤالات از مبتدی تا متوسط است.

سؤال ۱: نمایش عناصر یک آرایه
صورت سؤال:
برنامه‌ای بنویسید که ۵ عدد را در یک آرایه دریافت کرده و آن‌ها را نمایش دهد.
پاسخ:
#include <iostream> using namespace std; int main()
{ int a[5];
for(int i = 0; i < 5; i++)
{ cin >> a[i]; } for(int i = 0; i < 5; i++)
{ cout << a[i] << " "; }
return 0; }


سؤال ۲: محاسبه مجموع عناصر آرایه
صورت سؤال:
مجموع عناصر یک آرایه ۶ عضوی را محاسبه و چاپ کنید.
پاسخ:
#include <iostream> using namespace std; int main()
{ int a[6], sum = 0; for(int i = 0; i < 6; i++)
{ cin >> a[i]; sum += a[i]; }
cout << "Sum = " << sum;
return 0;
}

سؤال ۳: پیدا کردن بزرگ‌ترین عدد در آرایه
صورت سؤال:
برنامه‌ای بنویسید که بزرگ‌ترین عدد یک آرایه را پیدا کند.
پاسخ:
#include <iostream> using namespace std; int main()
{ int a[5], max; for(int i = 0; i < 5; i++)
{ cin >> a[i]; } max = a[0];
for(int i = 1; i < 5; i++)
{ if(a[i] > max) max = a[i]; }
cout << "Max = " << max;
return 0;
}

سؤال ۴: شمارش اعداد زوج در آرایه
صورت سؤال:
تعداد اعداد زوج موجود در یک آرایه را محاسبه کنید.
پاسخ:
#include <iostream> using namespace std; int main()
{ int a[7], count = 0; for(int i = 0; i < 7; i++)
{ cin >> a[i]; if(a[i] % 2 == 0)
count++; }
cout << "Even numbers = " << count;
return 0;
}

سؤال ۵: معکوس کردن آرایه
صورت سؤال:
برنامه‌ای بنویسید که عناصر یک آرایه را به صورت معکوس چاپ کند.
پاسخ:
#include <iostream> using namespace std;
int main()
{ int a[5];
for(int i = 0; i < 5; i++)
{ cin >> a[i]; } for(int i = 4; i >= 0; i--)
{ cout << a[i] << " "; }
return 0;
}


برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
📌 جزوه خلاصه شب امتحان
مبانی برنامه‌نویسی با ++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
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