مبانی برنامه نویسی
773 subscribers
4 photos
1 link
اگه سوالی بود یا مشکلی وجود داشت میتونید با آیدی زیر ارتباط بگیرید بتونم و بدونم حتما جواب میدم .موفق باشید.
@mohammadf111
Download Telegram
در زبان #c و #cpp :
در زبان برنامه‌نویسی cو cpp نیز از ساختار if-else if-else برای بررسی شرایط مختلف استفاده می‌شود. این ساختار به شما امکان می‌دهد تا چندین شرط را بررسی کرده و برنامه را بر اساس برقراری یا عدم برقراری شرایط مختلف اجرا کنید.

ساختار کلی یک بلوک if-else if-else در زبان c و cpp به صورت زیر است:

if (condition1) {
// کدی که در صورت برقراری شرط 1 اجرا می‌شود
} else if (condition2) {
// کدی که در صورت عدم برقراری شرط 1 و برقراری شرط 2 اجرا می‌شود
} else {
// کدی که در صورت عدم برقراری هیچ یک از شرایط بالا اجرا می‌شود
}


در این ساختار، ابتدا شرط 1 بررسی می‌شود. اگر شرط 1 برقرار باشد، بلوک کد داخل if اجرا می‌شود و برنامه از بلاک if-else خارج می‌شود. در صورتی که شرط 1 برقرار نباشد، شرط 2 بررسی می‌شود. اگر شرط 2 نیز برقرار باشد، بلوک کد داخل else if اجرا می‌شود و برنامه از بلاک if-else خارج می‌شود. در غیر این صورت، بلوک کد داخل else اجرا می‌شود.

استفاده از این ساختار در زبان c و cpp به شما امکان می‌دهد تا چندین شرط را بررسی کرده و برنامه را بر اساس برقراری یا عدم برقراری شرایط مشخص اجرا کنید.
2
برای اطلاع دوستانی که جدید عضو شدن
با استفاده از #کد و #cpp و #c و #python و #آموزش و #کوییز و #ابزار و #متفرقه میتونید بخش مربوطه رو مطالعه کنید.
2
در زبان #c و #cpp :
در زبان‌های برنامه‌نویسی C و C++ نیز مانند زبان‌های دیگر، حلقه While به صورت زیر استفاده می‌شود:

while (شرط) {
    // دستورات
}


در این حالت، دستورات داخل حلقه تا زمانی که شرط برقرار باشد تکرار می‌شوند. قبل از هر تکرار، شرط بررسی می‌شود و اگر شرط برقرار باشد، دستورات داخل حلقه اجرا می‌شوند. پس از اتمام اجرای دستورات، برنامه به ابتدای حلقه بازمی‌گردد و شرط مجدداً بررسی می‌شود. اگر شرط دیگر برقرار نباشد، حلقه متوقف می‌شود و کنترل برنامه به دستورات بعد از حلقه منتقل می‌شود.

از حلقه While در زبان‌های C و C++ نیز استفاده می‌شود زمانی که نیاز به تکرار یک بلاک کد داریم. به عنوان مثال، محاسبه‌ی مقدار تکرارها، پردازش داده‌ها، تکرار عملیات بر روی لیست‌ها و غیره.
بطور مثال، در زبان C یا C++ می‌توانید یک حلقه While برای چاپ اعداد از ۱ تا ۵ بنویسید:

#include <stdio.h>

int main() {
    int i = 1;
    while (i <= 5) {
        printf("%dn", i);
        i++;
    }
    return 0;
}


در این مثال، متغیر i را ابتدا به ۱ مقداردهی می‌کنیم. سپس در حلقه While، تا زمانی که i کوچکتر یا مساوی ۵ باشد، دستور printf اعداد را چاپ می‌کند و سپس i را یک واحد افزایش می‌دهیم. این عملیات تا وقتی ادامه پیدا می‌کند که i برابر ۶ شود و شرط حلقه برقرار نباشد.

خروجی این برنامه به ترتیب اعداد ۱ تا ۵ را در خروجی نشان می‌دهد.
3
در زبان #c و #cpp :
حلقه for در زبان برنامه‌نویسی C , CPP یک ساختار کنترلی است که به شما امکان می‌دهد یک بلوک کد را تکرار کنید تا یک شرط مشخص برآورده شود. ساختار کلی حلقه for به صورت زیر است:

for (initialization; condition; increment/decrement) {
// statements
}


