تبليغاتX
هرچی بخوای می تونی پیداکنی
وبــــــلاگ آمـــــــوزشـــــي
 راه اندازی یک وب سایت شخصی مجانی !
مدیریت و اداره یک وبلاگ ساده تر و به طور کل محبوبیت بسیاری دارد اما محدودیت 200 کیلو بایتی برای مطالب و تصاویر ذخیره شده ممکن است برای عده ای مشکل ساز باشد . در حالی که یک وب سایت مجانی شخصی امکانات بیشتری را در اختیار شما قرار می دهد .ما در این جا قصد داریم نحوه ایجاد یک وب سایت شخصی را در YAHOO را به صورت گام به گام آموزس دهیم که امیدواریم مورد توجه شما قرار گیرد .
شروع کار :
1) به سایت YAHOO وارد شوید و در قسمت بالای صفحه گزینه Geocities را بیابید و بر روی آن کلیک کنید تا به صفحه بعد بروید.
2) در صفحه باز شده UserName و Password خود را وارد کنید و کلید SIGN In را فشار دهید این عمل در حقیقت بدان معنا است که شما از قبل در سایت yahoo ثبت نام کرده و دارای صندوق پستی هستید .
3) در صفحه بعد بر روی گزینه YAHOO PAGE WIZARD کلیک کنید .
4) در این صفحه شما می توانید از انواع الگو های از پیش ساخته جهت ساخت صفحات خود استفاده کنید پس می توانید بر روی یکی از آنها کلیک کنید و به صفحه بعد بروید.
5) در این صفحه شما می توانید با توجه به سلیقه خود رنگ دلخواه را انتخاب کنید .
6) در صفحه WELCOM TO YAHOO بر روی گزینه BEGIN کلیک کنید وسپس در صفحه Chooses A Look For Your Page می توانید یکی از سبکهای موجود صفحه را انتخاب کنید و سپس بر روی گزینه NEXT کلیک کنید.
7) سپس در صفحه ENTER YOUR INTO باید در قسمت YOUR NAME نام خود و در قسمت YOUR EMAIL ADDRESS آدرس ایمیل خود را وارد کنید با این کار نام و آدرس پستی شما به صفحه وب اضافه می شود .
8) در صفحه YOUR PICTURE PICK می توانید تصویر دلخواه خود را به صفحه وب خود اضافه کنید برای این کار بر روی گزینه UPLOAD NEW IMAGE کلیک کنید .این کار تقیقا مانند ATTACH کردن فایل به نامه است .لازم به توضیح است که شما می توانید از تصاویر پیش فرض نیز استفاده کنید .همچنین در صورت عدم تمایل به داشتن تصویر بر روی گزینه DONT USE AN IMAGE کلیک کنید تا به صفحه بعد بروید .
9) در این صفحه در قسمت DESCRIB YOURSELF می توانید توضیحاتی را در مورد خود به صفحه وب اضافه کنید پس از این کار بر روی گزینه NEXT کلیک کنید.
10) در این صفحه در قسمت ENTER YOUR FAVORITE LINKS می توانید آدرس های دلخواه را به صورت لینک وارد کنید و بعد بر روی گزینه NEXT کلیک کنید .
11) در این صفحه می توانید در قسمت DESCRIB YOUR FRIENDS AND FAMILY شما می توانید توضیحات دلخواه خود را اضافه کنید حال گزینه NEXT را کلیک کنید تا به صفحه بعد بروید .
12) در صفحه NAME YOUR PAGE شما می توانید نامی را برای صفحه وب خود تعریف کنید سپس بر روی گزینه NEXT کلیک کنید .
13) در این صفحه یعنی صفحه آخر YAHOO به خاطر ساختن این سایت به شما تبریک می گوید و از این پس شما دارای یک وب سایت شخصی هستید
|+| نوشته شده توسط .; *'. دانشجوي سماء .'*;. در یکشنبه یکم دی 1387  |
  مچ گیری
 می خواید بدونی  کدوم یکی از  ادلیستاتون  اون هستند؟؟؟؟؟؟؟؟؟؟؟؟

 ولی چراغشون خاموش کردن؟؟

 

 فقط  کلیک کنیدhttp://ir.xeeber.com    

                                                 بعد اسم ان تایپ کنید  جالب نه ؟؟

|+| نوشته شده توسط .; *'. دانشجوي سماء .'*;. در شنبه یازدهم اسفند 1386  |
 ارسال ايميل و sms به پيغام بر ياهو
ارسال ايميل و sms به پيغام بر ياهو

 

2 خرداد 82 - ccwmagazine - با ايجاد يک سرويس مجاني از اين به بعد ايرانيان مي توانند از طريق تلفن همراه خود و به طور مجاني ايميل و يا پيام کوتاه SMS به يک ID ياهو مسنجر بفرستند.
به گزارش سايت دنياي کامپيوتر و ارتباطات اين سرويس جديد يک سرويس ممتاز است و توسط گروهي از کارشناسان و به شکل ابداعي ايجاد و نگهداري مي شود.
بنا بر اين گزارش سرويس‌های ممتاز (يا سرويس‌های ارزش افزوده)، سرويس‌هايی هستند به صورت Application كه علاوه بر ايجاد ارتباط، اطلاعات باارزشی را نيز با خود حمل كرده و به گيرنده يا گيرندگان می‌رسانند. گروه پيك‌آسا نمونه‌هايی از اين سرويس‌ها را پاييز گذشته و در نمايشگاه تله‌كام 2002 در تهران با موفقيت آزمايش كرده بودند.
نحوه ارسال email و يا sms به مسنجر ياهو:

راهنمای ارسال پيام از طريق موبايل و به وسيله سرويس SMS به يك كاربر Yahoo Messenger
متن زير را در بخش پيغـام گوشی موبايل خود تايپ نماييد:
YM YAHOO-ID Message
شمـاره تلفن زير را به عنوان گيرنده وارد كنيد:
09132807760
توضيح: به جای YAHOO-ID در اين پيغام، شناسه كاربر Yahoo Messenger گيرنده می باشد. همچنين به جای Message نيز متن پيام مورد نظر خود را بنويسيد.
مثال:
YM CCWMAGAZINE Hello
عبارت بالا، پيام «Hello» را (به همراه شماره موبايل فرستنده) از طرف کاربر peykasa به كاربر «CCWMAGAZINE» در ياهومسنجر ارسال می‌كند.

راهنمای ارسال ايميل از طريق موبايل و به وسيله سرويس SMS
متن زير را در بخش پيغـام گوشی موبايل خود تايپ نماييد:
EM MAIL-BOX SUBJECT Mail-Body
شمـاره تلفن زير را به عنوان گيرنده وارد كنيد:
09132807760
توضيح: MAIL-BOX در اين پيغام، نشانی ايميل گيرنده می‌باشد. همچنين به جای SUBJECT نيز موضوع ايميل، و به جای Mail-Body نيز متن ايميل مورد نظر خود را بنويسيد.

مثال:
EM info@CCWMAGAZINE.COM Hello This is my first email.
عبارت بالا، ايميلی با موضوع «Hello» و با متن ايميل «This is my first email» را از طرف sender_mobile_number@peykasa.ir به نشانی ايميل «info@ccwmagazine.com» ارسال می‌كند.
اطلاعات بيشتري را مي توانيد در اين آدرس مشاهده کنيد:


http://ccwmagazine.com/news/public/peykasa/peykasa.asp

 

|+| نوشته شده توسط .; *'. دانشجوي سماء .'*;. در پنجشنبه دوم اسفند 1386  |
 آشنايي با فناوري DVD

 

 

آشنايي با فناوري DVD

 

 

 

 10 تير 82 – بخش مقاله ITiran - امروزه بسياري از فيلمها پيش از آنکه بر روي نوارهاي ويديويي قرار گيرند بصورت DVD عرضه مي شوند زيرا علاوه بر دارا بودن حجم کافي ، هزينه نهايي استفاده از آنها پايين تر است.
از اينرو تحولي که DVD در صنعت فيلم ايجاد کرد را مي توان با انقلابي مقايسه نمود که عرضه CD در دنياي موسيقي بوجود آورد. در اين مقاله ابتدا ساختارDVD و سپس DVD Player معرفي مي گردد تا بيش از پيش با اين فناوري قدرتمند آشنا شويد.

DVD چيست ؟
DVD ديسک هايي هستند همانند CD با اين تفاوت که مي توانند اطلاعات بسيار بيشتري را نسبت به انها ذخيره کنند. يک DVD با فرمت معمولي مي تواند تقريبا هفت برابر بيشتر از يک CD اطلاعات را در خود ذخيره کند. برخي از اطلاعاتي که بطور معمول در DVD قرار ميگيرد بصورت زير است :
- بيش از 133 دقيقه از فايل ويديويي با کيفيت بالا که معمولا داراي فرمت MPEG2 است.
- فايل هاي صوتي به چندين زبان مختلف که به صورت دالبي ضبط شده اند.
- 8 ساعت موسيقي با کيفيت بسيار بالاي CD -

- ساختار داخلي DVD
شعاع و ضخامت DVD همانند CD است و به روش مشابهي نيز توليد مي شود اما انچه که حجم ذخيره سازي بالا را در يک DVD سبب مي شود فشرده بودن طراحي آن است .
اطلاعات در DVD بصورت برامدگي هايي در سطح ديسک ذخيره مي شوند . يک ديسک DVD از چندين لايه پلاستيک پلي کربنيت تشکيل شده است که با روش INJECTION بر روي هم قرار مي گيرند . با اين روش مي توان ديسکي ساخت که برامدگي هاي موجود در سطح ان بر مارپيچي قرار گيرد که از مرکز اغاز شده و تا شعاع بيروني ديسک ادامه ميابد.
بعد از مرحله INJECTION لايه شفافي بر روي برامدگي هاي ديسک قرار مي گيرد و بر روي ان يک لايه طلايي نيز قرار داده ميشود که همانند يک عدسي ليزر DVD Player را بر برامدگي هاي ديسک متمرکز مي کند . بعد از ان در پشت برامدگي ها يک لايه الومينيومي نيز قرار مي گيرد

در پايان لايه اي لاکي شکل بر روي لايه هاي بيروني قرار داده مي شود و پس از فشرده سازي در زير نور مادون قرمز قرار مي گيرد تا پس از ان بر لايه پشت برامدگي ها برچسب DVD قرار داده شود. بدين ترتيب مراحل طراحي يک DVD يک طرفه کامل مي شود.
رمز ذخيره سازي بالاي DVD در فاصله بسيار کوچکي است که هنگام طراحي مارپيچ برامدگي هاي ان ميان دور هاي متوالي در نظر گرفته مي شود که به 740 نانومتر ميرسد. علاوه بر ان برامدگي هاي روي سطح DVD نيز بسيار کوچک اند و ابعادي حدود 320 در 400 نانومتر دارند



DVD هاي صوتي
DVD هائي که براي داده هاي صوتي استفاده مي شوند ، از قالب کاملاً متفاوتي نسبت به DVD هاي تصويري برخوردار هستند . تفاوت اين نوع از داده هاي صوتي با انواع قبلي مثلاً در CD ها ، به خاطر کيفيت صداي ذخيره شده در آنهاست . اين تفاوت در کيفيت کاملاً براي شنونده محسوس است . پخش کننده يا Player اين نوع از فايلهاي صوتي بايد داراي اين قابليت باشد که 192khz/24-bit اطلاعات ديجيتال را به آنالوگ تبديل کند . و اين در حاليست که Player هاي رايج فقط قادر به تبديل 96kHz/24-bit اطلاعات ديجيتال به آنالوگ هستند . در جدول زير بين دقت و صحت اطعلات ذخيره شده در DVD ها و CD ها مقايسه اي انجام شده است 


DVD ها هم مانند CD ها مي توانند در نهايت صخت و دقت خود 74 دقيقه صوت را ذخره کنند ولي اين تفاوت وجود دارد که ميزان کيفيت و نمونه برداري در DVD بسيار بالاتر از CD است . با دقت پائين تر يعني حدود 96 khz/24-bit ، DVD مي تواند حدود 7 ساعت صوت را در خود ذخيره کند .
هنگامي که CD يا DVD مي خواهند اطلاعات صوتي را در خود ذخيره کنند ، يک سري نمونه برداري بيتي صورت مي گيرد که هرچه تعداد اين نمونه ها در واحد زمان بيشتر باشد ، کيفيت صدا به صداي اصلي نزديکتر است . و هنگامي که Player هم در حال خواندن CD يا DVD است ، همان قسمتي که در بالا توضيح داده شد و وظيفه تبديل اطلاعات ديجيتال به آنالوگ را بر عهده دارد ، مشخص مي کند که چه ولتاژي بايد در خروجي قرار بگيرد تا صوت مربوطه توليد شود

