ورودی، خروجی و متغیرها

قسمت 2 از دوره C++

معرفی

برنامه Echo

برنامه سلام

برنامه جمع

جمع بندی

معرفی
برنامه Echo
برنامه سلام
برنامه جمع
جمع بندی

در این مقاله می‌خواهیم با پیاده‌سازی ۳ اپلیکیشن کار با متغیرها در زبان  رو یاد بگیریم؛ که به ما کمک می‌کنند مقادیر رو در حافظه کامپیوتر نگه داریم.

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

#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 یا falsebool
نگه داشتن یک کارکترchar
نگه داشتن اعداد کوچک (بدون اعشار)short
نگه داشتن اعداد (بدون اعشار)int
نگه داشتن اعداد بزرگ (بدون اعشار)long
نگه داشتن اعداد اعشاریfloat
نگه داشتن اعداد اعشاری بزرگdouble
لیستی از انواع داده یا دیتاتایپ‌های اولیه یا Primary

البته به این ها 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

وارد شوید تا پیشرفت خود را ثبت کنید

وارد شوید تا پروژه‌هایی که تکمیل می‌کنید را علامت گذاری کنید و فرایند یادگیری خود را ثبت کنید

دیدگاهتان را بنویسید

برای نوشتن نظر٬ اول باید وارد شوید

مرحله بعد

معرفی

اطلاعات شما با موفقیت ثبت شد. کارشناسان ما در اسرع وقت با شما تماس خواهند گرفت.

از شکیبایی شما متشکریم.