خانه
گاما

درسنامه آموزشی تولید محتوای الکترونیک و برنامه سازی کلاس دهم شبکه و نرم افزار رایانه

پودمان 4: حل مسایل ساده

بازدید18/1 K
تاریخ بروزرسانی1400/06/15

واحد یادگیری 7 (شایستگی حل مسئله و کار با IDE)

آیا تا به حال پی‌برده‌اید

- برای حل یک مسئله چه مراحلی باید طی شود؟
- برای رسم روندنمای یک مسئله از چه نرم‌افزاری می‌توان استفاده کرد؟
- IDE چیست و چه کاربردی دارد؟
- در زبان سی‌شارپ دستورات چگونه از یکدیگر تفکیک می‌شوند؟
- چگونه می‌توان در زبان سی‌شارپ خروجی‌های جذاب همراه صدا تولید کرد؟

هدف از این واحد شایستگی، چگونگی حل مسئله و کار با بخش‌های مختلف IDE و ایجاد برنامه‌های کنسول ساده برای نمایش خروجی‌های ساده و جذاب است.

استاندارد عملکرد

با دانش حل مسئله، راه حل و الگوریتم ارائه دهد و از محیط IDE برای ایجاد برنامه‌های ساده کنسول برای تولید خروجی‌های جذاب استفاده کند.

حل مسئله (Problem Solving)

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

ابزار اصلی خرید اینترنتی، وجود یک کارت بانکی است. در ایران بیشتر بانک‌ها عضو شبکه شتاب هستند؛ بنابراین داشتن کارت یکی از این بانک‌ها امکان استفاده از خدمات گسترده این شبکه را فراهم می‌سازد. با مراجعه به فروشگاه‌های اینترنتی که از درگاه پرداخت الکترونیک شتاب استفاده می‌کنند، می‌توانیم از خدمات خرید اینترنتی استفاده کنیم.

فعالیت گروهی (صفحهٔ 165 کتاب درسی)

 

با هم‌کلاسی خود، درباره مراحل انجام یک خرید اینترنتی گفتگو کنید.

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

1- شماره کارت
2- رمز خرید اینترنتی یا رمز دوم کارت
3- CVV2
4- تاریخ انقضای کارت
5- ایمیل
6- کد امنیتی یا کپچا

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

پژوهش (صفحهٔ 165 کتاب درسی)

 

درباره روش‌های تولید کد امنیتی (کپچا) تحقیق کنید.

فعالیت گروهی (صفحهٔ 165 کتاب درسی)

 

در مورد دلایل استفاده از صفحه کلید مجازی در زمان خرید اینترنتی با هم‌کلاسی خود بحث کنید.

اولین گام حل مسئله شناخت مسئله است. در این مرحله تعیین می‌کنیم:

1- چه داده‌هایی داریم؟ پاسخ این سؤال، ورودی‌های مسئله است.
2- چه اطلاعاتی را می‌خواهیم به دست آوریم؟ پاسخ این سؤال خروجی‌های مسئله است.

گام بعدی حل مسئله طرح نقشه است. که در این گام مسیر رسیدن از ورودی به خروجی را تعیین می‌کنیم.

مسئله 1: برای خرید اینترنتی جدول حل مسئله را تکمیل کنید.

شناخت مسئله ورودی‌ها شماره کارت، رمز دوم ......
خروجی‌ها کد رهگیری پرداخت
الگوریتم 0- شروع
1- وارد کردن شماره کارت بانکی
2- 




پایان

مسئله 2: برای یک سامانه ورود و خروج کارمندان که بر اساس اثر انگشت کار می‌کند، جدول زیر را کامل کنید.

شناخت مسئله ورودی‌ها                        
خروجی‌ها  
الگوریتم 0- شروع
1- لمس کردن مکان مخصوص اثر انگشت
2- اگر کاربر مجاز است، در باز شود در غیر این صورت در باز نشود.
3- پایان

فعالیت کارگاهی (صفحهٔ 166 کتاب درسی)

 

سامانه‌های مسئله 1و 2 را از لحاظ ورودی، خروجی و پردازش مقایسه کنید.

مسئله 3: انرژی‌های تجدیدپذیر با توجه به تصاویر انرژی‌های تجدیدپذیر، جداول زیر را تکمیل کنید.

شکل 1- توربین بادی
شکل 1- توربین بادی
شناخت مسئله ورودی‌ها                         
خروجی‌ها  
الگوریتم 0- شروع
1- وزش باد
2- چرخش توربین بادی
3- تولید انرژی الکتریکی
4- اگر تولید انرژی الکتریکی از طریق توربین کافی بود، وارد شبکه خانگی شود در غیر این صورت از شبکه توزیع برق شهری استفاده کند
5- پایان
شکل 2- سلول خورشیدی
شکل 2- سلول خورشیدی
شاخت مسئله ورودی‌ها تابش خورشید
خروجی‌ها الکتریسیته
الگوریتم 0- شروع
1-
2-

سامانه تولید انرژی‌های تجدیدپذیر شامل چندین زیر سامانه است که هر کدام کار مجزایی برای یک هدف مشخص انجام می‌دهند. همان‌طور که در تصویر مشخص است خروجی یک سامانه، ورودی سامانه دیگری است. اطلاعات خواسته شدۀ جدول زیر را تکمیل کنید.

ردیف سامانه سامانه تعیین‌کننده ورودی سامانه استفاده‌کننده خروجی
1 سلول خورشیدی   مبدل
2 مبدل سلول خورشیدی  
3 واحد اندازه‌گیری    

مسئله 4: نگین و باران هر دو کوچک هستند و نمی‌توانند روی پاهای خود بایستند. نگین روی صندلی قرمز شو باران روی صندلی آبی نشسته است. بچه‌ها می‌خواهند صندلی خود را عوض کنند. مادر بچه‌ها در خانه تنها است. الگوریتم زیر را طوری کامل کنید که مادرشان بتواند جای بچه‌ها را با یکدیگر عوض کند (شکل 3).

