برنامه نویسیPrograming

برنامه نویسی pascal,C++,C

برنامه نویسیPrograming

برنامه نویسی pascal,C++,C

ساخت دو فولدر با نام یکسان در یک محل

ساخت دو فولدر با نام یکسان در یک محل

از: ترفندستان

حتمأ شما نیز میدانید که در داخل محیط ویندوز و در یک محیط خاص مانند دسکتاپ یا پوشه My Documents نمیتوان دو فولدر با نام یکسان ساخت.
چرا که از نظر منطقی و آدرس دهی در داخل ویندوز این کار شدنی نیست.
اما هم اکنون قصد داریم ترفندی ساده را به شما معرفی کنیم که با بهره گیری از آن میتوانید در یک محل دو فولدر با یک نام کاملأ یکسان بسازید!

برای اینکار:
از طریق My Computer به محلی که قصد دارید دو فولدر با نام یکسان را بسازید بروید.
با راست کلیک و انتخاب New > Folder فولدر جدیدی ساخته و نام آن را به عنوان مثال Tarfandestan Iran بگذارید.
همان طور که میبینید در این نام بین دو واژه Tarfandestan و Iran یک فاصله توسط Space زده شده است.
حال مجددأ فولدر جدیدی ساخته و نام آن را این بار به صورت زیر قرار دهید:
واژه Tarfandestan را تایپ کنید سپس کلید Alt را گرفته و عدد 255 را وارد کنید (از کلیدهای سمت راست کیبورد استفاده کنید) ،
خواهید دید که یک فاصله تایپ خواهد شد. حالا واژه Iran را وارد کنید.

خصوصیات دانشجو در فرهنگ‌های مختلف:

خصوصیات دانشجو در فرهنگ‌های مختلف:

ژاپن:به شدت مطالعه می‌کنند و برای تفریح روبات می‌سازند!
مصر: درس می‌خوانند و هراز گاهی بر علیه حسنی مبارک، در و پنجره‌ی دانشگاهش را می شکنند!
هند: پس از چند سال درس خواندن ، عاشق دختر خوشگلی می شوند و هم زمان برادر دوقلویش که  سال‌ها گم شده بود را پیدا می‌کند. سپس ماجراهای عاشقانه و اکشن پیش می آید و سرانجام آن دو با هم عروسی می‌کنند و همه چیز به خوبی و خوشی تمام می‌شود!
عراق:مدام به تیرهاوخمپاره‌های تروریست‌ها جاخالی می دهند و در صورت زنده ماندن درس می خوانند!
چین: درس می خوانند و در اوقات فراغت مشابه یک مارک معروف خارجی را می‌سازد و با یک دهم قیمت جنس اصلی می‌فروشد!
اسرائیل : بیشتر واحدهایی که او پاس کرده، عملی است، او دوره ی کامل آموزش های رزمی و کماندویی را گذرانده ومادرزادی اقتصاددان به دنیا می آید!
گینه بی‌صاحب: او منتظر است تا اولین دانشگاه کشورش افتتاح شود تا به همراه بر و بچ هم قبیله‌ای درس بخواند!
 کوبا: او چه دلش بخواهد یا نخواهد یک کمونیست است و باید باسواد باشد و همینطور برای طول عمر فیدل کاسترو  و جزجگر گرفتن جمیع رؤسای آمریکا دعا کند!
پاکستان: او بشدت درس می‌خواند تا در صورت کسب نمره ممتاز ، به عضویت القاعده یا گروه طالبان در بیاید!
اوگاندا: درس می‌خواند و در اوقات بیکاری بین کلاس ، چند نفر از قبیله ی توتسی را می کشد!
انگلیس: نسل دانشجوی انگلیسی در حال انقراض است و احتمالا تا پایان  دوره‌ی کواتر ناری! منقرض می‌شوند ولی آخرین بازماندگان این موجودات هم درس می‌خوانند!
ایران: عاشق تخم مرغ است! سر کلاس درس عمومی ، چرت می‌زند و سر کلاس درس اختصاصی ، جزوه می‌نویسد! سیاسی نیست ولی سیاسی‌ها را دوست دارد. معمولا لیگ تمام کشورهای الا را دنبال می کند! عاشق عبارت « خسته نباشید » است ، البته نیم ساعت مانده به آخر کلاس! هر روز دو پرس از غذای دانشگاه را می‌خورد و هر روز به غذای دانشگاه بد و بیراه می‌گوید!او سه سوته عاشق می‌شود! اگر با اولی ازدواج کرد ، والا سیکل عاشق‌شدن و فارغ شدن او بارها تکرار می‌شود!  جزء قشر فرهیخه جامعه  محسوب می‌شود ولی دلیل این موضوع مشخص نشده ، که چرا صاحبخانه‌ها جان به عزرائیل می دهند ولی خانه به دانشجوی پسر نمی دهند! او چت می کند! خیابان متر می‌کند و در یک کلام عشق و حال می کند! نسل دانشحوی ایرانی درسخوان ، در حال انقراض است!
 
منبع:http://azhamehrang.blogfa.com

بالا بردن سرعت اینترنت با یک دستور کاملا ساده

بالا بردن سرعت اینترنت با یک دستور کاملا ساده

از: خبرگزاری سلام 

 

در ویندوز XP Pro درحالت پیش فرض Packet Scheduler سیستم را به 20 % از پهنای باند یک اتصال به اینترنت محدود می کند.
یعنی اگر شما این تنظیمات را تغییر ندهید قادرید از 20 درصد پهنای باند اتصالتان به اینترنت بهره ببرید.
برای اینکه بتوانید از 100 درصد پهنای باندتان استفاده کنید و سرعت بالاتری را در اتصال به اینترنت تجربه نمایید، مراحل زیر را انجام دهید :