پخش کنندهDVD يا DVD Player :
عملکرد player ِ DVD همانند عملکرد Player CD مي باشد . اين هم بايد با استفاده از يک دستگاه اشعه هاي ليزري به روي صفحه Disk مي تاباند و بر اساس چاله هائي که روي صفحه موجود است مي توان اطلاعات روي آن را بخواند . اطلاعات تصويري در DVD با فرمت MPEG-2 ذخيره شده است و پس از خواند اين اطلاعات Player آنها را به صورت سيگنالهاي تصويري تبديل مي کند . به همين ترتيب براي داده هاي صوتي که با استفاده از يک Decoder آن را مي خواند و سپس تقويت مي کند .
تجهيزاتي که براي خواندن داده ها بر روي DVD استفاده مي شوند از سه قسمت اصلي تشکيل شده اند :
يک موتور براي چرخاندن ديسک ، اين موتور بسته به اينکه در حال خواندن کدام شيار است بين 200 تا 500 دور در دقيقه مي چرخد .
سيستم ليزر و لنز مربوطه براي اينکه تبتواند روي چاله ها تمرکز کرده و اطلاعات را بخواند . طول موج ليزر در DVD بسيار کمتر از سول موج آن در CD مي باشد ، و به همين دليل است که مي تواند اطلاعات بيتري رادر خود ذخيره کند و بخواند . طول موج ليزر در DVD 640 نانومتر است در حالي که در CD 780 نانومتر مي باشد. و اين دليل عمده برتري DVD بر CD است .
سيستم پيگيري يا Tracking که مي تواند ليزر را به شيآر مورد نظر برساند و قادر است با دقت ميکرون حرکت کند .
Player ليزر را به سمت صفحه ديسک مي تاباند و منعکس مي شود ، سيستم پخش کننده قادر به تفکيک دو نوع بازگشت نور يعني نوري که از چاله ها بازگشته و نوري که از صفحه اصلي بازگشته است را مي تواند بوسيله يک وسيله نوري – الکتريکي تفکيک کند .
مشکل ترين قسمت در خواند اطلاعات از روي DVD ثابت نگه داشتن اشعه روي يک شيار مشخص است که اين وظيفه سيستم پيگيري است . اين سيستم بايد همانيور که پخش کننده در حال خوانده اطلاعات است ليزر را به سمت بيرون هدايت کند و حرکت دهد . از آنجائي که با حرکت ليزر به سمت بيرون تعداد چاله هايئ که در واحد زمان از زير ليزر رد مي شوند بيشتر هستند ، موتور حرکت دهنده بايد سرعت ديسک را کاهش دهد تا همواره نرخ ثابتي از چاله ها از زير ليزر رد شوند .
نکته جالب توجه اينجاست که اگر DVD داراي دو لايه باشد ، شروع شيار لايه دوم در انتهاي ديسک قرار مي گيرد تا هد براي خواندن از لايه دوم لازم نباشد که ي: بار ديگر به اتدا بازگردد . اين عمل خود باعث ايجاد سرعت در خواندن اطلاعات مي شود .

قابليتهاي يک DVD :
تماشاي فيلمهاي با کيفيت بالا به همراه صداي با کيفيت . اکثر فيلمهائي که به صورت DVD عرضه مي شوند داراي صداي Dolby هستند و همان کيفيتي که شما در سينما مي شنويد را به شما عرضه مي کنند .
کسي که فيلم DVD را طراحي اين قابليت را داراست که براي برخي قسمتهاي فيلم ليبل قرار دهد و شما مي توانيد به راحتي به قسمت مورد نظر پرش کنيد .
• Player ها ي DVD اين قابليت را دارا هستند که CD هاي صوتي را نيز پخش کنند.
شما ميتوانيد فرمت نمايش تصوير را مشخص کنيد .
بسياري از فيلمهائي که با DVD ذخيره شده اند براي زبانهاي مختلفي زيرتويس دارند ، شما مي توانيد در حالي که در حال مشاهده فيلم هستيد ، زيرنويس مورد نظر خود را انتخاب کنيد ، تا در زير فيلم به نمايش در آورده شود .

برخي ديگر از ويژگيهاي DVD Player ها :
ديکودر ديجيتال دالبي : اين قابليت براي تبديْ اطلاعات صوتي در DVD به 6 کانال صوتي مجزا مي باشد .
ديکودر DTS : (Digital Surround Audio) اين ديکودر اين قابليت را دارد که صدا را به صورت فراگير به 6 کانال خروجي بفرستد .
صداي شبيه سازي شده : اگر شما بخواهيد که DVD Player را به يک سيستم با تنها دو بلندگو متصل کنيد ، پخش کننده مي تواند صدا را به روي دو بلندگو شبيه سازي کند و شما نيازي به 6 بلندگو نداشته باشيد .
کنترل از راه دور يا Remote : DVD Player ها مي توانند سه نوع مختلف از کنترل را دارا باشند :
1. کنترلي که تنها خود DVD Player را کنترل مي کند .
2. کنترلي که مي تواند برخي از ساخته هاي کارحانچات ديگر را هم کنترل کند .
3. کنترلي با قابليت يادگيري ، به اين معني که سيگنالهاي بقيه کنترلها را مي توان به کليد خاصي در اين کنترل نسبت داد .

فهرست منابع و مراجع
DVD Demystified: The Guidebook for DVD-Video and DVD-ROM, by Jim Taylor
DVD Player Fundamentals, by Andrew Yoder
DVD Production, by Mark Ely

 

 

 

|+| نوشته شده توسط .; *'. دانشجوي سماء .'*;. در چهارشنبه یکم اسفند 1386  |
 برنامه نويسي با C (جلسه دوم) - )دستورات ورودي و خروجي
  • دستورات ورودي و خروجي:

       دستورات استاندارد ورودي و خروجي، كه در واقع به صورت تابع در كامپايلر C تعريف شده اند در فايلهايي كه پسوند آنها h است، هستند و ما براي استفاده از آنها بايد آنها را در بالاي برنامه ذكر كنيم. براي اين كار از دستور #include استفاده مي كنيم. فايلهايي كه معمولا در ابتداي هر برنامه بايد آنها را ذكر كنيم عبارتند از:

 conio.h
stdio.h
stdlib.h

       البته اين فايلها ممكن است در تمام برنامه ها احتياج نباشند ولي فعلا براي اين كه كارمان پيش برود نام فايلهاراذكر كنيد(ضرري نداره). پس در ابتداي هر برنامه سه دستور زير را حتما تايپ كنيد بعدا در بخش نوشتن هدر فايل(header file) مفصلا در مورد اين نوع فايلها بحث خواهيم كرد .

#include
#include
#include

      براي اين كه بدانيد تابعي را كه به كار مي بريد در كدام هدر فايل است مكان نما را زير آن تابع برده و كليد Ctrl+F1 را فشار دهيد. اين كار را بايد در محيط اديتور كامپايلر C انجام دهيد. ميتوان دستورات ورودي و خروجي را به دو نوع تقسيم كرد:

الف)كاراكتري.                   ب)با فرمت مشخص.

      الف) دستورات ورودي و خروجي كاراكتري:

  1.  دستور ()putch: شكل كلي اين دستور به صورت زير ميباشد و براي نشان دادن يك كاراكتر در صفحه نمايش به كار ميرود. putch(نام متغير كاراكتري يا خود كاراكتر); بايد توجه كرد كه اگر مستقيما كاراكتر را بخواهيم بنويسيم بايد آن را در داخل كاما(‘ ‘)قرار دهيم. ولي براي متغير رشته اي اين كار نياز نيست.

    putch(‘a’);
    putch(chvar);

    دستور اول a را در صفحه نمايش چاپ ميكند. و دستور دوم مقداري را كه در متغير كاراكتري chvar قرار دارد چاپ مي كند. اين متغير به صورت  ; char chvar تعريف شده است. يك دستور ديگر به نام ()putchar  وجود دارد كه در نسخه هاي قديمي تر C به كار ميرفت. ولي امروزه با اين كه باز هم وجود دارد ولي به كار نميرود. شما اگر دوست داشتيد از اين دستور استفاده كنيد. عملكردش مانند ()putch ميباشد.
  2.  دستو () getch : از اين دستور براي گرفتن يك كاراكتر از صفحه كليد استفاده مي كنند. شكل كلي دستور بصورت زير است:

    نام متغير كاراكتري=getch();

    اگر اين دستور را بدون استفاده از متغير به كار بريم برنامه منتظر فشار دادن كليدي از طرف كاربر مي ماند. كاراكتري كه توسط اين دستور دريافت ميشود در صفحه نمايش نشان داده نميشود.

  3. دستور () getche: اين دستور مانند ()getch ميباشد با اين تفاوت كه دستور ()getche كاراكتر گرفته شده را در صفحه نيز نشان ميدهد .
  4. دستور ()getchar: اين دستور نيز براي گرفتن كاراكتر از كاربر است. و شكل كلي اين دستور نيز دقيقا مانند دو دستور قبل ميباشد. با اين تفاوت كه اين دستور پس از گرفتن كاراكتر منتظر كليد Enter مي ماند در حالي كه دو دستور قبل اينطور نبودند. براي مثال ميخواهيم برنامه اي را بنويسيم كه سه كاراكتر را از كاربر گرفته و آنها را بصورت معكوس نشان دهد:

 

#include
#include
#include
void main()
{
   char ch1,ch2,ch3;
   clrscr();
   getche();
   getche();
   getchar();
   putch(ch3);
   putch(ch2);
   putch(ch1);
   getch();
}

 اگر ورودي اين برنامه را بصورت abc وارد كنيم برنامه cba را به عنوان خروجي برميگرداند.

     ب)دستورات ورودي و خروجي با فرمت مشخص:

  1. دستور ()printf : شكل كلي دستور بصورت زير است:

printf(“پيغام و كاراكترهاي كنترلي”) ;

printf(“پيغام و كاراكترهاي كنترلي و كارامترهاي فرمت”,نام متغيرها يا مقادير داده ها);

    فرم اول دستور بيشتر براي چاپ پيغام به كار ميرود. براي مثال دستور زير پيغام Hello world! را نشان ميدهد.

 printf(“Hello world!”);

 فرم دوم اين دستور مواقعي به كار مي رود كه ميخواهيم مقادير متغيرها را نيز همراه پيغام چاپ كنيم. منظور از كاراكترهاي كنترلي و كاراكترهاي فرمت را در جدول زير نشان داده ام. توجه كنيد كه اين كاراكترها را بايد در داخل كوتيشن به كار بريد.

كاراكتر فرمت printf()

مفهوم

%c

Character

%d

Decimal

%f

Float

%ld

Long decimal

%u

Unsigned

%s

String

%p

Pointer

%%

كاراكتر%

                                                            

كاراكتر كنترلي printf()

 مفهوم

\n

New line

\r

Carriage-return

\t

Tab

\b

Back space

\”

نمايش كاراكتر “

\’

نمايش كاراكتر’

\\

نمايش كاراكتر \

      كاراكترهاي فرمت را موقعي به كار ميبريم كه ميخواهيم يك متغير از نوع خاصي را در خروجي نشان دهيم. بري اين كار ابتدا نوع كاراكتر را در داخل كوتيشن با استفاده از كاراكترهاي فرمت مشخص ميكنيم و سپس بيرون از كوتيشن نام متغير را ذكر ميكنيم. به مثال زير توجه كنيد:

printf(“your average is:%f”, ave);

 اين دستور ابتدا پيغام your average is: را نشان ميدهد و سپس به يك كاراكتر فرمت كه يك متغير از نوع اعشاري را بيان ميكند برخورد ميكند و در خارج از كوتيشن متغير متناظر با %f را ميابد كه در اين مثال متغير ave مي باشد. ave بصورت float ave; تعريف شده است. اگر يك دستور printf() ديگر بعد از اين دستور قرار دهيم پيغام بلافاصله بعد از آن چاپ خواهد شد اگر بخواهيم پيغام در سر خط بعد ظاهر شود از كاراكتر كنترلي \n استفاده ميكنيم. براي اين كار مي توانيم به دو روش عمل كنيم يا در آخر دستور قبل كاراكتر كنترلي را قرار دهيم يعني دستور بالا بصورت زير باشد:

 printf(“your average is:%f \n”, ave);

 يا اينكه n\ را در ابتداي دستور بعد قرار دهيم. دستور ()scanf رو جلسه بعد ميگم. لطفا نظرات خودتون رو به من بگيد.

|+| نوشته شده توسط .; *'. دانشجوي سماء .'*;. در چهارشنبه یکم اسفند 1386  |
 http://www.prdev.com/
|+| نوشته شده توسط .; *'. دانشجوي سماء .'*;. در چهارشنبه یکم اسفند 1386  |
 آرایه های چند بعدی در برنامه نویسی C
آرایه های چند بعدی در برنامه نویسی C


آرايه ها مي توانند داراي ابعاد بيشتري نيز باشند. در زبان C نيز مي توان يك آرايه چند بعدي را بصورت زير اعلان كرد:

[][]  …   [] ;

بعنوان مثال، اعلان زير يك آرايه دوبعدي را معرفي مي نمايد:

int A[5][8] ;

براي دسترسي به هر عنصر از اين آرايه بايد از دو علامت [] استفاده كرد. توجه كنيد كه انديس سطرها و ستونها هر دو از 0 آغاز مي گردند. بعنوان مثال:

int A[5][8] ;
A[3][1] = 24;

البته در مورد آرايه هاي با ابعاد بالاتر نيز به شكل مشابهي عمل مي گردد. بعنوان مثال به نحوه استفاده از يك آرايه سه بعدي در مثال زير دقت كنيد:

int B[5][8][6] ;
B[2][4][0] = 12;

برنامه 3) برنامه اي بنويسيد كه نمرات تعدادي دانشجو را براي 5 درس دريافت و آنها را بهمراه معدل دانشجو ذخيره نمايد، سپس براي هر دانشجو معدل وي را چاپ نمايد.

void main() {
const int maxStudent = 100;
float grades[maxStudent][5] ;
float average[maxStudent];
int i, j, n;
printf("enter student number:");
scanf("%d",&n);
for (i=0 ; i< n ; i++) {
printf("student no %d:\n",i+1);
sum = 0;
for (j= 0 ;j<5 ; j++) {
printf("enter grade : ");
scanf("%f", &grades[i][j]);
sum += grades[i][j] ;
}
average[i] = sum / 5 ;
}
for (i=0 ; i< n ; i++)
printf("average of student %d is %f \n",i+1, average[i]);
}

و نكته آخر اينكه مقداردهي اوليه به آرايه هاي چندبعدي امكان پذير است و بصورت زير انجام مي پذيرد:

int A[3][4] = { {12, 5, 3, 8} , {-3, 7, -9, 2}, {4, 22, 18, 6} };

يعني يك علامت {} براي كل مقداردهي قرار مي گيرد، سپس هر رديف از آرايه در داخل يك {} مجزا قرار مي گيرد. براي ابعاد بالاتر نيز به روش مشابهي عمل مي گردد. بعنوان مثال براي آرايه هاي سه بعدي داريم:

int A[2][3][4] = { { {12, 5, 3, 8} , {-3, 7, -9, 2}, {4, 22, 18, 6} } , { {8, 1, -3, 4} , {-2, 8, 11, 21} , {7, 3, -15, -8} } };