کنجکاوی (صفحهٔ (صفحهٔ 168 کتاب درسی)

 

محدودیت مسئله نشان می‌دهد نگین و باران نمی‌توانند روی پای خود بایستند. با وجود این چه راه‌حلی به ذهن شما می‌رسد؟ روبه‌ر‌وی شکل 3 بنویسید.

شناخت مسئله ورودی‌ها                                     
خروجی‌ها  
الگوریتم 0- شروع
1- blankChair ← redChair
2- redChair ← blueChair
3- ..........
4- پایان
شکل 3- جابه‌جایی
شکل 3- جابه‌جایی

الگوریتم، یکی از روش‌های حل گام به گام مسئله است و روندنما جریان کاری الگوریتم را به تصویر می‌کشد. در حل مسائل به کمک الگوریتم، می‌توانیم از روندنما استفاده کنیم.

فعالیت کارگاهی (صفحهٔ‌ 169 کتاب درسی)

 

نماد استاندارد برای ترسیم روندنما را در محل‌های آن رسم کنید.

مسئله 5: اگر سن دو نفر را داشته باشیم، روندنمای زیر را طوری تکمیل کنید که سن فرد بزرگ‌تر را نمایش دهد.

شناخت مسئله ورودی‌ها              
خروجی‌ها  
روندنما

مسئله 6: روندنمای طراحی شده را طوری تکمیل کنید که اندازه قد سه نفر را از ورودی گرفته، آن‌ها را به صورت نزولی یعنی از بزرگ به کوچک مرتب کند (شکل 4).

شناخت مسئله ورودی‌ها                                                    
خروجی‌ها  
روندنما

شکل 4- مرتب‌سازی
شکل 4- مرتب‌سازی

فعالیت کارگاهی (صفحهٔ 171 کتاب درسی)

 

برای سه ورودی با ترتیب‌های مختلف روندنما را اجرا کرده، درستی آن را بررسی کنید.

مسئله 7: هر رایانه رومیزی از موادی که در جدول روبه‌رو آمده، تشکیل شده است.

با فرض اینکه هر رایانه رومیزی حدود 9 کیلوگرم وزن دارد، در کارگاه رایانه هنرستان شما چندگرم طلا و نقره وجود دارد؟

شناخت مسئله ورودی‌ها تعداد رایانه‌های کارگاه
خروجی‌ها میزان طلا و نقره برحسب گرم
روندنما




 

برخی از داده‌های این مسئله، برای به دست آوردن خروجی به ما کمکی نمی‌کنند و زائد هستند. بنابراین داده‌های مسئله به دو دسته مرتبط و غیر مرتبط تقسیم‌بندی می‌شوند. داده‌های مرتبط در روند اجرای مسئله تأثیر دارند؛ ولی داده‌های غیر مرتبط تأثیری بر نتیجه خروجی و الگوریتم حل مسئله نخواهند داشت.

فعالیت کارگاهی (صفحهٔ 172 کتاب درسی)

 

داده‌های غیر مرتبط مسئله 7 را بنویسید.

نرم‌افزار RAPTOR

نرم‌افزار RAPTOR ابزاری قدرتمند برای ترسیم و بررسی روندنما در رایانه است که قابلیت‌های زیادی دارد:

- روندنما را در پرونده‌ای با پسوند rap ذخیره می‌کند.
- روندنما را به زبان سی‌شارپ و برخی زبان‌های دیگر ترجمه می‌کند.
- سرعت اجرا را کاهش می‌دهد تا روند اجرا قابل مشاهده باشد.
- امکان اجرای مرحله به مرحله دارد.
- تغییرات متغیرها در حافظه را نمایش می‌دهد.

برای نصب این نرم‌‌افزار به صورت 64 بیتی باید ابتدا Net Framework 3.5 را نصب کنید.

کنجکاوی (صفحهٔ 172 کتاب درسی)

 

شکل 5 بیان حل چه مسئله‌‌‌‌‌‌‌‌‌‌ای است؟

شکل 5- نرم‌افزار RAPTOR
شکل 5- نرم‌افزار RAPTOR

فعالیت کارگاهی (صفحهٔ 172 کتاب درسی)

 

با استفاده از نرم‌افزار RAPTOR و با راهنمایی هنرآموز روندنمای شکل 3 را ترسیم کرده، آن را اجرا کنید.

برداشت (صفحهٔ 173 کتاب درسی)

 

آنچه آموختم:

1-
2-
3-

آشنایی با زبان سی‌شارپ

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

شکل 6- اولین الگوریتم نوشته شده به وسیله نخستین برنامه‌نویس جهان خانم ADA
شکل 6- اولین الگوریتم نوشته شده به وسیله نخستین برنامه‌نویس جهان خانم ADA

زبان برنامه نویسی سی شارپ در سال 2000 با نام تجاری #C انتشار یافت. این زبان از خانواده زبان‌های بر پایه NET Framework. است. زبان #C از لایه نرم‌افزاری NET. استفاده می‌کند که برای ویندوز طراحی شده است. اگر بخواهیم روی سیستم عامل دیگری برنامه سی‌شارپ را اجرا کنیم، باید لایه نرم‌افزاری مطابق با NET. روی آن سیستم نصب شود.

آشنایی با ویژوال استودیو

Integrated Development Environment) IDE) محیط‌های نرم‌افزاری توسعه یافته و یکپارچه است. IDEهایی که برای برنامه‌نویسی استفاده می‌شوند، نرم‌افزارهایی هستند که ابزارهای مورد نیاز مانند ویرایشگر برنامه، مترجم، اشکال‌زدایی و ... را به صورت یکپارچه برای برنامه‌نویس فراهم می‌سازند. در این کتاب از نسخه رایگان Visual Studio Express 2012 for Desktop استفاده می‌کنیم که محیط IDE برنامه‌نویسی مایکروسافت است و آن را به اختصار VS می‌نامیم.

فعالیت منزل (صفحهٔ 174 کتاب درسی)

 

نرم‌افزار ویژوال استودیو را روی رایانه شخصی خود نصب کنید.

کارگاه 1 (ایجاد اولین برنامه در سی‌شارپ) 

1- برنامه VS را از مسیر زیر اجرا کنید.

...\Programs\Microsoft Visual Studio 2012 Express

2- پروژه جدید ایجاد کنید.

برای ایجاد پروژه مطابق مراحل درج شده در شکل 7 عمل کرده، پس از نام‌گذاری پروژه روی دکمه OK کلیک کنید.

شکل 7- ایجاد پروژه
شکل 7- ایجاد پروژه

بخش‌های (4) Name و (5) Location و (6) Solution name را با دقت تنظیم کنید. در نام‌گذاری پروژه از اسم مناسب استفاده کنید تا دسترسی به پروژه ساده شود (شکل 7). نام این برنامه را FirstProgram قرار دهید.

در این کتاب برنامه‌نویسی در مد Console Application انجام می‌شود. برنامه‌های نوشته شده در این مد، برنامه کنسول نامیده می‌شوند. در برنامه کنسول امکان استفاده از واسط‌های گرافیکی (GUI) وجود ندارد. ورودی‌ها و خروجی‌های برنامه کنسول در پنجره خط فرمان (Command Prompt) قرار می‌گیرند.

کنجکاوی (صفحهٔ 176 کتاب درسی)

 

دو تصویر شکل 8 را با هم مقایسه کنید. تصویر نمایشگر کدام تلفن همراه با استفاده از واسط گرافیکی طراحی شده است؟

شکل 8- مقایسه دو نوع GUI
شکل 8- مقایسه دو نوع GUI
شکل 9- یک برنامه ساده در سی‌شارپ
شکل 9- یک برنامه ساده در سی‌شارپ

شکل 9 الگوی یک برنامه ساده در سی‌شارپ را نشان می‌دهد. در این الگو using,namespace,class,static,void و string کلید واژه‌های سی‌شارپ هستند و با رنگ یکسان مشخص می‌شوند. البته نگران نباشید، با ایجاد یک پروژه، سی شارپ الگو را در اختیار برنامه‌نویس قرار می‌دهد. بنابراین نیازی به حفظ کردن آن‌ها ندارید.

مطابق الگوی شکل 10 متد Main که نقطه شروع برنامه‌های سی‌شارپ است، در داخل کلاس قرار دارد. به صورت پیش فرض نام فضای نامی، با نام پروژه یکسان است. فضای نامی مشابه فضای مدرسه است که شامل چندین کلاس است، کلاس‌های مدرسه مشابه کلاس در سی‌شارپ است و فعالیت‌های درون کلاس همان متدها هستند.

شکل 10- الگوی یک برنامه سادۀ سی‌شارپ
شکل 10- الگوی یک برنامه سادۀ سی‌شارپ
شکل 11- نمونه‌ای از فضای نامی کلاس و متد در دنیای واقعی
شکل 11- نمونه‌ای از فضای نامی کلاس و متد در دنیای واقعی

3- در پنجره ویرایشگر برنامه دستور زیر را در متد Main وارد کنید.

Console.WriteLine("in the name of god");

در این دستور از متد WriteLine برای نمایش پیام در صفحه خروجی استفاده شده است. این متد در کلاس کنسول (Console) قرار دارد. کلاس کنسول از کلاس‌های آماده سی‌شارپ است.

عبارت ''in the name of god'' ورودی متد WriteLine است. ورودی‌های متد بین پرانتزها قرار داده می‌شوند.

کنجکاوی (صفحهٔ 177 کتاب درسی)

 

به حروف کوچک و بزرگ در این دستور توجه کنید. چه تفاوت‌هایی می‌بینید؟

4- با استفاده از کلید Ctrl+F5 برنامه را اجرا کرده، خروجی را مشاهده کنید.

5- بار دیگر برنامه را با کلید F5 اجرا کنید.

پنجره کنسول بلافاصله بسته می‌شود؛ برای توقف برنامه و مشاهده پنجره خروجی، دستور ;() Console.ReadKey را در انتهای متد Main اضافه کرده، برنامه را اجرا کنید.

static void Main(string[] args)
 {
 Console.WriteLine("in the name of god ");
 Console.ReadKey();
 }
شکل 12- منوی Debug
شکل 12- منوی Debug

متد ()ReadKey برای دریافت کلیدی از صفحه کلید به کار می‌رود. این متد سبب توقف برنامه تا فشردن یک کلید می‌شود و به کاربر اجازه مشاهده خروجی را می‌دهد. این متد در کلاس کنسول قرار دارد.

از پنجره ویرایشگر برای نوشتن کدهای برنامه استفاده می‌شود (شکل 13). این محیط دارای ویژگی‌هایی برای سرعت بخشیدن به فرایند برنامه‌نویسی است. باز شدن خودکار فهرست هوشمند (Intellisense) که برای نوشتن صحیح و سریع‌تر مورد استفاده قرار می‌گیرد، از قابلیت‌های این محیط است. برای باز شدن این فهرست می‌توان از کلید ترکیبی Ctrl+Space استفاده کرد.

شکل 13- فهرست هوشمند
شکل 13- فهرست هوشمند

کارگاه 2 (پنجره لیست خطا (Error List)) 

1- پروژه کارگاه 1 (FirstProgram) را باز کنید.

برای بازکردن مجدد پروژه می‌توانید در پوشه پروژه روی پرونده با پسوند sln دابل کلیک کنید (شکل 14).

شکل 14- پوشه پروژه
شکل 14- پوشه پروژه

2- در متد Main، کلاس Console را به شکل console بنویسید و برنامه را اجرا کنید.

شکل 15- کادر پیام وجود خطا
شکل 15- کادر پیام وجود خطا

کنجکاوی (صفحهٔ 179 کتاب درسی)

 

- پیام خطای ظاهر شده را ترجمه کنید (شکل 15).
- روی دکمه No کلیک کنید و خطای ایجاد شده را به کمک هم‌کلاسی خود ترجمه کنید.

3- علامت ; را از انتهای دستور WriteLine و Readkey حذف کنید (شکل 16).

شکل 16- فهرست خطاها
شکل 16- فهرست خطاها

کنجکاوی (صفحهٔ 180 کتاب درسی)

 

- خطای نمایش داده شده را ترجمه کنید (شکل 16).
- ستون‌های Description, File, Line, Column و Project در پنجره خطا چه چیزی را نشان می‌دهند؟

4- در پنجره فهرست خطا (Error List) روی یکی از خطاها کلیک کنید.

این پنجره خطاهای زمان ترجمه را مشخص می‌کند. با دابل کلیک روی هر خطا، مکان‌نما به خطی که خطا در آن رخ داده، منتقل می‌شود. با رفع هر خطا در برنامه، فهرست خطاها به روزرسانی می‌شود.

برداشت (صفحهٔ 180 کتاب درسی)

 

آنچه آموختم:

1-
2-
3-

کارگاه 3 (تفاوت متدهای Write و WriteLine) 

1- پروژه جدیدی با نام Screen ایجاد کنید.

2- کد زیر را در Main وارد کنید.

Console.Write("I");
Console.Write("like");
Console.Write("C#");

3 - برنامه را اجرا کرده، خروجی آن را یادداشت کنید.

4- کد قبلی را پاک کرده، کد زیر را جایگزین کنید.

Console.WriteLine("I");
Console.WriteLine("like");
Console.WriteLine("C#");

برنامه را اجرا کرده، خروجی آن را با کد قبلی مقایسه کنید.

5- برنامه را پاک کرده، قطعه کد زیر را وارد کنید.

برای نوشتن دستور Console.WriteLine، می‌توانید cw را تایپ کرده و سپس کلید tab را دوبار فشار دهید. برنامه را اجرا کرده، نتیجه را با مرحله 4 مقایسه کنید.

Console.WriteLine("I");
Console.WriteLine();
Console.WriteLine("like");
Console.WriteLine();
Console.WriteLine("C#");

6- در قطعه کد مرحله 5 دستور WriteLine را به Write تبدیل کنید.

7- برنامه را اجرا کرده، نتیجه را با مرحله 5 مقایسه کنید.

فعالیت گروهی (صفحهٔ 182 کتاب درسی)

 

با هم‌گروهی خود پیام‌های دیگری با استفاده از دستورات Write و WriteLine در خروجی بنویسید.

برداشت (صفحهٔ 182 کتاب درسی)

 

آنچه آموختم:

1-
2-
3-

کارگاه 4 (ایجاد صدا با فرکانس‌‌های مختلف) 

متد Beep برای ایجاد یک صدا در برنامه استفاده می‌شود. شکل کلی این دستور به صورت زیر است:

Console.Beep (مدت زمان برحسب میلی ثانیه، فرکانس برحسب هرتز)