1.Run را از منوی Start اجرا کنید.
2. در Run عبارت gpedit.msc را تایپ کرده و OK را کلیک کنید.
3. منتظر بمانید تا Group Policy اجرا شود.
4. در بخش Local Computer Policy و زیر Computer Configuration گزینه Administrative Templates را گسترش دهید. ( با کلیک بر روی علامت + کار آن انجام دهید )
5. در لیست باز شده گزینه Network را نیز گسترش دهید.

ادامه مطلب ...

اطلاعیه ی فوری!!!

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

و اگه کسی برنامه ی مار پله رو می خواد e-mail اِشو بذاره تا براش بفرستم.

پردازنده‌های سری AMD Phenom X2 7000 معرفی شدند

 

پردازنده‌های سری AMD Phenom X2 7000 معرفی شدند

شرکت AMD همیشه انتخاب من برای پردازنده‌ها بوده است. حالا AMD پردازنده‌های ۶۵ نانومتری خود را با قیمت ارزان معرفی کرده است. اتلان‌های جدید X2 بر پایهٔ Phenom هستند و جایگزین مدل X2 6000 قدیمی می‌شوند و فرکانسی ۳.۶ گیگاهرترتزی با ۲ مگابایت کش L3 و ۱ مگابایت کش L2 را به ارمغان می‌آوردند. این مدل یک پردازندهٔ ۲ هسته‌ای است که برعکس نسل قبلی خود، به‌جای ۱۲۵ وات، فقط به ۹۵ وات نیاز دارد. با ورود این نوع از پردازنده‌های AMD، شما می‌توانید اتلان X2 7750 را فرکانس ۲.۷ گیگاهرتز و از نوع Black Edition (قابل Over Clock شدن) را فقط با قیمتی زیر ۸۰ دلار بخرید.

شش راه برای موفق شدن در مشاجرات؟؟

شش راه برای موفق شدن در مشاجرات؟؟

******************************

بدون در نظر گرفتن خصوصیات فردیتان – چه یک مرد قدرتمند با عقاید جسورانه باشید، چه یک فرد میانه رو و صلح طلب و یا یک انسان غیر فعال با هیکل ژله ای – حدس بزنید چه اتفاقی برای شما رخ می دهد؟ حتی اگر از سنگ هم ساخته شده باشید، شما به قرار ملاقات دعوت می شوید، به بحث و مشاجره کشیده می شوید و "از دیدگاه فمینیستی" به طور قطع در آن شکست می خورید.

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

تنها استراتژی که می تواند ما را از این خطرات در امان نگه دارد؛ این است که همواره برای مواجهه با یک چنین شرایطی از قبل خود را آماده کنیم. هیچ وقت اتفاق نمی افتد که با جیب خالی و زیرپیراهنی بلند شده و به خیابان بروید؛ پس چرا در یک رابطه چنین کاری را انجام نمی دهید؟

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

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

ادامه مطلب ...

چگونه پیشنهاد ازدواج دهیم

چگونه پیشنهاد ازدواج دهیم و دیگر مسائل روابط زناشوئی

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

 

1- مطمئن گردید که فرد مناسبی را برگزیده اید: واضح است نه! امــا حـقـیقت امر آن است که ازدواج چیزی نیست که بخواهید بـخاطـر انــگیــزه هــای آنــی وارد آن گردید. ممکن است شما دیوانه وار همدیگر را دوست داشته باشید اما اگر هــمسرتان خواهان فرزند باشد اما شما نه، ازدواج شما قطعا زیاد دوام نخواهد آورد و یا آنکه ارزشهای شما با ارزشهای همسرتان متفاوت باشد. اگر در مورد  فردی که میخواهید با وی ازدواج کنید تردید دارید، بهتر است بیشتر درباره آن بیاندیشید.

2- مطمئن شوید هر دوی شما آمادگی دارید: پیـش از آنـکه پیـشنهاد ازدواج دهید درباره آن که در زندگی بدنبال چه اهدافی میباشید، حتــی اهداف 50 سال آینده خود با یکدیگر صحبت کنید. هر چه بیشتر بــا یـکدیگر در مــورد آن چـه بــرای شـما حائز اهمیت میباشد گفتگو کنید بیشتر متوجه آن میگردید که آیا با یکدیگر تفاهم و سازگــاری داریـد یــا خیر. همچنین باید از لحاظ مالی آمادگی داشته باشید. اگر شما قادر نیستــیـد کــه مخارج خود را تامین کنید، بهتر است نامزدی خود را به تعویق بیاندازید.

3- از پدر و مادر وی اجازه بگیریـد: شـما ابـتـدا باید بدانید که آیا اگر پـیش از ازدواج با پدر و مادر وی مشورت کرده و اجازه بخواهید، آنها را خوشنود میسازد یا خیر. ایـن نـکته شـایـد عـجیـب بـــنظر آید اما شما که نمی خـواهید پـدر زن و مادر همسر آیـنـده خود را برنجانید؟ این عمل برای آنکه دلشان را بدست بیاورید بسیار موثر خواهد بود.

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

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

6- مطمئن گردید پاسخ وی مثبت میباشد: هنگامیکه پیشنهاد ازدواج میدهید، بـاید مطمئن باشید که پاسخ وی "بله" خواهد بود. شما میباست از قبـل در مــورد ازدواج بـه انــدازه کافی صحبت کرده و کــامـــلا از آن چه طرف مقابل از یک شریک زندگی بلند مدت انتظار دارد، آگاهی یافته باشید. درست است که میخواهید پیشنهاد ازدواج شــما برای او سورپریز باشد اما نباید بی مقدمه دست به این کار بزنید.

ادامه مطلب ...

تکنولوژی Screen Cooling

 

