حاصل عبارت ساده ای چون 3*5 و یا 2+3همواره روشن و مشخص است و هرکس بدون هیچ گونه ابهامی می تواند بگوید که نتیجه عبارت اولی عدد 15 و نتیجه دومی عدد 5 است. اما حاصل عبارت 3*2+10 بسته به اینکه ابتدا عملیات ضرب انجام شود و یا عملیات جمع ، می تواند دو مقدار متفاوت باشد. چنانچه ابتدا عملیات جمع انجام شود( 2+10=12 ) و سپس عملیات ضرب (3*12=36 ) حاصل عبارت 3*2+10 عدد 36 است اما اگر ابتدا عملیات ضرب انجام شود (3*2=6 ) و سپس عملیات جمع (6+10=16) حاصل عبارت عدد 16 است. این مثال ساده به روشنی نشان می دهد که در زبانهای برنامه نویسی وجود قوانینی که ترتیب پردازش و اجرای عملگرهای مختلف موجود در یک عبارت را به روشنی و بدون هیچ ابهامی بیان کند ضرورتی گریزناپذیر است. در فرهنگ واژگان زبانهای برنامه نویسی به این قوانین ، اولویت یا برتری عملگرها گفته می شود. به بیان ساده تر برتری عملگرها مجموعهای از قوانین است که مشخص میکند هنگام ارزیابی یک عبارت معین ، کدام عملگر باید زودتر از دیگر عملگرها انجام شود. برای پیاده سازی این قوانین ، زبان برنامه نویسی به هر عملگر و یا دسته ای از عملگرها یک برتری و یا اولویت نسبت می دهد و سپس به هنگام ارزیابی یک عبارت ، عملگری که بالاترین اولویت را دارد زودتر از دیگر عملگرها پردازش می کند. برخی از مهمترین قوانین اولویت عملگرها در زبان پایتون عبارتند از :
ادامه مطلب ...برنامه ساده چاپ اعداد طبیعی کوچکتر از 4 را در نظر بگیرید ساده ترین راه نوشتن این برنامه ، تکرار دستور Print برای هر یک از اعداد 0 تا 4 است تا به ترتیب با چاپ اعداد 3 ، 2 ، 1 ، 0 خواسته برنامه نویس برآورده گردد. اما اگر بخواهید برنامه چاپ اعداد طبیعی کوچکتر از 50 را به شیوه گفته شده بنویسید ، به ناچار باید برای چاپ هر یک از اعداد 0 تا 49 یک دستور print() جداگانه بنویسید. و ناگفته پیداست که پنجاه بار تکرار دستور print روشی غیر منطقی است چراکه این سبک از برنامه نویسی حجم برنامه را بی دلیل افزایش داده و با کاهش خوانایی و سخت تر شدن درک کد ، ویرایش و اصلاح کد در آینده را دشوار می سازد. این دو مثال ساده نیاز به وجود سازوکاری برای برنامه نویسی ساده تر و روان تر کدهایی که باید بارها و بارها اجرا شوند را روشن می سازد.
ضرورت وجود این سازوکار دوچندان می شود اگر بدانیم که در بسیاری از الگوریتم های حل مسائل دنیای واقعی نیاز به تکرار و اجرای چندباره کد ، گریزناپذیر است .یک مثال عملی از نیاز به تکرار کد ، محاسبه حقوق و دستمزد کارکنان است. چراکه نرم افزار ناچار به تکرار پردازش محاسبه حقوق و دستمزد برای هر یک از کارکنان به صورت جداگانه است. بنابراین با فرض اینکه تعداد کارکنان یک شرکت فرضی 2500 نفر باشد. نرم افزار مجبور است اجرای سه قطعه کد : واکشی اطلاعات کارمند از فایل ورودی ، محاسبه حقوق و دستمزد و ذخیره نتیجه محاسبه در فایل خروجی را از اولین کارمند شروع و تا رسیدن به آخرین کارمند ادامه دهد. یعنی اجرای سه قطعه کد گفته شده 2500 بار تکرار می شود. این مثال نمونه ای از یک تکرار پایان پذیر است زیرا تکرار اجرای کد پس از تعداد اجرای مشخص و یا برقراری یک شرط پایان می پذیرد . در فرهنگ واژگان زبان های برنامه نویسی به تکرار ، حلقه (loop) گفته می شود. مفهوم حلقه پایان پذیر در محاسبه حقوق و دستمزد کارکنان در تصویر زیر نمایش داده شده است :
ادامه مطلب ...یک دنباله عددی ، رشته ای از اعداد است که در آن هر عدد با افزودن یک عدد ثابت مخالف با صفر به عدد پیش از خود بدست می آید. برای نمونه رشته اعداد 3, 6, 9, 12, 15 یک دنباله عددی است که با عدد 3 آغاز شده و با گامهای افزایشی 3 واحدی رشد کرده است. یعنی هر عدد با افزودن عدد 3 به عدد قبلی بدست آمده است. آخرین عدد این دنباله یعنی عددی که دنباله در آن پایان یافته است. عدد 15 است. در زبان برنامه نویسی پایتون ، برای ساخت دنباله ای از اعداد دلخواه از دستور range() استفاده می شود. واژه درست تر برای اشاره به این دستور ، تابع range() است که پیش از آشنایی با مفهوم تابع در زبان های برنامه نویسی ما همچنان از واژه دستور استفاده خواهیم کرد.
ادامه مطلب ...به عنوان یک برنامه نویس تنها زمانی به ارزش عملگرهای منطقی و مقایسه ای پی خواهید برد که با مفهوم هدایت جریان برنامه یا همان تصمیم گیری در زبانهای برنامه نویسی آشنا شوید. چیزی که موضوع اصلی این فصل است.
تصمیم گیری مفهومی آشنا و پرکاربرد در زندگی شخصی و کاری هر فرد است. و همه ما در لحظه لحظه زندگی خود ناچار به تصمیم گیری و اقدام بر اساس آن هستیم. برای نمونه مدیر کسب و کاری که با توجه به شرایط بازار، دستور پایان دادن به تولید یک محصول قدیمی را می دهد و یا بانوی خانه داری که نوع غذای ناهار خانواده را انتخاب می کند تا کارمندی که مسیر رانندگی تا اداره را با توجه شرایطی چون زمان باقی مانده به ساعت شروع کار، خلوتی خیابانها و ... انتخاب می کند ، همگی در حال تصمیم گیری هستند. هرچند که ممکن است شیوه و سطح تصمیم گیری هر یک از ما با دیگری متفاوت باشد اما بسیاری از تصمیماتی که در دنیای شخصی و یا حتی سازمانی گرفته می شوند را می توان بر مبنای اصل انتخاب بر اساس شرایط تفسیر کرد. به بیان ساده تر فرد تصمیم گیرنده شرایطی را بررسی می کند و در صورت برقراری آن شرایط رفتاری را انتخاب می کند.
ادامه مطلب ...از دوران خوش مدرسه یاد گیری اعمال ریاضی جمع ، تفریق ، ضرب و تقسیم را به یاد دارید ؟ تکلیف سخت حفظ جدول ضرب همراه با قدم زدن در میان برف های سفید و انبوهی که دریک روز سرد زمستانی و در زیر پرتوهای زرین آفتاب در حیاط مدرسه دامن گسترانیده بود را به یاد می آورید؟ چه رویاهای شیرین دوران مدرسه را به یاد داشته باشید و چه از یاد برده باشید نیک می دانید که در درس ریاضی ، ضرب عملیاتی است که با نماد یا علامت × نمایش داده می شود و عددی که در سمت راست آن قرار دارد (عملوند راست )را به تعداد عدد قرار گرفته در سمت چپ نماد (عملوند چپ ) با هم جمع می کند. برای مثال ضرب 12×3 که عملوند راست آن 12 و عملوند چپ آن 3 است یعنی : 12+12+12 پس حاصل 12×3 برابر است با 36 با این تعریف مفهوم دو عبارت ریاضی 12×3 و 3×12 متفاوت از یکدیگر است هرچند که حاصل هر دو عبارت یکی است. عبارت 12×3 یعنی حاصل جمع سه دسته 12 تایی (36=12+12+12) و 3×12 یعنی حاصل جمع دوازده دسته سه تایی.(36=3+3+3+3+3+3+3+3+3+3+3+3)
همانند دانش ریاضی در زبانهای برنامه نویسی نیز دو مفهوم عملگر (Operator) و عملوند (Operand) بسیار پر کاربرد بوده و آشنایی با آنها از نخستین گامهایی است که هنر آموزان برای ورود به دنیای برنامه نویسی برخواهند داشت.
ادامه مطلب ...