1- پروژه جدیدی با نام Melody ایجاد کنید.

2- برنامه زیر را در Main وارد کنید.

Console.WriteLine("I");
Console.Beep(200, 800);
Console.WriteLine("like");
Console.Beep(200, 800);
Console.WriteLine("C#");
Console.Beep(200, 800);

3- برنامه را اجرا کنید.

4- اعداد درون دستور ;(... , ....) Console.Beep را به دلخواه تغییر دهید و برنامه را اجرا کنید.

5- ورودی‌های متد Beep را حذف کنید () Console.Beep و برنامه را اجرا کنید.

خروجی با مرحله قبل چه تفاوتی دارد؟

توجه داشته باشید مقدار فرکانس را باید در محدوده مناسبی بنویسید زیرا گوش انسان تنها قادر است اصواتی با فرکانس حدود 200 تا 10000 هرتز را بشنود. صداهای بم فرکانس کم و صداهای زیر فرکانس بالا دارند.

فعالیت کارگاهی (صفحهٔ 183 کتاب درسی)

 

با کم و زیاد کردن اعداد ورودی‌های متد Beep روشی را برای زیر و بم کردن صدا پیدا کنید.

فعالیت کارگاهی (صفحهٔ 183 کتاب درسی)

 

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

Console.Beep(370, 600);
Console.Beep(550, 600);
Console.Beep(370, 600);

برداشت (صفحهٔ 183 کتاب درسی)

 

آنچه آموختم:

1- 
2- 
3- 

کارگاه 5 (استفاده از رنگ) 

در این برنامه می‌خواهیم متن‌های محیط کنسول را با رنگ‌های مختلف چاپ کنیم.

1- پروژه جدیدی با نام Color1 ایجاد کنید.

2- کد زیر را در Main وارد کنید. و برنامه را اجرا کنید.

Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine(" ");
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(" ");

3- نام و نام خانوادگی خود را به ترتیب در دستور WriteLine اول و دوم قرار دهید و دوباره برنامه را اجرا کنید.

تفاوت خروجی مرحله 2 و 3 چیست؟

4- برنامه را به شیوه زیر تغییر داده، دوباره اجرا کنید. تفاوت آن با مرحله قبل چیست؟

Console.BackgroundColor = ConsoleColor.Blue;
Console.Clear();
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("ali");

5- در انتهای کد مرحله 4 دستور ;() Console.Clear را بنویسید و برنامه را اجرا کنید تفاوت آن با مرحله قبل چیست؟

6- با توجه به دستورات جدیدی که به کار گرفتید، جدول زیر را تکمیل کنید.

کاربرد دستور دستور ردیف
رنگ قلم نوشته Console.ForegroundColor 1
  ConsoleColor.Blue 2
  Console.BackgroundColor 3
  Console.Clear(); 4

فعالیت گروهی (صفحهٔ 185 کتاب درسی)

 

- به کمک هم‌گروهی خود برنامه‌ای بنویسید که نام شما را با رنگ قرمز روی زمینه آبی نمایش دهد و پس از شنیدن صدای بوق به مدت یک ثانیه رنگ صفحه نمایش را به قرمز تغییر داده، نام هم‌گروهی شما را روی آن به رنگ آبی نمایش دهد.
- برنامه را تغییر دهید که به جای مکث یک ثانیه با فشار کلیدی از صفحه کلید، نام هم‌گروهی شما را نمایش دهد. از متد ReadKey در بین کدهای برنامه استفاده کنید.

فعالیت منزل (صفحهٔ 185 کتاب درسی)

 

برنامه‌ای بنویسید که جدولی از همه رنگ‌های سی‌شارپ به همراه نام رنگ در کنسول نمایش دهد.

ویژگی‌های پنجره کنسول

پنجره کنسول دارای ویژگی‌هایی است که برخی از آن‌ها را می‌توان تغییر داد. با راست کلیک روی نوار عنوان این پنجره، تغییرات دلخواهی ایجاد کنید (شکل 17).

شکل 17- تغییر ویژگی‌های پنجره کنسول
شکل 17- تغییر ویژگی‌های پنجره کنسول

کنجکاوی (صفحهٔ 186 کتاب درسی)

 

چگونه بدون برنامه‌نویسی می‌توان رنگ زمینه، رنگ قلم، اندازه قلم و نام قلم را تغییر داد؟

کارگاه 6 (مختصات مکان‌نما در کنسول) 

1- پروژه جدید با نام ConsoleFlag ایجاد کنید.

2- قطعه کد زیر را در متد Main وارد کنید.

Console.BackgroundColor = ConsoleColor.Green;
Console.SetCursorPosition(29 , 9);
Console.WriteLine("                                ");

Console.SetCursorPosition(29 ,10);
Console.WriteLine("‌‌‌‌‌‌‌‌‌‌                               ");

Console.BackgroundColor = ConsoleColor.White;
Console.SetCursorPosition(29 ,11);
Console.WriteLine("                              ");

Console.SetCursorPosition(29 ,12);
Console.WriteLine("                              ");

3- برنامه را اجرا کنید.

4- در ابتدای خطی که زمینه را سفید می‌کند، نویسه‌های // قرار داده، برنامه را اجرا کنید. خروجی را با خروجی مرحله 2 مقایسه کنید.