این روزها کارت‌های گرافیکی بواسطه استفاده از هسته‌های گرافیکی (GPU) قدرتمند از قدرت پردازش فوق‌العاده‌ی برخوردار شده‌اند. در طی دو سال اخیر هسته‌های گرافیکی تولید شده توسط دو شرکت nVidia و ATI کارایی فوق‌العاده بالایی را از خود به نمایش گذاشته‌اند بطوریکه هر یک از آن‌ها برتری چشمگیری را نسبت به نسل قبل خود ارایه کرده اند. این قدرت پردازش فوق‌العاده به دلیل معماری‌های به کار گرفته شده در هسته‌های گرافیکی است. بطورکلی هسته‌های گرافیکی از بخش‌های متعددی تشکیل شده‌ که هر یک از این بخش‌ها نیز دارای تعداد وسیعی ترانزیستور‌ است. امروزه جدیدترین هسته گرافیکی معرفی شده توسط nVidia دارای 681 میلیون ترانزیستور است. بطور قطع این حجم وسیع از ترانزیستور حرارت بالایی را تولید خواهد کرده و بنابراین نیاز به روش‌های خنک سازی مناسبی دارد. ما در این مقاله قصد داریم در مورد یکی از این روش‌های خنک سازی که توسط شرکت گیگابایت ارایه شده صحبت کنیم.


ادامه مطلب ...

سخت افزارهای خود را عیب زدایی کنید

سخت افزارهای خود را عیب زدایی کنید

همواره راه هایی وجود دارد که بدون نیاز به تخصص افراد ماهر میتوان پی به عیب سخت افزارهای مشکل دار خود ببرید. این ترفند اگر چه یک راهنمای جامع برای عیب زدایی از کامپیوترتان نیست اما می تواند شما را به سمت یافتن مشکل کامپیوتر راهنمایی کند. مطمئنأ پیدا کردن عیب کامپیوتر توسط شخص خودتان بسیار شیرین تر از تشخیص آن توسط یک تعمیرکار با تجربه است!
اگر بعد از فشردن دکمه
power
، کامپیوتر روشن نشد
بررسی کنید آیا سیم برق متصل است؟ آیا سر دیگر سیم برق متصل شده است؟ سوییچی که در پشت کامپیوترتان وجود دارد چک کنید. از اتصال صحیح منبع تغذیه به مادربرد اطمینان حاصل کنید. کابل برق فلاپی را چک کنید. اگر هیچ یک از این کارها نتیجه نداد در مرحله بعد هر چیزی را که به مادربرد متصل است به غیر از کابل برق، سیم دکمه
power، کارت گرافیک، حافظه RAM و CPU را جدا کنید. اگر باز هم سیستم بالا نمی آید یک یا دو قطعه از سیستم شما معیوب است. در این مورد به احتمال زیاد مادربرد یا منبع تغذیه Case شما اشکال دارد. 
اگر سیستم روشن می شود ولی بوق نمی زند یا بالا نمی آید

 

 

ادامه مطلب ...

هارد دیسک

 

 هارد دیسک

موضوع: آموزش سخت افزار

با این که دیسک های نرم توانایی ذخیره اطلاعات را دارند، اما دارای معایبی نیز می باشند. از جمله این عیب ها گنجایش و سرعت کم دسترسی به اطلاعات را می توان نام برد. در صورتی که دیسک سخت این گونه نمی باشد. هر رایانه معمولاً یک هارددیسک دارد اما بعضی سیستم ها ممکن است دارای دو یا چند هارددیسک باشند. در واقع هارددیسک یک محیط ذخیره سازی دائم برای داده ها می باشد. اطلاعات در رایانه به گونه ای تبدیل می گردند که بتوان آنها را به طور دائم بر روی هارد ذخیره کرد. هارددیسک در سال 1950 اختراع گردید. در آن زمان هارددیسک ها با قطر 20 اینچ یعنی 50/8 سانتی متر و توانایی ذخیره سازی چندین مگابایت را داشتند. به این دیسک ها دیسک ثابت می گفتند. اما برای تمایز آنها با فلاپی دیسک هارددیسک نام گرفتند.این هارددیسک ها دارای یک صفحه برای نگهداری محیط مغناطیسی می باشند.


 

ادامه مطلب ...

اینترنت- انواع خطاهای مودم

      

  اینترنت- انواع خطاهای مودم  

‏600 . اگر سیستم در حال شماره گیری باشد و دوباره شماره گیری نمایید این خطا نمایش داده می ‏شود . ‏
‏601 . راه انداز ‏Port‏ بی اعتبار می باشد . ‏
‏602 . ‏Port‏ هم اکنون باز می باشد برای بسته شدن آن باید کامپیوتر را مجددا راه اندازی نمود. ‏
‏603 . بافر شماره گیری بیش از حد کوچک است . ‏
‏604 . اطلاعات نادرستی مشخص شده است . ‏
‏605 . نمی تواند اطلاعات ‏Port‏ را تعیین کند . ‏
‏606 . ‏Port‏ شناسایی نمی شود . ‏
‏607 . ثبت وقایع مربوط به مودم بی اعتبار می باشد . ‏
‏608 . راه انداز مودم نصب نشده است . ‏
‏609 . نوع راه انداز مودم شناسایی نشده است . ‏
‏610 . بافر ندارد . ‏
‏611 . اطلاعات مسیر یابی غیر قابل دسترس می باشد . ‏
‏612 . مسیر درست را نمی تواند پیدا نماید . ‏
‏613 . فشرده سازی بی اعتباری انتخاب شده است . ‏
‏614 . سرریزی بافر . ‏


                               ادامه مطلب ...

این زبان سطح پایین است

برای کسانی که از یک زبان سطح بالا مانند pascal یا basic به سراغ سی میایند ممکن است جمله "این زبان سطح پایین است " برایشان چندان با معنی نباشد. حقیقتا زبان سی فقط مقداری از یک اسمبلر بیشتر دارد و البته به همراه تعدادی قابلیت سطح بالا ، در سی مانند اسمبلی همه چیز به عهده خودتان است.