- initialization: در این بخش، متغیرها مقداردهی اولیه می‌شوند. این بخش قبل از شروع حلقه اولین بار اجرا می‌شود.
- condition: این بخش بررسی می‌کند که آیا حلقه باید ادامه یابد یا خاتمه یابد. اگر شرط برقرار باشد، بلوک کد داخل حلقه اجرا می‌شود؛ و اگر شرط برقرار نباشد، حلقه به پایان می‌رسد.
- increment/decrement: در این بخش، مقادیر متغیرها تغییر داده می‌شوند. این بخش بعد از اجرای بلوک کد داخل حلقه اجرا می‌شود.

به عنوان مثال، اگر بخواهیم اعداد از 1 تا 10 را چاپ کنیم، می‌توانیم از حلقه for استفاده کنیم:

#include <stdio.h>

int main() {
int i;
for (i = 1; i <= 10; i++) {
printf("%d ", i);
}
return 0;
}


خروجی این برنامه به صورت زیر خواهد بود:

1 2 3 4 5 6 7 8 9 10


در این مثال، متغیر i با مقدار 1 مقداردهی اولیه می‌شود. سپس شرط i <= 10 بررسی می‌شود و در صورت برقرار بودن، بلوک کد داخل حلقه اجرا می‌شود و پس از هر اجرا، مقدار i افزایش می‌یابد. حلقه تا زمانی که شرط i <= 10 برقرار باشد ادامه می‌یابد و پس از آن به پایان می‌رسد.
3
#include <iostream>

using namespace std;

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

int main() {
int n;
int sum = 0;

cout << "Enter a number: ";
cin >> n;

for (int i = 1; i <= n; i++) {
sum += factorial(i);
}

cout << "The sum of the series is: " << sum << endl;

return 0;
}

زبان برنامه نویسی :‌ #cpp
3
در زبان #c و #cpp:
در زبان‌های C و C++ نیز عبارات break و continue برای کنترل حلقه‌ها استفاده می‌شوند.

با استفاده از break و continue در زبان‌های C و C++، شما قادر خواهید بود جریان اجرای حلقه را به دلخواه خود تغییر داده و کنترل دقیق‌تری بر روی اجرای برنامه در داخل حلقه داشته باشید.
مثال:
#include <iostream>
using namespace std;

int main() {
// مثال استفاده از break
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break;
}
cout << i << " ";
}
cout << endl;

// مثال استفاده از continue
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue;
}
cout << i << " ";
}
cout << endl;

return 0;
}


در این مثال، در قسمت اول از break استفاده شده است. در حلقه for، اعداد از 1 تا 10 پیمایش می‌شوند. وقتی عدد 5 را می‌رسیم، با استفاده از break اجرای حلقه متوقف می‌شود و برنامه از حلقه خارج می‌شود.

در قسمت دوم، از continue استفاده شده است. در حلقه for، اعداد از 1 تا 10 پیمایش می‌شوند و وقتی عددی را بر می‌گردانیم که بر 2 بخش‌پذیر باشد، با استفاده از continue، بقیه بخش‌های حلقه را رد کرده و به ابتدای حلقه برمی‌گردیم.

با استفاده از break و continue در زبان C و C++، می‌توانید جریان اجرای حلقه را به‌طور دقیق تنظیم کنید و عملیاتی خاص را در صورت برقراری شرایط مورد نظر انجام دهید
👍1
در زبان #c و #cpp :
در زبان‌های C و C++، آرایه‌ها (Arrays) مجموعه‌ای از داده‌ها هستند که با استفاده از یک نام و یک اندیس دسترسی‌پذیرند. آرایه‌ها می‌توانند به صورت یک بعدی و دوبعدی تعریف شوند.

1. آرایه‌های یک بعدی:
- در زبان C، آرایه‌های یک بعدی می‌توانند با استفاده از تعریف متغیر با نوع داده موردنظر و تعیین تعداد عناصر آرایه‌ ایجاد شوند. به عنوان مثال:

     int numbers[5]; // تعریف یک آرایه‌ 5 عنصری از اعداد صحیح
float prices[10]; // تعریف یک آرایه‌ 10 عنصری از اعداد اعشاری
char letters[26]; // تعریف یک آرایه‌ 26 عنصری از کاراکترها


2. آرایه‌های دوبعدی:
- در زبان C، برای تعریف آرایه‌های دوبعدی، از آرایه‌های یک بعدی به صورت تو در تو استفاده می‌شود. به عنوان مثال:

     int matrix[3][3]; // تعریف یک آرایه‌ دوبعدی 3x3 از اعداد صحیح
float table[2][4]; // تعریف یک آرایه‌ دوبعدی 2x4 از اعداد اعشاری
char grid[5][5]; // تعریف یک آرایه‌ دوبعدی 5x5 از کاراکترها