5- در ابتدای یک خط برنامه نویسه‌های */ قرار داده، در انتهای چند خط پایین‌تر نویسه‌های /* را قرار دهید و برنامه را اجرا کرده، خروجی را با مرحله 2 مقایسه کنید.

6- از برنامه الگو بگیرید و برنامه‌ای بنویسید که شکل 18 را تولید کند.

شکل 18
شکل 18

فعالیت منزل (صفحهٔ 187 کتاب درسی)

 

برنامه‌ای بنویسید که پله‌های رنگی مطابق شکل زیر را ترسیم کند.

کارگاه 7 (رسم در محیط کنسول) 

1- پروژه جدیدی با نام ConsoleDraw ایجاد کنید.

2- قطعه کد صفحه بعد را در Main وارد کنید.

برای ترسیم از جدول زیر استفاده کنید به این ترتیب که پس از انتخاب کد مناسب با استفاده از کلید Alt، کد مورد نظر را وارد کنید از شماره‌های بخش ماشین حساب صفحه کلید باید استفاده شود.

پژوهش (صفحهٔ 187 کتاب درسی)

 

با استفاده از راهنمای مایکروسافت جدول این کدها را مشاهده کرده، برای انجام فعالیت منزل استفاده کنید.

برج میلاد یکی از بلندترین برج‌های تلویزیونی و مخابراتی است. این مجموعه دارای سازه‌های متنوع فنی و فرهنگی است و یکی از مراکز فرهنگی و گردشگری جمهوری اسلامی ایران به شمار می‌آید.
برج میلاد یکی از بلندترین برج‌های تلویزیونی و مخابراتی است. این مجموعه دارای سازه‌های متنوع فنی و فرهنگی است و یکی از مراکز فرهنگی و گردشگری جمهوری اسلامی ایران به شمار می‌آید.

3- برنامه را اجرا کنید.

4- با استفاده از دستورات رنگ، تصویر را رنگ آمیزی کنید.

فعالیت منزل (صفحهٔ 189 کتاب درسی)

 

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

فعالیت منزل (صفحهٔ 189 کتاب درسی)

 

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

برداشت (صفحهٔ 190 کتاب درسی)

 

آنچه آموختم:

1-
2-
3- 

واحد یادگیری 8 (شایستگی کار با انواع داده‌ها، دریافت و نمایش آن‌ها)

آیا تا به حال پی‌برده‌اید

- برای ورود داده‌‌ها به برنامه چه باید کرد؟
- چگونه داده‌ها در برنامه نگهداری می‌شوند؟
- چگونه می‌توان نتایج و خروجی برنامه را نمایش داد؟
- متداول‌ترین انواع داده‌ها چیست؟

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

استاندارد عملکرد

با استفاده از دانش متغیر و داده و دستورات ورودی و خروجی، داده و متغیر را در برنامه به کار گیرد و داده‌ها را به انواع دیگر داده تبدیل کند.

برنامه‌هایی که تاکنون نوشتید، به نمایش رشته‌های مختلف بر روی صفحه نمایش محدود می‌شد. در بیشتر برنامه‌ها، با داده‌ها و مقادیر مختلف سر و کار داریم. این داده‌ها ممکن است در زمان اجرای برنامه از ورودی خوانده شده، در حافظه رایانه ذخیره شوند و در برنامه برای رسیدن به نتایج مطلوب از آن‌ها استفاده شود. سرانجام داده‌ها و نتایج در خروجی نمایش داده شوند.

کارگاه 1 (طراحی نمون‌برگ اطلاعات هنرجو)

1- یک پروژه جدید به نام ConsoleInfo در VS ایجاد کنید.

2- کدهای زیر را برای رسم نمون‌برگ Name و Family وارد کنید. هر جزء اطلاعاتی در نمون‌برگ را یک فیلد می‌گویند.

3- کدهای لازم برای رسم کامل نمون‌برگ اطلاعات هنرجو (شکل 19) را وارد کنید.

شکل 19- نمون‌برگ اطلاعات هنرجو
شکل 19- نمون‌برگ اطلاعات هنرجو

4- برنامه را به صورتی تغییر دهید که اطلاعات شما را در نمون‌برگ نمایش دهد.

5- برای نمایش اطلاعات هم‌گروهی خود، چه می‌کنید؟
برای نمایش اطلاعات افراد مختلف، باید هر بار بعد از ایجاد تغییرات، دوباره برنامه را ترجمه و اجرا کرد.

کنجکاوی (صفحهٔ 193 کتاب درسی)

 

آیا تغییر کد برنامه برای نمایش اطلاعات افراد مختلف مناسب است؟ چرا؟

روش دیگر، ورود اطلاعات فرد در زمان اجرای برنامه است. در این حالت به تغییر کد و ترجمۀ دوباره برنامه نیازی نیست. دستور خواندن، اطلاعات را از ورودی خوانده در مکان مشخصی از حافظۀ اصلی ذخیره می‌کند. سپس با استفاده از دستور نوشتن می‌توان اطلاعات را از حافظه برداشته، روی صفحه نمایش نشان داد. این مکان مشخص از حافظه، متغیر (Variable) نامیده می‌شود. متغیر مکانی در حافظۀ (RAM) رایانه است که مقداری (Value) را به‌طور موقتی نگهداری می‌کند.

کنجکاوی (صفحهٔ 194 کتاب درسی)

 

متغیر باید چه ویژگی‌هایی داشته باشد؟ چرا؟

نام متغیر

هر متغیر دارای یک نام است. از این نام برای دسترسی به متغیر استفاده می‌شود. برای بالا بردن خوانایی برنامه، بهتر است نام مناسبی برای متغیر انتخاب شود.

کنجکاوی (صفحهٔ 194 کتاب درسی)

 

آیا برای مترجم زبان سی‌شارپ، با معنا بودن نام متغیر مهم است؟ چرا؟

در هر زبان برنامه‌نویسی، برای نام‌گذاری متغیرها، قوانین و قراردادهای خاصی وجود دارد. در زبان سی‌شارپ بعضی از این قوانین به صورت زیر است:

1- استفاده از حروف الفبا، ارقام و کاراکتر زیرخط (Underscore) مجاز است.
2- استفاده از ارقام در ابتدای نام متغیر غیرمجاز است.
3- از کلید واژگان زبان برنامه‌نویسی (Keywords) برای نام یک متغیر استفاده نشود. هر زبان برنامه‌نویسی شامل یک سری واژگان از پیش تعریف شده است که به آن‌ها واژگان کلیدی می‌گویند. این واژگان معنی خاصی برای مترجم دارند و نباید از آن‌ها به عنوان نام متغیر استفاده کرد.

فعالیت گروهی (صفحهٔ 194 کتاب درسی)

 

واژگان کلیدی #C را که تاکنون آموخته‌اید، بنویسید.
به کمک هم‌گروهی خود، نام‌های نامعتبر را مشخص کرده، با ذکر دلیل در جدول زیر یادداشت کنید:

دلیل عدم اعتبار نام متغیر نامعتبر
وجود فاصله First name
  1name
  name Last
  Last.name
  Blood type
کلید واژه if

شرکت مایکروسافت برای کمک به استفاده کنندگان محصولات نرم‌افزاری خود، مجموعه‌ای از منابع، مطالب مفید، راهنمایی‌ها، مقاله‌ها و مثال‌ها را با عنوان The Microsoft Developer Network) MSDN) گردآوری کرده است.

فعالیت منزل (صفحهٔ 195 کتاب درسی)

 

با استفاده از راهنمای مایکروسافت، قوانین نام‌گذاری دیگری پیدا کنید.

فعالیت گروهی (صفحهٔ 195 کتاب درسی)

 

برای هر فیلد نمون برگ شکل 19 یک متغیر در نظر گرفته، چند نام مناسب برای آن انتخاب کنید. بررسی کنید آیا نام‌های پیشنهادی هم‌گروهی شما مطابق قوانین زبان سی‌شارپ است؟

نام متغیر عنوان فیلد نام متغیر عنوان فیلد
  Tel   Name
  Father’s Education   Family
  Grades Average   Birthday
  Address   Id Number

برای نام‌گذاری متغیرها، هر برنامه‌نویس روش خاصی را دنبال می‌کند. دو روش از متداول‌ترین روش‌های نام‌گذاری، روش کوهان شتری (camelCase) و پاسکال (PascalCase) است. در روش کوهان شتری، اولین حرف نام متغیر با حرف کوچک آغاز می‌شود. اگر نام متغیر از چند بخش تشکیل شده باشد، حرف اول بخش‌های بعدی با حروف بزرگ نوشته می‌شود. مانند:

fileName , userName , localId

در روش پاسکال اولین حرف کلمات به شکل بزرگ و بقیه حروف به شکل کوچک نوشته می‌شوند. مانند:

FileName , UserName , LocalId

هر برنامه‌نویس می‌تواند از روش دلخواهی برای نام‌گذاری استفاده کند. اما دانستن و رعایت روش‌های رایج در بین برنامه‌نویسان حرفه‌ای ضروری است.

فعالیت کارگاهی (صفحهٔ 196 کتاب درسی)

 

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

نام متغیر عنوان فیلد نام متغیر عنوان فیلد
  Tel   Name
  Father’s Education   Family
  Grades Average   Birthday
  Address   Id Number

++

پژوهش (صفحهٔ 196 کتاب درسی)

 

در مورد سایر روش‌های متداول نا‌م‌گذاری تحقیق کنید.

برداشت (صفحهٔ 196 کتاب درسی)

 

آنچه آموختم:

1-
2-
3-

نوع داده

انتخاب متغیر باید متناسب با نوع و مقدار داده‌ای باشد که در آن قرار می‌گیرد. نوع داده، میزان فضای مورد نیاز در حافظه را مشخص می‌کند. برای مثال، برای پختن یا گرم کردن غذا، معمولاً یک ظرف متناسب با غذای مورد نظر انتخاب می‌شود. اندازه ظرف انتخابی شما، معمولاً متناسب با میزان و نوع غذایی است که قصد پختن آن را دارید. زبان‌های برنامه‌نویسی نیز برای نگهداری داده‌ها، از انواع مختلفی استفاده می‌کنند. سی‌شارپ انواع گسترده‌ای از داده‌های مختلف دارد که نوع عددی، رشته‌ای، کاراکتری و منطقی از متداول‌ترین آن‌هاست.

فعالیت کارگاهی (صفحهٔ‌ 197 کتاب درسی)

 

داده‌های نمون‌برگ شکل 19 را دسته‌بندی کنید.

داده عددی داده غیرعددی
Average Id Number
   
   
   
   

کنجکاوی (صفحهٔ 197 کتاب درسی)

 

با کمک هنرآموز خود بررسی کنید چرا برای کد ملی بهتر است نوع داده غیرعددی انتخاب شود؟

کارگاه 2 (اعلان و مقداردهی متغیر) 

1- یک پروژه جدید به نام ConsoleInfo2 در VS ایجاد کنید.

2- متغیر firstName را به‌صورت زیر اعلان کرده، در متد Main برنامه قرار دهید.

static void Main (string[ ] args)
{
            string firstName;
}

در زبان سی‌شارپ پیش از استفاده از متغیرها، باید آن‌ها را اعلان کرد. شکل کلی اعلان متغیر در برنامه به روش زیر است:

3- در برنامه سایر فیلدهای غیرعددی نمون برگ شکل 19 را از نوع رشته‌ای اعلان کنید.

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

کنجکاوی (صفحهٔ 198 کتاب درسی)

 

خط سبز زیر نام متغیر چه هشداری می‌دهد؟

4- برای نمایش مقدار متغیر روی صفحه نمایش، از متد WriteLine استفاده می‌شود. دستور زیر را به برنامه اضافه کرده، برنامه را اجرا کنید.

Console.WriteLine(firstName);

کنجکاوی (صفحهٔ 198 کتاب درسی)

 

دلیل خطای برنامه چیست؟

5- کدهای برنامه را به صورت زیر تغییر دهید.

string firstName = "Sara";

می‌توانید نام خود را در برنامه وارد کرده، برنامه را اجرا کنید.

کنجکاوی (صفحهٔ 198 کتاب درسی)

 

چرا خط سبز زیر نام متغیر از بین رفت؟

پس از اعلان متغیر، با توجه به نوع متغیر، می‌توان مقداری را در آن ذخیره کرد. برای مقداردهی متغیر، از دستور انتساب استفاده می‌شود.

6- خط زیر را جایگزین دستور مرحله 5 کنید.

string firstname = "Sara";

خطایی که رخ داده را بنویسید و با استفاده از کتاب همراه هنرجو، علت وقوع این خطا را توضیح دهید. این خطا کدام خصوصیت #C را یادآوری می‌کند؟

7- کلیه متغیرهای رشته‌ای اعلان شده در برنامه را با مشخصات خودتان و مطابق مرحله 5 مقداردهی کنید.

فعالیت کارگاهی (صفحهٔ‌ 198 کتاب درسی)

 

به کمک هنرآموز خود، تعریف متغیر را در راهنمای مایکروسافت جست‌وجو کنید و عبارت "type  safe language" را توضیح دهید.

نوع داده رشته‌ای (string)

برای نگهداری نام افراد و یا نشانی، متغیری از نوع دادۀ رشته‌ای اعلان می‌شود. اعلان و مقداردهی متغیرهای نام و نام خانوادگی به شکل زیر انجام می‌شود:

string firstName;
firstName = "Sara";

اعلان و مقداردهی متغیرهای رشته‌ای می‌تواند به شکل زیر نیز انجام شود:

string firstName = "Sara";
string lastName = "Mohammadi";

همچنین دو دستور بالا را به شکل زیر نیز می‌توان نوشت:

string firstName = "Sara",lastName = "Mohammadi";

کارگاه 3 (مقداردهی متغیر رشته‌ای)

1- برنامه ConsoleInfo2 را در VS باز کنید.

2- یک نسخه مشابه از خطوط برنامه ConsoleInfo1 را در برنامه ConsoleInfo2 وارد کنید.

static void Main(string[] args(
{
string firstName = "Sara";
.
.
.
​​​​​​​.

3- با تکمیل کد بالا، سایر مقادیر متغیرهای رشته‌ای نمون‌برگ شکل 19 را در فرم وارد کنید.

برداشت (صفحهٔ 199 کتاب درسی)

 

آنچه آموختم:

1-
2- 
3- 

دریافت داده

تاکنون مقداردهی متغیرها در برنامه انجام شد. در این حالت با هر تغییر مقدار، باید دوباره برنامه را ترجمه کرد. اما می‌توان مقداردهی متغیرها را به وسیله دستورات ورود داده انجام داد. به دستور زیر توجه کنید:

string firstName;
firstName = Console.ReadLine();

در این قطعه کد، با اجرای متد ()ReadLine، مقدار وارد شده در متغیر firstName قرار می‌گیرد.

کارگاه 4 (دریافت متغیر رشته‌ای) 

1- پروژه ConsoleInfo2 را باز کنید.

2- به جای مقداردهی مستقیم متغیر firstName، دستورات زیر را در متد Main بنویسید و برنامه را اجرا کنید.

string firstName;
firstName = Console.ReadLine();

3- برای بالا بردن خوانایی برنامه، بهتر است قبل از ReadLine() پیام: Please enter your f irstname نمایش داده شود. نمایش پیام مناسب در خروجی، باعث ارتباط کاربر با برنامه، هنگام ورود داده‌ها می‌شود.

string firstName;
Console.Write("Please enter your firstname:");
firstName = Console.ReadLine();

4- دستورات لازم برای خواندن سایر متغیرهای رشته‌ای نمون برگ اطلاعات هنرجو را به برنامه اضافه کنید و در خروجی نمایش دهید.

5- فیلد سال تولد در گروه داده‌های عددی قرار دارد. آیا می‌توان آن را به‌صورت رشته‌ای دریافت و چاپ کرد؟ قطعه کد لازم برای این کار را به برنامه اضافه کنید.

کنجکاوی (صفحهٔ 201 کتاب درسی)

 

بر اساس نمون برگ شکل 19، کدام داده عددی صحیح و کدام اعشاری است؟

نوع دادۀ عددی صحیح

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

جدول 1 برخی انواع داده‌های عددی صحیح
جدول 1 برخی انواع داده‌های عددی صحیح

کنجکاوی (صفحهٔ 202 کتاب درسی)

 

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

جدول 2- انواع داده‌های صحیح
نوع داده محدوده
sbyte  
byte  
short  
ushort  
int  

پژوهش (صفحهٔ 202 کتاب درسی)

 

نوع داده‌ها با پیشوندهای (ushort و sbyte) s و u را در کتاب همراه هنرجو پیدا کنید.
محدوده مجاز byte و sbyte را با یکدیگر مقایسه کنید.

فعالیت گروهی (صفحهٔ 202 کتاب درسی)

 

با کمک هم‌گروهی خود، برای هر یک از متغیرهای زیر نوع داده مناسب پیشنهاد دهید. دلیل انتخاب خود را در جدول بنویسید.

توضیح مقدار نام متغیر نوع داده دلیل انتخاب
سن (سال) 16 age byte  
سال تولید 1380   ushort  
مسافت تهران تا مشهد (کیلومتر) 897      
سردترین دمای ثبت شده (سانتی‌گراد) 89-      
قد دانش‌آموز (سانتی‌متر) 165      
جمعیت جهان (نفر) 7.500.000.000      

++

کارگاه 5 (خواندن متغیر عددی) 

1- برنامه ConsoleInfo2 را باز کنید.

2- برای دریافت سال تولد از ورودی، کدهای زیر را به برنامه اضافه کنید:

ushort birthday;
Console.Write("Enter your Birthday’s year:");
birthday = Console.ReadLine();

چه خطایی مشاهده می‌شود؟ علت وقوع خطا چیست؟

()ReadLine عبارت ورودی را به صورت رشته دریافت می‌کند. اگر کاربر مقدار عددی هم وارد کند، ورودی کاربر به‌صورت رشته‌ای دریافت شده، می‌توان آن را در یک متغیر از نوع رشته‌ای ذخیره کرد. اما برای انجام محاسبات یا تصمیم‌گیری بر روی اعداد، باید آن‌ها را به صورت عددی مورد استفاده قرار داد. بنابراین باید متغیر رشته‌ای را به مقدار عددی تبدیل کنیم. متد Parse رشته ورودی را به نوع داده مورد نظر تبدیل می‌کند.

3- تغییرات زیر را در کدهای مربوط به دریافت سال تولد اعمال کرده و برنامه را اجرا کنید:

دستور بالا با استفاده از ()ReadLine مقدار سال تولد را به صورت رشته از ورودی می‌گیرد و با استفاده از متد Parse آن را به نوع داده ushort تبدیل می‌کند.

4- برنامه را دوباره اجرا کنید و رشته‌ای از حروف وارد کنید. چه اتفاقی رخ می‌دهد؟

5- برنامه را با ورود عدد منفی اجرا کنید. علت خطا را بررسی کنید.

نوع دادۀ عددی اعشاری

جدول 3 انواع داده‌های اعشاری را نشان می‌دهد.

جدول 3- برخی انواع داده‌های عددی اعشاری
جدول 3- برخی انواع داده‌های عددی اعشاری

برای کار با داده‌های اعشاری می‌توان از روش معمول یا روش نقطه شناور (شبیه نماد علمی) استفاده کرد. سی‌شارپ برای نمایش اعداد خیلی بزرگ یا خیلی کوچک از روش نقطه شناور استفاده می‌کند.

float average = 17.25f;
double weight = 57.5;
double electricalCharge = 1.602E 19

در روش نقطه شناور، قبل از نقطه اعشار، فقط یک رقم قرار داده می‌شود و بقیه ارقام به سمت راست نقطه اعشار انتقال می‌یابد. در نتیجه عدد اعشار با توان مناسبی از 10 نمایش داده می‌شود. برای استفاده از نقطه شناور در سی‌شارپ، به جای ضرب و پایه 10، از حرف e یا E استفاده می‌شود.
در سی‌شارپ عدد اعشاری به صورت پیش فرض از نوع double در نظر گرفته می‌شود.

کنجکاوی (صفحهٔ 204 کتاب درسی)

 

در عبارت زیر دلیل استفاده از نویسه f بعد از عدد چیست؟ اگر این نویسه حذف شود، چه رخ خواهد داد؟

فعالیت کارگاهی (صفحهٔ 204 کتاب درسی)

 

برای محاسبه تعداد الکترون در یک کولن بار الکتریکی (6.24150975E18)، جمعیت کره زمین و عدد پی از کدام نوع متغیر استفاده می‌شود؟

عدد پی یک عدد گنگ است که دارای ارقام اعشاری زیادی است. برای جلوگیری از خطای تایپ، می‌توان عدد پی را به صورت یک ثابت (Constant) اعلان کرد. استفاده از ثابت‌ها اگر با نام مناسب انجام گیرد، باعث افزایش خوانایی برنامه می‌شود. ثابت، مقداری است که در طول اجرای برنامه تغییر نمی‌کند. برای تعریف ثابت، از کلید واژه const استفاده می‌شود. در قطعه کد زیر هرجا که نیاز به استفاده از عدد پی است، ثابت pi به‌کار برده می‌شود.

const double pi = 3.14159;
Console.Write(pi);

برداشت (صفحهٔ 204 کتاب درسی)

 

آنچه آموختم:

1- 
2- 
3- 

تبدیل نوع داده

انواع عددی به راحتی به یکدیگر قابل تبدیل هستند. همیشه تبدیل از ظرفیت پایین به بالا امکان‌پذیر است. در ساده‌ترین حالت این تبدیل در یک دستور انتساب انجام می‌شود. تبدیل ضمنی (lmplicite) یعنی می‌توان متغیری از نوع int را با متغیری از نوع byte مقداردهی کرد. به همین ترتیب می‌توان متغیری از نوع float را در متغیری از نوع double قرار داد.

کارگاه 6 (تبدیل عدد صحیح به اعشاری)

1- پروژه جدیدی به نام ConsoleYear ایجاد کنید.

2- متغیرهای زیر را تعریف و مقداردهی کنید.

ushort birthday = 1380;
float year = 0;

3- دستورات زیر را در متد Main بنویسید.

year = birthday;
Console .Write (year);

4- برنامه را اجرا کنید. آیا برنامه خطا دارد؟

کارگاه 7 (تبدیل نوع داده) 

در این برنامه می‌خواهیم بر اساس معدل هنرجو، جایزه‌ای به او اختصاص دهیم. کد جایزه، با بخش صحیح معدل مطابقت دارد.

1- برنامه ConsoleInfo2 را باز کنید.

2- برای فیلد Grades average در نمون‌برگ شکل 19، چه نوع داده‌ای در نظر می‌گیرید؟

3- کدهای لازم را برای ورود دادۀ معدل به برنامه اضافه کنید و خروجی را روی نمون‌برگ اطلاعات هنرجو نمایش دهید.

4- در نمون‌برگ اطلاعات هنرجو، فیلدی را اضافه کنید که بخش صحیح معدل هنرجو را نمایش دهد.
برای به دست آوردن کد جایزه، باید از بخش صحیح معدل هنرجو استفاده کرد. بنابراین باید عمل تبدیل متغیر اعشاری به عدد صحیح انجام شود.

5- دستورات زیر را به برنامه اضافه کنید و برنامه را اجرا کنید.

double average = 19.5;
int num = 0;
num = average;

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

6- دستور زیر را جایگزین کنید و برنامه را اجرا کنید.

num = (int) average;

به این ترتیب بخش اعشار معدل حذف شده و متغیر num با بخش صحیح مقداردهی می‌شود.

نوع داده کاراکتری (char)

اگر بخواهیم داده‌ای داشته باشیم که فقط یک نویسه در آن قرار گیرد، بهتر است از نوع داده char استفاده کنیم. نویسه یک علامت یا حرف است که بین دو تک کوتیشن" قرار می‌گیرد.

char ch = 'A';

فعالیت کارگاهی (صفحهٔ 206 کتاب درسی)

 

برای فیلد Father’s Education در نمون‌برگ اطلاعات هنرجو چه پیشنهادی برای نام متغیر و نوع داده دارید؟

کارگاه 8 (دریافت متغیر کاراکتری) 

1- برنامه ConsoleInfo2 را باز کنید.

2- برای دریافت مدرک تحصیلی پدر، کدهای زیر را به برنامه اضافه کنید.

char fatherEdu;
Console.Write("Enter you Father’s Education(D/B/M/P):");
fatherEdu = char.Parse (Console.ReadLine());

3- مقدار دریافت شده را در نمون‌برگ نمایش دهید.

4- به جای یک نویسه یک رشته وارد کنید. چه اتفاقی می‌افتد؟ چرا؟

5- آیا می‌توان نوع مدرک تحصیلی را به صورت یک عدد دریافت کرده، به صورت یک نویسه نشان داد؟ کدهای لازم برای این منظور را به برنامه اضافه کنید. یک راه پیشنهادی استفاده از تبدیل نوع داده عددی به کاراکتر است.

Degree: Diploma(100) Bachelor(98) Master(109) PHD(112)

کنجکاوی (صفحهٔ‌ 207 کتاب درسی)

 

حاصل اجرای دستور Console.WrileLine(65;(char)) چیست؟

نوع داده منطقی (bool)

اگر داده‌ای فقط دو مقدار درست (true) یا نادرست (false) داشته باشد، از نوع bool استفاده می‌کنیم. متغیر از نوع منطقی فقط می‌تواند با یکی از دو مقدار true و یا false مقداردهی شود.

فعالیت گروهی (صفحهٔ 207 کتاب درسی)

 

- در نمون برگ اطلاعات هنرجو، برای کدام متغیر از داده منطقی استفاده می‌شود؟ برای هم‌گروهی خود دلیل بیاورید.
- با کمک هم‌گروهی خود، دو داده در زندگی روزمره نام ببرید که نیازمند تعریف متغیری از نوع منطقی است.

برای اعلان و مقداردهی و نمایش متغیر flag به‌ترتیب زیر عمل می‌کنیم:

bool flag;
flag = true;
Console.Write(flag);

برداشت (صفحهٔ 207 کتاب درسی)

 

آنچه آموختم:

1- 
2-
3- 

کارگاه 9 (الگوی جای‌گذاری ساده (Formatting)) 

1- برنامه ConsoleInfo2 را در VS باز کنید.

2- متغیر رشته‌ای برای دریافت و نگهداری نام هنرستان تعریف کنید.

string schoolName;

3- با نمایش پیام مناسب، نام هنرستان را دریافت کنید.

4- برای نمایش مقدار ورودی دستور زیر را بنویسید:

Console.WriteLine(schoolName);

5- دستور زیر را جایگزین دستور مرحله 4 کرده، خروجی را با قبل مقایسه کنید.

Console.Write("name of school: {0}"، schoolName);

با استفاده از الگوی جای‌گذاری (Formatting) در رشته‌ها، می‌توان محل قرارگیری متغیر درون رشته را تعیین کرد. در رشته خروجی، به جای {0} مقدار متغیر schoolName قرار می‌گیرد. اگر بخواهیم مقدار متغیر یا عبارت دیگری را نیز داخل رشته جای‌گذاری کنیم، شماره‌های 1، 2، 3 و ... را به ترتیب بین علامت {} قرار می‌دهیم.

6- با استفاده از الگوی جای‌گذاری کد برنامه را به صورتی تغییر دهید که خروجی بر اساس اطلاعات ورودی به‌صورت زیر باشد:

کارگاه 10 (الگوی جای‌گذاری) 

شکل کلی الگوی جای‌گذاری به‌صورت زیر است:

1- پروژه جدیدی به نام ConsolePrint ایجاد کنید.

2- دو متغیر زیر را تعریف و مقداردهی کنید.

string firstName = "sara";
float average = 17.25f;

3- دستورات زیر را در متد Main بنویسید:

Console.Write ("I am");
Console.Write (firstName);
Console.Write (" and my score is: ");
Console.Write (17.25);

4- برنامه را اجرا کرده، خروجی را یادداشت کنید:

5- دستور زیر را جایگزین دستورات مرحله 3 کنید. برنامه را اجرا کرده، خروجی را مشاهده کنید.

Console.Write ("I am {0} and my score is: {1,8}",firstName ,average );

6- در دستور بالا 8- را جایگزین عدد 8 کرده، ({8-،1}) خروجی را مقایسه کنید.

فعالیت منزل (صفحهٔ 209 کتاب درسی)

 

برنامه‌ای بنویسید که نام و معدل سه هنرجو را گرفته، به شکل مناسب نمایش دهد. برای نام هنرجو فضای 20 ستونی و برای معدل فضای 5 ستونی تراز از سمت چپ در نظر بگیرید.

برداشت (صفحهٔ 210 کتاب درسی)

 

آنچه آموختم:

1- 
2- 
3- 

پودمان 4: حل مسایل ساده