برای کسانی که از یک زبان سطح بالا مانند pascal یا basic به سراغ سی میایند ممکن است جمله "این زبان سطح پایین است " برایشان چندان با معنی نباشد. حقیقتا زبان سی فقط مقداری از یک اسمبلر بیشتر دارد و البته به همراه تعدادی قابلیت سطح بالا ، در سی مانند اسمبلی همه چیز به عهده خودتان است.دلیلی که بخاطر آن سی هنوز وجود دارد سرعت آن است ! سرعت اجرای کد برنامه شما برای C یعنی همه چیز ! البته این بدان معنی نیست که سرعت برنامه نویسی برای شما افزایش میابد درواقع C برای اینکه برنامه شما را با تمام سرعت اجرا کند از تمام قابلیتهایی که به نوعی باعث میشود بتوان به برنامه شما SAFE گفت چشم پوشی کرده است .میتوان زبان C را به ماشین مسابقه ایی تشبیه کرد که کمربند ایمنی ندارد ! با این ماشین میتوان با حد اکثر سرعت حرکت کرد ولی اگر تصادفی رخ دهد... !C زبان برنامه نویسی سیستم است: ویندوز 95 - 96 - NT و UNIX نیز با کمک این زبان طراحی شده اند. اغلب هم دیده ایم که در این سیستم عاملها C اولین زبانی است که پشتیبانی میشود. یکی از مسائلی که شما احتمالا از آن خبر دارید آن است که اسمبلر Portable نیست . حتی آنجا که یک برنامه به زبان پاسکال بهتر عمل میکند برنامه نوشته شده با اسمبلر اجرا نمیشود. اگر بگوییم که C چیزی بیشتر از یک اسمبلر نیست پس باید بگوییم که اصلا Portable هم نیست ، اما این موضوع به شیوه طراحی C بر میگردد. در این مورد زبان C طوری طراحی شده است که به هیچ عنوان مشکلی نخواهد داشت . البته منظور این نیست که برنامه ای که تحت داس با سی نوشته شده است تحت لینوکس هم کار خواهد کرد بلکه بحث در مورد سیستم سخت افزاری و پردازنده است.زبان C دارای یک شهرت ترسناک! به نام "Write Only" است . این بدین معنی است که شما میتوانید کدی بنویسید که قابل خواندن و اجرا شدن نباشد (نه به این معنی که خطای کامپایل یا لینکر داشته باشد).تاریخچه زبان سی:- در سال 1972 توسط برایان کرناین ( Brian Kernighan ) و دنیس ریچی ( Dennis Ritchie ) در AT&T Bell Labs اختراع شد.- در سال 1983 موسسه استاندارد آمریکا شروع به استانهدارد سازی این زبان کرد.- در سال 1989 کار استاندارد سازی زبان سی توسط سازمان جهانی استاندارد ادامه ادامه پیدا کرد.- در سال 1990 کار استاندارد سازی به پایان رسید و امروزه آن را به نام C استاندارد می شناسیم.- هر چیزی قبل از این C را به نام K&R C می شناسیم.سی اولین بار توسط برایان کرناین و دنیس ریچی در شرکت AT&T اختراع شد . موضوع از آنجا شروع شد که سعی کردند یک بازی به نام "asteroids" را بر روی مین فریم های شرکت AT&T اجرا کنند ولی متاسفانه کارایی مین فریم باعث شد که نتوانند آنچه را که میخواهند به اجرا در بیاورند. بعد ها آنها با استفاده از قدرت کامپیوتر های 386 و تقریبا کمک 100 نفر کاربر متوجه شدند که به اندازه کافی کنترل بر روی فضانورد موجود در بازی ندارند. فضانوردها معمولا به محض اینکه از کنار یک سیاره رد میشدند از بین میرفتند!این قضیه تقریبا جنبه شخصی پیدا کرد تا اینکه آنها تصمیم به کد نویسی مجدد بازی بر روی یک سیستم DEC PDP-7 که در شرکت بلا استفاده مانده بود ، گرفتند متاسفانه PDP-7 هیچ سیستم عاملی نداشت بنابر این آنها یک سیستم عامل هم طراحی کردند.پروژه طراحی سیستم عامل آنقدر عظیم شد که عملا باعث فراموشی بازی astroids گردید . بعدها تصمیم بر آن شد که این سیستم عامل را برای یک DEC PDP-11 آماده کنند ولی این کار واقعا کار سخت و مشکلی بود چرا که تمام کد با دست و بدون کمک هرنوع اسمبلری به زبان ماشین نوشته شده بود.مجددا تصمیم گیری شد که سیستم عامل را دوباره با کمک یک زبان سطح بالا کد نویسی کنند بنابراین این برنامه بین ماشین های مختلف قابلیت portablity بیشتری پیدا میکرد. تنها چیز مورد نیاز طراحی یک کامپایلر برای هر ماشین جدید و نهایتا کامپایل مجدد کد در ماشین جدید بود.زبانی که در آن زمان برای این منظور طراحی شد B نام داشت . اما این زبان برای PDP-7 طراحی شده بود و امکانات آن به اندازه ای نبود که بتواند از Instruction Set ماشین PDP-11 استفاده کند در نتیجه زبان C اختراع شد.Instruction Set مجموعه دستوراتی است که توسط واحد پردازش مرکزی سیستم قابل اجرا است به عنوان مثال تعدادی از دستورات موجود در instruction set یک PIC16Fxxx عبارتند از :  