در هر دو زبان C و C++، به عنوان مثال، برای دسترسی به عناصر درون آرایه‌های دوبعدی، می‌توان از دو حلقه تو در تو (Nested Loop) استفاده کرد و با استفاده از اندیس‌های مربوطه به عناصر دسترسی پیدا کرد.
👍1
در زبان #c و #cpp :
در زبان‌های برنامه‌نویسی C و C++، توابع با استفاده از دستور function و نحوی مشخص دیگر تعریف می‌شوند. الگوی کلی تعریف تابع در این دو زبان به صورت زیر است:

<نوع_برگشتی> نام_تابع(<پارامترها>) {
// بلاک کد تابع
// عملیات‌ها و دستورات مورد نیاز
// بازگشت مقدار در صورت نیاز
}


در این الگو، <نوع_برگشتی> نوع داده‌ای است که تابع برمی‌گرداند. نام_تابع نام تابع است. <پارامترها> پارامترهایی هستند که به تابع پاس داده می‌شوند.

برای مثال، یک تابع ساده در زبان C که دو عدد را جمع کند را می‌توان به صورت زیر نوشت:

int sum(int a, int b) {
int result = a + b;
return result;
}


در این مثال، تابع sum دو عدد را به عنوان ورودی می‌گیرد و جمع آن‌ها را بازمی‌گرداند.

در زبان C++ نیز، می‌توان توابع را به همین شکل تعریف کرد. البته، در C++ می‌توان از ویژگی‌های بیشتری مانند تابع‌های عضو کلاس، تابع‌های مبتنی بر الگو و غیره استفاده کرد.
تابع void یک نوع خاص از توابع است که هیچ مقداری را به عنوان خروجی برنگردانده و فقط برای انجام یک عملیات خاص به کار می‌رود.

مثالی از یک تابع void در زبان C برای چاپ یک پیام را می‌توان به صورت زیر نوشت:

#include <stdio.h>

void printMessage() {
printf("Hello, World!n");
}

int main() {
printMessage();
return 0;
}


در این مثال، تابع printMessage از نوع void است و هیچ مقداری را به عنوان خروجی برنمی‌گرداند. این تابع فقط پیام "Hello, World!" را در خروجی چاپ می‌کند.

در زبان C++ نیز می‌توان از توابع void استفاده کرد. به عنوان مثال، تابع void می‌تواند به عنوان یک تابع عضو یا تابع عضو استاتیک در یک کلاس تعریف شود.
در زبان #cpp :
در زبان C++، مفهوم "Call by Reference" و "Call by Value" همچنان وجود دارد. با Reference، متغیرها به توابع منتقل می‌شوند، در حالی که با Value، مقادیر کپی از متغیرها به توابع منتقل می‌شوند.

### Call by Reference (با ارجاع):
در این روش، آرگومان‌ها به تابع ارسال می‌شوند و از طریق آن‌ها، می‌توان به مقادیر اصلی متغیرها دسترسی داشت.

#include <iostream>

using namespace std;

// تابع با ارجاع
void increment(int &num) {
num++; // افزایش مقدار عددی با ارجاع
}

int main() {
int x = 10;
cout << "Before increment: " << x << endl; // چاپ مقدار x قبل از افزایش
increment(x); // فراخوانی تابع با ارجاع
cout << "After increment: " << x << endl; // چاپ مقدار x پس از افزایش
return 0;
}

خروجی:
Before increment: 10
After increment: 11


در اینجا، تابع increment یک مقدار عددی را به عنوان ارجاع دریافت می‌کند و مقدار آن را یک واحد افزایش می‌دهد.

### Call by Value (با مقدار):
در این روش، کپی از مقادیر متغیرها به توابع منتقل می‌شوند، بنابراین تغییراتی که در تابع انجام می‌شود، تنها در دامنه آن تابع باقی می‌ماند و بر روی متغیر اصلی تاثیری ندارد.

#include <iostream>

using namespace std;

// تابع با مقدار
void increment(int num) {
num++; // افزایش مقدار عددی
}

int main() {
int x = 10;
cout << "Before increment: " << x << endl; // چاپ مقدار x قبل از افزایش
increment(x); // فراخوانی تابع با مقدار
cout << "After increment: " << x << endl; // چاپ مقدار x پس از افزایش
return 0;
}

خروجی:
Before increment: 10
After increment: 10


