محمد شعبانی
محمد شعبانی
خواندن ۴ دقیقه·۴ سال پیش

بررسی مبحث Input در زبان #C - قسمت ششم

بررسی مبحث دریافت داده از کاربر در زبان سی شارپ
بررسی مبحث دریافت داده از کاربر در زبان سی شارپ

سلام عرض می کنم خدمت شما دوستان عزیزم در این جلسه آموزشی قصد به مبحث دریافت داده از کاربر در زبان قدرتمند #C بپردازیم. در جلسات گذشته ما فقط عبارتی را روی صفحه چاپ می کردیم اما این جلسه قصد که از کاربر یک دیتا به عنوان ورودی بگیریم و پردازشی رو دیتا ورودی انجام بدیم. درنهایت پردازش نهایی را در محیط کنسول چاپ کنیم.


نحوه دریافت ورودی از کاربر

در زبان سی شارپ برای دریافت ورودی از کاربر از تابع Console.ReadLine استفاده می کنیم. برای درک بهتر این موضوع به مثال زیر توجه کنید:

قسمت های زرد رنگ مباحث مهم این جلسه هستند.
قسمت های زرد رنگ مباحث مهم این جلسه هستند.

در خط شماره 1 ما آمده ایم بسته System که حاوی محیط Console است را با دستور Using وارد پروژه خود کرده ایم. به مورد توجه بسیاری کنید. دوستانی که از سی شارپ پایین تر از نسخه 7 استفاده می کنند به موضوع زیاد دقت کنند.

در خط شماره 7 با تابع Console.WriteLine روی صفحه عبارت !Say hello را چاپ کرده ایم.

در خط نهم یک متغییر از نوع داده ای رشته ای (String) ساخته ایم و نام آن را response (پاسخ در فرهنگ لغت) گذاشته ایم. مقدار این متغییر را به تابع Console.ReadLine اختصاص داده ایم. معنی این دستور به این معنا است که از Console تابع ReadLine را وارد کن، حالا کار تابع ReadLine چیه؟ کار این تابع دریافت یک ورودی و ذخیره آن در متغییر اختصاص داده شده است.

یعنی الان اگر کاربر داده ای را وارد کند در متغییر response به عنوان مقدار ذخیره می شود. برای مثال اگر من عبارت Mohammad را وارد کنم، مقدار متغییر response برابر با رشته Mohammad می شود.

در خط شماره 11 از Console تابع WriteLine که همه می دانیم تابعی برای چاپ مقدار است را فراخوانی کرده ایم. در این تابع ابتدا رشته :You said را قرار داده ایم. سپس مقدار متغییر response را با علامت + به رشته !You said متصل کرده ایم.


تبدیل داده ها رشته ای به عددی

تمام مقدارهایی که از کاربر دریافت می کنیم به صورت پیشفرض در قالب یک مقدار String (رشته) هستند. گاهی وقت نیاز داریم پردازشی رو داده ها انجام دهیم. اما زبان سی شارپ رشته ها را به صورت زیر با هم جمع می کند:

اگر دو عبارت hello و world را با هم جمع کنیم خروجی به صورت زیر است:

Output: helloworld

اگر دو عدد که به صورت رشته هستند برای مثال 2 و 8 را با هم جمع کنیم خروجی به صورت زیر است:

Output: 82

اما این منطقی نیست. جمع اعداد 8 و 2 عدد 10 می باشد. پس در اینجا پای تبدیل انواع داده (Converting Value) وسط میاد. ما نتیجه 10 را می خواهیم نه 82!

برای تبدیل مقدار داده رشته ای به عددی به صورت زیر عمل می کنیم و از کلاس Convert و تابع toInt32 استفاده می کنیم.

string response = Console.ReadLine();

دریافت مقدار و ذخیره آن در متغییر response

int responseConverted = Convert.toInt32(response);

دریافت و تبدیل مقدار متغییر بالایی و ذخیره در این متغییر responseConverted

Console.WriteLine(responseConverted + 10);

چاپ مقدار و جمع آن با عدد 10

با تابع toInt32 متغییری که می خواهیم به عدد (int) تبدیل کنیم انجام می شود و نام متغییر خود را در ورودی این تابع وارد کنید تا تبدیل انجام شود. منظور از ورودی بین دو پرانتز جلویی تابع است.

از این قسمت به بعد ما در هر جلسه یک پروژه عملی پیاده سازی می کنیم.


محاسبه مساحت مستطیل - پروژه عملی قسمت ششم

در این پروژه قصد داریم مساحت مستطیل را با سی شارپ محاسبه کنیم. ابتدا دو ورودی دریافت می کنیم. این ورودی ها شامل طول و عرض هستند.

منطق پروژه ما چیست؟ منطق این است که از فرمول زیر پیروی کنیم:

مساحت مستطیل = طول * عرض

به کد زیر دقت کنید:

در خط شماره 10 طول مستطیل را دریافت و درون متغییر width ذخیره می کنیم.

در خط شماره 11 عرض مستطیل را دریافت و درون متغییر height ذخیره می کنیم.

در خط شماره 14 یک متغییر از نوع int (عددی) ساخته ایم و از کلاس Convert تابع toInt32 را بیرون کشیده و سپس مقدار متغییر width را در متغییر width_Convert تبدیل و ذخیره می کنیم.

در خط شماره 15 یک متغییر از نوع int (عددی) ساخته ایم و از کلاس Convert تابع toInt32 را بیرون کشیده و سپس مقدار متغییر height را در متغییر height_Convert تبدیل و ذخیره می کنیم.

در خط شماره 18 مقدارهای تبدیل شده را در هم ضرب و چاپ می کنیم.

من در ورودی خواسته شده عدد 2 به عنوان طول و عدد 4 به عنوان عرض داده ام که نتیجه نهایی برابر با هشت شده است.


خب این بخش هم به پایان رسید. ممنون از این که این بخش رو هم با من همراه بودید و وقت ارزشمندتان را در اختیار من گذاشتید. امیدوارم توانسته باشم به خوبی این مبحث را آموزش داده باشم. اگر نظری، پیشنهادی و انتقادی دارید خوشحال می شوم در بخش نظرات با من در میان بگذارید. اگر هم دوست داشتید که جلسات این دوره و دوره های دیگر را به راحتی به دست آورید ما را درون شبکه اجتماعی ویرگول دنبال کنید. شاد و موید و پیروز باشید و خدانگهدار.

سی شارپورودی
ریاضی دان و برنامه نویس
شاید از این پست‌ها خوشتان بیاید