MOVLWADDLWSETB
تقریبا همان دستورات اسمبلی!STANDARDIZATION :C کم کم داشت بسیار مشهور میشد و با رشد سریع برنامه نویسان در اوایل دهه 1980 هزاران نفر به کمک آن مشغول به برنامه نویسی شدند . حالا زمان آن رسیده بود که قواعد این زبان استاندارد شود.ANSI :در آمریکا مسولیت استاندارد سازی زبانها به عهده موسسه استاندارد ایالات آمریکا ( ANSI ) میباشد . نام ANSI در C معرف آن است که این نسخه از زبان C توسط کمیته ای وابسته به ANSI استاندارد سازی شده است . اولین استاندارد ANSI ، X3J11 نام داشت . امروزه استاندارد ANSI برای C ض X3.15901989 میباشد .ISO :در عرصه جهانی سازمان استاندارد جهانی ( ISO ) مسولیت استاندارد سازی زبانهای کامپیوتری را بر عهدا دارد. ISO یک کمیته متخصص JTC1/SC22/WG14 را برای برسی استاندارد X3J11 تشکیل داد. در حال حاظر استاندارد ISO برای C ض ISO 9889:1990 میباشد که بسیار شبیه و هماهنگ با X3.159 است.در بین استاندارد های مختلف تفاوتی در مورد زبان و قواعد آن وجود ندارد و تنها اختلاف در مورد قالب بندی و موارد این چنینی است .در آخر زبان C که امروزه از آن استفاده میکنیم ISO Standard C است که آن را Standard C میشناسند و آن چیزی را که Kernighan و Dennis طراحی کرده بودند K&R C میشناسیم.Standard C در مقابل K&R C :- قابلیت برسی نوع داده اضافه شد.- محاسبات ممیز شناور اضافه شد.- کتابخانه استاندارد برای C طراحی شد.- قابلیت های جدیدی اضافه گردید- امروزه تنها انتخابStandard C است.- بسیاری از کامپایلر های جدید سی از Standard C استفاده میکنند.- از این به بعد در مباحث درسی منظور ما از سی همان سی استاندارد است. زبان C بسیاری از محاسن خود را مدیون مراحل استاندارد سازی است . سی که امروزه از آن استفاده میکنیم با آنچه در گذشته بوده بسیار فرق دارد. در K&R C هیچ مکانیزم و روشی برای برسی نوع داده پارامترهایی که به توابع ارسال میگردد وجود نداشت بنابراین اگر شما به عنوان یک برنامه نویس میخواستید یک تابع خاص از زبان سی را CALL کنید مسئولیت خواندن دقیق راهنما و ارسال صحیح پارامتر ها به عهده خودتان بود و کامپایلر هیچ کمکی در این مورد به شما نمیکرد. البته یک برنامه به نام lint در آن زمان برای انجام این کار طراحی شد.محاسبات ممیز شناور در K&R C بیشتر شبیه به جوک بود تا واقعیت ! در تمام محاسبات از نوع داده double استفاده میشد. با وجود اینکه نوع ساده ای از ممیز شناور به نام float وجود داشت اما چون برای محاسبات اعداد float اول باید آنها را به double تبدیل میکردیم و بعد دوباره به float ، انجام این گونه محاسبات بسیار کند بود.(n9 اگرچه یک کتابخانه همراه زبان K&R C وجود داشت اما هیچ استانداردی در مورد اینکه این کتابخانه سامل چه توابعی است وجود نداشت . در بسیاری موارد ممکن یک تابع خاص نامهای متفاوتی داشته باشد ! یا حتی به روشهای متفاوتی از هم کار میکردند .یک برنامه به زبان سی:در اینجا فقط میخواهیم یک کلیت از نحوه برنامه نویسی در سی را بیان کنیم.  

include /* comment */int main(void){printf("Hellon");printf("Welcome to the Course! n");return 0;}


تعریف شده باشد . در سی استاندارد تعریف متغیر دقیقا بعد از آکولاد باز } امکان پذیر است ولی در ورژن های بعد و خصوصا ویژوال سی این تعریف میتواند در هر کجای برنامه صورت گیرد.- کاراکترهای مورد قبول برای نامگذاری متغیر ها میتواند حرف ، عدد و "_" باشد.- کاراکتر اول در نام یک متغیر نمیتواند عدد باشد.- 31 کاراکتر اول در نام متغیر محلی ( Local ) از طرف کامپایلر سی برای تشخیص نام متغیر استفاده میگردد و مابقی آن نادیده گرفته میشود.- در برخی از نسخه های سی تا 6 کاراکتر اول در نام یک متغیر سرتاسری ( Global ) برای تشخیص آن به کار میرود این مساله در مورد نام توابع نیز وجود دارد.- حروف کوچک و بزرگ در نام گذاری متغیرها و یا توابع آنها را از هم متمایز میکند.تعریف متغیر ها :در زبان سی ، تمامی متغیر ها قبل از استفاده باید بعریف شده باشند.( دلیل این کار قبلا توضیح داده شده است ) البته این هیچ شباهتی با زبان فرترن ندارد زیرا در این زبان هرگاه کامپایلر به نام متغیری برخورد کند که قبلا برخورد نکرده است آن را همانجا تعریف کرده و نوع آن را بر اساس نام متغیر تعیین میکند. در زبان سی شما باید هر متغیری را قبل از استفاده تعریف کنید و نوع آن را مشخ کرده و در صورت نیاز آن را مقدار دهی اولیه کنید.نام گذاری :همانطور که گفته شد کاراکترهای مورد قبول برای نامگذاری متغیر ها میتواند حرف ، عدد و "_" باشد. اولین کاراکتر نام یک متغیر یا تابع میتواند حرف یا خط زیر باشد اگرچه استاندارد سی پیشنهاد میکند که از خط زیر به عنوان کاراکتر اول استفاده نکنید.بنابر این نامهای "temp_in_celsius" یا "index32" نامهای قابل قبول و "32index" یا "temp$celsius" نامهای غیر قابل قبول هستند.طبق توضیح داده شده دقت کنید که در نامگذاری متغیر ها اختلاف نام آنها در 31 کاراکتر اول آنها باشد. حروف بزرگ :حروف بزرگ ممکن است بر طبق تصمیم شما در نام گذاری یک متغیر استفاده شود . معمولا برنامه نویسان برای خود داری از استفاده از "_" در نام متغیر از حروف بزرگ استفاده میکنند بنابر این نام "temp_in_celsius" به صورت "TempInCelsius" در خواهد آمد.امروزه این روش نام گذاری بین برنامه نویسان متداول شده است و استفاده از خط زیر تقریبا به فراموشی سپرده شده است.دستورات printf و scanf - printf مقادیر عددی صحیح را زمانی که از کاراکتر فرمت i% استفاده شود در روی مانیتور چاپ میکند. - scanf مقادیر عددی صحیح را زمانی که از کاراکتر فرمت i% استفاده شود از ورودی ( کاربر - صفحه کلید ) میخواند.- "&" در دستور scanf بسیار مهم می باشد — مفهوم و کاربرد آن جلو تر گفته خواهد شد . — چنانچه فراموش شود برنامه شما شدیدا با اشکال روبرو خواهد شد !!- "&" در دستور printf لازم نیست زیرا مقدار فعلی یک متغیر در این دستور مورد استفاده قرار میگیرد.printf : این دستور عبارات مورد نظر شما را در خروجی چاپ میکند و به عنوان مثال چنانچه به کاراکتر فرمت i% برخورد کند مقدار عددی متغیر متناظر با آن را چاپ میکند. با این مورد از مثال قبل آشنا هستید .scanf : همانطور که گفته شد این دستور از صفحه کلید یک مقدار میخواند. به عنوان مثال زمانی که به کاراکتر فرمت i% برخورد میکند منتظر دریافت یک مقدار عددی از صفحه کلید میماند. & :همانطور که گفتیم عملگر "&" در دستور scanf بسیار مهم می باشد . این عملگر به دستور scanf قابلیت تغییر مقدار ذخیره شده در متغیر مربوطه اش را میدهد.چنانچه فراموش کنید که این عملگر را قبل از نام متغیر قرار دهید سی نمیتواند مقدار موجود در متغیر را تغییر دهد و بد تر از آن اگر این متغیر را مقدار دهی اولیه نکرده باشد در آنصورت هر بار یک مقدار شانسی در آن خواهد بود و طبعا باعث گیج شدن شما خواهد شد.از آنجاییکه دستور printf نیازی به تغییر مقدار ذخیره شده در متغیر را ندارد بنابر این نیازی هم به استفاده از عملگر & قبل از نام متغیر در آن نیست . بنابر این اگر به عنوان مثال تا قبل از اجرای دستور زیر در متغیر j عدد 15 ذخیره شده باشد بازهم همان مقدار ذخیره خواهد بود .
prinf( " %i " , j );


