یادگیری برنامه نویسی، دستورات ورودی و خروجی

در بخشهای قبلی در مورد دستورات، رابط کاربری، متغیرها و انواع داده‌ها صحبت کردیم، میدانیم که یک برنامه نویس می‌تواند روشهای مختلفی را برای برقراری ارتباط بین کاربر و نرم‌افزار انتخاب کند، نرم‌افزارهایی که برای استفاده کاربران عادی نوشته می‌شوند از رابط کاربری گرافیکی استفاده می‌کنند، حتی امکان برقراری ارتباط صوتی (دستیار صوتی آمازون، یا کورتانای ماکروسافت و ...) وجود دارد، حتی در دستگاه‌های تلفن همراه وجود سنسورهای مختلف توانایی برقراری ارتباط به روشهای دیگر را نیز مهیا می‌کند، اما در حال حاضر راحت ترین رابط کاربری که میتوان برنامه نویسی برای آن را یاد گرفت رابط متنی یا همان command line(خط فرمان) هست، در ساده ترین حالت سناریوی آن بسیار راحت و کارا هست، برنامه اجرا شده، ورودیهایی از کاربر گرفته و بعد از تفسیر آنها کاری انجام میدهد، حتی گاهی برنامه بسیار ساده است و بدون تفسیر ورودی کاری را انجام داده و میتواند خروجی نشان دهد. در این بخش با دستورات ورود و خروج آشنا شده، سپس با کمی از قوانین مربوطه آشنا میشیم.

دستورات ورود و خروجی

معمولاً برنامه‌ها اینطورند که یک یا چند ورودی از کاربر گرفته و روی آنها عملیای انجام داده و خروجی را در صورت وجود نمایش میدهند. در رابط گرافیکی شما ورودیها را درون کادرهای مختلف تایپ کرده یا از گزینه‌های مختلف انتخاب کرده و با کلیک بر روی یک کلید عملیات مورد نظر انجام میشود، اما در رابط خط فرمان(رابط متنی) برنامه اجرا شده و با نمایش راهنماهایی ورودی مورد نظر را از شما می‌خواهد و بعد از اینکه شما از طریق کیبورد مقادیر را وارد کرده و انتر می‌زنید برنامه کار خود را ادامه میدهد. سپس اگر لازم باشد خروجی مورد نظر یا پیغامی را به کاربر نشان میدهد.

مثال: چاپ سلام دنیا در پایتون و سی شارپ:

#python code:
print(&quotHello world&quot)

و سپس در سی شارپ:

//C# code
Console.Write(&quotHello world&quot);

از دستورات خروجی معمولا میتوان برای چاپ انواع داده‌های مختلف و حتی پیغامها استفاده کرد:

#python code:
print(3)
myname=&quotYahya&quot
print(myname)
Is_married= True
print(Is_married) 
print(&quotYou will be greatest programmer&quot)

همانطور که دیدیم در پایتون دستور چاپ اطلاعات print و در سی شارپ Console.Write هست، البته اینها ساده‌ترین دستورات خروجی هستند که در این دو زبان وجود دارند، ممکن است دستورات خروجی دیگری نیز وجود داشته باشند، مثلاً در سی شارپ Console.WriteLine نیز وجود دارد که بعد از چاپ اطلاعات نشانگر را به خط بعدی منتقل میدهد. در پایتون دستور print به صورت پیشفرض بعد از چاپ اطلاعات بعدی نشانگر را به خط بعدی منتقل میکند، و برای پرهیز از این کار در پایتون میتوان به صورت زیر عمل کرد:

print(&quota value&quot,end=&quot&quot)
همانطور که مشاهده می‌کنید، دستورات خروجی را میتوان به صورتهای مختلف به کار برد، چون در این سری آموزشی تنها هدف بنده توضیح موارد اساسی و اصلی در برنامه نویسی هست، به جزئیات پرداخته نمی‌شود، جهت آشنایی بیشتر با جزئیات انواع دستورات می‌توانید به آموزشهایی که برای زبان برنامه‌نویسی مورد علاقه‌تان وجود دارد مراجعه کنید.

دستورات ورود اطلاعات:

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

در پایتون:

#python code: 
your_name= input()

و معادل آن در سی شارپ:

//c# code: 
string your_name=Console.Readline();

حال یک برنامه ساده می‌نویسیم:

برنامه‌ای که اسم و فامیل را به صورت مجزا از کاربر گرفته و آنها را به فرمت زیر چاپ کند:

Family Name

در پایتون داریم:

print(&quotPlease enter your name: &quot)
your_name= input()
print(&quotPlease enter your family: )
your_family = input()
print(your_family,your_name)

