campaign-off40

دوره مجازی #C (جلسه 4): مباحث پایه ای برنامه نویسی در زبان #C



visibility  
mode_comment   ۱۹

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

مطالب آموزش داده شده در این جلسه به قرار زیر می باشند:

  • آشنایی با محیط Visual Studio
  • آشنایی با محیط Console و برنامه هایی که در این محیط اجرا می شوند
  • آشنایی اولیه با syntax و قواعد زبان برنامه نویسی #C
  • نحوه ی چاپ خروجی بر روی صفحه نمایش
  • تعریف متغیرها در #C و قواعد نامگذاری آن ها
  • آشنایی با انواع داده ای عددی در #C
  • کار با مقادیر متغیر ها و آشنایی با نحوه ی انجام محاسبات ریاضی و اولویت عملگرها
  • خواندن مقادیر از صفحه کلید در Console
  • نحوه Debug کردن برنامه های در حال اجرا

در جلسه ی آینده مفاهیم برنامه نویسی بیشتری را فرا خواهیم گرفت و با انواع دیگر داده ها آشنا خواهیم شد؛ مفاهیمی مثل شرط ها، حلقه ها و سایر دستورات تصمیم گیری.

info توجه

این مطلب یک جلسه از دوره آموزش #C می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در دوره آموزش #C

comment دیدگاه کاربران
بردیا راستین replyپاسخ

سلام استاد. خسته نباشید. این جلسه خیلی عالی بود .
میخواستم بپرسم توی دوره جلسه ای برای اشیا و توابع از پیش ساخته شده هم داریم ؟ که مثلا اون ها رو معرفی کنید و بگید چه کاری انجام میدن البته منظورم 100 درصد نیست ولی خوب اونایی رو که کاربردی هستن رو معرفی میکنید ؟

و سوال دیگه هم این که آیا کنسول یک شئ هست که ما با متود دات رایت اون میتونیم مثلا مقادیر استیرینگی توش چاپ کنیم ؟
چون به نظر میرسید که شما اول کنسول رو نوشید بعد با دات به متودهاش دسترسی پیدا میکنید . و همینطور شبیه این سوال برای دستور کانورت چون اونم به نظرم یک شئ میومد .
با سپاس.

آرین زارعی

سلام دوست عزیز. ممنون .
در مورد سوال اولتون، بله ما در طول فصل آینده(2) و فصل 4و5 این کار رو به کرّات انجام می دیم. مثلا از اشیا و توابع برای کار با فایل استفاده می کنیم و موارد مشابه که در فصل 5 میشن کنترل هایی که بر روی فرم ها قرار می گیرن.
در مورد سوال دوم، برای یادگیری مفهوم شی و کلاس عجله نکنید در فصل دوم این کار را دقیق انجام میدیم. چون فرق یک شی با یک کلاس بسیار زیاد و همچنین مهم است. اگر بخوام خیلی کلی جوابتون رو بدم، کنسول یک کلاس است که متد write یک متد static است. همینطور برای convert …
convert و console دو کلاس هستند. به نمونه هایی که از کلاس ها ساخته می شوند ، شی یا object گفته می شود. مثلا انسان یک کلاس است و من و شما اشیایی هستیم که از این کلاس ساخته شده ایم…
خودتون رو فعلا درگیر این مسائل نکنید تا فصل بعد که مفصل به اون ها می پردازیم. فعلا بر روی مطالب پایه ای در این فصل تمرکز کنید..
موفق باشید.

بردیا راستین

مرسی که اینقدر زود پاسخ دادید.
درباره شئ گرایی و … توی دوره پی اچ پی جناب آوند لطف کردند یکسری مفاهیم رو آموزش دادن که ظاهرا برنامه نویسی شئ گرا توی همه زبان های برنامه نویسی یک مفهوم هست .
فقط یک پرسش اونم این که : شما گفتید کنسول یک کلاس هست. خوب ما باید برای استفاده از یک کلاس از روی اون یک نمونه بسازیم ولی ما بدون ساختن شئ (مثلا یک چیزی با کیبورد new در زبان هایی مثل جاوااسکریپت و پی اچ پی) از اون استفاده کردیم که این برای من جای تعجبه که چجوری بدون ساخت instance از کلاس کنسول از اون استفاده کردیم؟
بازم سپاس گزارم که خیلی زود رسیدگی کردید و واقعا جای خسته نباشید داره.