|+| نوشته شده توسط .; *'. دانشجوي سماء .'*;. در دوشنبه بیست و دوم بهمن 1386  |
 چگونه Autorun بسازيم؟؟

براي راه اندازي خودكار يك فايل به صورت اتوران از روي سي دي يك

فايل با نام Autorun.inf شاخه اصلي سي دي قرار داده مي شود اين فايل

را به كمك يك برنامه ويرايشگر متن مانند notepad بسازيد ساختار معمول

اين فايل به صورت زير است:

 [autorun]

 open = setup.exe

 icon = setup.exe

 قرار دادن اين فايل در ريشه سي دي سبب ميشود كه برنامه setup.exe در

هنگام قرار دادن سي دي در داخل سي دي درايو به صوررت خودكار اجرا شود

در صورتي كه فايل setup.exe در ريشه اصلي نباشد و در شاخه ديگري قرار

داشته باشد بايد مسير را به طور كامل ذكر كرد مانند:

 open = \installfolder\setup.exe

|+| نوشته شده توسط .; *'. دانشجوي سماء .'*;. در شنبه بیستم بهمن 1386  |
  یاهو ووووووو مسنجرررررررر
                                           


چگونه جلوي آي دي خود در مسنجر آبي تايپ کنيم


shift+1 گرفته و در آخر alt+0160 براي اين کار نوشته خود را تايپ کرده بعد .
نکته:بايد 0160 را از سمت راست کيبورد و 1 را از عدد هاي بالاي کيبورد نوشته.
مثال: zendegi+(alt+0160)+shift+1
! zendegi که ميشود

 




چگونه بفهميم آي دي مورد نظر تو کدوم رومه؟

هنگام PM با فرد مورد نظر منوي فايل رو باز كنيد و Go To Chat User...رو انتخاب كنيد.بعد از دادن idمورد نظر و زدن okوارد رومي ميشويد كه فرد مورد نظرتون اونجاست.ميتونيد از طريق منوي پايين رو كه كنار id خودتون از طريق يكidديگه كه طرف نميشناسه وارد بشيد كه طرف نفهمه شما وارد شديد.(درست كردن چند تا id مجازي رو هم ياد دادم)



چگونه آي دي خود را از هکر پس بگيريم

اگه يه كم حواستون جمع باشه هيچ وقت آي دي تونو از دست نميديد اونم خيلي ساده است و اگه ايديتون هك شده ميتونيد همين حالا پسوردشو پيدا كنيد كه بستگي به حواس جمعي خودتون داره همان طور كه ميدونيد در هنگام گرفتن اي دي از شما سوالاتي ميشه از جمله
zip code
secret guestion
country
و تاريخ تولد حالا اگه شما موقع ثبت نام اينارو يادتون بمونه اگه حتي كسي پسوردتونو پيدا كنه و عوض كنه شما كافيه به
mail.yahoo.com
بريد و روي
forget password
كليك كنيد كه همون سوالاتي كه در بالا به اونا اشاره شد ازتون ميپرسه جواب بديد بعد خود ياهوو پسورد ايدي شما رو عوض ميكنه و پسورد جديدي بهتون ميده



يک راه براي بدست آوردن پسورد آي دي

اگر کسي در yahoo messenger ,يک بار ID ,PASSWORD خود را درست وارد کند و بعد sing out و يا disconnect کند وبعد messenger را نبندد مي توان password او را از registry همان computer مي توان به دست آورد پس براي اين کار:

:ابتدا وارد start و بعد وارد run شويد.
:سپس در صفحه اي که باز مي شود تايپ کنيد:regedit و سپس enter را زده.

:بعد که وارد registry شديم adress هاي زير را دنبال کنيد:

HKEY_CURRENT_USER

Software

Yahoo

Pager

و بعد در پنجره سمت راست بر روي گزينه Save Password دو بار کليک کنيد

و در صفحه اي که باز ميشود 0 را به 100 تغيير دهيد در اين صورت

password و id کسي که قبلاٌ وارد شده در در messenger ميماند سپس وارد yahoo

messenger شويد و بعد واردlogin شويد و با کمال تعجب خواهيد ديد

که .....

اخر کار دو باره 100 را به0 تغيير بديد

 



جستجو از طريق پروفايل

ميخوام يه روش Yahoo search هم يادتون بدم که ميتونيد پروفايلها رو باش سرچ کنيد.
ميتونيد بر حسب اسم - فاميل - شهر - کشور - سن - وضعيت تاهل سرچ کنيد.
البته يکيشونو که بزنيد کافيه (مثلا فقط سن).
براي ديدن اين صفحه بريد توي سايت
http://members.yahoo.com يا مستقيما اينجارو کليک کنيد.



هرگز بوت نشويد

نترسيد و راحتر چت کنيد ! کدهايي که شمارو بوت مي کنن فيلتر کنيد
خوب براي اين کار به شاخه
C:\Program Files\Yahoo!\Messenger\filter1.txt
برويد و فايل filter1.txt را باز کنيد و در خط کدهاي زير وارد کنيد ,url,onLoad=,که در بعضي سيستم ها بايد با يک , و يک فاصله بعد از اين کارکتر اين کار رو بکنيد ! با اين کار شما بوتر هارو غير فعال مي کنيد



ساخت آي دي مجازي

از منوهاي ياهو مسنجر loginرا زده و my profileرا باز كنيد.سپس creat/edit my profileرا بزنيد.
احتمالا از شما id و passwordخواسته خواهد شد.بعد از دادن آن وارد صفحه ساخت آي دي خواهيد شد.creat new public profileرا بزنيد.در اينجا شما ميتوانيد idمجازي خود را درست کنيد .بعد از اينكه idشما قبول شد وارد my yahooميشويد اين به معني ميده كه id شما مورد تائيد قرار گرفته.
دوباره به صفحه اول باز گرديد.اندفه خواهيد ديد كه دو idداريد.اگر اينطور نيست refreshرو بزنيد.شما مي تونيد تا 6 id به اين ترتيب بسازيد.جلوي idاصلي شما Default*نوشته شده.ميتوانيد يك id ديگر از بين idها رو به عنوان اصلي انتخاب كنيد براي اين كار Make Default را كه جلوي id است کليک کنيد .
پس از پايان كار finish editigرو بزنيد.اكنون شما ميتوانيد با تمام اين اي دي ها وارد روم ها شويد. يا در يك لحظه با چند تا از انها با فرد مورد نظرتون چت بزنيد.



چگونه بفهميم طرف online هست يا نه؟

يه کار جالب يادتون مي دم براي مطمئن شدن از اينکه طرف مورد نظر Invisible است? يا اين که اصلا Online نيست (مربوط به ياهو مسنجر) اين سوال بسياري از افراد است که نمي دونند دوستشان واقعا آنلاين است يا نه... من از اينجا از تمام کساني که هميشه به حالت مخفي (Invisible) مي آيند روي خط معذرت مي خواهم چون از اين به بعد اين کار معني ندارد و بايد همه به حالت آشکار روي مسنجر ظاهر شوند... خب حرف زدن بسه ! کار رو شروع مي کنيم :
----------شروع کار: روي دوست مورد نظر کليک راست را بزنيد تا منوي مربوط به او ظاهر شود
از منوي باز شده گزينه Invite to Conferance (املايش را مطمئن نيستم؛ يک چيزي تو همين مايه هاست! ) حال چه طرف مورد نظر باشد چه نباشد? پيغامي مبني بر اينکه آيا مايل است توي کنفرانسي که شما او را دعوت کرده ايد? شرکت کند يا خير... مسلما او يا قبول ميکند يا نه... در هر صورت به اين پيغام جواب مي دهد و به هيچ وجه نمي تواند از گير اين سوال در برود ! اين همان چيزي است که شما مي خواهيد !
حال پنجره اي که براي شما باز شده ? منتظر جواب طرف مي شود تا به شما اطلاع دهد... اگر دوست شما به سوال جواب مثبت بدهد (که بعيد مي دانم) وارد کنفرانس شما و شما او را در ليست کساني که در روم (Room) مي شوند ميبينيد و قضيه به طور مسالمت آميز تمام مي شود... اما اگر جواب رد بدهد? در پنجره باز شده براي شما عبارتي مشابه : SEPEHR_MICROSOFT2000 is denyed your conferance ! Thanks But No Thanks مي آيد... البته مشابه اين است چون من دقيقا مطمئن نيستم کاملا همين عبارت ظاهر شود... در اينجا ID من را شما ملاحظه مي کنيد... اما وقتي شما آزمايش کنيد ID دوست شما در آنجا ظاهر مي شود... خب حالا از اين پيام متوجه مي شويد که طرف آنلاينه اما دعوت شما را نپذيرفته.... اما حالا بگم که ممکنه طرف آنلاين نباشه؛ در اين حالت پيام زير ظاهر مي شود :
sepehr_microsoft2000 is not available

آيا طرف مقابل شما در هنگام چت در ياهو شما رو Add کرده يا نه؟

اگه خواستين بفهمين کسي که باهاش چت مي کنين شما رو تو ليستش داره يا نه، به بالاي صفحه چتتون نيگاه کنين! اگر بين ID ايش و کلمه ي Instant Message دو تا دونه خط بودش يعني يه چيزي مثله:

mo_toori -- Instant Message
يعني طرف شما رو تو ليستش داره،‌ و اگر يدونه خط بود يعني نداره:
mo_toori - Instant Message
بايد آنلاين باشه طرف ها!!!




عوض کردن پسورد در ياهو

براي عوض کردن رمز عبورمراحل زير را انجام مي دهيم:
1-رفتن به سايت اصلي ياهو
http://www.yahoo.com
2-به سايت ياهو وارد مي شويم در سمت چپ اين سايت لينکهايي به رنگ آبي وجود دارد روي کلمه My yahoo کليک مي کنيم.
3-بعد از اينکه وارد اين صفحه شديم در قسمت چپ صفحه ID و Password فعلي را وارد ميکنيم و بر روي sing in کليک مي کنيم
4- در بالاي صفحه اي که مي آيد روي گزينه Account Info کليک مي کني

 

|+| نوشته شده توسط .; *'. دانشجوي سماء .'*;. در شنبه بیستم بهمن 1386  |
 رمز و راز از اینترنت اکسپور

اگر مي خواهيد تمام كوكي هاي موجود دركامپيوتر خود را پاك كنيد، از

منوي Tools ،گزينه Internet Options را انتخاب و از صفحه General

روي دكمه Delete Cookies كليك كنيد.

 

 – تنظيمات مربوط به سطوح امنيتي منطبق محتوايي وب در IE6 فرق

كرده اند، ولي اگر در نسخه قبلي IE تغييراتي را در مناطق امنيتي داده باشيد،

 Setup آنها را حفظ كرده و يك منطقه تحت عنوان «سطح امنيتي سفارشي»

براي شما مي سازد.

 

 – اگر دوست داريد بدانيد چند تا سايت سعي مي كنند كارهايي بكنند كه تنظيمات

منطقه ممنوعه جلوي آنها را مي گيرد، براي امتحان بعضي از آنها را به حالت

 Prompt تنظيم كنيد و به دقت پيام هايي را كه بر روي صفحه ظاهر مي شوند

بخوانيد.

 

 – (جديد نيست) راه ديگري كه هكرها از طريق آن مي توانند بدون اين كه بدانيد

شما را به سايت ديگري بفرستند اين است كه جهت حركت اطلاعاتي را كه

خود شما در فرم هاي وب پر كرده ايد عوض كنند. اگر مي خواهيد وقتي

اطلاعات شما به سايتي مي روند كه با آن چه در فرم تعيين كرده ايد فرق دارد،

از منوي Tools،گزنيه Internet Options را كليك كرده و به صفحه

 Security برويد. سپس گزينه، Wam if submittal is being redirected

را علامت بزنيد. البته، توجه داشته باشيد كه بعضي سايت ها ممكن است

براي پردازش فرم هاي كاربران از خدمات يك شركت يا وب سايتي رايگان

 استفاده كنند كه اين موضوع نگران كننده نيست.

 

 – اگر وب سايتي مكان خود را عوض كند URL آن تغيير مي يابد. براي

جلوگيري از گم شدن بازديدكنندگان ،اين وب سايت هايي كه جابه جا شده اند

از فرماني موسوم به META REFRESH استفاده مي كنند كه به طور

خودكار مرورگر وب شما را بعد ازچند ثانيه به موقعيت جديد هدايت مي كند.

(معمولاً پيامي روي صفحه ظاهر مي شود كه توضيح مي دهد آدرس تغيير

كرده و توصيه مي كند Bookmark خود را به روز كنيد). ولي هكرها هم

مي توانند با استفاده از فرمان فوق الذكر شما را به جاي ديگري ببرند كه تحت

كنترل آنها قرار دارد، پس حالا اين اختيار را داريد كه اين ويژگي را فعال كنيد

ياغير فعال. حالت پيش فرض اين ويژگي «فعال» در تمام مناطق است. به جز

منطقه ممنوعه (Restricted) از منوي Tools ، گزينه Internet Options را

انتخاب كرده و به صفحه Security رويد. منطقه مورد نظر خود را انتخاب

 و روي دكمه Custom كليك كنيد تا كادر محاوره ديگري باز شود. در اين

حالت، گزينه Allow META REFRESH را خواهيد ديد كه اگر بخواهيد

مي توانيد آن را عوض كنيد.

 

 – اگر تا به حال به وب سايتي رفته باشيد كه يك پنجره شناور را بر روي بقيه

 وب سايت ها باز مي كند، چيزي را ديده ايد كه به Iframe يا «فريم شناور»

موسوم است. شايد فكر كنيد Iframe بخشي از سايت جديد باشد. ول چنين

نيست. برنامه نويسان وب ميتوانند براي جلوگيري از سرقت Iframe توسط

هكرها امكان كدنويسي در Iframe ها را ازكار بيندازند، ولي اگر آنها اين كار

را نكرده باشند، خودتان مي توانيد آنرا غير فعال كنيد. از منوي Tools، گزينه

 Internet Options را كليك و در صفحه Security منطقه مربوطه راانتخاب