انواع عددی صحیح در سی - زبان سی انواع مختلفی از اعداد صحیح را پشتیبانی میکند. - حداکثر و حداقل مقادیر قابل ذخیره سازی در هر نوع داده ای در فایل "limits.h" تعریف شده اند.نوع داده کاراکتر فرمت تعداد بایت حداقل مقدار حداکثر مقدار
CHAR_MAX CHAR_MIN 1 %c charSCHAR_MAX SCHAR_MIN 1 %c signed charUCHAR_MAX 0 1 %c unsigned charSHRT_MAX SHRT_MIN 2 %hi short (int)USHRT_MAX 0 2 %hu unsigned shortINT_MAX INT_MIN 2 or 4 %i intUINT_MAX 0 2 or 4 %u unsigned intLONG_MAX LONG_MIN 4 %li long (int)ULONG_MAX 0 4 %lu unsigned long



limits.h :این دومین فایل سرباره استانداردی است که تا به حال دیده ایم. این فایل شامل تعریف مقادیر عددی ثابتی است که حداقل و حداکثر اندازه انواع متفاوت عددی صحیح را در خود ذخیره کرده اند. این فایل هم یک فایل متنی است و محتویات آن با هر ادیتوری حتی notepad قابل رویت است . انواع اعداد صحیح :زبان سی انواع عددی در اندازه های مختلف را پشتیبانی میکند. کلمات short و long نشان دهنده میزان حافظه مورد نیاز و تخصیص داده شده برای هر نوع داده است . این به دلیل وسواس سی در میزان استفاده از حافظه است بنابر این به شما به عنوان برنامه نویس امکان میدهد بسته به کاری که میخواهید با متغیر انجام دهید و میزان حافظه ای که احتیاج دارد نوع مناسب را برای آن انتخاب کنید و از تخصیص حافظه ای که بلا استفاده میماند خود داری کنید.مثلا فرض کنید که در برنامه خود میخواهید یک حلقه شمارش ایجاد کنید که از 1 تا 800 شمارش کند در این صورت نیازی به تعریف متغیر مربوطه از نوع long نیست و بهتر است آن را از نوع short تعریف کنید.SHRT_MAX یا LONG_MAX درواقع مقادیر ثابتی هستند که حداکثر مقدار عددی قابل ذخیره در متغیر از نوع short و long را در خود نگه میدارند مثلا برای short حداکثر مقدار 32,767 و برای long حداکثر مقدار 2,147,483,647 قابل ذخیره سازی است . البته اجباری نیست که در ماشینهای متفاوت این مقادیر یکسان باشد و برای رفع این مشکل ، سی راه حل هایی دارد که در آینده گفته خواهد شد.نکته مهم و قابل توجه در اینجا آن است که تعداد بایت نوع داده int برابر 2 یا 4 میتواند باشد بنابراین در حالت کلی نمیتوانیم مشخص کنیم که در یک متغیر عددی صحیح int حداکثر مقدار 32 هزار قرار میگیرد ویا مقدار 2 هزار میلیون ! به همین دلیل برنامه هایی که واقعا میخواهند portable باشند هرگز از نوع عددی int استفاده نمیکنند بلکه از long یا short استفاده میکنند. البته اغلب ماشینها خصوصا PC ها طول 4 بایت را برای نوع عددی int در نظر گرفته اند.unsigned :این کلمه کلیدی باعث میشود تا تمام بیتهای یک متغیر از این نوع عددی ، برای ذخیره سازی عدد استفاده شود و طبعا بیت علامت ( برای اعداد منفی ) نخواهیم داشت . در این نوع داده نمیتوان مقادیر منفی را ذخیره کرد ، فقط اعداد مثبت و عدد صفر !char :در سی هیچ نوع داده ای برای ذخیره رشته های کاراکتری وجود ندارد البته در ++C این مشکل با بوجود آمدن کلاس CString رفع شده است ولی فعلا به آن نمی پردازیم.در نوع داده char تنها میتوان یک کاراکتر ذخیره کرد و برای ذخیره سازی رشته های کاراکتری باید هر کاراکتر را در یک عنصر آرایه ای از نوع char ذخیره کرد.ih% :کاراکتر h در موارد فوق بیانگر half یا نیمه است زیرا معمولا short دارای نصف اندازه نوع داده int است ( از نظر تعداد بایتها در یک ماشین که طول int در آن 4 است ) انواع عددی حقیقی در سی - مانند اعداد صحیح ، اعداد حقیقی هم انواع مختلفی دارند. - مقادیر حداکثر و حداقل در فایل float.h تعریف شده اند.مثل قبل :نوع داده کاراکتر فرمت تعداد بایت حداقل مقدار حداکثر مقدار
FLT_MAX FLT_MIN 4 %g %e %f floatDBL_MAX DBL_MIN 8 %lg %le %lf doaubleLDBL_MAX LDBL_MIN 10 %Lg %Le %Lf long double
float.h این سومین فایل سرباره استاندارد سی است که تا به حال دیده ایم . این فایل علاوه بر مقادیر ثابت کمینه و بیشینه اعداد ممیز شناور محتوی چیزهای با ارزش دیگری هم است ازجمله میزان دقت و خطای هر یک از سه نوع مذکور.float این نوع داده کوچکترین نوع عددی از انواع عددی حقیقی در سی است . محاسبات به کمک این نوع سریع تر است ولی از دقت کمتری برخوردار است همچنین برای اعداد اعشاری تا 6 رقم اعشار مناسب میباشد. در حالت کلی بزرگترین و کوچکترین عدد قابل ذخیره توسط این نوع عددی به ترتیب 10 به توان مثبت 38 و 10 به توان منفی 38 است.doubleاین نوع عددی درواقع نوع میانه در بین سه نوع اشاره شده است محاسبات کند تر از نوع قبل ولی قابل اطمینان تر است . میتوان تا 12 رقم اعشار به کمک این نوع عددی دقت داشت . چون فضای بیشتری برای ذخیره سازی اعداد دارد طبعا اعداد بزرگتری هم میتواند ذخیره کند ( 10 به توان مثبت 308 یا حتی مثبت 1000 )long doubleاین نوع عددی بزرگترین نوع عددی است که سی میتواند آن را هندل کند و البته کند ترین و مطمئن ترین !! به کمک این نوع میتوان اعداد را تا 18 رقم اعشار محاسبه کرد بدون اینکه به هیچ حقه و روش ریاضی خاصی برای شبیه سازی این عدد بزرگ نیاز باشد. برخی از پیاده سازی های سی امکان ذخیره سازی اعداد به بزرگی 10 به توان مثبت 4000 را میدهند.Constants- ثابتها در سی برای خودشان نوع داده دارند.- اعدادی که در آنها کاراکترهای "." یا "e" به کار رفته باشند به عنوان عدد double در نظر گرفته میشوند.- اگر میخواهید صراحتا بگویید که عددتان float است باید در انتهای آن یک کاراکتر F قرار دهید مانند : 3.5F یا 1e-7F- برای اعداد long double یک L قرارداده میشود.- هر عددی که حداقل شامل یکی از کاراکترهای "." یا "e" یا "F" نباشد int در نظر گرفته خواهد شد.- اگر یک عدد int در نظر گرفته شود و بزرگی عدد چنان باشد که از محدوده int خارج گردد بعضی از کامپایلرها بصورت اتوماتیک آن را long int در نظر میگیرند.- اگر میخواهید که صراحتا بگویید که عددتان یک long int است در انتهای عدد یک L قرار دهید مانند 9000000Lثابتهاوقتی که یک متغیر تعریف میگردد قطعا یک نوع هم برای آن در نظر گرفته میشود. این نوع باعث میگردد که کامپایلر بداند که این متغیر چه فضایی از حافظه اشغال میکند و ضمنا چگونه باید با آن برخورد کند. به طور مشابه وقتی که یک "ثابت" تعریف میگردد کامپایلر برای آن یک نوع داده در نظر میگیرد فقط یک تفاوت داریم و آنهم اینکه در مورد متغیر ها برنامه نویس صراحتا نوع داده ای متغیر را تعیین میکند حال اینکه در مورد ثابتها همیشه اینطور نیست. قوانین تعیین نوع داده برای "ثابتها" در بالا گفته شده است . میبینید که تنها نبود "." به کامپایلر میگوید که عدد از نوع int است . اما کافی است شما اینگونه بنویسید ".120" تا کامپایلر آن را بصورت "120.0" دیده و double برایش درنظر بگیرد.عملگر ها در زبان سی در زبان سی مجموعه عملگر های زیر را داریم :- عملگرهای حسابی- عملگرهای casting ( که از هولمون جلو جلو در موردش صحبت کردیم. )- عملگرهای افزایش و کاهش یک واحد- عملگرهای دستکاری بیتها ( Bitwise )- عملگرهای مقایسه ای- عملگرهای مقداردهی- عملگر sizeof- عملگرهای شرطی

  1. includeاین یک دستور پیش پردازنده است . به کمک این دستور محتویات یک فایل خاص به برنامه شما اضافه میشود بنابراین شما میتوانید از توابع و ... موجود در آن استفاده کنید. stdio مخفف نام Standard Input and Output میباشد و همانطور که از نامش پیداست حاوی توابع مربوط به ورودی و خروجی میباشد.پسوند h. نشان دهنده آن است که این فایل یک فایل سر باره ( Header ) است نه یک فایل سورس ( فایلهای سورس دارای پسوند c. هستند. ) در این باره بیشتر توضیح داده خواهد شد.Commentsتوضیحات در برنامه بین */ و /* قرار میگیرند و هر تعداد خط که بین این دو قرار گیرند از نظر کامپایلر مفهوم نخواهند داشت . نکته : اگر توضیحات شما یک خطی است به کمک // میتوانید توضیحات خود را در برنامه اضافه کنید :
printf("Hello"); // comment


mainمهمترین تابع در سی main میباشد. این تابع نقطه ای که اجرای برنامه شما از آنجا شروع میشود را مشخص میکند . در واقع اگر شما این تابع را در برنامه تان ننویسید برنامه شما اصلا اجرا نمیشود ( شروع برنامه شما کجاست ؟! ) و صد البته برنامه شما کامپایل هم نخواهد شد.آکولاد Brace در زبان سی از اکولاد باز "}" به معنی شروع "Begin" و آکولاد بسته "{" به معنی "End" میباشد . این روش نسبت به پاسکال هم ساده تر است و هم در آینده خواهند کد برنامه را سهل تر میکند.nترتیب دو کاراکتر و n در سی ایجاد یک کد میکند ( این کد ها در مباحث بعدی مطرح شده اند ) کد n به معنی "برو به ابتدای خط بعد" است . returnاین دستور در این مثال باعث میگردد که مقدار 0 به سیستم عامل برگردانده شود و اجرای برنامه پایان یابد . اینکه سیستم عامل چگونه از این اطلاعات استفاده خواهد کرد به خودش مربوط میگردد.!به عنوان مثال MS-DOS این مقدار را در متغیر ERRORLEVEL و UNIX آن را در یک متغیر موقت ?$ ذخیره میکند. تا به حال عرف بر آن بوده است که 0 به معنی عدم رخداد خطا تلقی میگردد و هر مقداری مانند 1و2و3و... نشاندهنده یک کد خطا میباشد. تمام سیستم عاملها مقادیر به بزرگی 255 را پشتیبانی میکنند و بعضی دیگر تا 65535 ! البته اگر Portable بودن برنامه تان برایتان مهم است بهتر است از مقادیر بین 0 تا 255 استفاده کنید.قالب زبان سی:- هر دستور با یک سمیکالن (‌;‌ ) ختم میشود.- فضاهای خالی که قبل یا بین دستورها قرار میگیرد از طرف کامپایلر نادیده گرفته میشود.- زبان سی به بزرگی و کوچکی حروف تایپ شده حساس است (Case sensitive) تمامی کلمات کلیدی (Keyword) و توابع کتابخانه ای استاندارد در سی حرف کوچک هستند.- عبارات رشته ای (Strings) در بین دو علامت نقل قول - کوتیشن - ("......") قرار میگیرند.- مفهوم خط بعد توسط n به کامپایلر سی فهمانده میگردد. ( مثلا در دستور printf )- رفتار شانسیسمیکالن :سمیکالنها در سی بسیار مهم هستند. آنها دستورات را از هم متمایز میکنند و به کامپایلر سی میفهمانند که چه زمان یک دستور به پایان رسیده و دستور بعدی شروع شده است. اگر شما فراموش کنید که در انتهای یک دستور علامت سمیکالن را قرار دهید کامپایلر از برنامه شما خطا میگیرد.قالب آزاد:زبان سی یک زبان آزاد در قالب بندی است یعنی شما میتوانید که کل برنامه تان را در یک خط بنویسید فقط کافی است که انتهای هر دستور یک سمیکالن بگذارید و این دلیل اجباری بودن سمیکالن است . همچنین همانطور که گفتیم هرگونه tab یا فضای خالی بین دستورات نادیده گرفته میشود و فقط برای فرم دادن برنامه است.نکته : بهتر است شما هم از الگویی که برای برنامه نویسی در این مباحث استفاده شده استفاده کنید تا برنامه تان در آینده خوانا تر باشد .بزرگی و کوچکی حروف :زبان سی یک زبان حساس به بزرگی و کوچکی حروف است یعنی int با Int یا INT یا ... فرق دارد . به عنوان مثال شما میتوانید یک متغیر به نام InT از نوع int داشته باشید. تمامی کلمات کلیدی و توابع کتابخانه ای استاندارد در سی حرف کوچک هستند. انواع داده ای در ادامه بحث خواهند شد.رفتار شانسی :اگر به هر دلیلی دستور return در تابع main قرار نگیرد رفتار برنامه در زمان بازگشت به سیستم عامل مشخص نمیباشد یعنی هر بار یک مقدار شانسی به سیستم عامل تحویل داده میشود که این مقدار میتواند 0 به معنای خروج موفق و بدون خطا یا هر مقدار عددی دیگر به عنوان رخداد خطا باشد.متغیر ها :- هر متغیری قبل از استفاده باید