رفتن به مطلب

ارسال های توصیه شده

اصول برنامه نویسی

 

الگوریتم

مجموعه ای از دستورالعمل ها كه به صورت محدود و پایان پذیر است و اگر بصورت متوالی دنبال شود موجب انجام كار خاصی می گردد.

شرایط و معیارالگورتیم

1. ورودی( می تواند چند ورودی داشته باشد یا هیچ ورودی را از محیط خارج تامین نكند . )

2. خروجی (حداقل یك كمیت به عنوان هدف و نتیجه الگوریتم به خروجی برگزدانده می شوند . )

3. قطعیت (واضح و بی ابهام باشد . )

4. محدودیت ( بالاخره باید الگوریتم پایان یابد و برای تمام حالات عملی انجام گیرد و بازتابی داشته باشد . )

5. كارآیی ( هر دستورالعمل باید انجام پذیر باشد . )

نكته : در علم كامپیوتر باید بین یك الگوریتم و یك برنامه تفاوت قائل شد، بعنوان مثال سیستم عامل برنامه ایست كه هیچ گاه پایان نمی پذیرد در صورتیكه شرط الگوریتم پایان پذیریست .

نكته : یك الگوریتم را به شیوه های مختلف می توان بیان كرد و برای هر مساله می توان الگوریتم های متفاوتی نوشت .

نوع داده مجرد ADT (abstract data type)

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