كنيد. سپس، روي دكمه Custom كليك كرده و گزينه

 Launching Programs and Files in a IFRAME را علامت بزنيد.

 

 – (جديد نيست) بااستفاده از منطقه «سايت هاي ممنوعه» مي توانيد جلوي باز

 شدن پنجره هاي تبليغاتي درسايتهاي خاص را بگيريد. از منوي Tools،گزينه

 Internet Options را كليك كرده و به صفحه Security برويد. سپس با

انتخاب Restircted Sites روي دكمه Site كليك و URL مربوطه را تايپ كنيد.

 

 - (جديد نيست) اگر كامپيوتر خود را به صورت اشتراكي با ديگران استفاده

مي كنيد،احتمالاً دوست نداريد كه اطلاعات كارت اعتباري و ساير اطلاعات

شخصي تان در فولدر TemporayInterent Files باقي بماند. براي اين منظور،

از منوي Tools، گزينه Internet Options راانتخاب كرده و در صفحه

 Avanced زير قسمت Security ، گزينه

 Do not save encrypted page to disk راعلامت بزنيد تا صفحاتي كه

با http آغاز مي شوند (از جمله فروشگاههاي اينترنتي و صفحات بانك هاي

 اينترنتي) در ديسك شما ذخيره نشوند.

 

 – اگر مي خواهيد همه چيز را از فولدر فايل هاي موقتي اينترنت پاك كنيد،

مي توانيد گزينه بعدي يعني

 when browser is closed Empty Temporay Internet Files-Folder

راعلامت بزنيد و به علاوه فضاي خالي بيشتري را در ديسك خود باقي بگذاريد.

 

 – آيا دوست داريد بدانيد يك سايت وب با اطلاعاتي كه از خود ارائه مي دهيد

چه مي كند؟ از منوي View، گزينه Privacy Report را كليك و URL سايت

مورد نظر را تعيين كنيد. سپس روي دكمه Summary كليك كنيد تا ببينيد

 سايت مربوطه با اطلاعات شما چه مي كند.

 

 – راه پي بردن به هويت و اعتبار افراد در اينترنت بررسي گواهي نامه ها و

امضاهاي ديجيتالي است. از منوي Tools گزينه Internet Options را كليك

كرده و به صفحه Content برويد. سپس روي دكمه Certificates كليك كنيد

تا گواهي نامه هاي امنيتي سايت هايي را كه بازديد كرده ايد ببينيد.

 

 – يك تغيير خاص در تنظيمات منطقه امنيتي اين است كه مانع از اجراي

برنامه ها توسط جاوا اپلت هايي بشويم كه در سايت هاي قرار گرفته در منطقه

ممنوعه وجود دارند. با اين كار، نه تنها جاوا ازكار مي افتد، بلكه كنترل هاي

 اكتيوايكس هم غير فعال مي شوند.

از منوي Tools ،گزينه Internet Options راانتخاب كرده و به صفحه

 Security برويد. حال Restricted Sites را انتخاب و روي Custom Level

كليك كنيد. سپس ،گزينه

 Script Active X controls marker as save for scripting را به

حالت Disable تغيير دهيد.

 

 – آيكون Privacy نشان مي دهد كه آيا سايت مورد بازديد در حال ارسال

كوكي هايي است كه با تنظيمات Privacy شما مطابقت دارند يا نه. با كليك

مضاعف روي اين آيكون، ليستي از كوكي هايي را كه نسبت به ارسال آنها

تلاش شده تحت عنوان Privacy Report مشاهده كنيد (اين گزارش به علاوه،

نشان مي دهد كه تصاوير از كجا آمده اند). براي تغيير سريع تنظيمات مربوط

به كوكي آن سايت، روي كوكي كليك راست كرده و گزينه مورد نظر را انتخاب

نمائيد.

 

 – در هنگام سازمان دهي و مرتب كردن Favorites، فقط يك فولدر رادر آن

واحد مي توانيد باز كنيد، مگر اين كه تنظيمات موجود در صفحه Advanced

كادر محاوره Internet Options را تغيير داده باشيد، ولي براي جابه جا كردن

يك ليست از Favorites مجبور نيستيد از طريق دكمه Move the Folder عمل

كنيد، بلكه مي توانيد به روش Drag-and drop (همراه با كليد Ctrl، يا بدون

گرفتن اين كليد) استفاده نمائيد. براي تغيير نام يك آيكون كليك راست كنيد يا با

استفاده از Send to Desktop آن را بر روي Desktop ويندوز بيندازيد.

 

 – درحالي كه مشغول سفارشي كردن تنظيمات، ناحيه Search خود هستيد،

مي توانيد نحوه انجام جستجوها در خط Address

(به قول مايكروسافت : Autosearch) رانيز مشخص كنيد. تنظيمات اين دو

ناحيه يكسان بوده و از طريق منوي Tools، گزينه Internet Options و

صفحه Advanced قابل دسترسي هستند. ناحيه Search فقط زماني قابل

 سفارشي كردن است كه روي خط باشيد، ولي دستكاري Internet Options

در هر زماني امكان پذير است براي Autosearch هم فقط يك انتخاب وجود

دارد و آن MSN است.

 

 – اگر در ناحيه Search روي Customize كليك و چند ماشين جستجوگر را

 انتخاب كنيد، نتايج را از ماشيني مي گيريد كه قبل از بقيه درليست معرفي شده

باشد. با كليك روي Next ماشين جستجوگر بعدي مورد استفاده قرار مي گيرد.

 

– اگرچه مي توانيد آيكن Internet Explorer را از سيستم خود پاك كنيد، ولي

اين برنامه فقط يك قطعه نرم افزار نيست. ناحيه Folder همان خط Explorer

است كه امكان گشت زدن در هارد ديسك كامپيوتر و وب را از يك پنجره فراهم

مي سازد. اگر درصدد بارگذاري يك فايل باشيد و به دنبال فولدر خاصي

مي گرديد، دكمه Folder راه سريعي براي اين كار است . تا وقتي كه فولدري

راازكامپيوتر خود انتخاب نكرده باشيد، آيكون ها و منوهاي IE را در اين ناحيه

خواهيد ديد.

 

 – ناحيه History بهترين راه براي برگشتن به صفحه اي است كه مي دانيد

قبلاً ديده ايد ولي فراموش كرده ايد آن را Bookmark كنيد (اگر قرار باشد همه

چيز را Bookmark بكنيم، ليست Favorites آن قدر بزرگ مي شد كه استفاده

 از آن عملاً امكان پذير نبود). با كليك روي يك لينك يا كشيدن آن به ناحيه

 اصلي پنجره، آن را باز كنيد. اگر مي خواهيد سايتي را به ليست Favorites

منتقل كنيد يا آن را در پنجره جديدي باز نمائيد. روي آن كليك راست كنيد.

 

 – با انتخاب Hotmail به عنوان برنامه مديريت پست الكترونيك از طريق

 صفحه Programs در كادر محاوره Internet Explorer و كليك روي

دكمه Mail واقع در خط ابزار، مي توانيد Hotmail را به IE خود بياوريد.

ولي چنين كاري براي Instarnt/Messaging به اين آساني ها نيست.

 Messenger MSN با IE6 عرضه نمي شود، ولي درويندوز XP وجود دارد.

با بارگذاري و نصب اين برنامه از سايت مايكروسافت ، اين آيكون رادر خط

ابزار IE خود خواهيد ديد.

 

 – اگر واقعاً مشكلي از طرف مناطق امن وجود نداشته باشد، فقط آيكن اينترنت

در خط وضعيت ظاهر خواهد شد. با كليك مضاعف روي اين آيكون، كادر

محاوره Internet Security Proprites را باز و سايتي را به منطقه

«سايت هاي معتمد» اضافه كنيد از آن جا كه امكان كشيدن URL به داخل كادر

محاوره وجود ندارد، به خاطر داشته باشيد كه قبل از كليك URL صفحه را

كپي كنيد و سپس به انتخاب منطقه مورد نظر بپردازيد . روي دكمه Sites كليك

كرده و URL را بچسبانيد.

 

 – با كليك راست روي هر نقطه اي از خط ابزار، مي توانيد به سفارشي كردن

آن بپردازيد. در اين راستا، مي توانيد فقط آيكون هاي استاندارد IE را برگزينيد

و يا آيكون هايي را به نمايش درآوريد كه مربوط به برنامه هاي افزودني از

قبيل AOL Instant Messenger يا Net2Phone هستند. با انتخاب

آيكون هاي كوچك جاي بيشتري را روي صفحه باز مي كنيد، هر آيكون

مي تواند به همراه نوشته برچسب آن يا بدون نوشته برچسب ظاهر شود.

 

 – چقدر سريع است؟

وقتي صفحه اي را از وب دريافت مي كنيد، آن چه موجب تاخير در نمايش

صفحه مي شود بيشتر مربوط به تصاوير موجود در آن صفحه يا سرعت

انتقال داده ها در مودم شماست، نه مدت زمان (ناچيزي) كه مرورگر براي

تبديل كد HTML به صفحه وب صرف مي كند، حتي در صفحات پيچيده اي

كه ده ها جدول تو در تو دارند ، Internet Explorer6 سرعت زيادي دارد

و جاوا را هم با همين سرعت اجرا مي كند. البته IE6 در نمايش صفحات ذخيره

 شده اي كه قبلاً دريافت كرده ايد كمي كندتر (نسبت به IE5.5) عمل مي كند،

ولي در عوض در نمايش صفحاتي كه تصوير دارند باافزايش سرعت

چشم گيري مواجه هستيم. بعض صفحات حتي با سرعتي دو برابر نسبت به

گذشته بارگذاري مي شوند.

 

 – چقدر سريع است؟

اگر فكر مي كنيد IE6 كندتر عمل مي كند، به تنظيمات «تاخير در منو» در

 Registry نگاهي بيندازيد. اين تنظيمات باعث مي شود فكر كنيم نسخه جديد

كندتر پاسخ مي دهد، به ويژه هنگامي كه به مشاهده منوهاي تو در تو