آرین زارعی

خواهش می کنم.
بله مفهوم شی گرایی در همه ی زبان های برنامه نویسی یکسان هست تقریبا. البته فقط مفهومش. ببینید ما یک سری متد یا متغیر داخل کلاس رو می تونیم به صورت استاتیک تعریف کنیم. یعنی این تابع(یا رفتار) وابسته به یک نمونه از کلاس نیست و کلا یک رفتار عمومی هست. مثلا در کلاس کانورت تغییر یک مقدار رشته ای به عددی ربطی به شی ساخته شده از کلاس نداره… در طول دوره با این متد ها و اشیای استاتیک بیشتر آشنا می شیم البته در فصل های بعدی…
پیروز و موفق باشید.

محمدمهدی جبارپور replyپاسخ

سلام
ممنون از آموزش خوبتون.
من وقتی می خوام یه پروژه با کنسول تو ویژوال استودیو ایجاد کنم ارور زیر را می دهد. مشکل از چیست
No exports were found that match the constraint:
Contract Name
Microsoft,VisualStudio.Text.lTextDocumentFactoryServiceRequiredTypeIdentity
با تشکر

آرین زارعی

سلام. خواهش می کنم.
این لینک رو بررسی کنید :
Link
در این لینک هم دقیقتر توضیح داده شده :
Link

محمدمهدی جبارپور

خیلی ممنون

ervin replyپاسخ

سلام استاد یه سوال
فرق بین Convert.ToInt32 با int.Parse در چیه!؟

آرین زارعی

سلام.
فرق خیلی قابل توجهی ندارن. تا جایی که خاطرم هست در طراحی ، در Convert.toint32 از int.parse استفاده می شه. البته این رو هم بگم که int.parse فقط جهت تبدیل رشته به عدد است ولی Convert.toint32 برای هر چیزی می تونه استفاده بشه.

Emran Zeynalzadeh replyپاسخ

سلام چرا دانلود نمیشن اینا ای بابا

آرین زارعی

سلام.
داریم بررسی می کنیم این مشکل رو به زودی برطرف میشه.

پژمان replyپاسخ

سلام جناب زارعی و ممنون بابت انرژی خوبی که در حین تدریس تا به اینجا گذاشته اید. همون چیزی که از تیم آقای آوند در این سایت انتظار میرفت.
من برنامه نویسی رو با کتاب جاوا دیتل مهندس پاشایی یاد گرفتم ولی البته 7 فصل بیشتر از اون کتاب رو مطالعه نکردم. ولی حداقل با مفهوم شی گرایی و کلاس ها و syntax برنامه نویسی ساخت یافته بصورت جامع آشنا شدم. واقعا منابع دیتل رفرنسهای جامعی هستند ولی بسییییار زمانبر.
سئوالم اینجاست، از اونجا که خیلی شنیدم جاوا و سی شارپ syntax نزدیکی بهم دارن ابهامی که ایجاد شده این هست که: در جاوا کلاسهای API رو در صورت لزوم import میکنن ، برای پرینت از System.out.println استفاده میشه که کلاس System از اونجایی که عضو پک java.lang هست و توسط jvm قابل شناسایی نیاز به import نداره، ولی اینجا شما از فرمان using System در خارج از بدنه کلاس پروژه استفاده کردید. آیا مفهوم using همون import در جاواست؟ در این صورت console هم باید کار شی out در جاوا رو، اینجا انجام بده ولی شما در توضیحات بالا گفتید console خودش یک کلاس هست. میشه بیشتر توضیح بدید. ممنون

آرین زارعی

سلام دوست عزیز.
ببینید بله، using شبیه import در جاوا هست. اولا سینتکس این دو زبان به هم شبیه هست و نه چیز دیگه مثل ساختار و معماری کامپایلر و runtime environment شون. شما وقتی میخواید از المان های داخل یک پکیج یا dll یا چیز های مشابه این استفاده کنید(المان می تواند کلاس باشد)، باید اون رو به پروژه ی خودتون اضافه کنید(از قسمت add reference) و سپس یا از using استفاده کنید یا اینکه آدرس دقیق کلاس یا المان رو با توجه به dll آن بدهید مثل system.net…. . در مورد console هم باید گفت اگر به بالای کلاستون و در قسمت using ها توجه کنید میبینید که لایبرری مربوط بهش اضافه شده.
موفق باشید.

پژمان

