برنامه نویسی قسمت سوم

آموزش برنامه‌نویسی به زبان ++C قسمت سوم آی‌ تی‌ رسان

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

خب حالا شما میگین اینا فقط تعریف بودن اما هنوز کپسوله سازی رو دقیقا نفهمیدم که چی هست . شما گاهی میخواین اطلاعاتی رو به نسبت حساسیتش از object یا کلاس های دیگه مخفی کنید . برای همین به نسبت کاری که قراره انجام بدید در از private یا protected استفاده میکنید تا دیگه در object ها قابلیت استفاده نداشته باشن . 4) با توجه رضایت دانشجویان ترم بهار از پشتیبانان پروژه، در این ترم وظایف پشتیبانان گسترده تر شد و آنان در تمرین ها نیز به دانشجویان کمک کردند و به طور کلی تلاش شد کیفیت رائه درس برنامه سازی پیشرفته نسبت به ترم های قبل افزایش یابد. 3) تاکید بر انجام اصل بازی farm frenzy به جای خواندن داک های پیچیده، این مورد باعث شد که دانشجویان یک چشم انداز مناسب از خروجی نهایی داشته باشند و باعث شد کیفیت پروژه ها بسیار بالا رود.

ولی با توجه به کد بالا یک مستطیل نمیتواند طول و عرض برابر داشته باشد چون در صورت برابری دیگر مستطیل نیست. در بالا property ما از نوع protected برای همین در object نه میتونید مقدار دهی کنید و نه میتونید مقدار فعلی رو بر گردونید در واقع اگه کد بالا رو اجرا کنید بهتون ارور میده . اگر این مثال را اجرا کنید خواهید دید که برای دستور اول مقدار str برگشت داده شده که مخفف string یا همون رشته هستش و برای دستور دوم مقدار int که نمایانگر عدد صحیح هستش برگشت داده شده. در واقع یک مقدار رو تولید کردیم، همونطور که گفتم هر مقدار، یک نوعی هم داره، توی این مثال نوع مقدار ما رشته یا String نام داره. انواع مختلفی از داده ها وجود داره، مثلا نوع داده ای عدد صحیح، نوع عدد اعشاری و… .دانستن مفهوم نوع های داده ای بسیار مهم و ضروری هستش، چرا که شما باید انواع داده ای رو خوب بشناسید تا بتونید عملیات های مختلف رو روی داده انجام بدید، به مثال زیر توجه کنید. 1) حفط 7 مورد از 8 مورد نقطه قوت ترم بهار 97 که در گزارش تحلیلی ترم بهار ۹۷ به آن اشاره شده است.

در خطاهای دستوری (syntax error)، کد برنامه دارای اشکال است که معمولا خود کامپایلر  با پیغامی خطا در زمان کامپایل، آن خطا را به ما تذکر می‌دهد و تا زمانی که آن خطا را برطرف نکنیم برنامه اجرا نمی‌شود. (به این خطا، خطای زمان کامپایل نیز می‌گویند.) به عنوان مثال فرض کنید دستور cout را به صورت coot بنویسید، در این صورت کامپایلر با پیغامی، این خطا را به شما هشدار می‌دهد. اما در خطای منطقی (logical error)، کد برنامه مشکلی ندارد، ولی الگوریتم برنامه دارای مشکل است، رایج‌ترین خطای منطقی، خطای تقسیم بر صفر است. (زیرا اگر هر عدد بر صفر تقسیم شود، حاصلی مبهم دارد) این نوع خطاها توسط کامپایلر تشخیص داده نمی‌شود، و حتی ممکن است برنامه اجرا شود، ولی پس از اجرا، برنامه نتایجی به همراه دارد که با پیش بینی ما از برنامه متفاوت خواهد بود و حتی ممکن است در خروجی برنامه مشکل ایجاد کند. در بخش سوم فیلم آموزش برنامه نویسی پایتون با آموزش های دیگری از این زبان برنامه نویسی محبوب در خدمت شما کاربران وبسایت مقاله آی تی هستیم. جهت دریافت سومین قسمت از این مجموعه آموزشی به ادامه متن مراجعه نمایید.