(از قبيل (Favorties مي پردازيم. ويندوز هميشه مكث كوتاهي در اين منوها

مي كند تا كاربر بتواند بفهمد چه مي گذرد . سعي كنيد سرعت منوها را بالا

ببريد و ببينيد آيا فرقي در نمايش صفحات وب مي كند. با استفاده از برنامه

 Regedit كليد

 HKEY_CURRENT_USERControl Panel/Desktop\MensuShowDelay

را پيدا كنيد (يا اگر نيست ايجاد نماييد) و مقدار آن را به 100 (يعني 100 ميلي

ثانيه) تغيير دهيد. اين مقدار مي تواند هر عددي بين 0 تا 999 باشد براي اعمال

تغييرات بايد ويندوز را Restart بكنيد.

 

 – اگر گزينه Always trust content from this compary را به هنگام نصب

يك كنترل اكتيوايكس علامت بزنيد، در واقع تصريح كرده ايد كه به گواهي نامه

 امنيتي آنها (به عنوان مدرك معتبر بودن شركت) اعتماد داريد. با كليك روي

دكمه Publisher حداقل ببينيد به چه كسي اعتماد كرده ايد.

 

 – امضاهاي ديجيتالي و گواهي نامه ها فقط در صورتي مطمئن هستند كه افراد

درستي آنها را داشته باشند و از وقتي Verisign گواهي نامه مايكروسافت را

به كسي داد كه عضو مايكروسافت نبود (ولي چند كاغذ سربرگ دار از اين

شركت در اختيار داشت). بايد يك درجه احتياط را بيشتر كنيم. از منوي

 Tools، گزينه Internet Options راانتخاب كرده و به صفحه Advanced

برويد. در قسمت Security دقت كنيد كه گزينه

 Check for Publisher’s certificate revocation و

 Check for sever certificate revocation علامت خورده باشند

|+| نوشته شده توسط .; *'. دانشجوي سماء .'*;. در شنبه بیستم بهمن 1386  |
  ترفند ساده
 

 این بار یه ترفند ساده باستون گذاشتم ، شاید بعضی ها این رو بلد باشند ولی من وقت گذاشتم و باستون اکثر حالتاشو در اووردم ،  راستی یادم رفت از ترفند بگم

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

                  

                                            

|+| نوشته شده توسط .; *'. دانشجوي سماء .'*;. در شنبه بیستم بهمن 1386  |
  برخی از کلیدهای میانبر و کاربردی در ویندوز
 

 windows + E : فعال شدن My Computer

windows + D : فعال شدن Show Desktop

windows + R : فعال شدن Run

windows + F : فعال شدن Search

windows + U : فعال شدن Utility Manager

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

 

 

|+| نوشته شده توسط .; *'. دانشجوي سماء .'*;. در شنبه بیستم بهمن 1386  |
 کی دروغ می گه ؟؟
 

می خوام امروز لینک یه برنامه ای رو بزارم تا به شما کمک کنه تا بفهمید کی دروغ میگه کی راست !!

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

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

 

http://danlod.com/jamejam/truster.zip

|+| نوشته شده توسط .; *'. دانشجوي سماء .'*;. در شنبه بیستم بهمن 1386  |
  خاموش و ریست کردن کامپیوتر با ویندوز xp

      

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

از منوی Start وارد Run و این عبارت را تایپ کنید : shutdown –s –t Time

دقت داشته باشید که بجای کلمه Time باید زمان دلخواهی که می خواهید سیستم شما درآن وقت بطور اتوماتیک خاموش شود را به ثانیه وارد نمایید.

مثلا می خواهید کامپیوتر ۱ساعت دیگر خاموش شود پس اینطور می نویسیم : shutdown –s –t 3600 نهایتا روی گزینه ok کلیک می کنیم.

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

برای Restart شدن سیستم می توانید از این فرمول استفاده کنید: shutdown –r –t Time

برای متوقف کردن تایمر هم از این فرمول در قسمت Run استفاده کنید : shutdown -a

 

 

 

 

|+| نوشته شده توسط .; *'. دانشجوي سماء .'*;. در شنبه بیستم بهمن 1386  |
 آرایه ها در برنامه نویسی c
آرایه ها در برنامه نویسی c

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

آرايه هاي يك بعدي

پيش از آنكه بتوان از يك آرايه يك بعدي استفاده كرد، بايد آن را اعلان كرد. اعلان آرايه ها بصورت زير انجام مي گردد:

[] ;

بعنوان مثال:

int A[10];

خط بالا يك آرايه 10 تايي از اعداد صحيح بنام A ايجاد مي نمايد. هر كدام از عناصر اين آرايه مي توانند بعنوان يك متغير مستقل مورد استفاده قرار گيرد. براي دسترسي به عناصر اين آرايه بايد از انديس استفاده نمود. در زبان C انديسها در داخل كروشه [] قرار مي گيرند. نكته بسيار مهمي كه بايد بدان توجه كرد آنستكه در C انديس يك عدد صحيح است كه از 0 آغاز مي گردد. به مثال زير توجه نماييد:

int A[10] ;
A[2] = 8;

و يا چنانچه بخواهيم مقدار خانه سوم را بر 2 تقسيم و در متغير x بريزيم، داريم:

x = A[3] / 2;

اكنون به يك مثال دقت كنيد.

برنامه 1) برنامه اي بنويسيد كه شماره دانشجويي و معدل تعدادي دانشجو را دريافت، و سپس چنانچه معدل دانشجو از ميانگين كلاس :

- بيش از يك نمره بيشتر باشد، چاپ كند : عالي
- حداكثر يك نمره بيشتر يا كمتر باشد، چاپ كند : خوب
- بيش از يك نمره كمتر باشد، چاپ كند : ضعيف

#include
void main() {
float average[100] ;
long int id[100] ;
int i, n ;
float totalAverage;
printf("enter number of students : ");
scanf("%d", &n);
for (i = 0; i < n ; i ++) {
printf("enter id and average : ");
scanf("%ld %f", &id[i], &average[i]);
totalAverage += average[i];
}
totalAverage /= n;
for (i = 0; i < n ; i ++) {
if (average[i] > = totalAverage + 1)
printf("%ld : excellent !\n", id[i]);
else if (average[i] > = totalAverage – 1)
printf("%ld : good !\n", id[i]);
else printf("%ld : weak !\n", id[i]);
}
}

چند نكته مهم راجع به آرايه در C وجود دارد كه حتما بايد به آنها دقت كنيد:
1- اندازه آرايه ها در C ثابت بوده و حتما بايد توسط يك مقدار ثابت صحيح تعيين گردد. بعنوان مثال اعلان زير خطاي نحوي محسوب مي گردد:

int n ;
n=100 ;
int A[n];

اما مي توان با استفاده از متغير هاي ثابت (ثابتهاي داراي نام)، اندازه آرايه را تعيين كرد، كه در قسمتهاي بعدي به آن اشاره خواهد شد.

2- انديس آرايه ها در C عدد صحيح بوده و هميشه از 0 شروع مي شود. لذا به تفاوت "عنصر چهار آرايه" يعني A[4] و "چهارمين عنصر آرايه" يعني A[3] دقت كنيد. اين مسئله معمولا باعث بروز خطاهاي منطقي مي گردد.

3- در C مرز آرايه ها بررسي نمي گردد. بدين معنا كه چنانچه انديسي خارج از محدوده مجاز يك آرايه استفاده شود، باعث ايجاد خطا توسط كامپايلر نمي گردد، اما مسلما برنامه را دچار يك خطاي منطقي خواهد كرد. بعنوان مثال:

int A[10] ;
A[12] = 20 ; //this is not a syntax error but a logical error


لذا بررسي مرزهاي آرايه بعهده خود برنامه نويس است و بايد از درستي برنامه خود و خارج نشدن از محدوده مجاز مطمئن گردد.

4- مقداردهي اوليه به آرايه هاي يك بعدي بصورت زير انجام مي پذيرد:

int A[3] = {5, 2, 8};


كه در اينجا A[0] برابر 5 ، A[1] برابر 2 و A[2] برابر 8 خواهد شد.
علاوه براين مي توان فقط به تعدادي از عناصر آرايه مقدار داد، دراينصورت مقدار عناصر باقيمانده آرايه اتوماتيك 0 خواهد شد.

int B[10] = {5, 8} ;

در اينجا عناصر B[2] به بعد مقدار 0 خواهند گرفت. بنابراين مي توان براي 0 كردن كليه عناصر يك آرايه به شكل زير عمل كرد :

int C[10] = {0};

چنانچه به آرايه مقدار دهي اوليه كرده باشيم، مي توان تعداد عناصر آرايه را نيز ذكر نكرد، دراينصورت اندازه آرايه بطور اتوماتيك برابر تعداد مقادير مشخص شده خواهد شد.

int C[] = {10, 15, 20};

در مثال فوق آرايه C با 3 عضو درنظر گرفته مي شود

|+| نوشته شده توسط .; *'. دانشجوي سماء .'*;. در یکشنبه دوم دی 1386  |
 برنامه c ساختار كنترلي if , for .....

ساختارهای کنترلی

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

اما زبان C دارای 3 نوع ساختار انتخاب می باشد که عبا رتند از : ساختار if یا ساختار تک انتخابی، ساختار if / else یا ساختار دو انتخابی و ساختار switch یا ساختار چند انتخابی. علاوه براین، این زبان دارای 3 نوع ساختار تکرار بنامهای while، for و do / while نیز می باشد که هریک را بطور کامل شرح خواهیم داد.

قرارداد: توجه کنید که در هنگام تشریح یک دستور، خود دستور با رنگ آبی و عملگرهای آن مانند () با رنگ قرمز نشان داده می شوند. قسمتهایی که در داخل <> قرار می گیرند، عبارت یا دستوری هستند که باید در هنگام استفاده جایگزین گردند.

ساختار انتخاب if

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

if ()

 

نحوه کار بدینصورت است که ابتدا عبارت موجود در قسمت ارزیابی می شود. در صورتیکه درست ارزیابی گردد، دستور قسمت اجرا  خواهد  شد  و  در  صورتیکه  نادرست  باشد،  بدون  اینکه  دستور  قسمت   را اجرا کند به دستور بعدی خواهد رفت. این دستور می تواند بصورت زیر نیز استفاده گردد: 

if () ;
else ;

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

دقت کنید که پرانتز استفاده شده پس از دستور if برخلاف برخی زبانهای دیگر، اجباری است. علاوه براین، در این دستور نیازی به استفاده از then نمی باشد.

بعنوان مثال چنانچه متغیر grade حاوی نمره دانشجو باشد و بخواهیم بر مبنای نمره وی، پیغام مناسبی چاپ کنیم، می توانیم از دستور زیر استفاده کنیم:

if (grade> = 10) printf(“Passed !”);
else printf(“Failed!”);

در حالت عادی دستور if منتظر یک دستور در بدنه خود می باشد، اما چنانچه می خواهید چندین دستور را در بدنه یک دستور if دهید، باید آنها را در داخل آکولاد باز وبسته { } قرار دهید. این مجموع دستورات را یک دستور مرکب می گویند. بطور کلی در زبان C هرجا که می توان یک دستور قرار داد، می توان از یک دستور مرکب نیز استفاده کرد. به یک دستور مرکب، بلوک نیز گفته می شود. بنابراین صورت کلی دستور if به شکل زیر است:

if () {
;
;
….
;
}
else {
;
;
…….
;
}

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

برنامه 1) برنامه ای بنویسید که ضرایب یک معادله درجه 2 را دریافت و ریشه های آن را محاسبه و چاپ نماید.

#include
#include
#include
#include
void main() {
int a, b, c;
float x1, x2, delta;
clrscr();
printf(“Please enter a, b and c : “);
scanf(“%d %d %d”, &a, &b, &c);
if (a==0) {
printf(“wrong equation!”);
exit(1) ;
}
delta = b*b – 4*a*c;
if (delta <0)
printf(“No answer !”);
else if (delta == 0) {
x1 = -b / (2*a);
printf(“There is one answer, x = %f”,x1);
}
else {
delta = sqrt(delta);
x1 = (-b+delta) / (2*a);
x2 = (-b-delta) / (2*a);
printf(“There are two answers, x1= %4.2f and x2= %4.2f”, x1, x2);
}
}
Please enter a, b and c : 3 -7 2
There is two answers, x1 = 2.00 and x2 = 0.33

چندين نكته درمورد برنامه بالا قابل ذكر است.

1- در اين برنامه از 2 تابع جديد استفاده شده است.اولي تابع sqrt كه يك عدد را به عنوان ورودي دريافت و جذر آن را باز مي گرداند. اين تابع در فايل math.h تعريف شده است. و ديگري تابع exit كه باعث مي شود اجراي برنامه خاتمه يابد. اين تابع نيز در فايل stdlib.h تعريف شده است.

2- به نحوه دندانه گذاري در برنامه دقت كنيد، هرجا كه بلوك جديدي ايجاد شده است، دستورات آن حدود 3 كاراكتر جلوتر نوشته شده اند. اينكار باعث مي شود كه خوانايي برنامه افزايش يابد.

3- توجه كنيد كه همانطور كه قبلا نيز گفته شد، خروجي يك عبارت مقايسه اي، يك عدد است كه 0 نشانه نادرست و هر عدد ديگر نشانه درست است. بنابراين در قسمت شرط يك دستور if مي توان بجاي يك عبارت مقايسه اي، هر عبارت ديگري كه يك مقدار عددي بازگرداند نيز قرار داد! بعنوان مثال مي توان بجاي دستور

if (a==0) …

از دستور زير استفاده كرد:

if (!a) …

دراينصورت چنانچه a برابر صفر باشد، نادرست تلقي خواهد شد و در نتيجه نقيض آن يعني ! ، درست محسوب مي گردد.
يك روش متداول استفاده از دستور if، استفاده از if هاي تودرتو مي باشد كه در مثال بالا نيز ديده مي شود. دراينحالت مجموعه اي از عبارات if-else-if بصورت متداخل قرار داده مي شوند. بعنوان نمونه به مثال زير توجه كنيد:

if (grade> = 18) printf("good!");
else if (grade> = 15) printf("medium!");
else if (grade> = 12) printf("rather weak!");
else if (grade> = 10) printf("weak");
else printf("failed!");

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

مشكلي كه در مورد if هاي تودرتو پيش مي آيد، مسئله تعيين if مربوط به هر else است. بعنوان مثال در مورد دستور زير، else به كدام if تعلق دارد؟

if (a if (c ;
else ;

همانطور كه از دندانه گذاري نيز مشخص است، else مربوط به دومين if مي باشد. يعني درصورتي اجرا خواهد شد كه a

if (a < b) if (a if (c ; if (c ;
else ; }
else ; else ;

بعنوان يك مثال ديگر، به نمونه زير دقت كنيد:

if () {
if ()
if () ;
else ; // this refer to if ()
}
else ;//this refer to if

برنامه 2) برنامه اي بنويسيد كه 3 عدد را دريافت و حداكثر آنها را چاپ كند.

#include
void main() {
int a, b, c, max;
printf("Please enter 3 numbers :");
scanf("%d %d %d",&a, &b, &c);
if (a> b)
if (a> c) max = a;
else max= c;
else if (b> c) max = b;
else max = c;
printf("Maximum is %d",max);
}

ساختار تكرار while

همانطور كه در بخش الگوريتمها نيز گفته شد، يك ساختار تكرار باعث مي شود تا زمانيكه شرط خاصي برقرار است، عمليات مشخصي تكرار گردد. دستور while نيز باعث ايجاد يك حلقه تكرار به شكل زير مي گردد:

while () ;

اين  دستور  باعث  مي  شود  تا  زمانيكه  شرط  موجود  در  قسمت  درست است،  دستور   قسمت  تكرار شود، و به محض اينكه شرط نادرست گردد، كنترل اجرا به دستور بعد از حلقه مي رود.

بازهم دستور موجود در قسمت مي تواند يك دستور مركب باشد، دراينصورت دستور بصورت زير درخواهد آمد:

while () {
;
;
…….
;
}

برنامه 3) برنامه اي بنويسيد كه يك عدد را دريافت و فاكتوريال آن را محاسبه و چاپ نمايد.

#include
void main() {
int i,number;
long int factorial;
printf("Please enter number :");
scanf("%d",&number);
factorial = 1;
i = 1;
while (i <= number) {
factorial *= i;
i ++;
}
printf("Factorial of %d is %ld"number,factorial);
}

برنامه 4) برنامه اي بنويسيد كه يك متن را از كاربر دريافت و آن را با حروف بزرگ چاپ كند.

#include
void main() {
char ch;
ch = getch() ;
while (ch != 13) {
if (ch>= 'a' && ch <= 'z')
ch -= 32;
putch(ch);
ch = getch();
}
}

ساختار تكرار for

همانگونه كه در مثال مربوط به حل مسئله فاكتوريال ديده مي شود، گاهي نياز به حلقه تكراري داريم كه به تعداد دفعات مشخصي تكرار گردد. در چنين مواقعي با استفاده از يك متغير شمارنده، تعداد تكرارها را تا رسيدن به مقدار مورد نظر می شماریم و سپس به حلقه پایان می دهیم. به چنین حلقه هایی، تکرار تحت کنترل شمارنده یا تکرار معین می گوییم، چرا که تعداد تکرار ها از قبل مشخص است. چنین حلقه ای دارای 3 جزء اصلی می باشد:

1- مقداردهی اولیه به متغیر شمارنده حلقه
2- شرط پایان حلقه (پایان شمارش)
3- نحوه افزایش متغیر شمارنده

از آنجا که در تمام حلقه هایی که تکرار معین دارند، همین ساختار استفاده می شود؛ در اکثر زبانهای برنامه سازی یک ساختار تکرار ویژه، بنام حلقه for، برای اینکار در نظر گرفته شده است. اما در این بین، حلقه تکرار for در زبان C دارای ویژگیهای خاصی است که آنرا از سایر زبانها متمایز کرده و به آن قدرت بسیار بالایی داده است. شکل کلی این دستور بصورت زیر است:

for ( ; ; ) ;

وظایف عبارات فوق بشرح زیر است :

1- ، مقداردهی اولیه به متغیر حلقه

2- ، شرط اجرای حلقه

3- ،نحوه افزایش متغیر حلقه

البته همانندموارد قبل بازهم قسمت می تواند یک دستور مرکب باشد. نحوه کار حلقه بدینصورت است که در ابتدای شروع حلقه فقط برای یکبار اجرا می شود. سپس عبارت بررسی می گردد و در صورتیکه درست ارزیابی شود (≠ 0)، آنگاه دستور اجرا شده و سپس به ابتدای حلقه باز می گردد. از اجرای دوم به بعد، ابتدا عبارت اجرا می گردد (یعنی متغیر حلقه افزایش می یابد) و سپس عبارت بررسی می گردد و مجددا درصورت درست بودن، حلقه تکرار می شود. اینکار تا زمانیکه مقدار عبارت نادرست ( = 0) ارزیابی شود، تکرار می گردد. به محض اینکه این اتفاق بیفتد، کنترل اجرا به دستور پس از حلقه انتقال می یابد.
درحقیقت هر حلقه for معادل با حلقه while زیر است:

;
while () {
;
;
}

بعنوان یک مثال ساده، تکه برنامه زیر اعداد بین 0 تا 100 را چاپ می نماید:

int count;
for (count = 0; count <= 100; count ++)
printf(“%d “,count);

اگر بخواهيم تنها مضارب 5 چاپ شوند، حلقه را به شكل زير تغيير مي دهيم:

for (count = 0; count <= 100; count += 5)

حتي مي توان مضارب 5 را از آخر به اول چاپ كرد:

for (count = 100; count> = 0; count -= 5)

قسمت شرط مي تواند يك شرط مركب نيز باشد، بعنوان مثال:

for (count = 0; count <100 && sw==1; count ++)

كه در اينصورت در هربار اجراي حلقه، علاوه بر مقدار شمارنده، مقدار متغير sw نيز بررسي مي گردد.

نكته آخر اينكه قسمت مقدار دهي اوليه و افزايش متغير نيز مي توانند شامل چند عبارت باشند كه در اينصورت با كاما از يكديگر جدا مي شوند. بعنوان مثال:

for (a = 0, b = 100; b – a> 50; a++, b--)

در ادامه یک مثال کاملتر برای تشریح این حلقه آمده است:

برنامه 5) برنامه ای بنویسید که تعدادی عدد را از کاربر دریافت و 2 عدد بزرگتر و مجموع آنها را محاسبه و چاپ نماید.

