برچسبها:
با سلام خدمت عزیزان سورس نرم افزار نوت پد به زبان سی شارپ رو نوشتم و با قیمت بسیار کمی برای شما به اشتراک میگذارم.امیدوارم در آینده ای بسیار نزدیک سورس های حرفه ای تری همچون نرم افزار حسابداری و پلیرموزیک و فیلم و مرورگر و......برای شما بزارم.
برچسبها:
???سی شارپ چیست؟؟؟
سی شارپ ( C#)، زبانی شیءگرا و سطح بالا از خانوادهٔ زبانهای چارچوب داتنت شرکت مایکروسافت است.
زبان سی شارپ، زبان برنامهنویسی چند الگویی است و منظم شده مدلهای تابعی، امری، عمومی، شیءگرا و جز گرا و در بستر دات نت میباشد. این زبان توسط مایکروسافت و جزئی از دات نت به وجود آمد و بعداً استانداردهای ECMA و ISO را نیز در بر گرفت. سی شارپ یکی از ۴۴ زبان برنامهنویسی میباشد که توسط زمان اجرای زبان مشترک از چارچوب داتنت پشتیبانی میشوند و در همه جا به وسیله مایکروسافت ویژوال استودیو شناخته میشود.
زبان سی شارپ با قدرت و در عین حال سطح بالایی خود توانسته توجه بسیاری از برنامه نویسان را به خود جلب کند.
این زبان برپایه سادگی، مدرن بودن، همه منظوره و شیءگرا بودن ساخته شد. آندرس هجلزبرگ، طراح زبان برنامهنویسی دلفی، سرپرستی تیم طراحان زبان سی شارپ را بر عهده داشت. این زبان دارای دستوری شیءگرا مشابه ++C است و به شدت از زبانهای جاوا و دلفی نیازمندمدرک تأثیر پذیرفتهاست. در ابتدا نام این زبان COOL بود که مخفف C like Object Oriented Language بود، هر چند در ژوئیه ۲۰۰۰، زمانی که مایکروسافت پروژه را عمومی اعلام کرد، اسم آن به سی شارپ تغییر پیدا کرد.
برچسبها:
با سلام خدمت کاربران عزیز وبلاگ prpcبه اطلاع می رسانم تمامی پروژه های برنامه نویسی نرم افزار شما پذیرفته میشود
جهت سفارش با شماره 09397911504 تماس حاصل و یا از طریق ایمیل prpcweb@gmail.com با ما در تماس باشید
***با آرزوی موفقیت برای تک تک شما کاربران عزیز***
برچسبها:
با سلام خدمت عزیزان.به یکی از حرفه ای ترین وبلاگ ها در زمینه برنامه نویسی سی شارپ خوش آمدید.ان شالله بتوانیم درآینده ای نزدیک پروژه های برنامه نویسی بسیار جالب و بیشتری را برای شما به اشتراک بگذاریم
برچسبها:
موضوع آخری که در یادگیری هر زبانی باید دانست عملگرهای مقایسه ای هستند. باید بدانیم در آن زبان چه عملگرهای مقایسه ای وجود دارد؟ چرا که این عملگرها در عبارات کنترلی بکار می روند و اگر آنها را ندانیم نمی توانیم شرط ها را بنویسیم. عملگرهای مقایسه ای در حالت پایه اینها هستند.
با این موضوع معنی صحبت اول بخش دوم رو می فهمید که گفتم :
«اصل الفبا، يك مطلب است اما نوع دستور ، اسم دستور ، نحوه به كارگيري دستور و ... هر برنامه با يكديگر متفاوت است .»
مثلا علامت <> در زبان QBASIC به معنای مخالف بودن است .
علامت =! در زبان JAVA هم به معنای مخالف بودن است.
هر دو یک مفهوم را می رسانند یعنی اصل الفبا یکی است فقط شکل دستور فرق می کند.
به همین دلیل وقتی شما مفاهیم و کاربرد مفاهیم را یاد بگیرید در هر زبانی به سادگی می توانید کد بنویسید.
مثلا در الگوریتم ، شرطی دارید که شرط می گوید اگر مخالف مقداری بود عملیات 1 انجام شود.
در کد نویسی فقط به دنبال علامت مخالف بودن می گردید و درگیر مسائل دیگر نمی شوید.
اين عملگر ها براي مقايسه ي مقادير عددي و رشته اي به كار مي روند و در واقع آمده اند تا نشان دهند عبارت ارزش درستی دارد یا نه ؟
مثلا :
Pass$ <> Password$
این عبارت کدی است از زبان QBASIC و با توجه به جدول بدین معنی است که متغیر رشته ای Pass با متغیر رشته ای Password مخالف است یا نه ؟ در واقع شرطی است که مخالف بودن را بررسی می کند.
- عملگر منطقی
دسته ي ديگر از عملگر هايمان ، عملگر هاي منطقي است در هر زباني اين عملگر ها يك اسمي دارند ولي همانطور که گفتم دانستن مفهوم مهم است.
ما در QBASIC عملگر هاي منطقي And, or , not را داريم كه همين مفهوم در زبان هاي ديگر هم هست .
عملگر AND , OR : ترکیب عبارات منطقی است.
عملگر NOT: برای معکوس کردن ارزش یک عبارت منطقی به کار می رود.
اين عبارات در عبارات كنترلي بيشتر ديده مي شود . و شيوه اي كه به شما كمك مي كند تا براحتي بتوانيد از اين عملگر ها استفاده كنيد این است که :
1.معادل شرط
هر بار كه به شرطي برخوردید و از اين عملگر ها در آن استفاده شده بود ، اگر شرط درست بود به جای آن شرط ، 1 بگذارید و اگر نادرست بود صفر بگذارید.
2.معادل عملگر
AND را مساوی با «ضرب یا و » بدانید.
OR را مساوی با «جمع یا یا» بدانید.
NOT رو هم قرینه کننده بدانید.
3.ریاضیات عملگرهای منطقی
این ریاضیات مثل همان ریاضی خودمان هست به جز 1+1.
با استفاده از 2 نکته ی بالا شرط ها به عبارات زیر تبدیل میشود که جواب هر کدام به قرار زیر است :
1*1=1 1*0=0 0*1=0
1+1=؟ 1+0=1 0+1=1
خب حاصل 1+1 چند میشود؟ همانطور که گفتم مثل ریاضیات خودمان عمل می کنیم . 1+1 می شود 2. اما در برنامه نویسی 2 نداریم پس خانه ی پر یعنی 1 را در نظر می گیریم. پس 1+1 در برنامه نویسی میشود 1.
مثال :
Name$="maryam"
If (name$ =="maryam" or name$=="mona") then A
Else
B
حاصل پرانتز را حساب می کنیم . جواب میشود 1 .
1 هم یعنی درست بودن. پس شرط درست است و برقرار. در نتیجه خط اول اجرا میشود و A جواب نهایی خواهد بود.
برچسبها:
در هر مساله ای حداقل با يك عبارت كنترلي روبرو مي شويد پس تسلط در اين قسمت بسیار اهمیت دارد.
1.عبارات شرطي
حالت اول شرط
و كد آن در زبان QBASIC مي شود :
براي شرط ها در هر زبان برنامه نویسی مي گوييم :
اگر شرط درست بود پس : اين سري كارها
انجام شوند و تمام .
نکته 1 : در هر زباني يادتان باشد If با تمام متعلقاتش جدا شود و بعد از تمام شدن حتماً پايان زده شود.
نکته 2 : هميشه در قسمت عبارات كنترلي سعي كنيد بعد از كد دستور ، عمليات را با يك Tab زدن شروع كنيد تا حالت تورفتگي ايجاد شود برای اینکه خوانايي برنامه بيشتر شود.
و كد آن مي شود :
و كد برنامه آن مي شود :
Else
كارهايي كه در صورت نادرست بودن تمام شرط هاي
بالا بايد صورت بگيرند .
End if .
نكته ی خیلی مهم :
پس نتيجه اينكه : IF در واقع تلاش و گذر براي رسيدن به حالت درست است .
توجه داشته باشيد كه براي قسمت Else نياز به شرط نمي باشد و در صورتي كه شروط قبل نادرست باشند اين قسمت اجرا مي شود.
2.تکرار یا حلقه
حلقه ها براي تكرار يك يا چند عبارت به كار مي روند.
1/for … next
مقدار تغيير شمارنده step مقدار نهايي to مقدار اوليه = متغير شمارنده for
عباراتي كه بايد تكرار شوند
متغير شمارنده next
این کد و الگوریتم منظورشان این است که : آنقدر شرط تکرار شود که شمارنده به حد نهایی خود برسد.
2/Do… Loop
شکل کد آن :
شرط DO WHILE
عباراتی که باید تکرار شود
LOOP
شکل فلوچارت آن :
این کدها و الگوریتم منظورشان این است که : تا وقتی که شرط درست است تکرار شو.
کاملا واضح است که این دو نوع حلقه تفاوتشان در بررسی شرط است. وقتی در الگوریتم بررسی شرط اهمیت داشت از نوع 2 حلقه استفاده می کنیم و اگر در الگوریتم بررسی شرط مطرح نبود از نوع 1 حلقه استفاده می کنیم.
این موضوعات را در حل مساله بهتر می فهمید. درک عمیق این مطالب بماند برای جلسات حل مساله.
برچسبها:
2. نحوه ي ورود و ارسال داده و اطلاعات
ارسال اطلاعات : منظور اين است كه آن زبان با چه دستوري اطلاعات را در محيط اجرا نمايش مي دهد ؟
3. قرار دادن مقادير در متغير ها
4. عبارات كنترلي
مرحله ی بعد دانستن راجع به عبارات کنترلی است . که در جلسه ی بعد اختصاصا به این موضوع می پردازیم.
5. محاسبات رياضي
1. پرانتز ()
سوالات مطرح در این مبحث :
3. چرا باید الویت عملگرها را بدانیم ؟ موقع انجام محاسبات ، برای داشتن مقدار مورد نظر، بايد بدانیم برنامه چگونه برای محاسبه ، مساله را می خواند.
4. منظور از تقسيم ، تقسيم صحيح ، باقي مانده چیست ؟
باقي مانده Mod: باقیمانده را به ما میدهد. یعنی 3mod2 ميشود 1 = خروجی این عملگر در این مساله 1 است.
3*2=6
2^6 =36
2-36=34
در برنامه نویسی باید همان راه اصلي "اولويت بندي " را بكار ببريم .چرا که برنامه به این روش مساله را حل می کند.
بين اين دو عملگر {* و - }، {* و دو عدد طرفين آن } اولويت دارد حالا شد 3-12=9
موضوع آخری که در یادگیری هر زبانی باید دانست عملگرهای مقایسه ای هستند. باید بدانیم در آن زبان چه عملگرهای مقایسه ای وجود دارد؟ چرا که این عملگرها در عبارات کنترلی بکار می روند و اگر آنها را ندانیم نمی توانیم شرط ها را بنویسیم. عملگرهای مقایسه ای در حالت پایه اینها هستند.
با این موضوع معنی صحبت اول بخش دوم رو می فهمید که گفتم :
«اصل الفبا، يك مطلب است اما نوع دستور ، اسم دستور ، نحوه به كارگيري دستور و ... هر برنامه با يكديگر متفاوت است .»
مثلا علامت <> در زبان QBASIC به معنای مخالف بودن است .
علامت =! در زبان JAVA هم به معنای مخالف بودن است.
هر دو یک مفهوم را می رسانند یعنی اصل الفبا یکی است فقط شکل دستور فرق می کند.
به همین دلیل وقتی شما مفاهیم و کاربرد مفاهیم را یاد بگیرید در هر زبانی به سادگی می توانید کد بنویسید.
مثلا در الگوریتم ، شرطی دارید که شرط می گوید اگر مخالف مقداری بود عملیات 1 انجام شود.
در کد نویسی فقط به دنبال علامت مخالف بودن می گردید و درگیر مسائل دیگر نمی شوید.
موضوع عملگرها بسیار دقیق و کاربردی هستند به همین دلیل در یک جلسه به طور کامل به آنها می پردازیم.
خب الفبای برنامه نویسی همین 6 موضوع می باشد. برای یادگیری هر زبانی ابتدا به سراغ این 6 موضوع می رویم تا بتوانیم با آن زبان به سادگی برنامه بنویسیم. یادگیری موضوعات دیگر وقتی ضرورت دارد که در حین برنامه نویسی به آن ها نیاز پیدا کرده ایم در غیر اینصورت لزومی ندارد در ابتدا آنها را یاد بگیریم.
در اینجا بحث جلسه ی 4 به پایان می رسد، در جلسه ی بعد به موضوع عبارات کنترلی- که مهم ترین بخش هر زبان برنامه نویسی است – می پردازیم.
موفق باشید.
برچسبها:
هدف كلي
الفباي برنامه نويسي
پس از پايان مطالعه اين بخش از فراگير انتظار مي رود كه :
از نگرشی دیگر در این بخش یاد میگیریم برای یادگیری هر زبان برنامه نویسی ، اول چه مباحثی را یاد بگیریم؟
خوب وارد درس شويم .
1. نوع داده
اولین مبحثی که در هر کتاب آموزشی به سراغ یادگیری اش می روید این است که بدانید چه نوع داده هایی در آن زبان وجود دارد ؟
پـــس : 10 و 20 داده هاي ما هستند .
مثال 2. در سؤال "مرتب شده اسامي زير به طريق صعودي كدام است؟ ( علي حسين رضا محمد ) "داده كدام است؟
كليه اسامي كه سؤال مطرح كرده است و به ما مي دهد تا رويشان پردازش كنيم براي ما داده محسوب مي شوند .
داده متغير به كد برنامه بر مي گردد و از نكته در مي يابيم كه : هر داده اي كه ممكن است در طول برنامه بخواهيم مقدار آن را تغيير دهيم ، براي آن مقادير، محلي از حافظه را اشغال و براي آن نامي انتخاب مي كنيم ، كه هر وقت بخواهيم بتوانيم با نامِ آن، به محتويات آن دسترسي داشته باشيم و يا محتويات را تغيير دهيم .
اما داده متغير هم 2 نوع دارد :
این بخش را با یک سوال به خاتمه می رسانم که مشخص می کند چقدر مفاهیم بالا را یاد گرفته اید .
"ما داده های مختلفی داريم : چون ممكن است يكبار سؤال طوري باشد كه داده از طريق برنامه به محيط اجرا ، وارد شود و يكبار ممكن است داده از طريق كاربر به برنامه و محيط اجر وارد شود ."
موفق باشید.
برچسبها:
خب در جلسه ی پیش یاد گرفتیم که هر مساله ای را چگونه حل کنیم و چگونه راه حل مساله را به روش فلوچارت بیان کنیم؟
حال در این جلسه مطالب تکمیلی آنرا با هم ادامه می دهیم.
استفاده از Trace
نکته ای که باید حین الگوریتم نویسی بدان توجه داشته باشیم این است که :
بهتر است همزمان با نوشتن الگوريتم آنرا Trace كنيم تا در جريان الگوريتم باشيم و اگر الگوريتم ما مشكلي داشت
قبل از اجرا با كامپيوتر آنرا رفع كنيم و همچنين با Trace مي توان مراحل بعدي الگوريتم را حدس زد و در صورت درستي به حل مساله اضافه کرد.
اما Trace چیست ؟ Traceيعني آزمودن دستي همراه با داده ی نمونه
برای Trace برنامه جدولی میکشیم ، متغیرها و خروجی یا خروجی های برنامه را در سطر اول می چینیم ، و در سطر های بعدی مقادیر آنها را می گذاریم.
مرحله به مرحله جلو میرویم و همینطور مقادیر آنها را با توجه به روند برنامه میگذاریم. تا اینکه به خروجی برسیم .
خروجی بدست آمده را با خروجی مورد انتظار خود مقایسه می کنیم. اگر درست بود که یعنی ، الگوریتم درست است و اگر نبود الگوریتم را اصلاح میکنیم تا به جواب برسیم.
مثال قبل را با هم Trace می کنیم ببینیم که آیا خروجی مدنظر ما را می دهد یا نه.
دقیقا طبق هر باکس فلوچارت مرحله مرحله جلو می رویم تا مقادیر را داشته باشیم و نتیجه میشود شکل زیر :
سوالهایی که در اینجا مطرح است ، این است که :
چرا در فلوچارت متغیرهای A,B را نداشتیم و در اینجا داریم ؟
و چرا مقدار c در مرحله ی اول صفر است ؟
اینها به نکات متغیرها باز می گردد که در جلسه ای جداگانه به آنها می پردازیم. در اینجا فقط روش Trace را یاد بگیرید.
چگونگي نوشتن يك پروژه به زبان خاص
مراحل 5 گانه حل پروژه
1.حل مساله (همان مراحل 5 گانه حل مساله) (روی کاغذ) – بدست آمدن الگوریتم یا راه حل مساله
2.تبدیل الگوریتم به کد زبان مورد نظر (روی کاغذ) – بدست آمدن کد برنامه
وقتی بخش دوم را یاد گرفتیم به سادگی می توانیم هر الگوریتمی را به هر زبانی که می خواهیم تبدیل کنیم.
3.انتقال کد به کامپیوتر
-نامي متناسب با برنامه در نظر گرفته و ذخيره اوليه را انجام مي دهيم .
-در موقع افزودن كد بعد از هر چند خط عمليات ذخيره سازي را بروز مي كنيم كه به آن مي گوييم : ذخيره سازي مكرر
- و بعد از اتمام كار و رفع اشكالات و ... ذخيره سازي نهايي را انجام مي دهيم .
4. آزمايش برنامه و رفع اشكال
بعد از اينكه برنامه ي كد شده وارد كامپيوتر شد ، زمان آن مي رسد كه برنامه را مورد آزمايش قرار دهيم ( از طريق كامپيوتر (وقتی برنامه را اجرا می کنیم ، قبل اجرا برنامه کامپایل می شود تا خطاهای آن را نشان دهد جهت اشکال زدایی.
هدف از آزمايش برنامه اشكال زدايي است .
5. تعميم و نگه داری
درصد زيادي از هزينه هاي خرج شده براي يك برنامه كاربردي مربوط به نگه داري و ارتقاي آن است .
هدف از نگه داري : تصحيح و توسعه ، ارتقاء و بهبود برنامه بعد از نصب آن است .
نکات مهم :
نکات مرحله 1 و 2 :
دلیل اینکه گفته میشود مراحل 1 و 2 را روی کاغذ بنویسیم این است که : حتما حین الگوریتم نویسی و کد نویسی Trace کنیم تا منطق برنامه درست باشد بعد از اینکه اطمینان پیدا کردیم منطق برنامه درست است ، کد را منتقل به کامپیوتر کنیم.
چرا که در مراحل آخر که برنامه یا کامپایلر برنامه را اشکال یابی می کند خیلی سخت است که اشکال زدایی کنیم و بهتر است اشکالاتی که در آن مرحله پیش می آید در حد اشکالات تایپی باشد. برای بروز مشکلات منطقی برنامه بهتر است این توصیه را بکار بریم.
حالا سوال اینجاست که چرا هم در مرحله ی الگوریتم نویسی و هم در مرحله ی کد نویسی Trace کنیم ؟
چون ممکن است در الگوریتم نویسی برنامه جواب دهد ولی در کد نویسی نه! ممکن است تبدیل الگوریتم به کد را به درستی انجام نداده باشیم و جواب نهایی دچار اشکال شود. پس بهتر است در این مرحله هم Trace کنیم.
نکات مرحله 4 :
لازم به ذکر است که
معمولا اشتباهاتی که حین برنامه نویسی در مرحله 4 رخ می دهد 2 دسته اند :
1. دستوري (Syntax Errors ) : يعني عدم رعايت قواعد زبان برنامه نويسي يا همان اشكال در کدنویسی.
مثلا به جاي نوشتن if مي نويسيم iff كه مطمئنا برنامه اين اشتباه را به ما گوشزد مي كند .که مشکلی نداره راحت برطرف می کنیم.
2. منطقي (Semantic Errors ) : يعني قواعد زبان رعايت شده اما منطق درست نيست . كه يافتن اين مشكلات بسيار سخت و اصولي است که برای بروز چنین مشکلاتی گفته شد Trace کنیم.
مثلا در فارسي ، جمله اي مثل " من ديروز به زمين خوردند . " از هر لحاظ درست است فاعل ، فعل و ... سر جاشونن اما با دقت متوجه مي شويم كه صرف فعل مشكل دارد و اين نشان از بد فهمي مطلب دارد و نياز به يادگيري دوباره دارد ، در برنامه نويسي هم همين طور است.
مثلا برنامه نويس نمي داند كه تقسيم بر صفر در برنامه خطاست و براي جلوگيري از بروز آن شرطي نمي گذارد و مرتب با خطا روبرو مي شود ، که با دانستن این موضوع آن شرط را اضافه می کند.
نکات مرحله 5 :
مرحله ی نگهداری مرحله ی بسیار مهمی است چرا که :
اگر نیازهای جدیدی برای کاربرانی که از برنامه استفاده می کنند پیش آید برنامه نویس باید بتواند برنامه را ارتقا دهد. لازمه ی ارتقای آن این است که قبلا خیلی خوب برنامه را مستندسازی کرده باشد و توضیحات لازم را کنار کدها نوشته باشد تا به خاطر بیاورد برنامه چطور نوشته شده تا بتواند تغییرات لازمه را انجام دهد به جای اینکه بخواهد برای نیازهای جدید برنامه ای جدید بنویسد که این کار مستلزم هزینه و وقتی اضافی است.
نکته ی مهم دیگری که باید به آن اشاره کنم این است که :
هیچ وقت نمیتوان گفت برنامه 100% بی خطاست . چرا که بعضی اشکالات در زمان کاربری نمود پیدا می کنند و آن وقت باید اقدام به اشکال زدایی کنیم.
مثل ورژن های مختلف ویندوز . آنقدر برنامه بزرگ هست که هر چقدرم اشکال زدایی کنیم حتی اشکال زدایی گروهی ، الگوریتم های مختلف خطایابی ، باز برنامه ممکن است اشکال داشته باشد که در سطح کاربری اشکالات پیدا می شود و آن اشکالات را برطرف می کنیم و ورژن بعدی را معرفی می کنیم. این هم دلیل دیگری برای اهمیت مرحله ی نگهداری.
پس بهتر است حتما در حین برنامه نویسی مستندسازی داشته باشیم یعنی برنامه چطور نوشته شده ، متغیرها کدام ها هستند ، بر روی چه سیستمی کار می کند و ... در کنار کدها هم توضیحات لازم را بنویسیم تا بتوانیم به خوبی این مرحله را هم بگذرانیم.
خب بخش اول به پایان رسید. ان شاءالله در جلسه ی آینده الفبای برنامه نویسی را با هم یاد می گیریم.
موفق باشید.
برچسبها: