در زبان #c و #cpp :
در زبانهای برنامهنویسی C و C++ نیز مانند زبانهای دیگر، حلقه While به صورت زیر استفاده میشود:
در این حالت، دستورات داخل حلقه تا زمانی که شرط برقرار باشد تکرار میشوند. قبل از هر تکرار، شرط بررسی میشود و اگر شرط برقرار باشد، دستورات داخل حلقه اجرا میشوند. پس از اتمام اجرای دستورات، برنامه به ابتدای حلقه بازمیگردد و شرط مجدداً بررسی میشود. اگر شرط دیگر برقرار نباشد، حلقه متوقف میشود و کنترل برنامه به دستورات بعد از حلقه منتقل میشود.
از حلقه While در زبانهای C و C++ نیز استفاده میشود زمانی که نیاز به تکرار یک بلاک کد داریم. به عنوان مثال، محاسبهی مقدار تکرارها، پردازش دادهها، تکرار عملیات بر روی لیستها و غیره.
بطور مثال، در زبان C یا C++ میتوانید یک حلقه While برای چاپ اعداد از ۱ تا ۵ بنویسید:
در این مثال، متغیر
خروجی این برنامه به ترتیب اعداد ۱ تا ۵ را در خروجی نشان میدهد.
در زبانهای برنامهنویسی 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 :
حلقه
-
-
-
به عنوان مثال، اگر بخواهیم اعداد از 1 تا 10 را چاپ کنیم، میتوانیم از حلقه
خروجی این برنامه به صورت زیر خواهد بود:
در این مثال، متغیر
حلقه
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++ نیز عبارات
با استفاده از
مثال:
در این مثال، در قسمت اول از
در قسمت دوم، از
با استفاده از
در زبانهای 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، آرایههای یک بعدی میتوانند با استفاده از تعریف متغیر با نوع داده موردنظر و تعیین تعداد عناصر آرایه ایجاد شوند. به عنوان مثال:
2. آرایههای دوبعدی:
- در زبان C، برای تعریف آرایههای دوبعدی، از آرایههای یک بعدی به صورت تو در تو استفاده میشود. به عنوان مثال:
در هر دو زبان C و C++، به عنوان مثال، برای دسترسی به عناصر درون آرایههای دوبعدی، میتوان از دو حلقه تو در تو (Nested Loop) استفاده کرد و با استفاده از اندیسهای مربوطه به عناصر دسترسی پیدا کرد.
در زبانهای 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++، توابع با استفاده از دستور
در این الگو،
برای مثال، یک تابع ساده در زبان C که دو عدد را جمع کند را میتوان به صورت زیر نوشت:
در این مثال، تابع
در زبان C++ نیز، میتوان توابع را به همین شکل تعریف کرد. البته، در C++ میتوان از ویژگیهای بیشتری مانند تابعهای عضو کلاس، تابعهای مبتنی بر الگو و غیره استفاده کرد.
تابع
مثالی از یک تابع
در این مثال، تابع
در زبان C++ نیز میتوان از توابع
در زبانهای برنامهنویسی 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 (با ارجاع):
در این روش، آرگومانها به تابع ارسال میشوند و از طریق آنها، میتوان به مقادیر اصلی متغیرها دسترسی داشت.
خروجی:
Before increment: 10
After increment: 11
در اینجا، تابع
### Call by Value (با مقدار):
در این روش، کپی از مقادیر متغیرها به توابع منتقل میشوند، بنابراین تغییراتی که در تابع انجام میشود، تنها در دامنه آن تابع باقی میماند و بر روی متغیر اصلی تاثیری ندارد.
خروجی:
Before increment: 10
After increment: 10
در اینجا، تغییراتی که در تابع
در زبان 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++، از علامت
در این مثال،
2. مقداردهی به پوینتر:
برای مقداردهی به یک پوینتر، میتوان از عملگر
در این مثال،
3. دسترسی به مقدار اشاره شده توسط پوینتر:
برای دسترسی به مقداری که پوینتر به آن اشاره میکند، از عملگر
در این مثال،
4. پوینترها و آرایهها:
در C++، آرایهها به طور ضمنی به یک پوینتر به اولین عنصر آرایه تبدیل میشوند. برای مثال:
در این مثال،
5. پوینترها و ساختارها:
در C++، میتوانید با استفاده از پوینترها به صورت مستقیم به عناصر ساختارها دسترسی پیدا کنید. برای مثال:
در این مثال،
در زبان C++ نیز پوینترها همانند زبان C تعریف و استفاده میشوند. اما در زبان C++، به علاوه از قابلیتهایی مانند پوینترهای به همراه نوع (type-safe pointers) و پوینترهای هوشمند (smart pointers) نیز استفاده میشود. در زیر توضیحاتی درباره پوینترها در زبان C++ آورده شده است همراه با مثالهایی:
1. تعریف پوینتر:
برای تعریف یک پوینتر در C++، از علامت
* استفاده میشود. برای مثال:int* ptr;
در این مثال،
ptr یک پوینتر به یک متغیر از نوع int است.2. مقداردهی به پوینتر:
برای مقداردهی به یک پوینتر، میتوان از عملگر
& برای گرفتن آدرس متغیر استفاده کرد. برای مثال:int num = 10;
int* ptr = #
در این مثال،
ptr به آدرس متغیر num اشاره میکند.3. دسترسی به مقدار اشاره شده توسط پوینتر:
برای دسترسی به مقداری که پوینتر به آن اشاره میکند، از عملگر
* استفاده میشود. برای مثال:int num = 10;
int* ptr = #
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