#include
void main() {
int i, n, number;
int sum, max1, max2;
printf(“please enter n : “);
scanf(“%d”,&n);
sum = 0;
max1 = max2 = -1;
for (i=1 ; iprintf(“enter number : “);
scanf(“%d”,&number);
sum += number;
if (number> max1) {
max2 = max1;
max1 = number;
}
else if (number> max2)
max2 = number;
} //end for
printf(“Sum = %d, Maximum 1=%d, Maximum 2= d”, sum, max1, max2);
}

نكته جالب در مورد حلقه for آنستكه مي توان هريك از 3 عبارت فوق را حذف كرد. به مثالهاي زير توجه كنيد:

for (;i<100; i++)

مقداردهي اوليه حذف شده است. اين در صورتي است كه بنحوي قبل از شروع حلقه، مقدار متغير i تعيين شده باشد.

for (i= 0;i<100;)

نحوه افزايش متغير حلقه حذف شده است. اين مورد زماني بكار مي رود كه نحوه افزايش متغير حلقه پيچيده بوده و توسط برنامه نويس در داخل حلقه انجام شود.

for (;i<100;)

هر دو مورد فوق حذف شده است.

for (i=0; ;i++)

شرط ادامه حلقه حذف شده است. اين مورد زياد متداول نيست و ممكن است باعث شود حلقه براي هميشه اجرا شود. در چنين مواردي حتما بايد در داخل حلقه با استفاده از دستور break (كه در قسمتهاي بعدي توضيح داده خواهد شد)، راهي براي خروج از حلقه قرار داده شود.

حلقه do / while

همانگونه كه در قسمت الگوريتمها توضيح داده شد، در بعضي مواقع لازم است كه شرط ، در انتهاي حلقه بررسي گردد. دستور do / while از نوع حلقه هايي است كه ابتدا دستورات را اجرا كرده و سپس شرط ادامه حلقه را بررسي مي نمايد. شكل كلي اين دستور بصورت زير است:

do
;
while () ;

نحوه كار اين حلقه به اين صورت است كه ابتدا دستور اجرا مي گردد، سپس شرط حلقه بررسي شده و درصورتيكه درست بود، به ابتداي حلقه باز گشته و آن را مجددا اجرا مي كند. البته دستور مي تواند يك دستور مركب باشد.

بعنوان يك مثال كوچك، ممكن است شما از كاربر خواسته ايد كه اعلام كند آيا مايل به ادامه هست يا خير؟ وي بايد پاسخ y يا n بدهد، اما ممكن است يك حرف اشتباه (مانند m) وارد كند. قصد داريم تكه برنامه اي بنويسيم كه عمل دريافت پاسخ را تا زمانيكه يك حرف درست وارد شود، تكرار كند. مسلم است كه بايد ابتدا يك پاسخ وارد شود و سپس درستي آن بررسي گردد.

char answer;
do {
printf("Do you want to continue (y/n) ?");
answer = getch();
} while (answer != 'y' && answer != 'n') ;

بعنوان يك نمونه كاملتر به مثال زير توجه كنيد.

برنامه 6) فرض كنيد نمرات يك گروه از دانشجويان بصورت درجه بندي (A, B, C and D) آماده شده است. برنامه اي بنويسيد كه نمرات دانشجويان را دريافت و در پايان درصد هريك از نمرات را محاسبه و چاپ نمايد. در ضمن از آنجا كه تعداد دانشجويان از قبل مشخص نيست، كاربر در انتهاي نمرات، حرف Q (مخفف Quit) را وارد مي نمايد.

#include
void main() {
int aCount, bCount, cCount, dCount, n;
char grade;
aCount = bCount = cCount = dCount = n = 0;
do {
printf("Enter grade (Q for Quit) : ");
grade = getch() ;
n ++;
if (grade == 'A') aCount ++;
else if (grade == 'B') bCount ++;
else if (grade == 'C') cCount ++;
else if (grade == 'D') dCount ++;
else if (grade == 'Q') n --;
else {
printf("Wrong grade, try again.\n");
n --;
}
} while (grade != 'Q' ) ;
printf("Statistics :\n");
printf("Grade A : %f percent\n", float(aCount)/float(n));
printf("Grade B : %f percent\n", float(bCount)/float(n));
printf("Grade C : %f percent\n", float(cCount)/float(n));
printf("Grade D : %f percent\n", float(dCount)/float(n));
} // end main
ساختار switch / case

اگر مجددا به برنامه 6 دقت كنيد، خواهيد ديد كه در بعضي موارد قصد داريم برحسب مقادير مختلف يك عبارت (در اينجا مقدار متغير grade)، عمليات متفاوتي را انجام دهيم. گرچه اينكار با استفاده از دستورات if / else متداخل قابل انجام است، اما ساختار مناسبتري نيز براي اينكار وجود دارد، كه به آن ساختار چندانتخابي مي گوييم. شكل كلي ان ساختار بصورت زير است:

switch () {
case : ;
;

;
case : ;
;

;

default : ;
;

;
}

برنامه 7) برنامه 6 را با استفاده از دستور switch / case بازنويسي نماييد. برنامه را بگونه اي بنويسيد كه حروف بزرگ و كوچك هردو مورد قبول واقع شود.

#include
void main() {
int aCount, bCount, cCount, dCount, n;
char grade;
aCount = bCount = cCount = dCount = n = 0;
do {
printf("Enter grade (Q for Quit) : ");
grade = getch() ;
n ++;
switch (grade) {
case 'A' :
case 'a' : aCount ++; break ;
case 'B' :
case 'b' : bCount ++; break ;
case 'C' :
case 'c' : cCount ++; break ;
case 'D' :
case 'd' : dCount ++; break ;
case 'Q' :
case 'q' : n--; break ;
default : printf("Wrong grade, try again.\n");
n --;
} //end switch
} while (grade != 'Q' ) ;
printf("Statistics :\n");
printf("Grade A : %f percent\n", float(aCount)/float(n));
printf("Grade B : %f percent\n", float(bCount)/float(n));
printf("Grade C : %f percent\n", float(cCount)/float(n));
printf("Grade D : %f percent\n", float(dCount)/float(n));
} // end main

برنامه 8) برنامه اي بنويسيد كه يك عدد، يك عملگر و يك عدد ديگر را از كاربر دريافت و پس از اعمال عملگر برروي دو عدد، حاصل را چاپ نمايد.

#include
void main() {
int number2, number2, result;
char op ;
printf("Please enter number1 operator number2 : ");
scanf("%d %c %d",&number1, &number2, &op, &number3);
result = 0;
switch (op) {
case '+' : result = number1 + number2 ; break;
case '-' : result = number1 - number2 ; break;
case '*' : result = number1 * number2 ; break;
case '/' : if (number2 != 0) result = number1 / number2 ;
else printf("There is no answer!\n");
break;
case '%' : if (number2 != 0) result = number1 % number2 ;
else printf("There is no answer!\n");
break;
default : printf("invalid operator!\n");
}
printf("Result = %d",&result);
}

دستورات break و continue

اين دستورات قادرند مسير اجراي برنامه را در يك حلقه تكرار تغيير دهند. البته اين تغيير مسير بصورت كنترل شده بوده و همانند دستور goto نمي توان به هرجاي دلخواه پرش كرد.

چنانچه دستور break در يك ساختار while، for، do/while ويا switch بكار رود، باعث مي شود كه بلافاصله كنترل اجراي برنامه از ساختار خارج شده و به اولين دستور پس از ساختار برود. قبلا كاربرد اين دستور را در switch ديده ايد. در اينجا به مثال زير دقت كنيد:

برنامه 9) برنامه 5 را بگونه اي تغيير دهيد كه فقط اعداد مثبت را بپذيرد، و درصورتيكه عدد منفي وارد شد، بلافاصله به عمليات خاتمه داده و نتايج تا همين نقطه را چاپ نمايد.

#include
void main() {
int i, n, number;
int sum, max1, max2;
printf(“please enter n : “);
scanf(“%d”,&n);
sum = 0;
max1 = max2 = -1;
for (i=1 ; iprintf(“enter number : “);
scanf(“%d”,&number);
if (number <0) break; // this is the difference
sum += number;
if (number> max1) {
max2 = max1;
max1 = number;
}
else if (number> max2)
max2 = number;
} //end for
printf(“Sum = %d, Maximum 1=%d, Maximum 2= d”, sum, max1, max2);
}

اما دستور continue فقط در حلقه هاي while، for و do/while بكار مي رود. نحوه عمل آن بدين صورت است كه به محض آنكه كنترل اجرا به اين دستور برسد، بلافاصله از باقيمانده حلقه صرفنظر كرده و مجددا به ابتداي حلقه باز مي گردد و اجراي آن را از سر مي گيرد. در مورد حلقه for، پس از بازگشت به ابتداي حلقه، عمل افزايش مقدار متغير حلقه نيز صورت مي پذيرد.

بعنوان مثال، چنانچه بخواهيم برنامه 9 را بگونه اي تغيير دهيم كه از اعداد منفي صرفنظر كند و آنها را در محاسبات لحاظ نكند، كافيست دستور

if (number <0) break;

را به دستور زير تبديل كنيم:

if (number <0) continue;

دراينصورت، چنانچه عدد منفي باشد، بدون اينكه محاسبات بعدي انجام شوند، كنترل به ابتداي حلقه بازگشته و عدد بعدي را دريافت مي كند.

|+| نوشته شده توسط .; *'. دانشجوي سماء .'*;. در سه شنبه بیست و هفتم آذر 1386  |
 برنامه نويسي با C (جلسه اول)

بنام خدا