یك پیاده سازی نرم افزاری شامل ویژگی های چگونگی نمایش یك نوع داده جدید بر اساس داده های موجود است، به عبارت دیگر نوع داده مجموعه ای از انواع داده مقصد) ( object وعملكرد هایی است كه بر روی این نوع داده ها عمل می كنند .

توابع یك نوع داده مجرد را به چند گروه تقسیم می كنند :

1. ایجاد كننده یا سازنده ( این توابع نمونه جدیدی از نوع تعیین شده ایجاد می كند . )

2. تبدیل كننده ( این توابع با استفاده از یك یا چند نمونه دیگر نمونه تعیین شده را ایجاد می كند . )

3. مشاهده كننده یا گزارش دهنده ( اطلاعاتی را راجع به یك نمونه از نوع داده را ارائه می دهد . )

بررسی نحوه اجرای یك برنامه

عواملی چون :برآورده شدنِ اهداف اصلی برنامه، صدق كردن تمام مقادیر، مستند سازی برنامه، ایجاد واحدهای منطقی، استفاده موثر از توابع، خوانا بودن كد ها ی برنامه، استفاده موثر برنامه از حافظه ها ی اصلی و كمكی، زمان اجرای برنامه و ... در ارزیابی برنامه موثرند .

تعیین تخمین های حافظه و زمان مورد نیاز را تحلیل نحوه اجرای برنامه می نامند .

پیچیدگی فضای لازم

فضای مورد نیاز یك برنامه شامل موارد زیر است :

1. نیازمندیهای فضای ثابت

2. نیازمندیهای فضای متغیر

می توانیم نیازمندیهای فضای كل را بصورت مجموع نیازمندیهای فضای ثابت و متغیر بیان كنیم .

پیچیدگی زمان

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

چرخه زندگی سیستم ( شیوه توسعه نرم افزار)

این چرخه شامل موارد زیر است :

1. تعین نیاز های مسئله :

نیازها دو دسته اند : دسته اول نیازمندیهای عملیاتی سیستم كه در واقع كاربر با آن سرو كار دارد و دسته دوم نیازمندی های غیر عملیاتی هستند كه این نیازمندیها محدودیت ها و استانداردها ی سیستم را مشخص می كنند .

2. تحلیل مساله:

در تحلیل دو شیوه موجود است : شیوه از پایین به بالا ((bottom up و شیوه از بالا به پایین ((top down

در شیوه از پایین به بالا ما ابتدا كل برنامه را در نظر گرفته و بعد به ریشه ها و قسمت ها ی مختلف می پردازیم . این روش قدیمی و غیر ساخت یافته است اما در شیوه از بالا به پایین ما برنامه را به قسمت های قابل كنترل تقسیم می كنیم و در نهایت به برنامه اصلی دست پیدا می كنیم .

3. طراحی الگوریتم برای حل مساله :

در این مرحله، طراح سیستم را هم از نقطه نظر داده های مقصود مورد نیاز برنامه و هم از نظراعمالی كه بر روی انها انجام می گیرد، بررسی می كند. از آنجایی كه نوع داده مجرد و مشخصات الگوریتم ها مستقل از زبان هستند لذا جزئیات برنامه نویسی را نادیده می گیریم .

4. پیاده سازی الگوریتم :

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

5. بازبینی، بررسی و آزمایش برنامه كامل شده :

در این مرحله برنامه ها با انواع داده های ورودی مختلف آزمایش و خطا های مختلف رفع می شوند، جنبه های مختلف در این زمینه عبارتند از : اثبات درستی، آزمایش درستی و خطا زدایی .

نكته : باید توجه داشت كه برنامه بدون خطایی كه سرعت پایینی دارد از ارزش كمی برخوردار است .

6. پشتیبانی و به روز رسانی برنامه :

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

نكته : سه مرحله اول توسعه نرم افزار یعنی نیازمندیها، تحلیل مساله و طراحی الگوریتم، به عهده تحلیلگران سیستم است و برنامه نویس مرحله چهارم را به عنوان نوعی كتابدار انجام می دهد . در اصطلاح برنامه نویسی به دو مرحله آغازی تحلیل و به مراحل سه و چهار تركیب گفته می شود .

بعضی از الگو های توسعه نرم افزار :

1. روش آبشاری :

در این روش پس از تعریف هر مرحله توسعه نرم افزار به سمت مرحله بعدی پیش می رود .

2. برنامه نویسی اكتشافی :

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

طراحی شئ گرا:

ازآنجا كه پنهان سازی اطلاعات یك استراتژی طراحی است كه در آن اطلاعات تا آنجایی كه ممكن است در داخل قطعات سیستم مخفی می شوند ، طراحی شئ گرا نیز بر مبنای پنهان سازی اطلاعات است ، در روش شئ گرا سیستم به صورت مجموعه ای از اشیا یا حالت اختصاصی خود در نظر گرفته می شود .

ویژگی های طراحی شی گرا :

1. ناحیه مشترك داده ها حذف می شوند و اشیا به جای استفاده از متغیر های عمومی و مشترك با تبادل پیام ها با یكدیگر ارتباط برقرار می كنند . این كار هم باعث سهولت در اصلاحات و هم كاهش اتصال كل سیستم می شود .

2. اشیا نهادهای مستقلی هستند كه به راحتی قابل تغییرند زیرا تمام حالت ها و اطلاعات در داخل خود شئ پنهان شده است و اشیا دیگر چه از روی عمد و چه تصادفی به اطلاعات یك شی نمی توانند دست یابند و تغییر در یك شی بدون مراجعه به اشیای دیگر صورت می گیرد .

3. اشیا ممكن است توزیع شده باشند و می توانند بصورت ترتیبی یا موازی اجرا شوند .

امتیازات روش طراحی شئ گرا :

1. به دلیل مستقل بودن اشیا نگهداری سیستم آسانتر است ، می توان اشیا را جداگانه اصلاح كرد و افزودن یا حذف یك شی تغییری در سایر اشیا سیستم نخواهد داشت .

2. اشیا قطعات مناسبی هستند كه می توانند مجددا مورد استفاده قرار گیرند .

3. برای دسته ای از سیستم ها نگاشت روشنی بین نهاد های دنیای واقعی ( مثل قطعات سخت افزاری ) و اشیای كنترل كننده آنها در سیستم وجود دارد این موضوع درك سیستم را بالا می برد .

طراحی تابعی :

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

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

تفاوت‌هایی بین برنامه نویسی و الگوریتم هست به عنوان مثال یك الگوریتم الزاما باید پایان پذیر باشه ولی یه برنامه میتونه تموم نشه و در رم سیستم باشه از سایر تفاوت‌ها میشه به این مطلب اشاره كرد كه خوب ما الگوریتم رو به صورت زبان معمولی و یه سری از علائم مینویسیم كه میتونن منحصر به فرد نباشن و از یك نفر تا نفر دیگه شیوه‌ی نگاشت الگوریتم فرق كنه حتی زبانی كه مینویسیمش(انگلیسی ، فارسی و......) ولی در برنامه نویسی با یك سری دستورات و ساختارهای كه منحصر به فردی این نوشته‌هامون رو شبیه‌سازی میكنیم به شكلی كه این دستگاه احمق و بیشعور و نفهم بتونه هرچی كه ما میخوایم برامون اجرا كنه

 

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

 

خب یكم اطلاعات عمومی در مورد زبان‌های برنامه نویسی بدم كه گنگ نباشید نسبت به لغات

 

زبان‌های برنامه نویسی خودشون دسته بندی میشن

 

1.زبان ماشین نزدیك ترین زبان به سخت افزار زبان ماشین هستش كه شبیه سازی ما در این زبان به صورت دستوراتی دودویی یا باینری هستن كه فقط میتونن شامل 0 و 1 باشن خب این زبان از سرعت اجرای زیادی برخورداره ولی نوشتن اون و حفظ كردن ساختار برنامه نویسی خیلی پیچیده هست و نمیشه حفظش كرد به همین دلیل تولید كنندگان زبان به فكر بهینه كردن برنامه نویسی افتادن

 

2.زبان اسمبلی: بعد از زبان ماشین این زبان در رتبه‌ی دوم از لحاظ نزدیكی به سخت افزار قرار داره سرعت اجرای بالایی داره برای نوشتن برنامه‌های كوچیك محاسباتی خیلی خوب بود ولی به محض گسترش برنامه نویسی به دلیل زیاد بودن كدهاش دقت كار پایین میومد و خطاهای زیادی توش رخ میداد

 

3. زبان‌های سخت یافته مثل پاسكال ، سی و...

 

این زبان‌ها كارایی بالایی داشتن چون همه چیز توشون ساخت یافته بود و برنامه نویسان برای مثلا چاپ روی صفحه فقط از یك دستور استفاده میكردن در واقع اصول برنامه نویسی بسیار زیبا شده بود و خود زبان به زبان محاوره‌ای نزدیك شده بود بنابراین فراگیری و حفظ كردنش ساده بود این زبان‌ه یك سری ساختار‌ها و كلمات ذخیره شده دارن كه میشه باهاشون برنامه نوشت

 

در سطح بندی زبان‌ها سی سطح دو در كنار اسمبلی قرار میگیره چون قابلیت كار با سخت افزارش بیشتر از پاسكال هست و از این باب قویتره

 

در حال حاضر بهترین زبان برای فراگیری برنامه نویسی همین پاسكال هست من كه روش سرمایه‌گذاری كردم خوب جواب داد برای شما هم همینطور خواهد بود

 

4-زبان‌های ویژوال(شیءگرا... )

 

در زبان‌های سخت یافته همه چیز برنامه نویسی خوب بود ولی خب اكثرا لازم بود كاربر یك دكمه رو بزنه نه اینكه یه فرمان وارد كنه تولید شیء در ساخت یافته‌ها چون تحت داس هم بودند سخت بودپس از این لحاظ با توسعه‌ی سیستم‌عامل ها مثل 95 و غیره این قسمت از برنامه نویسی هم كامل شد و زبان‌های شیءگرا به بازار اومدن مثل VB,VC,Delphi و كه علاوه بر ساخت یافته بودن شیءگرا هم بودن و تولید شی در اون‌ها خیلی ساده بود

لینک به دیدگاه

كاراكتر

 

كلیدهایی كه بر روی كیبورد وجود دارد پس از فشردن هر كلید علامتی بر صفحة مونیتور نقش می بندد كه به هر كدام كاركتر می گویند . مفهوم كاركتر تنها به كلید های كیبورد محصور نمی شود ، بلكه گاهی فشردن مجموع چند كلید، كاركتر خاصی را معنا می دهد . این مجموعه كاركتر ها در واقع حكم مصالح اولیه جهت شكل دادن به اجزای اصلی برنامه اند . بعضی از كاركتر ها عبارتند از :

- حروف كوچك و بزرگ

- ارقام دهدهی شامل 0 تا 9

- جای خالی ( blank )

- كاركتر های مخصوص ~ ! @ # $ % ^ & * ) ( _ - + = ] [‌‍ {} >

- كاركتر های فرمت دادن ( formating character ) : كه برای بیان كردن حالات ویژه ای به كار می روند و عبارتند از : \t ( horizental tab ) ، \v ( vertival tab ) ، \n ( new line ) ، \b ( back space ) ، \f ( form feed ) ، \r ( return line ) ، \0 ( null ) و . . . كه به آنها كاركتر های فرمان نیز می گویند .

یادآوری : هر كاركتر فرمان بیا ن كننده تنها یك كاركتر است ، هر چند با دو یا چند كاركتر نوشته می شوند .

شناسه

 

شناسه ، نامی است كه به عناصر مختلف برنامه مانند متغیر ها، توابع، آرایه ها، اشاره گر ها و غیر اطلاق می شود . یك شناسه دنباله ای از حروف بزرگ یا كوچك ، ارقام ، یا علامت زیر خط ( under line ) است كه با هر ترتیبی می توانند قرار گیرند ، به شرط آنكه اولین كاركتر باید یك حرف باشد . ضمنا استفاده از فضای خالی ( blank ) در نام شناسه مجاز نمی باشد .

طول اسامی در زبان های مختلف متفاوت است مثلا در زبان c استاندارد تا 31 كاركتر مجاز است .

قرارداد : شناسه هایی كه با علامت زیر خط ( under line ) شروع می شوند فقط در برنامه های سیستم كاربرد دارند .

متغیر

 

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

كلمات رزرو شده یا كلیدی

بعضی از شناسه های كلمات رزرو شده یا كلیدی هستند یعنی معنی و مفهوم خاصی برای آنها از قبل در زبان تعریف و پیش بینی شده است . بنابراین نمی توانند در برنامه ها به عنوان شناسه های تعریف شده به وسیله برنامه نویس ، به كار برده شوند . همه كلمات كلیدی با حروف كوچك نوشته می شوند .

علامت توضیح

 

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

ساختار برنامه ها

 

هر برنامه برای رسیدن به هدف خود باید الگوریتم را به صورت زبانی خاص برگرداند . هر برنامه به نوبة خود با فرمت خاصی نوشته می شود . اما درون این فرمت همیشه اجزایی به عنوان جز ثابت برنامه نویسی ها تلقی می شوند این اجزای ثابت عبارتند از

- برنامه اصلی برنامه ای است كه در واقع قسمت بالایی و اصلی الگوریتم ما را تشكیل می دهد اكثر تعاریف و فرا خوانی ها در آن صورت می گیرد .

- شروع برنامه اصلی هر برنامه با كلمات كلیدی یا كاركتر هایی خاص كه به ابتدای برنامه اصلی اشاره دارند شروع می شود .

- تعریف ثابت ها و متغیر ها برنامه ها نیاز به یك سری داده های صابت و متغیر دارند تا بوسیله آنها به مقاصد برنامه دست یابند .

- دستورات برنامه مجموعه دستوراتی كه با دنبال كردن متوالی آن ما را هدف برنامه می رسانند.

- پایان برنامه اصلی هر برنامه با كلمات كلیدی یا كاركترهایی خاص كه به انتهای برنامه اصلی اشاره دارند به پایان می رسانند .

- تعریف و فراخوانی توابع و رویه ها توابع و رویه ها برای رسیدن به ماجول دار كردن و پیمانه ای كردن برنامه ، برنامه اصلی را به صورت چند زیر برنامه می نویسند این زیر برنامه ها به صورت جداگانه نوشته می شوند كه در انتها به وسیله برنماه اصلی به هم می پیوندند و هدف اصلی برنامه را تامین می كنند . به هر كدام از این زیر برنامه ها كه هدف های جزئی برناتمه را برآورده می كنند بسته به تعاریف تابع یا رویه می گویند . این توابع باید در قسمتی از برنامه داخل یا خارج برنامه اصلی ( وابسته به زبان برنامه نویسی ) تعریف شوند و بوسیله برنامه اصلی یا توابع دیگر فراخوانی شوند .

عملگرها یا اپراتورها

 

نشانه هایی هستند كه در عبارت ها به كار می روند و به كمك آن ها می توان اعمالی را روی انواع داده انجام داد . به متغیرها یا ثوابتی كه روی آن ها عمگرها عمل خود را انجام می دهند عملوند یا اپراند می گویند .

نکته : در زبان های برنامه نویسی مختلف هر کدام از این عملگرها کارکتر یا کارکترهایی خاص دارند که اغلب با هم متفاوتند .

 

انواع عملگرها عبارتند از :

 

 

عملگرهای محاسباتی

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

عملگرهای انتساب

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

عملگرهای یكانی

به عملگر هایی که تنها روی یک عملوند عمل می کنند عملگر یکانی یا تک عملوند می گویند این عملگر ها در زبان های مختلف متفاوت تعریف شده اند . متداول ترین عملگر تک عملوندی یا یکانی عملوند منفی است که در جلوی یک مقدار ثابت عددی یا یک متغیر یا عبارت قرار می گیرد و مقدار آن را منفی یکانی می کند .عملگر تبدیل نوع یکانی (cast) در زبان c از این نوعند .

لینک به دیدگاه

3

عملگرهای رابطه ای ( مقایسه ای )

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

تذکر : مقدار درست را گاهی با یک و گاهی با true نمایش می دهند و مقدار نادرست را گاهی با صفر و گاهی با false نشان می دهند که این مطلب در زبان های مختلف متفاوتند .

عملگرهای منطقی

 

عملگرهای منطقی دارای دو ارزش درست و نادرست هستند . عملگر های منطقی شامل رابط عطفی ( و and ) رابط فصلی ( یا or ) رابط نقیض یا منفی( not) و غیره می باشند . بررسی ارزش های این گزاره ها به صورت زیر است :

رابط عطفی : هرگاه عملوند های دو طرف این عمگر هر دو ارزش درست داشته باشند ارزش کل عبارت درست خواهد بود و در غیر این صورت عبارت دارای ارزش نادرست خواهد بود .

رابط فصلی : اگر عملوند های دو طرف این عملگر هر دو دارای ارزش نادرست باشند ارزش کل عبارت نادرست خواهد بود و در غیر این صورت عبارت دارای ارزشی درست خواهد بود .

رابط نقیض : اگر ارزش تک عملوند این عملگر درست باشد ارزش کل عبارت نادرست و اگر تک عملوند این عمگر دارای ارزش نادرست باشد ارزش کل عبارت درست خواهد بود .

 

عملگرهای شرطی

 

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

 

عملگرهای حافظه

 

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

عملگرهای خاص هر زبان برنامه نویسی

 

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

operator كه معادل فارسی آن عملگر است و operand معادل فارسی آن عملوند است

عملگر ها در واقع نشانه هایی هستند كه بر سر عملوند ها می آیند تا عملی خاص را روی آنها انجام دهند .

sentence به معنای جمله است كه در برنامه نویسی معمولا در دو تعبیر به كار می روند :

1. توضیحات برنامه ( كه تنها برای خوانا شدن برنامه ، به منظور سهولت در به روز رسانی و پشتیبانی است )

2. جملات كاربری ( كه اطلاعات را به كاربران منتقل می كند )

در مورد دستوری كه نوشته اید (cmp eax,ecx ) هم باید بگویم

لطفا بگویید این كد نویسی در چه زبانی است ؟

و چرا فاقد نمادهای برنامه نویسی است ؟

comment به معنای فرمان و دستور است . دستورات معمولا بعد از كلمات كلیدی ، حلقه های شرطی و دستوری و.... به كار می رود . دستورات خطوط كد نویسی شده ای هستند كه توسط برنامه نویس برای مقصودی مشخص نوشته می شوند

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

 

ساختار برنامه در زبان پاسکال : اجزاء اصلی یک برنامه به صورت زیر می باشد :

الف - عنوان برنامه ب - قسمت تعاریف برنامه ج- قسمت دستو ارلعملها

 

عنوان برنامه: که شامل نام برنامه و فرمانهای کامپایلر می باشد واولین بخش از برنام را تشکیل می دهد .

توجه ( عنوان برنامه در پاسکال اختیاری می باشد ) . نام برنامه بعد از کلمه ذخیره شده program ظاهر می شود و هدف اسم گذاری برنامه است .

;نام برنامه program

 

 

 

4

 

تعاریف برنامه : که شامل 4 قسمت است :

ا- اعلان ثابت ها 2- اعلان انواع 3- اعلان متغیرها 4- اعلان برچسب ها

 

دستور العمل ها : این قسمت با استفاده از دستورالعملها و قواعد پاسکال ، مسئله مورد نظر پیاده سازی میشود .

 

ساختار برنامه نویسی به کلمه ذخیره شده begin شروع وبا end . پایان می پذیرد .

ساختار کلی زبان پاسکال بصورت زیر می باشد :

;اسم برنامه program

تعاریف

 

.

 

.

 

.

 

Begin

 

; دستور 1

 

; دستور 1

 

.

 

.

.END

 

توجه ( هر دستور پاسکال به علامت) ; ( سمیکالن ) ختم میشود

 

 

انواع داده ها : ورودی های برنامه داراری نوع هستند . داده ها در پاسکال به 3 نوع می باشند :

 

1 – داده های ساده که شامل : صحیح (integer )، اعشاری ( real ) ، منطقی (boolian) ، کاراکتری ( char ) و رشته ای (string )

2- داده های ساختیافته : مثل آرایه ها ، رکوردها ، مجموعه ها و فایل ها که در ادامه بیشتر باآنها آشنا خواهید شد .

متغیر ها : محلی از حافظه که دارای اسم و نوع است . در پاسکال برای معرفی متغیر ها به صورت زیر عمل میکنیم :

 

Var

;نوع متغیر: اسم متغیر

 

مثال : متغیر هایی از نوع صحیح و اعشاری و کاراکتری تعریف کنید :

 

var

i , j : intrger;

G ,f : real ;

Ch1, ch2 : char ;

 

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

;مقدار ثابت =: اسم متغیر const

 

دستور جایگزینی : برای قرار دادن یک مقدار درون یک متغیر

 

Y:=15; z:=15; x:=X+y;

 

برای چاپ خروجی از دستور write استفاده می شود .

Write ( 'ali');

 

توجه عبارتی که قرار است چاپ شود درون نقل قول قرار می گیرد (' ')

 

تمرین :

1-برنامه ای بنویسید که دو عدد 10 و 13 را با هم جمع کرده ودر خروجی چاپ کند.

2-برنامه ای بنویسید که دو متغیر صحیح با مقادیر 15و17 را گرفته و بدون استفاده از متغیر کمکی مقادیر آنها را با هم عوض کند .

3-برنامه ای بنویسید که حجم یک کره به شعاع 20 را محاسبه و چاپ کند .

 

 

برای ادامه‌ی این قسمت شما نیاز به زبان پاسكال دارید میتونید توی گوگل سرچ كنید Turbo Pascal 3.0 و از اونجا دانلودش كنید به راجتی حجمی هم نداره در این زمینه مشكلی بود بگید تا لینك دانلودش رو بدم

 

برای اجرای زبان برنامه نویسی پاسكال باید در جایی كه نصبش كردید این مسیر رو برید فرض میكنیم شما اون رو در پوشه‌ی TP7 ذخیره كردید

TP7\Bin\TPX.exe

شما از این مسیر كه گفتم با اجرای این فایل وارد محیط برنامه نویسی پاسكال میشید

 

خوش آمدید به دنیای برنامه نویسی دنیای كنترل دستگاهی به نام كامپیوتر و كاربردی كردن اون ایشالله در این راه موفق باشید

 

برنامه‌ها كه مشخصن كجا تایپ میشن برای اجرای برنامه‌ها و دیدن حاصل اونها از كلید تركیبی Ctrl+F9 استفاده میكنیم در صورت نرفتن كد ما خطا داره و كامپایلر پاسكال مكان نما رو میبره به محل خطا

 

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

 

خب در مورد كار با پاسكال خودتون تجربه كسب میكنید ولی سؤالی بود حتما بپرسید كه در پیشرفتتون تأثیر داره

لینک به دیدگاه

همونطوری كه در انواع زبان‌ها گفتم و خوندید مهم‌ترین ویژگی زبان‌های ساخت یافته ، ساختار ثابت و منحصر به فرد اون‌هاست و شما باید شبیه‌سازیتون رو در چهارچوب خاصی پیاده سازی كنید تا كامپایلر بتونه اونا رو به زبان ماشین تبدیل كنه

 

خب در زبان‌های برنامه نویسی ما سه نوع خطا داریم كه ممكنه باهاشون مواجه بشیم

 

1- Compile Time Error یا خطاهای Syntax كه خطاهای گرامری هستن و این به این معنیه كه برنامه‌ای نوشتیم در ساختار نیست و یه جایی درست ساختار رو رعایت نكردیم در این خطاها برنامه اصطلاحا‌ً كامپایل نمیشه و اجرا هم نمیشه در این حالت خود به خود كامپایلر ، مكان نما رو میبره روی محل خطا

 

2- خطاهای زمان اجرا یا Run-Time Error كه در زمان اجرای برنامه ممكنن رخ پیدا كنن مثل تقسیم برا صفر شدن عددی یا مثلا انتساب یه عدد به جای رشته و از این اتفاقات كه در زمان اجرا ممكنه كاربر بوجودشون بیاره دقت كنید برنامه نوشته شده باید از ین نوع خطاها عاری باشه

 

3- خطاهای منطقی یا Logical Error كه این خطاها با هیچ پیامی نشون داده نمیشن ولی حاصل برنامه حاصل مورد نظر ما نخواهد بود

 

هر برنامه در پاسكال یك ساختار دو بخشی داره یكی بخش سربرگ‌های برنامه كه خودش به چند دسته تقسیم میشه كه كم كم باهاشون آشنا میشیم و دیگری بخش كدهای برنامه كه بازهم در طول كارمون كاملش میكنیم

 

با نام خدا شروع میكنیم

 

اولین چیزی كه باید در پاسكال یاد بگیرید اینه كه برای نشون دادن انتهای هر دستور باید در انتهای اون علامت ; كه خوانده میشود سمی كولن قرار بدیم البته استثناهایی هست كه این علامت رو نیاز ندارن

 

اولین دستوری كه در ساختار پاسكال بررسیش میكنیم و جزء قسمت سربرگ هستش دستوری به نام Program كه طرز استفاده‌اش به شكل زیر:

;نام برنامه Program

 

این فرمان به عنوان اولین دستور قرار میگیره و در اون نام برنامه رو مینویسیم دقت كنید كه این دستور كاملا اختیاریه و اجباری به نوشتن اون نیست پس لطا ننویسیدش و فقط محض اطلاع بدونیدش

 

خب میرسیم به بخش كدهای برنامه یعنی جایی كه بای برنامه‌هامونو بنویسیم ساختارش به شكل زیر هستش

Begin

;دستور 1

;دستور 2

......

;دستور N

End.

 

خب همونطور كه میبینید این بخش با كلمه‌ی ذخیره شده‌ی Begin شروع میشه و با كلمه‌ی ذخیره شده‌ی .End تموم میشه و دستورات اصلی ما در بین این دو كلمه قرار دارن

 

نكته: دقت داشته باشید كه زبان پاسكال هیچ تفاوتی بین حروف بزرگ و كوچیك نمیذاره هر طور راحتید بنویسید

 

دقت كنید در پاسكال جدا كنندهِ دستورات علامت ; است و میتونیم بلافاصله بعد از اون دستور بعدی رو شروع كنیم ولی به منظور خوانایی بیشتر برنامه میریم خط بعد

 

برای هر دستور میتونیم توضیحاتی بنویسیم به زبون محاوره‌ای كه جزو برنامه نباشن و فقط صرف بیان توضیحی درباره‌ی برنامه باشن و كامپایلر هم نخونه اونا رو و بهشون توجه نكنه این توضیحات رو باید بین دو علامت { و } بنوسیم و یا بین دو علامت (* و *) بنویسیم

 

 

مثال :

برنامه ای بنویسید كه دو عدد را از ورودی دریافت و چنانچه عدد اول در بازه 0 تا 5 بود توان دوم عدد دوم را چاپ كند و چنانچه 68 بود حاصلضرب دو عدد را چاپ كند در غیر اینصورت مقادیر مجاز را چاپ كند

BEGIN

WRITELN('ENTER TWO NUMBER');

READLN(A,B);

CASE A OF

0..5 :WRITELN(B*B);

68:WRITELN(A*B)

ELSE

WRITELN('ENTER 0..5 OR 68');

END;

END.

 

- معادل برنامه بالا با دستور If :

 

 

Begin

Writeln('enter 2 number');

Readln(a,b);

If (a>=0)and(a

Writeln(b*b)

Else

If a=68 then

Writeln(a*b)

Else

Writeln('enter 0..5 or68');

End.

 

تكلیف : روشی برای تلفظ اعداد پیدا كنید.

 

حلقه تكرار :

1- تعداد معین

2- تعداد معین

Do مقدار نهایی to { مقدار شروع=: متغیر for

downto

begin

___

___

___

end;

توجه مهم : در برخی از حلقه ها دستورات داخل حلقه به متغیر حلقه مرتبط می باشند و در برخی موارد هیچگونه ارتباطی وجود ندارد.

حلقه for برای تعداد تكرار معین به كار میرود

: Downto در مواردی به كار میرود كه مقدار اولیه از مقدار نهایی بیشتر باشد

 

مثال : برنامه ای بنویسید كه توان دوم اعداد 100 تا 200 را چاپ كند.

 

Begin

For i:=100 to 200 do

Begin

Writeln(i*i);

End;

End.

 

نكته : اجازه ندارید مقدار متغیر حلقه را در داخل بدنه عوض كنید .

مثال : برنامه ای بنویسید كه حاصلجمع اعداد 100..1 را چاپ كند.

 

Begin

Sum:=0;

For i:=1 to 100 do

Begin

Sum:=sum+i

End;

Write(sum);

End.

لینک به دیدگاه

مثال : برنامه ای بنویسید كه حاصلجمع مضارب 5 بین 0 تا 100را به دست آورد.

 

Begin

Sum:=0;

For I:=1 to 20 do

Begin

Sum:=sum+i*5;

End;

Writeln(sum);

End.

 

مثال : برنامه ای بنویسید كه دو عدد را از ورودی دریافت و اعداد ما بین این دو عدد را چاپ كند (a

Begin

Writeln('enter a,b');

Readln(a,b);

For I:= a to b do

Writeln(i);

End.

 

 

مثال : برنامه ای بنویسید كه با یك حلقه for اعداد بین100..1 و738..353و 950..940 را چاپ كند

 

Begin

For i:=1 to 950 do

Begin

If ( i>=1) and (i

Writeln(i);

If (i>353) and (i

Writeln(i);

If (i>=940) and (i

Writeln(i);

End;

End.

 

معادل برنامه بالا با استفاده از دستور case :

 

Begin

For i:=1 to 950 do

Case I of

1..100,353..738,940..950: writeln(i);

end;

end.

 

 

(باقیمانده) mod?

 

مثال :

X mod y

مثال : برنامه ای بنویسید كه مضارب 7 بین 1 تا 100 را چاپ كند

 

Begin

For i:= 1 to 100 do

Begin

If I mod 7 = 0 then

Writeln(i);

End;

End.

مثال : برنامه ای بنویسید كه تعداد مضارب 5و7 را در بازه 231~846 چاپ كند.

Begin

K:=0;

C:=0;

For i:=846 downto 231 do

Begin

If I mod 5 = 0 then

C:=c+1;

If I mod 7 = 0 then

K:=k+1;

End;

Writeln('5=',c,'7=',k);

End;

End.

 

مثال : برنامه ای بنویسید كه حقوق پایه وتعداد فرزندان 100 كارگر را از ورودی دریافت و مبلغ حقوق آنها را بر اساس فرمول زیر حساب كند0

1000*تعداد فرزند + حقوق پایه = حقوق كل

 

 

Begin

For i:=1 to 100 do

Begin

Writeln('enter salary and number of children');

readln(salary,num);

kol := salary + num * 1000;

writeln(kol);

end;

end.

لینک به دیدگاه

مثال : برنامه ای بنویسید كه 100 عدد را از ورودی دریافت و میانگین و حاصلجمع آنها را به ما بدهد.

 

Begin

Sum:=0;

For i:= 1 to 100 do

Begin

Writeln('enter num');

Readln(num);

Sum:=sum+num;

End;

Ave:=ave/100;

Writeln(sum,ave);

End.

 

تعداد تكرار نامعین :

Do شرط while

begin

___

___

___

end;

مثال : برنامه ای بنویسید كه اعداد 100..1 را چاپ كند

 

Begin

I:=1;

While i

Begin

Write(i);

I:=i+1;

End;

 

مثال : برنامه ای بنویسید كه تعدادی اسم را از ورودی دریافت و به ما بگوید چند بار اسم ali تكرار شده است(آخرین اسم end است).

Var

S:integer;

St:string;

Begin

Read(st);

While st 'end' do

Begin

If st='ali' then

S:=s+1;

Read(st);

End;write(s);

End.

 

مثال : برنامه ای بنویسید كه تعدادی عدد كه آخرین آنها صفر است را از ورودی دریافت و حاصلجمع آنها را چاپ كند.

Begin

Readln(num);

T:=1;

While num0 do

Begin

Sum:=sum+num;

Readln(num);

T:=t+1;

End;

Writeln('s=',s,'average',s/t);

End;

 

تكلیف : برای دانش آموزان یك كلاس برنامه ای بنویسید كه نام آنها به همراه تعداد نمرات و سپس نمرات آنها را به فرم زیر از ورودی دریافت كند.تعداد دانش آموزان كلاس نامعین است ولی آخرین نفر نامش end است .برنامه میبایستی پس از دریافت هر یك از اطلاعات پیامی به شكل زیر چاپ كند.

 

Average: Sum: Ali Name:

3

18

20

13.5

 

 

program test;

var

name:string[10];

ave,sum,nomreh:real;

num,i:integer;

begin

writeln('enter name ' );

readln(name);

while name 'end' do

begin

writeln('enter num:');

readln(num);

for i:=1 to num do

begin

writeln('enter nomreh: ');

readln(nomreh);

sum:=sum+nomreh;

end;

ave:=sum/num;

writeln('name:',name,'sum:',sum,'ave:',ave);

writeln('enter name ');

readln(name);

end;

end.

 

 

تكلیف : میخواهیم برای برنامه های خود یك منو تهیه كنیم این منو شامل موارد زیر است

1) load

2) save

3) edit

4) exit

please select a number :

 

 

program test;

var

num:integer;

begin

writeln(' 1) load');

writeln(' 2) save');

writeln(' 3) edit');

writeln(' 4) exit');

writeln(please select a number : ');

readln(num);

while num4 do

begin

case num of

1:writeln('loading');

2:writeln('saving');

3:writeln('editing');

end;

end;

end.

لینک به دیدگاه

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...