وبسایت مقاله آی تی از آبان ماه سال 1392 در زمینه ارائه کتاب های آموزشی آی تی و کامپیوتر شروع به فعالیت کرده است. جهت دریافت سایر قسمت های منتشر شده از این آموزش، به صفحه مربوط به آن با نام فیلم آموزش مقدماتی پایتون در وبسایت مراجعه نمایید. سرفصل‌های آزمون به طور کلی عبارت‌اند از سرفصل‌های مرحله‌ی دوم،‌ به همراه آشنایی ابتدایی با برنامه‌نویسی. بر اساس بازخورد‌های دریافت شده از افراد مختلف و همچنین ارزیابی‌های انجام شده کیفیت خروجی نهایی پروژه‌ی دانشجویان این دو ترم اخیر به طور محسوسی از ترم‌های گذشته بالاتر بوده است که اصلاحات بالا و همچنین تلاش جدی خود دانشجویان در جهت یادگیری از دلایل اصلی آن است. باز هم اصل LSP نقض میشود چون ما داریم رفتار خاصیت‌های طول و عرض در کلاس مشتق شده را تغییر میدهیم.

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

با این که ترم فرد بود و وقت بسیار محدود تر از ترم زوج اما حفط اکثر موفقیت های ترم بهار بزرگترین دستاورد ترم پاییز بود. همانطور که مشاهده می کنید در کد بالا، متد Add، به جای تعریف در کلاس CollectionBase، داخل یک interface به نام IList تعریف شده و کلاس List این interface را پیاده سازی کرده است. با این کار، دیگر امکان فراخوانی متد Add برای کلاس Array وجود ندارد. خوب این به چه معنی است؟ به این معنی که ما نمیتوانیم کلاس پایه را با کلاس مشتق شده جایگزین کنیم و باز هم این معنی را میدهد که ما داریم اصل LSP را نقض میکنیم. نخست متغیر limits را تعریف کرده و مقدار 100 را به آن اختصاص می‌دهیم. این متغیر محدوده‌ی اعدادی که باید به دست بیاوریم را مشخص می‌کند.

گاهی property ها و method های حساسی وجود داره که قابل استفاده در object ها نیستن ! اگه یادتون باشه در جلسه قبلی سه کلمه کلیدی public , private و protected رو معرفی کردم اما فقط از public استفاده کردم و گفتم تو این جلسه میگم اینا به چه کاری میان بزارین با تعریف کردن هر کدوم اینا به نتیجه برسیم . همچنین هر زبان برنامه نویسی یا ابزاری که استفاده میکنید یا قصد استفاده کردن آن را در آینده دارید مستندات کاملی دارد که با مراجعه به سایت اصلی آن میتوانید آنرا پیدا کنید معمولا داکیومنت ها با استفاده از مثال های عملی نوشته میشوند و این برای آموزش بسیار عالی است. مهم ترین و تاثیرگذارترین مرحله برای یادگیری برنامه نویسی در نقشه ی راه برنامه نویسی انتخاب بهترین منبع آموزشی هست و اگر از آن غافل شوید و بهترین دوره ی متناسب با خود را پیدا نکنید مطمئن باشید که هم از نظر زمانی و هم از نظر انرژی دچار ضررهایی میشوید. اگر به یادگیری بیشتر در زمینه‌ی برنامه نویسی پایتون علاقه داری، یادگیری زبان پایتون بسیار ساده است. و با شرکت در دوره‌ی آموزش پایتون توسعه وب در آینده می‌تونی اپلیکیشن موبایل و دستکتاپ بسازی و وارد حوزه‌ی هوش مصنوعی هم بشوی.

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