توضیح برنامه ساده هست، ابتدا با پیغامی از کاربر میخواهد نام خود را وارد کند، سپس منتظر میماند تا کاربر مقداری را از طریق کیبورد وارد کند تا آنرا در متغیر your_name بریزد، سپس با پیغامی از کاربر میخواهد تا فامیلی را هم وارد کند که بعد از وارد کردن فامیلی آنرا در متغیر your_family ذخیره می‌کند، در آخر آنها را به صورتی پشت سر هم چاپ میکند تا خروجی مورد نظر بدست بیاید. همانطور که میبینید در یک دستور خروجی میتوان چند اطلاعات مختلف را برای چاپ در مانیتور ارسال کرد، که آنها را با , (ویرگول) از هم جدا میکنیم.

نکته: پایتون به صورت اتوماتیک در دستور print بین داده های خروجی فاصله میگذارد اما این در مورد سی شارپ و یا سایر اکثر زبانها صادق نیست. مثلا خروجی دستور print(1,2) در پایتون میشود: 2 1 اما خروجی دستور Console.Write(1,2) در سی شارپ میشود: 12. در اینجا بین یک و دو فاصله‌ای نیافتاده.

در مثالی دیگر دو عدد از کاربر گرفته و حاصل ضرب آنها را چاپ میکنیم:

در ابتدا، لازم هست توضیحی در مورد دستور input بکار برده شده در برنامه زیر داده شود، در پایتون میتوان به شکلی که در برنامه زیر مشاهده میکنید با دستور input پیغامی را به منظور راهنمایی دادن کاربر در مورد داده‌هایی که قرار هست وارد کند، چاپ کرد.

#python code: 
a=int(input(&quotplease enter first number: &quot))
b=int(input(&quotplease enter second number: &quot))
print(&quotthe result is: &quot,a*b)

برنامه بسیار ساده هست، دو عدد از کاربر گرفته در متغیرهای a و b قرار میدهد، سپس حاصلضرب آنها را با یک پیغام مناسب چاپ میکند.

تبدیل گرها:

تقریباً در همه زبانها وقتی اطلاعاتی توسط کاربر توسط دستورات ورودی وارد میشود به صورت متنی( نوع داده رشته ای) وارد میشوند، یعنی حتی اگر کاربر مقدار 12 را وارد کند، ابتدا آن مقدار وارد شده برای کامپیوتر ارزشی معادل عدد 12 را ندارد بلکه به صورت یک دو (یک داده متنی) شناخته میشود، برای اینکه کامپیوتر نیز بتواند از 12 همان ارزش عددی آنرا برداشت کند باید ورودی را از نوع رشته‌ای به نوع داده‌ای عددی تبدیل کنیم، دستوراتی که این امکان را محیا میکنند اصطلاحاً تبدیلگرها نامیده میشوند، تبدیلگرها معمولاً توانایی تبدیل آنواع داده‌ها به یکدیگر را دارند، مثلاً میتوانند رشته را به عدد، عدد را به رشته، نوع صحیح را به اعشاری و اعشاری به صحیح و ... تبدیل کنند، مثلاً چند تبدیلگر در پایتون:

#python code 
string_number=&quot2345&quot
number= int(string_number) # متغیر اولی که رشته هست رو به صورت عددی در متغیر دوم میریزد
#------------------------------------------------------------------------------------------------
string_float=&quot457.36&quot #یک رشته حاوی یک عدد اعشاری
float_number=float(string_float) # مقدار رشته ای موجود در متغیر قبلی را به صورت یک عدد اعشار ذخیره میکند

چند نمونه ار قوانین و نکات دستورات ورود و خروج:

1- معمولا در یک دستور خروجی میتوان چند داده را چاپ کرد، برای جداکردن داده ها از ویرگول استفاده میشود و همه آنها را باید ما بین دوتا پرانتز نوشت، همانطور که در مثالها موجود است.

2- دستورات ورودی معمولاً در سمت راست مساوی قرار میگیرند، یعنی به شکل زیر:

name_of_variable = input_statement

3- برعکس دستورات خروجی، در یک خط فقط میتوان یک ورودی را از کاربر گرفت.

4- داده‌ها معمولاً به شکل رشته (string) از کاربر گرفته میشوند که برای استفاده های خاص با استفاده از تبدیلگرها به نوع داده‌ای مورد نظر تبدیل میشوند، البته در برخی زبانها دستوراتی هستند که کار را راحت تر کرده و برای گرفتن انواع داده های غیر رشته ای مثل اعداد دستورات جداگانه‌ای تدارک دیدند.


خلاصه:

در این بخش با دستورات خروجی و ورودی آشنا شدیم، مثالهای در مورد هرکدام آورده شد، به صورت مختصر با تبدیلگرها نیز آشنا شدیم، در آخر نیز با چند نکته در مورد دستورات ورودی و خروجی آشنا شدیم.


در آینده:

در بخش بعدی ابتدا با مفاهیم عملگر و عملوند آشنا خواهیم شد، و سپس چند برنامه ساده خواهیم نوشت، تا در ادامه سری آموزشی بیشتر در مسیر کد نویسی قرار بگیریم.