سپاس بابت توضیحات ولی لایبرری مربوط به Console کدوم یکی از using ها هست؟ در ضمن یعنی در سی شارپ، System خودش یه پک هست مثل java.lang ؟ که انواع کلاسها مثل Console درون اون هست؟ چون در جاوا System فقط یک کلاس صرف هست و نه بیشتر که درون پک java.lang قرار داره و نیازی هم به import نداره. ممنون

آرین زارعی

اگر روی کلاس کنسول موس تون رو نگه دارید مشاهده می کنید که در کلاس system قرار داره. خیلی خودتون رو در گیر مسائل حفظی و قرار دادی مثل این نکنید.

پژمان replyپاسخ

الان که خوب نگاه میکنم قواعد نامگذاری کلاسها، متغیرها و متدها ، نحوه فراخوانی، مفهوم استاتیک و داینامیک بودن متدها و فراخوانی کلاسها،ایجاد constructor ها، نحوه فراخوانی کلاس استاتیک main و رشته آرگومانهای ورودی به آن، متد parse و format و غیره …. بسیار جاوا و سی شارپ بهم شبیه هستند فقط یکی زبان مفسری و دیگری کامپایلریست و کمی در ساختار ایجاد برنامه در IDE هاشون متفاوت هستند که البته من کلا کلاس کار مایکروسافت رو دوست دارم همه چیز شسته رفته و قابل تمایز و قدم به قدم هست. مثلا در جاوا برای اینکه کلاسهای مرتبط برای اجرا همدیگه رو پیدا کنن بصورت دستی در مسیر کلاس حاوی متد main ذخیرشون میکردم تا تسلسل اشیاء فراخوانی و از نوع مراجعه، حفظ بشه ولی اینجا همه چیز لقمه آمادس. برای منی که اون محیط رو دیدم اینجا مثل تعویض ماشین از پژو به بنز هست.
ولی متاسفانه در سئوال پست قبل ودر رابطه با تفاوت نحوه فراخوانی کلاس System در جاوا و سی شارپ و فراخوانی Console اصلا نمیفهمم و اینکه چرا Console رو کلاس معرفی کردید و اگر اینطور هست چرا importش نکردید و آیا سی شارپ هم مثل جاوا پک API داره؟. به نظر شما تو این تفاوتهای ریز برای اینکه بین جاوا و سی شارپ قاطی نکنم چه کار کنم.بیش از یک سال جاوا کار کردم و چند پروژه تمرینی تحت کنسول نسبتا قوی و دانشجویی-فروشگاهی نوشتم. ولی تصمیم دارم وارد وادی دات نت بشم از این بعد، و کار رو با شما شروع کردم. مجددا ممنون

آرین زارعی

دوست عزیز. جفت زبان ها کامپایلری هستن و مفسری نیستن. البته که جاوا دارای ماشین مجازی هم هست و در یک گام کامپایل میشه و در گام دیگه بایت کد جاوا به زبان ماشین مربوط تبدیل میشه. توضیح سوال کنسولتون رو در کامنت دیگه دادم. به نظر من خودتون رو درگیر این مسائل نکنید و سعی نکنید این دو زبان رو باهم مقایسه کنید. اولا نمیشه با صرف زمانهای کوتاهی مثل 4 – 5 سال به هر دو زبان به یک اندازه تسلط داشت. دوما مقایسه ی این دو زبان رو باید به اهلش سپرد که چندین سال در زمینه های زبان های برنامه سازی و کانسپت های اون تخصص دارند. برای اینکه هم قاطی نکنید سعی کنید فقط روی یکیشون متمرکز بشید. این پیشنهاد من هست.

پژمان replyپاسخ

ببخشید جناب زارعی سئوالاتم زیاد شد، برای دوره Asp.net و MVC برنامه ای نداری. دوستان میگن بازارشون الان خیلی داغه و کلی پروژه هست توش. چون سی شارپ به تنهایی فایده ای نداره الان دیگه بیشتر پروژه ها تحت وب و موبایلی هستن. یا حداقل یه رفرنس خوب برای ادامه مجموعه شما در زمینه asp.net و مکمل اون یعنی فریم ورک mvc معرفی بفرمایید ممنون میشم.

آرین زارعی

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

ارسال نظرات

کاربر گرامی، امکان ارسال نظر و پشتیبانی برای دوره های مجازی فقط برای دانشجویان این دوره امکان پذیر می باشد.