سپس با یک حلقه‌ی تکرار for  ، که از یک تا limits را پیمایش می‌کند، کار را ادامه می‌دهیم. در حلقه ابتدا دو متغیر b و c را تعریف کرده و به صورت زیر مقداردهی می‌کنیم. در الگوریتم اول تعداد زیادی از اعداد فیثاغورسی، محاسبه و چاپ نمی‌شوند. در ادامه الگوریتمی را بررسی می‌کنیم که تعداد بیشتری از سه‌تایی‌های فیثاغورسی را چاپ می‌کند. بر همین اساس، اگر ما سه عدد داشته باشیم که رابطه‌ی بالا برای آن سه عدد برقرار باشد (یعنی مربع یکی از آنها برابر مجموع مربع دو عدد دیگر باشد) به این اعداد، سه‌تایی فیثاغورسی یا اعداد فیثاغورسی می‌گویند. برنامه‌ای بنویسید که سه عدد صحیح از کاربر بگیرد، و اگر امکان ساخت یک مثلث قائم‌الزاویه با اضلاع داده شده، وجود داشته باشد، در خروجی "Yes" و در غیر این صورت "No" را چاپ کنید.

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

بیشتر از ۱۵ سال هست که در حال برنامه‌نویسی و انجام پروژه های مختلف هستم و ۱۰ سالی هست که آموزش برنامه‌نویسی به علاقمندان حوزه برنامه نویسی میدیم در همه این مدت الان عاشق کدزنی و چالش‌های پروژه‌های مختلفم. به تدریس علاقه خاصی دارم و دوست دارم دانشی که در این راه بدست آوردم را در اختیار دیگران هم قرار بدم. در دستور اول چون عبارت ها میان جفت کوتیشن قرار دارن پس از نوع داده ای رشته هستند و همونطور که می دونیم محاسبات ریاضی درون رشته ها تا اندازه بی مفهوم است. اما در دستور دوم بدلیل آنکه کوتیشینی وجود ندارد پس مفسر نوع داده ای این عملیات را عدد در نظر می گیرد و وقتی که با نوع داده ای عدد سروکار داشته باشیم پس می تونیم از محاسبات ریاضی استفاده کنیم. باور ما اینست که کاربران ایرانی لایق بهترین‌ها هستند، از این رو ما تمام تلاش خود را می‌کنیم تا بتوانیم فیلم‌ها و مقالات آموزشی بروز و کاربردی را در اختیارتان قرار دهیم تا با استفاده از آنها بتوانید جزء بهترین‌ها در صنعت طراحی و برنامه‌نویسی وب شوید. ما ادعا نمی‌کنیم که بهترین هستیم ولی همیشه تمام تلاش خود را می‌کنیم بهترین عملکرد را به شما ارائه دهیم.

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

اگر شما از علاقمندان برنامه‌نویسی به خصوص پایتون هستید، پیشنهاد می‌کنیم این مقاله را تا انتها دنبال کنید. همچنین ما میتوانیم در هنگام تعریف یک متغیر نیز به آن یک مقدار اولیه بدهیم که برای انجام این کار از ساختار زیر پیروی میکنیم. از توضیح درباره خطوط 1 تا 4 پرهیز می‌کنم، چون در قسمت قبل درباره آن‌ها توضیح داده‌ام. این همون مثال جلسه قبلیه در این مثال property ما از نوع public برای همین با ساخت object به راحتی می تونید از خود object هم عمل مقدار دهی دوباره و هم مقدار فعلیش رو برگشت بدید . حال اگر بخواهید مقدار متغیر a را مشاهده کنید خواهید دید که مقدار جدید جایگزین و مقدار قبلی پاک شده است. کلیه‌ی حقوق این سایت متعلق به کمیته‌ی ملی المپیاد کامپیوتر ایران است.

این فیلم آموزشی توسط دفتر آموزش دوره اول متوسطه وزارت آموزش و پرورش تهیه شده است . در پایان لازم می دانم از همه‌ی دستیاران آموزشی و دانشجویان عزیز به خاطر همراهی‌شان تشکر کنم و همچنین تشکری ویژه از استاد مصطفی زاده دارم که با حمایت و میدان دادن به تیم پروژه باعث شدند بتوانیم اصلاحات بالا را انجام دهیم. ان شاء الله که نقاط مثبت این گزارش در ترم‌های آینده با قدرت ادامه پیدا کند و نقاط منفی آن بر طرف شود. ما در این مقاله، سعی کردیم شما را با برنامه اعداد فیثاغورسی در پایتون آشنا کنیم. به طور قطع راه‌حل‌های دیگری نیز وجود دارد، که برخی بهینه‌شده و برخی دیگر نیستند. خط 16، نیز همانند خط 13، عدد دوم را از کاربر گرفته و در متغیر number2 می‌ریزد.