در اینجا، تغییراتی که در تابع increment اعمال می‌شود، تنها بر روی مقدار کپی شده از متغیر x تاثیر می‌گذارد و متغیر اصلی x تغییر نمی‌کند.
👍2
در زبان #cpp:
در زبان C++ نیز پوینترها همانند زبان C تعریف و استفاده می‌شوند. اما در زبان C++، به علاوه از قابلیت‌هایی مانند پوینترهای به همراه نوع (type-safe pointers) و پوینترهای هوشمند (smart pointers) نیز استفاده می‌شود. در زیر توضیحاتی درباره پوینترها در زبان C++ آورده شده است همراه با مثال‌هایی:

1. تعریف پوینتر:
برای تعریف یک پوینتر در C++، از علامت * استفاده می‌شود. برای مثال:
   int* ptr;

در این مثال، ptr یک پوینتر به یک متغیر از نوع int است.

2. مقداردهی به پوینتر:
برای مقداردهی به یک پوینتر، می‌توان از عملگر & برای گرفتن آدرس متغیر استفاده کرد. برای مثال:
   int num = 10;
int* ptr = &num;

در این مثال، ptr به آدرس متغیر num اشاره می‌کند.

3. دسترسی به مقدار اشاره شده توسط پوینتر:
برای دسترسی به مقداری که پوینتر به آن اشاره می‌کند، از عملگر * استفاده می‌شود. برای مثال:
   int num = 10;
int* ptr = &num;
cout << "Value: " << *ptr << endl;

در این مثال، *ptr مقداری که پوینتر ptr به آن اشاره می‌کند (مقدار num) را چاپ می‌کند.

4. پوینترها و آرایه‌ها:
در C++، آرایه‌ها به طور ضمنی به یک پوینتر به اولین عنصر آرایه تبدیل می‌شوند. برای مثال:
   int arr[5] = {1, 2, 3, 4, 5};
int* ptr = arr; // یا int* ptr = &arr[0];
cout << "First element: " << *ptr << endl; // چاپ عنصر اول آرایه

در این مثال، ptr به اولین عنصر آرایه arr اشاره می‌کند.

5. پوینترها و ساختارها:
در C++، می‌توانید با استفاده از پوینترها به صورت مستقیم به عناصر ساختارها دسترسی پیدا کنید. برای مثال:
   struct Person {
string name;
int age;
};
Person person;
Person* ptr = &person;
ptr->name = "John";
ptr->age = 25;

در این مثال، ptr یک پوینتر به ساختار Person است و می‌توانید با استفاده از ptr به صورت مستقیم به عناصر ساختار دسترسی پیدا کنید..
👍3
#include <iostream>

using namespace std;

// تابع مرتب‌سازی بابل برای مرتب‌سازی نزولی آرایه
void bubbleSortDescending(int arr[], int n) {
bool swapped;
// حلقه خارجی برای هر عنصر در آرایه
for (int i = 0; i < n-1; i++) {
swapped = false;
// حلقه داخلی برای مقایسه و جابجایی عناصر
for (int j = 0; j < n-i-1; j++) {
// اگر عنصر فعلی کوچکتر از عنصر بعدی است، جابجا می‌شوند
if (arr[j] < arr[j+1]) {
// جابجایی عناصر
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
swapped = true;
}
}
// اگر در این گذر هیچ جابجایی‌ای صورت نگرفته، حلقه متوقف می‌شود
if (swapped == false)
break;
}
}

int main() {
const int SIZE = 15; // تعداد عناصر آرایه
int arr[SIZE]; // تعریف آرایه‌ای با ۱۵ عنصر

// دریافت ۱۵ عدد از ورودی کاربر
cout << "Enter 15 numbers: ";
for (int i = 0; i < SIZE; i++) {
cin >> arr[i];
}

// مرتب‌سازی آرایه به صورت نزولی با استفاده از مرتب‌سازی بابل
bubbleSortDescending(arr, SIZE);

// چاپ آرایه مرتب‌شده
cout << "Sorted array in descending order: ";
for (int i = 0; i < SIZE; i++) {
cout << arr[i] << " ";
}

return 0;
}

زبان برنامه نویسی :#cpp
1
سلام وقت همگی بخیر
برای اطلاع دوستانی که جدید عضو شدن
با استفاده از #کد و #cpp و #c و #python و #آموزش و #کوییز و #ابزار و #متفرقه میتونید بخش مربوطه رو مطالعه کنید.

اگه سوالی بود یا مشکلی وجود داشت میتونید با آیدی زیر ارتباط بگیرید بتونم و بدونم حتما جواب میدم .موفق باشید❤️.
@mohammadf111
17👍2