در این مقاله میخواهیم با پیادهسازی ۳ اپلیکیشن کار با متغیرها در زبان رو یاد بگیریم؛ که به ما کمک میکنند مقادیر رو در حافظه کامپیوتر نگه داریم.
به کمک متغیرها ما میتوانیم برنامههایی بنویسیم که میتوانند اطلاعات را برای مدت کوتاهی در حافظه نگه دارند، روی آنها پردازش انجام دهند و محاسبات مورد نیاز برای عملکردشان به عنوان یک اپلیکیشن کاربردی را تکمیل کنند.
#include <iostream>
using namespace std;
int main() {
int a, b;
cout << "Enter the first number ";
cin >> a;
cout << "Enter the second number ";
cin >> b;
cout << "The sum of these two numbers is: " << a + b << endl;
}
Enter the first number 2
Enter the second number 3
The sum of these two numbers is: 5
اولین برنامه ای که میخواهیم بنویسیم اسمش Echo هست؛ درست مثل اکوی صدا که وقتی به سمت کوه فریاد میزنید اتفاق میافتد این برنامه هم باید یک ورودی از کاربر دریافت کند و بعد مجددا آن را به کاربر برگرداند و نشان دهد (پرینتش کند).
برای دریافت ورودی (INput) از cin استفاده میکنیم:
cin >>
میبینید که علامتهای >>
برای استفاده از cin هم کاربردی هستند و همانطور که در مقاله قبل گفته شد جریان دیتا رو نشان میدهند٬ در اینجا از طرف ورودی کاربر٬ به متغیری که ما میخواهیم مقدار ورودی کاربر را داخلش نگه داریم.
اما متغیر چیست؟
فکر کنید درخواست مشابهی از شما میشد٬ از شما خواسته میشد که چیزی که یک شخص بیان میکند را تکرار کنید٬ کاری که شما باید انجام بدهید این است که گوش کنید آن شخص چه میگوید و بعد هر چه که شنیدید را در حافظه کوتاه مدت خود نگه دارید تا بتوانید تکرارش کنید. کامپیوتر هم یک حافظه کوتاه یا رم (RAM: Random Access Memory) دارد که میتواند اطلاعاتی که در حین پردازشها نیاز دارد را آنجا نگه دارد، ما برای بخشی از این حافظه یک اسم تعریف میکنیم و دیتای مدنظرمان را در آن نگه میداریم.
این متغیر ها بر مبنای اندازهشان که تعیین کننده مقداریست که میتوانند درخود نگه دارند و نوع دیتایی که نگه میدارند تایپهای مختلفی دارند که شامل موارد زیر است:
کاربرد | تایپ (نوع داده) |
---|---|
درست یا غلط – true یا false | bool |
نگه داشتن یک کارکتر | char |
نگه داشتن اعداد کوچک (بدون اعشار) | short |
نگه داشتن اعداد (بدون اعشار) | int |
نگه داشتن اعداد بزرگ (بدون اعشار) | long |
نگه داشتن اعداد اعشاری | float |
نگه داشتن اعداد اعشاری بزرگ | double |
البته به این ها primitive data types یا دیتا تایپ های اولیه گفته میشود. تایپ های دیگری هم وجود دارند که برنامه نویسان تعریف کردند؛ مثل string که بخشی از standard library هست و برای ذخیره یک رشته کارکتری (string به معنی رشته هست) استفاده میشود حالا این رشته میتواند یک کارکتر(حرف) باشد میتواند جمله یا یک بند یا محتویات یک فایل بزرگ باشد.
در کل تعریف متغیر در فرمت زیر انجام میشه:
data_type variable_name;
مثلا یک متغیر از نوع عدد به اسم سن(age) تعریف کنیم:
int age;
می توان مقدار اولیه ای را نیز به هر متغیر داد و اصطلاحا متغیر را initialize کرد مثلا:
int age = 19;
و برای تغییر مقدار متغیر هم میتوان نوشت
age = 20;
بر اساس چیزی که تا اینجا خواندید حدس میزنید خروجی کد زیر چه باشد؟
int a = 10;
cout << a << endl;
a = 20;
cout << a << endl;
20
10
10
10
10
20
درسته
یک متغیر به نام a در این کد تعریف شده که مقدار اولیه ۱۰ را دارا بوده که وقتی برای اولین بار پرینت شده این عدد (۱۰) چاپ میشود. سپس مقدار متغیر عوض شده و معادل ۲۰ قرار گرفته که نتیجتا cout
خط ۴ که بعد از این تغییر اجرا میشود این مقدار جدید را چاپ میکند پس خروجی این برنامه ۱۰ و سپس ۲۰ خواهد بود
خب برگردیم به برنامه خودمان، اولین چیزی که مشخص است این مورد هست که ما باید یک متن از کاربر به عنوان ورودی دریافت کنیم پس متغیری تعریف میکنیم به اسم input و با تایپ string (در کل اسم متغیر یک قرارداد بین شما و کامپایلر هست و محدودیت خاصی در انتخاب آن ندارید؛ اما بهتر است اسمی که انتخاب میکنید مربوط به کاری که قرار است با آن متغیر انجام بدهید باشد. مانند همین مثال که میخواهیم چیزی که کاربر به عنوان ورودی به ما میدهد را در متغیر نگه داریم و به همین خاطر اسم آن را میگزاریم input)
string input;
و بعد از cin استفاده می کنیم تا از کاربر ورودی بگیریم و آن را در input ذخیره کنیم:
cin >> input;
آخرین کاری که باید انجام بدهیم هم این است که ورودی ای که دریافت کردهایم را پرینت کنیم.
cout << input << endl;
و endl را هم به همان دلیلی که در مقاله قبل گفتیم یعنی برای حل مشکل پرامپت اضافه میکنیم.
اگر ۳ خط بالا و بخشهای کلی برنامه شامل تعریف main و include ها را کنار هم بگذاریم٬ برنامه نهایی به شکل زیر در میآید:
#include <iostream>
#include <string>
using namespace std;
int main() {
string input;
cin >> input;
cout << input << endl;
}
matni ke inja neveshte mishe echo mishe
matni ke inja neveshte mishe echo mishe
اینکلود مربوط به string (خط ۲) هم اضافه شده تا بتوانیم از string در برنامه استفاده کنیم.
برنامه دومی که میخواهیم بنویسیم برنامه ای هست که قرار است اسم کاربر را بپرسد و به او سلام کند. مثال:
Radin
Hello, Radin
با چند تغییر روی کدی که در مرحله قبل نوشتیم میتوانیم به برنامه مد نظرمان برسیم.
#include <iostream>
#include <string>
using namespace std;
int main() {
string input;
cin >> input;
cout << input << endl;
}
اول میتوانیم اسم متغیر را به name تغییر بدهیم تا بهتر با هدف برنامه بخواند (همانطور که قبل تر گفته شد اسم متغیر اهمیتی در اجرای برنامه ندارد اما بهتر است درست انتخاب شود تا کد خواناتر باشد و برنامهنویس های دیگر هم آن را بهتر بفهمند)
#include <iostream>
#include <string>
using namespace std;
int main() {
string name;
cin >> name;
cout << name << endl;
}
و بعد “Hello” را به cout اضافه میکنیم:
#include <iostream>
#include <string>
using namespace std;
int main() {
string name;
cin >> name;
cout << "Hello" << name << endl;
}
Radin
HelloRadin
ولی خب همانطور که میبینید Hello و اسم کاربر در خروجی به هم چسبیدهاند که برای حل این موضوع میتوان یک اسپیس بعد Hello اضافه کرد. (به همراه یک، برای قشنگتر شدن خروجی)
خروجی نهایی:
#include <iostream>
#include <string>
using namespace std;
int main() {
string name;
cin >> name;
cout << "Hello, " << name << endl;
}
Radin
Hello, Radin
مثال دیگری که میخواهیم بررسی کنیم برنامهای است که دو عدد را از کاربر دریافت میکند و بعد حاصل جمع آنها را پرینت میکند.
اول دو متغیر با نامهای a و b از نوع int
برای نگه داشتن اعداد ورودی تعریف میکنیم (توجه کنید که تعریف هر دو این متغیرها چون دیتاتایپ مشترکی داشتن در یک خط اتفاق افتاده) و سپس با استفاده از cin
مقادیر هر دو را از کاربر دریافت میکنیم (همچنین میبینیم که cin
نیز مانند cout
توانایی دریافت دو متغیر به طور همزمان و در یک خط را داراست):
int a, b;
cin >> a >> b;
حالا حاصل جمع آنها رو با استفاده از cout پرینت میکنیم (چهار عمل اصلی + و – و * و / برای ما در دسترس هستند):
cout << a + b << endl;
خب این برنامه دقیقا کاری که قرار بود را انجام میدهد و خروجی نهایی آن به شکل زیر در میآید.
#include <iostream>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
cout << a + b << endl;
}
ولی این برنامه یک مشکل ریز دارد و آن اینکه کاربر اصلا متوجه نمیشود چطور باید از برنامه استفاده کند و برنامه بعد از اجرا به طور مستقیم منتظر ورودی کاربر میماند.
برای حل این مشکل میتوانیم از cout
که قبل از این هم با آن کار کردهایم استفاده کنیم تا قبل از این که از کاربر ورودی بگیریم یک پیام برای مطلع کردن کاربر پرینت کنیم. مثل:
cout << "Enter the first number ";
cin >> a;
اینجا نیازی به رفتن به خط بعد نیست چون میخواهیم که یوزر عددش را جلو متن ما بنویسد و همچنین میبینید که برای این که کارکتر r از متن ما به عدد کاربر نچسبد یک اسپیس هم در آخر متن خود گذاشتهایم.
با این تغییرات خروجی نهایی برنامه به شکل زیر در میآید:
#include <iostream>
using namespace std;
int main() {
int a, b;
cout << "Enter the first number ";
cin >> a;
cout << "Enter the second number ";
cin >> b;
cout << "The sum of these two numbers is: " << a + b << endl;
}
Enter the first number 2
Enter the second number 3
The sum of these two numbers is: 5
در این مقاله کار با متغیرها را در زبان با نوشتن سه برنامه زیر یاد گرفتیم. در مطلب بعدی هم میخواهیم راجع به شرط ها در زبان
صحبت کنیم. منتظرتان هستیم.
#include <iostream>
#include <string>
using namespace std;
int main() {
string input;
cin >> input;
cout << input << endl;
}
matni ke inja neveshte mishe echo mishe
matni ke inja neveshte mishe echo mishe
#include <iostream>
#include <string>
using namespace std;
int main() {
string name;
cin >> name;
cout << "Hello, " << name << endl;
}
Radin
Hello, Radin
#include <iostream>
using namespace std;
int main() {
int a, b;
cout << "Enter the first number ";
cin >> a;
cout << "Enter the second number ";
cin >> b;
cout << "The sum of these two numbers is: " << a + b << endl;
}
Enter the first number 2
Enter the second number 3
The sum of these two numbers is: 5