یعنی محتویات ظرف اول و دوم را درون ظرف سوم می‌ریزد و آن ها را با هم جمع می‌کند. اما در مثال زیر با استفاده از متدهای get و set به راحتی یک property ای که از نوع protected باشه رو مقدار دهی یا مقدار فعلی رو برگشت میدیم . خب حالا فکر کنم باید متوجه شده باشید چرا از method های set و get استفاده کردیم ولی هر موضوعی با مثال واضح تر میشه پس به مثال های زیر دقت کنید تا بیشتر براتون این موضوع جا بیوفته . انواع داده ای مختلف دیگری نیز وجود دارد که ما در طول این دوره آموزشی با آنها آشنا خواهیم شد. جهت دریافت فیلم آموزشی با لینک مستقیم بر روی لینک زیر کلیک کنید.

نام متغیر در زبان برنامه نویسی سی یک شناسه ی انحصاری برای هر متغیر می باشد. اولین باری که این اسم رو میبینید تعجب میکنید که این دیگه چیه . راستش خودمم همینطور بودم ، برام عجیب بود ولی وقتی معنی کسپوله سازی رو بفهمید دیگه براتون ساده میشه . کپسوله سازی همون پنهان سازی اطلاعاته اما ما چرا باید اطلاعاتی رو پنهان سازی کنیم . در جلسه قبل اگه یادتون باشه من دوتا method درست کردم به اسم های set و get که هر کدوم کار خودشون رو انجام می دادن یعنی یکی مقداردهی property مون رو انجام میداد و یکی مقدار property رو برامون بر میگردوند اما چرا باید اینطوری باشه . این سوالیه که منم داشتم چون ما به راحتی میتونیم از خود property استفاده کنیم و مقداردهی و چاپش کنیم اما این درست نیست .

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

در مورد مفهوم برنامه نویسی شی گرا در php و همینطور در مورد property ها و method ها صحبت کردیم و با مثال های مختلف اونا رو بهتون یاد دادیم حالا در این جلسه قصد دارم در مورد Encapsulation (کپسوله سازی) صحبت کنم و اونو بهتون آموزش بدم امیدوارم مورد استفاده اتون قرار بگیره . این نوع داده کوتاه شده ی عبارت Double Floating-Point Integer است و برای ذخیره سازی اعداد تا 15 رقم اعشار استفاده می شود.این نوع داده 8بایت(64 بیت)فضا اشغال میکند. این نوع داده کوتاه شده ی عبارت Floating-Point Integer است و برای ذخیره سازی اعداد تا 6 رقم اعشار استفاده می شود.این نوع داده 4 بایت(32 بیت) فضا اشغال میکند. این نوع داده کوتاه شده ی عبارت Character است و برای ذخیره سازی اعداد در محدوده ی -128 الی 127 استفاده می شود. هر برنامه کامیپوتری در زمان اجرا نیاز به کار با یکسری داده ها دارد.

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

برای مقدار دهی یک متغیر ابتدا نیاز است که متغیر مورد نظر تعریف شده باشد. با رعایت از موضوع ما میتوانیم در هر کجا از برنامه با استفاده از ساختار زیر متغیر را مقدار دهی کنیم. در ساختار بالا ما ابتدا نوع متغیر را مشخص و سپس یک نام برای آن انتخاب میکنیم. حالا میبینید که در کد بالا به راحتی با استفاده از method ها تونیستم عمل مقدار دهی و همینطور برگشت مقدار فعلی یک property از نوع protected رو انجام بدیم . برای کلمه private هم همین وضعیت بالا (protected) برقراره اما یک ویژگی دیگه ای که private داره اینکه در کلاس های دیگه قابل استفاده نیست .


برنامه نویسی از کجا شروع کنم