برنامه نويسي با C :

         سلام خدمت دوستان عزيز: حتما از قابليت ها و قدرت زبان C خيلي چيزها شنيده ايد. بايد بگويم اين گفته هم درست و هم نادرست است. چون نوع برنامه ا يكه ميخواهيم بنويسيم تعيين مي كند كه كدام زبان براي ا ين برنامه مناسب تر است. زبان C از قدرتمندترين زبانهاست كه سالهاست در صنايع و تجارت و خيلي چيزهاي ديگر مورد استفاده قرار گرفته است. زبان C يك زبان سطح مياني ميباشد. يعني نه سطح بالاست(مانند پاسكال)و نه سطح پايين (مانند زبان اسمبلي). بلكه قابليتهاي هر دو اينها را دارد. به همين دليل هم است كه زبان C براي نوشتن برنامه هاي سيستمي مانند سيستم عامل و كامپايلر و... بسيار مناسب است. بطوري كه قدرمندترين و پر كاربردترين سيستمهاي عامل جهان را با اين زبان يا با كمك اين زبان نوشته اند. مثلا يونيكس را كاملا با اين زبان نوشته اند و در ويندوز هم از C و اسمبلي (تا جايي كه ميدانم) استفاده كرده اند.من به تمام كساني كه مي خواهند در علم كامپيوتر متخصص شوند و تمام كساني كه ميخواهند با برنامه هاي فوق العاده ديگران را متحير كنند توصيه مي كنم كه زبان C را ياد بگيرند. مقدمه چيني كافيه و بهتره بريم به موضوع اصلي. قبل از هر چيز چند نكته در موردC هست كه بايد رعايت شوند:

  • دستورات زبان C به حروف كوچك و بزرگ حساس هستند و تمام كلمات كليدي اين زبان با حروف كوچك هستند.( case sensitive )
  • حداكثر طول يك دستور 255 كاراكتر است.
  • تمامي دستورات به ; ختم مي شوند.(سمي كولون)
  • توضيحات در C بين //(براي يك خط) و /* ..... */ (براي چند خط) قرار مي گيرند.
  • ساختار يك برنامه ساده درC بصورت زير مي باشد:

 

 void main() 
 {
    تعريف متغيرها
          :
    دستورات
          : 
 }

       كاراكترهاي } و { نشان دهنده آغاز و پايان يك بلو ك ميباشند. البته اين ساختار خيلي ساده است و در جلسه هاي آينده اين ساختار را گسترش خواهيم داد.

انواع داده ها در C :

  • داده هاي صحيح(integer):   براي تعريف از كلمه كليدي int استفاده مي كنيم. 
  • داده هاي اعشاري(float): براي تعريف از كلمه كليدي floatاستفاده مي كنيم.
  • داده هاي اعشاري با دقت مضاعف: براي تعريف از كلمه كليدي double استفاده مي كنيم.
  • داده هاي كاراكتري: براي تعريف از كلمه كليدي char استفاده مي كنيم.
  • داده تهي: براي تعريف از كلمه كليدي void استفاده مي كنيم.
  • براي تعريف رشته ها در C نيز از char استفاده ميكنيم .البته رشته در C وجود ندارد و ما از آرايه كاراكتري براي تعريف رشته استفاده مي كنيم. كاراكتر ها در C بين گيومه(‘ ‘) و رشته ها بين كوتيشن(“ “)قرار مي گيرند.

نحوه تعريف متغيرها:

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

;نام متغير  نوع  

 براي مثال:

; int a  

; float a,b,c  

; int a=5,b18  

; char ch  

  خط اول متغير a را از نوع صحيح، خط دوم متغيرهاي a و bو c را از نوع اعشاري و خط آخر ch را از نوع كاراكتري تعريف مي كند . خط سوم علاوه بر تعريف متغير a مقدار 5 را نيز در آن قرار مي دهد همچنين متغير b18 را نيز بدون مقدار تعريف ميكند.

عملگرهاي زبان C :

   (عملگرهاي محاسباتي)

مثال

مفهوم

عملگر

x+y

عمل جمع

 

+

x-y                       و     -x

تفريق و منفي

 

-

x*y

ضرب

 

*

x/y

تقسيم صحيح و اعشاري

 

/

x%y

باقيمانده تقسيم

 

%

 ++x            و               x++

افزايش يك واحدي(incremnt)

 

++

   x--      و                --x

كاهش يك واحدي(decrement)

 

--

(عملگرهاي منطقي)

مثال

مفهوم

عملگر

R1 && R2

AND منطقي

 

&&

R1 || R2

OR منطقي

 

||

!(R)

NOT منطقي

 

!

يك دسته عملگرهاي ديگر به نام عملگرهاي باينري وجود دارند كه با بيت ها كار مي كنند و چون فعلا احتياجي به آنها نيست بعدا در زمان مناسب خواهم گفت. فعلا مهمترين عملگرها، عملگرهاي محاسباتي هستند. جلسه آينده دستورات ورودي و خروجي را توضيح خواهم داد و اولين برنامه را در C خواهيم نوشت

 

|+| نوشته شده توسط .; *'. دانشجوي سماء .'*;. در پنجشنبه پانزدهم آذر 1386  |
  مقدمه بر زبان c
مقدمه ای بر زبان C

پس از نوشتن یک الگوریتم باید آن را با استفاده از یک زبان برنامه نویسی تبدیل به یک برنامه قابل اجرا برای کامپیوتر نماییم. این زبانها به سه دسته کلی تقسیم میگردند :

1- زبان ماشین (سطح پایین) : این زبان مستقیما با صفر و یک نوشته می شود و بدون هیچ واسطه ای برروی کامپیوتر قابل اجرا است. طراحان سخت افزار هر کامپیوتر، زبان ماشین خاص خود را برای آن ماشین طراحی می نمایند. به همین دلیل هر برنامه ای که به زبان ماشین نوشته شود، فقط برروی همان ماشین خاص کار می کند، بهمین دلیل برنامه های نوشته شده به زبان ماشین را غیر قابل حمل می نامند. از طرف دیگر یادگیری این زبان بسیار مشکل بوده و برنامه نویسی با آن نیز بسیار سخت است و همچنین احتمال بروز خطا نیز در آن زیاد است.

2- زبان اسمبلی : این زبان شکل ساده تر زبان ماشین است، بدین صورت که برای هر دستورالعمل زبان ماشین، یک اسم نمادین انتخاب شده است (مانند دستور ADD بجای کد دودویی دستورالعمل جمع) که بخاطر سپردن و برنامه نویسی با آنها برای انسانها ساده تر است. اما این برنامه ها برای ماشین قابل فهم نیست و باید قبل از اجرا شدن توسط برنامه مترجمی بنام اسمبلر به زبان ماشین تبدیل شود. توجه کنید که از آنجا که هر دستور زبان اسمبلی معادل یک دستور زبان ماشین است، این زبان نیز وابسته به ماشین می باشد و برنامه های نوشته شده به این زبان فقط برروی همان کامپیوتری که برای آن نوشته شده اند قابل اجرا است. علاوه براین کار با این زبانها هنوز هم نسبتا مشکل بود و فقط متخصصین کامپیوتر قادر به استفاده از آنها بودند.

3- زبانهای سطح بالا : دستورالعملهای این زبانها بسیار نزدیک به زبان انسانها (بطور مشخص زبان انگلیسی) می باشد و بهمین دلیل برنامه نویسی به آنها بسیار ساده تر بوده و می توان الگوریتمها را به راحتی به این زبانها تبدیل کرد. از آنجا که این زبانها به هیچ ماشین خاصی وابسته نیستند، برنامه های نوشته شده با این زبانها (تا حد زیادی) قابل حمل می باشند. مثالهایی از این زبانها عبارتند از :

- بیسیک (Basic): برای کاربردهای آموزشی
- فرترن (Fortran) : برای کاربردهای علمی و مهندسی
- پاسکال (Pascal) : برای کاربردهای آموزشی و علمی

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

تاریخچه C
 
برای بررسی تاریخچه زبان C باید به سال 1967 بازگردیم که مارتین ریچاردز زبان BCPL را برای نوشتن نرم افزارهای سیستم عامل و کامپایلر در دانشگاه کمبریج ابداع کرد. سپس در سال 1970 کن تامپسون زبان B را بر مبنای ویژگیهای زبان BCPL نوشت و از آن برای ایجاد اولین نسخه های سیستم عامل Unix در آزمایشگاههای بل استفاده کرد. زبان C در سال 1972 توسط دنیس ریچی از روی زبان B و BCPL در آزمایشگاه بل ساخته شد و ویژگیهای جدیدی همچون نظارت بر نوع داده ها نیز به آن اضافه شد. ریچی از این زبان برای ایجاد سیستم عامل Unix استفاده کرد اما بعدها اکثر سیستم عاملهای دیگر نیز با همین زبان نوشته شدند. این زبان با سرعت بسیاری گسترش یافت و چاپ کتاب "The C Programming Language" در سال 1978 توسط کرنیگان و ریچی باعث رشد روزافزون این زبان در جهان شد.

متاسفانه استفاده گسترده این زبان در انواع کامپیوترها و سخت افزارهای مختلف باعث شد که نسخه های مختلفی از این زبان بوجود آید که با یکدیگر ناسازگار بودند. در سال 1983 انستیتوی ملی استاندارد آمریکا (ANSI) کمیته ای موسوم به X3J11 را را مامور کرد تا یک تعریف فاقد ابهام و مستقل از ماشین را از این زبان تدوین نماید.در سال 1989 این استاندارد تحت عنوان ANSI C به تصویب رسید و سپس در سال 1990، سازمان استانداردهای بین المللی (ISO) نیز این استاندارد را پذیرفت و مستندات مشترک آنها تحت عنوان ANSI/ISO C منتشر گردید.

در سالهای بعد و با ظهور روشهای برنامه نویسی شی گرا نسخه جدیدی از زبان C بنام C++ توسط بیارنه استراوستروپ در اوایل 1980 در آزمایشگاه بل توسعه یافت. در C++ علاوه بر امکانات جدیدی که به زبان C اضافه شده است، خاصیت شی گرایی را نیز به آن اضافه کرده است.

با گسترش شبکه و اینترنت، نیاز به زبانی احساس شد که برنامه های آن بتوانند برروی هر ماشین و هر سیستم عامل دلخواهی اجرا گردد. شرکت سان مایکروسیستمز در سال 1995 میلادی زبان Java را برمبنای C و C++ ایجاد کرد که هم اکنون از آن در سطح وسیعی استفاده می شود و برنامه های نوشته شده به آن برروی هر کامپیوتری که از Java پشتیبانی کند(تقریبا تمام سیستمهای شناخته شده) قابل اجرا می باشد. شرکت مایکروسافت در رقابت با شرکت سان، در سال 2002 زبان جدیدی بنام C# (سی شارپ) را ارائه داد که رقیبی برای Java بشمار می رود.

برنامه نویسی ساخت یافته

در دهه 1960 میلادی توسعه نرم افزار دچار مشکلات عدیده ای شد. در آن زمان سبک خاصی برای برنامه نویسی وجود نداشت و برنامه ها بدون هیچگونه ساختار خاصی نوشته می شدند. وجود دستور پرش (goto) نیز مشکلات بسیاری را برای فهم و درک برنامه توسط افراد دیگر ایجاد می کرد، چرا که جریان اجرای برنامه مرتبا دچار تغییر جهت شده و دنبال کردن آن دشوار می گردید. لذا نوشتن برنامه ها عملی بسیار زمان بر و پرهزینه شده بود و معمولا اشکال زدایی, اعمال تغییرات و گسترش برنامه ها بسیار مشکل بود. فعالیتهای پژوهشی در این دهه باعث بوجود آمدن سبک جدیدی از برنامه نویسی بنام روش ساختیافته گردید؛ روش منظمی که باعث ایجاد برنامه هایی کاملا واضح و خوانا گردید که اشکال زدایی و خطایابی آنها نیز بسیار ساده تر بود.

اصلی ترین نکته در این روش عدم استفاده از دستور پرش (goto) است. تحقیقات بوهم و ژاکوپینی نشان داد که می توان هر برنامه ای را بدون دستور پرش و فقط با استفاده از 3 ساختار کنترلی ترتیب، انتخاب و تکرار نوشت.

ساختار ترتیب، همان اجرای دستورات بصورت متوالی (یکی پس از دیگری) است که کلیه زبانهای برنامه نویسی در حالت عادی بهمان صورت عمل می کنند.

ساختار انتخاب به برنامه نویس اجازه می دهد که براساس درستی یا نادرستی یک شرط، تصمیم بگیرد کدام مجموعه از دستورات اجرا شود.

ساختار تکرار نیز به برنامه نویسان اجازه می دهد مجموعه خاصی از دستورات را تا زمانیکه شرط خاصی برقرار باشد، تکرار نماید.
(برای شرح بیشتر موارد فوق به فصل 3 مراجعه نمایید).

هر برنامه ساختیافته از تعدادی بلوک تشکیل می شود که این بلوکها به ترتیب اجرا می شوند تا برنامه خاتمه یابد(ساختار ترتیب). هر بلوک می تواند یک دستورساده مانند خواندن، نوشتن یا تخصیص مقدار به یک متغیر باشد و یا اینکه شامل دستوراتی باشد که یکی از 3 ساختار فوق را پیاده سازی کنند. نکته مهم اینجاست که درمورد دستورات داخل هر بلوک نیز همین قوانین برقرار است و این دستورات می توانند از تعدادی بلوک به شرح فوق ایجاد شوند و تشکیل ساختارهایی مانند حلقه های تودرتو را دهند.

نکته مهم اینجاست که طبق قوانین فوق یک حلقه تکرار یا بطور کامل داخل حلقه تکرار دیگر است و یا بطور کامل خارج آن قرار می گیرد و هیچگاه حلقه های روی هم افتاده نخواهیم داشت.

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

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

 مراحل اجرای یک برنامه C

برای اجرای یک برنامه C ابتدا باید آن را نوشت. برای اینکار می توان از هر ویرایشگر متنی موجود استفاده کرد و سپس فایل حاصل را با پسوند .C ذخیره نمود (فایلهای C++ با پسوند .CPP ذخیره می گردند). به این فایل، کد مبدا (source code) گفته می شود. مرحله بعدی تبدیل کد مبدا به زبان ماشین است که به آن کد مقصد (object code) گفته می شود. همانطورکه قبلا نیز گفته شد برای اینکار از یک برنامه مترجم بنام کامپایلر استفاده می شود. کامپایلرهای متعددی برای زبان C توسط شرکتهای مختلف و برای سیستم عاملهای مختلف نوشته شده است که می توانید برحسب نیاز از هریک از آنها استفاده نمایید. اما هنوز برنامه برای اجرا آماده نیست. معمولا برنامه نویسان از در برنامه های خود از یک سری از کدهای از پیش آماده شده برای انجام عملیات متداول (مانند محاسبه جذر و یا سینوس) استفاده می کنند که برنامه آنها قبلا نوشته و ترجمه شده است. این برنامه ها یا در قالب کتابخانه های استاندارد توسط شرکتهای ارائه کننده نرم افزار عرضه شده است و یا توسط دیگر همکاران برنامه نویس اصلی نوشته و در اختیار وی قرار داده شده است. در این مرحله باید کد مقصد برنامه اصلی با کدهای مربوط به این برنامه های کمکی پیوند زده شود. برای اینکار نیاز به یک پیوند زننده (Linker) داریم و نتیجه این عمل یک فایل قابل اجرا خواهد بود (در ویندوز این فایل پسوند .EXE خواهد داشت). مرحله بعدی اجرای برنامه و دادن ورودیهای لازم به آن و اخذ خروجیها می باشد. در شکل زیر این مراحل نشان داده شده اند.

مسلما طی مراحل بالا برای اجرای هر برنامه زمانبر می باشد، بهمین دلیل اکثر تولید کنندگان کامپایلرها، محیطهایی را برای برنامه نویسی ارائه کرده اند که کلیه مراحل بالا را بطور اتوماتیک انجام می دهند.

به این محیطها IDE (Integrated Development Environment) یا محیط مجتمع توسعه نرم افزار گفته می شود. این محیطها دارای یک ویرایشگر متن می باشند که معمولا دارای خواص جالبی همچون استفاده از رنگهای مختلف برای نشان دادن اجزای مختلف برنامه مانند کلمات کلیدی، و یا قابلیت تکمیل اتوماتیک قسمتهای مختلف برنامه می باشد. پس از نوشتن برنامه و با انتخاب گزینه ای مانند Run کلیه عملیات فوق بطور اتوماتیک انجام شده و برنامه اجرا می گردد. علاوه براين، اين محيطها معمولا داراي امكانات اشكالزدايي برنامه (Debug) نيز مي باشند كه شامل مواردي همچون اجراي خط به خط برنامه و يا ديدن محتويات متغيرها در زمان اجرا است. چند محيط معروف برنامه نويسي عبارتند از :

Borland C++ 3.1 براي محيط DOS
Borland C++ از نسخه 4 به بالا براي Windows
Microsoft Visual C++ براي محيط Windows
Borland C++ Builder برای محیط Windows

براي شروع ما از محيط Borland C++ 3.1 تحت Dos كه نحوه كار ساده تري نسبت به سايرين دارد استفاده مي كنيم.
پس از نصب اين نرم افزار، برنامه BC.exe را اجرا كنيد تا وارد محيط borland c شويد

همانطور كه مي بينيد، اين محيط از 3 قسمت اصلي تشكيل شده است :
- بخش ويرايش برنامه : بخش آبي رنگ وسط مي باشد كه در حقيقت يك ويرايشگر است كه برنامه در آن تايپ مي شود. همانطور كه مي بينيد در اين ويرايشگر از رنگهاي مختلف براي نشان دادن قسمتهاي مختلف برنامه استفاده مي شود. مثلا براي كلمات كليدي از رنگ سفيد استفاده شده است.

- بخش منوهاي كاري : اين بخش كه در قسمت بالا واقع شده است،- حاوي تعدادي منو (گزينه) براي انجام وظايف مختلف است. خلاصه اين عمليات عبارتند از :
o منوي File : عملياتي مانند باز كردن و يا ذخيره يك برنامه
o منوي Edit : عمليات ويرايش مانند حذف،o كپي و يا چسباندن يك قسمت از برنامه
o منوي Search : جستجوي و يا تعويض يك متن در برنامه
o منوي Run : اجراي برنامه بصورت كامل يا دستور به دستور
o منوي Compile : عمليات مربوط به كامپايل و پيوند برنامه
o منوي Debug : عمليات مربوط به اشكالزدايي مانند ديدن مقادير متغيرها در زمان اجرا
o منوي Project : عمليات مربوط به مديريت برنامه هايي كه شامل چندين فايل مستقل هستند (پروژه)
o منوي Options : عمليات مربوط به تنظيمات سيستم مانند نحوه كامپايل و يا رنگ پيش فرض محيط
o منوي Windows : عمليات مربوط به پنجره هاي باز فعلي (مربوط به چندين برنامه يا نمايش متغيرها و ... ) 
 خطاهای برنامه نویسی

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

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

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

a. خطاهای مهلک: در این دسته خطاها کامپیوتر بلافاصله اجرای برنامه را متوقف کرده و خطا را به کاربر گزارش می کند. مثال معروف این خطاها،b. خطای تقسیم بر صفر می باشد.

c. خطاهای غیرمهلک: در این دسته خطا،d. اجرای برنامه ادامه می یابد ولی برنامه نتایج اشتباه تولید می نماید. بعنوان مثال ممکن است دراثر وجود یک خطای منطقی در یک برنامه حقوق و دستمزد،e. حقوق کارمندان اشتباه محاسبه شود و تا مدتها نیز کسی متوجه این خطا نشود!

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

آخرین نکته اینکه در اصطلاح برنامه نویسی به هر گونه خطا، bug و به رفع خطا debug گفته می شود.

يك برنامه نمونه

در اين قسمت براي آشنايي اوليه با زبان C يك برنامه نمونه آورده شده است كه بدون هيچ تغييري در محيط BorlandCPP  قابل اجرا است.
// This Program Computes the Area of a Circle
#include
void main() {
int radius ;
float area;
printf("please enter radius : ");
scanf("%d",&radius);
area = 2 * 3.14 * radius;
printf("Area is %f",area);
{
please enter radius : 10
Area is 62.8
 

درمورد برنامه فوق به نکات زیر توجه کنید :

- خط اول یک توضیح درمورد برنامه است. در زبان C برای توضیحات یک خطی از علامت // استفاده می گردد. اما چنانچه توضیحات بیش از یک خط بود،- آن را با علامت /* شروع کرده و با */ پایان دهید. کامپایلر از این توضیحات صرفنظر خواهد کرد. این توضیحات باعث می شوند که برنامه شما خواناتر شده و دیگران بهتر آن را درک کنند.

- هر دستوری که با علامت # شروع شود،- یک دستور C نیست،- بلکه جزو دستورات پیش پردازنده محسوب می گردد. دستورات پیش پردازنده،- دستوراتی هستند که توسط کامپایلر قبل از شروع به کامپایل انجام می شوند. بعنوان مثال دستور #include باعث می شود که تعاریف اولیه مربوط به توابعی (زیربرنامه هایی) که قصد استفاده از آنها را داریم به برنامه اضافه شود. در مثال بالا برای استفاده از توابع printf و scanf که در کتابخانه استاندارد C تعریف شده اند،- فایل سرآمد stdio.h را که این توابع در آن تعریف شده اند را استفاده کرده ایم.

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

- در زبان C هر بلوک برنامه با علامت { آغاز شده و با } پایان می یابد. این دو معادل دستورات begin و end در زبانهای دیگر ازجمله پاسکال می باشند که برای سادگی زبان انتخاب شده اند.

- دو خط بعدی به تعریف متغیرهای radius و area می پردازد. در زبان C قبل از استفاده از هر متغیری باید آن را اعلان نمایید. اعلان متغیر شامل نام و نوع متغیر است. در مثال فوق،- متغیر radius از نوع عدد صحیح(integer) و متغیر area از نوع عدد اعشاری (float) تعریف شده اند.

- توابع printf و scanf جزو کتابخانه استاندارد C محسوب می گردند و به ترتیب برای چاپ اطلاعات در خروجی استاندارد (نمایشگر) و دریافت اطلاعات از ورودی استاندارد (صفحه کلید) استفاده می شوند. برای چاپ رشته مورد نظر باید آنها را در داخل علامت " قرار داد. درمورد این توابع بعداد توضیح خواهیم داد.

- دقت کنید که در پایان هر دستورالعمل از علامت ; استفاده شده است. در مجموع C یک زبان قالب آزاد است و شما می توانید دستورات را به هر نحوی که دوست دارید قرار دهید (مثلا چند دستور در یک خط از برنامه). تنها چیزی که نشاندهنده پایان یک دستور است،- علامت ; است(و نه انتهای خط).

- از آنجا که C یک زبان قالب آزاد است،- می توان با استفاده از مکان نوشتن دستورات شکل بهتری به برنامه داد. بعنوان مثال دقت کنید که پس از شروع تابع main،- دستورات حدود 3 کاراکتر جلوتر نوشته شده اند. به این نحوه نوشتن دستورات دندانه گذاری می گویند. بطور کلی هربار که بلوک جدیدی آغاز می شود،- باید آن را کمی جلوتر برد. این مسئله باعث جدا شدن بلوکها از یکدیگر و خوانایی بهتر برنامه می شود.

- در پایان برنامه و در داخل مستطیل خاکستری،- یک نمونه از اجرای برنامه که شامل یک ورودی و خروجی نمونه است،- آورده شده است.
 

 

 برگرفته از نوشته های  مسعود  اشرفی 

mmab66@yahoo.com

 
|+| نوشته شده توسط .; *'. دانشجوي سماء .'*;. در دوشنبه دوازدهم آذر 1386  |
 چگونه ميتوان فايلهاي DLL بي مصرف را تشخيص داد

اگر محتويات فولدرهاي C:\Windows, C:\Windows\System

 را بررسي كنيد تعداد زياد فايلهاي با پسوند DLL خواهيد يافت كه بدون

استفاده هستند. براي اينكه فضاي هارد ديسك شما بيهوده اشغال نشود

مي توانيد از Windows Explorer استفاده كنيد تا بدانيد كه آيا يك فايل

 DLL هنوز استفاده مي شود يا خير؟

 براي انجام اين كار روي يك فايل DLL كليك سمت راست كنيد سپس

 Quick View را انتخاب كنيد در آنجا اطلاعاتي خواهيد يافت از آن جمله

كاربردهايي است كه براي آنها فايل DLL شما مورد استفاده قرار مي گيرد

 اگر اين كاربردها مدتهاست كه مورد استفاده شما قرار نگرفته و قرار نخواهد

گرفت مي توانيد با اطمينان خاطر آن فايل DLL را پاك كنيد. البته بايد خيلي

در انجام اين كار دقت كنيد توجه داشته باشيد كه اگر نمي توانيد در منوي

راست كليك Quick View را ببينيد به اين معني است كه شما بايد ابتدا آن

را از روي CD ويندوز خود نصب كنيد (از طريق كنترل پانل

 Add/Rremove Program و سپس منوي Windows Setup سپس

 Accessorise را انتخاب كرده وارد Detail مي شويد در حاليكه CD

ويندوز 98 خود را در CD-ROM قرار داده ايد Quik View را تيك بزنيد

تا اين ويژگي به ويندوز شما اضافه شود.

|+| نوشته شده توسط .; *'. دانشجوي سماء .'*;. در یکشنبه بیستم آبان 1386  |
 روش كار با modemspy و پيدا كردن شماره تلفن طرف هنگامه چت كردن
روش كار با modemspy و پيدا كردن شماره تلفن طرف هنگامه چت كردن

برنامه Modem spy چندين كار مهم را انجام مي دهد  


1- پيدا كردن شماره تلفن كسي كه با وي چت مي كنيم

2- ظبط مكالماتي كه از تلفن صورت مي گيرد

3- نمايش دادن شماره تلفن شخصي كه به شما تماس مي گيرد(Caller ID)

هر كس اين برنامه را مي خواهد اينجا را كليك كند. 

اينم رجيستر نامبرش :

Name: modemspy
SN: 14458


خوب حالا روش كار با نرم افزار:

بعد از دريافت و اجراي نرم افزار يك شمايل كوچك در نوار وظيفه ويندوز

مشاهده مي نماييد. كه براي دسترسي به ترم افزار مي توانيد روي آن كليك

كنيد.

ابتدا تنظيمات مربوط به نرم افزار:  www.farsiedu.com

روي منوي فايل كليك كرده و گزينه Preferences را انتخاب نماييد. سپس

زبانه Harware را انتخاب نماييد و در آنجا مودم خود را براي نرم افزار مشخص

نماييد. همچنين تيك هر دو گزينه را بزنيد و در پايين اين دو گزينه كارت صوتي

خود را براي نرم افزار مشخص نماييد.حال به سراغ تب Recording برويد اگر

بخواهيد تمامي مكالماتي كه با شما تماس گرفته مي شود را ظبط كنيد بايد

تيك مربوط به گزينه Record all incoming calls را بزنيد در قسمت Answer

a call in seconds نيز در جاي خالي بايد مدت زماني را كه براي فعال شدن

برنامه وقتي كه كسي با شما تماس مي گيرد براي ظبط مكالمات مي باشد

را وارد نماييد كه بهتر است زمان 10 ثانيه باشد. اگر بخواهيد كه شما

مكالماتي كه با ديگران تماس مي گيريد را ظبط كنيد بايد تيك مربوط به گزينه

Record all outcalling … را علامت بزنيد.البته اگر اين تيك فعال باشد برنامه

هر 30ثانيه خط تلفن را براي شناساي اينكه كسي صحبت مي كند يا نه چك

مي نمايد. براي تغيير اين زمان مي توانيد در قسمت Check for dial tone

زمان مربوطه را وارد نماييد.

حال تب Save as را انتخاب نماييد.در قسمت Change format مي توانيد

فرمت مناسب براي ظبط مكالمات را انتخاب نماييد

در قسمت Advanced نيز هيچ گونه تغييري ندهيد در انتها گزينه Apply را

كليك كنيد  www.farsiedu.com

حال دوباره به صفحه اصلي برنامه بر مي گرديم.در قسمت Input device

گزينه Modem و در قسمت Outpout device نيز Sound carad را انتخاب

نماييد و هر دو تيك كنار آنها را علامت بزنيد در پايين نرم افزار نيز تيك Record

all incoming calls را نيز علامت بزنيد. خوب تمام شد. اين نرم افزار به

شرطي كا مي كند كه مودم شما از قابليتهايي كه اين نرم افزار دارد و در بالا

معرفي شد پشتيباني كند اگر بعد از نصب نرم افزر با پيغام خطايي مواجه

شديد يعني مودم شما از اين قابليتها پشتيباني نمي كند

حالا فقط کافيه برنامه باز باشه .

اما چگونه هنگام چت شماره تلفن طرف رو پيدا کنيم:

برای اينکار شما بايد اول اين فايل پلاگين رو از اينجا دانلود کنيد.



در مرحله بعد اين فايل رو در پوشه plugin در مکانی که نرم افزار نصب شده

کپی کنيد.  www.farsiedu.com

حالا ازمنو plugin در بالای نرم افزار گزينه networking را فعال کنيد ( معمولا

خودش فعاله اما کار از محکم کاری عيب نميکنی) توجه کنيد هيچکدام از

تنضيمات آن را تغيير ندهيد . حالا کافيست نرم افزار باز باشد خود نرم افزار به

صورت خودکار شماره طرف رو بهتون نشون ميده .


حالا فقط کافيه برنامه باز باشه . 

منبع:www.farsiedu.com

|+| نوشته شده توسط .; *'. دانشجوي سماء .'*;. در یکشنبه بیست و یکم مرداد 1386  |
 
 
بالا