تازه ها: 
از وای فای رایگان بترسید!

از وای فای رایگان بترسید!

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

مراقب باشید در تلگرام هک نشوید!

مراقب باشید در تلگرام هک نشوید!

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

ردیابی و فرمت گوشی سرقتی از طریق جیمیل

ردیابی و فرمت گوشی سرقتی از طریق جیمیل

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

ردیابی افراد از طریق شماره موبایل!!!

ردیابی افراد از طریق شماره موبایل!!!

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

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

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

شاید شما هم با مشکل کند شدن تلفن همراه اندرویدتان دست وپنجه نرم می کنید، اما دیگر نگران کندبودن گجت اندرویدی خود نباشید و با این روش بسیار ساده و کاربردی (بدون هیچگونه عوارض) سرعت گوشی خودتان را برای همیشه بالا ببرید: بیشتر

 

آموزش برنامه نویسی c (فصل اول)

فصل ۱

آشنایی با مفاهیم اولیه و ویژگیهای کلی زبانC

 

مقدمه

در اوايل دهة ۱۹۷۰ ميلادی، «دنيس ريچي» در آزمایشگاه كمپاني بل زبان C را برای برنامه‌نويسي سيستمها طراحي کرد. اين زبان از دو زبان پيشين به نامهاي BCPL و B منتج شده است که ‌اين دو نيز در همين آزمایشگاه نوشته شدند. زبان C تا سال ۱۹۷۸ منحصر به استفاده در همين آزمایشگاه بود تا اينکه «ريچی» و «کرنيه» نسخة نهايي اين زبان را منتشر کردند. به سرعت مفسرهاي متعددي از C تهیه شد، ليکن براي جلوگيری از ناسازگاريهای ايجاد شده و نيز حفظ قابليت حمل زبان، استاندارد ANSI تعاريف متحدالشکلي مطرح کرد. آنچه در اين کتاب مطرح می‌شود بر اساس همين استاندارد است. مفسر خود برنامه‌اي کامپيوتري است که برنامة سطح بالا دادة ورودي آن و برنامة ‌ايجاد شده به زبان ماشين خروجي آن را تشکیل می‌دهد.

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

 به طور كلي ويژگيهاي مهم زبان C به اختصار به شرح زير است:

  • زبان C به طور گسترده‌اي در دسترس است. مفسرهاي تجارتي آن در بيشتر کامپيوترهاي شخصي، ميني‌‌کامپيوترها و نيز در کامپیوترهای بزرگ قابل استفاده‌اند.
  • C زباني است همه ‌منظوره، ساخت‌يافته سطح بالا (مانند زبان پاسکال و فورترن) و انعطاف‌پذير كه برخي از خصوصيات زبانهاي سطح پايين را نیز كه معمولاً در اسمبلي يا زبان ماشين موجود است داراست. در عين حال اين زبان براي كاربردهاي ويژه طراحي نشده و مي‌توان از آن در همة زمينه‌ها، بخصوص به دليل نزديكي آن به زبان ماشين در برنامه‌نويسي سيستم، استفاده کرد. بنابراين C بين زبانهاي سطح بالا و سطح پايين قرار دارد و در نتيجه اجازه مي‌دهد كه برنامه‌‌نويس خصوصيات هر دو گروه زبان را به كار برد. از اين رو در بسياري از كاربردهاي مهندسي به طور انحصاري زبان C به كار مي‌برند. (زبانهاي سطح بالا، دستورالعملهايي شبيه زبان انسان و پردازش فکري او دارند، همچنين يک دستورالعمل زبان سطح بالا معادل چند دستورالعمل به زبان ماشين است.)
  • برنامه‌هاي نوشته شده به زبان C به طور كلي مستقل از ماشين يا نوع كامپيوتر است و تقريباً تحت كنترل هر سيستم عاملي اجرا مي‌شود.
  • مفسرهاي C معمولاً فشرده و كم ‌حجم‌اند و برنامه‌هاي هدف ايجاد شده با آنها در مقايسه با ساير زبانهاي برنامه‌سازي سطح بالا، خيلي كوچك و كارآمدند.
  • برنامه‌هاي C در مقايسه با ساير زبانهاي برنامه‌سازي سطح بالا، به ‌راحتي قابل انتقال‌‌اند. دليل آن اين است كه C خيلي از ويژگيهاي وابسته به نوع كامپيوتر را در توابع كتابخانه‌اي خود منظور داشته است. بنابراين هر نسخه از C با مجموعه‌اي از توابع كتابخانه‌اي مخصوص به خود همراه است كه براساس ويژگيهاي كامپيوتر ميزبان مربوط نوشته شده است. اين توابع كتابخانه‌اي تا حدودي استاندارد است و معمولاً هر تابع كتابخانه‌اي در نسخه‌هاي متعدد C به شکل يكسان در دسترس است.
  • C روش برنامه‌سازي ماژولار را پشتيباني مي‌كند. همچنين از نظر عملگرها نيز زبانی قوي است که عملگرهاي گوناگوني براي دستكاري روي داده‌ها در سطح بیت داراست.
  • به طور کلي جامعيت، عموميت، خوانايي، سادگي، کارآيي و پيمانه‌اي بودن که همگي از مشخصات برنامه‌ای ‌ايده‌‌آل‌اند در زبان C پياده‌‌سازي مي‌‌شوند.

ويژگيهاي فوق موجب شده زبان C يکي از قوي‌ترين و محبوب‌ترين زبانهاي برنامه‌‌سازي در دنيا مطرح شود.

 

كاراكترها

زبان برنامه‌نويسي C مجموعه‌اي خاص از كاراكترها را شناسايي مي‌كند. اين مجموعه که در حکم مصالح اوليه جهت شکل دادن به اجزای اصلي برنامه‌اند عبارت‌اند از:

حروف بزرگ و حروف كوچك. زبان C برخلاف زبان پاسكال بين حروف بزرگ و كوچك فرق مي‌گذارد. مثلاً FOR با for يكسان نيست.

ارقام دهدهي. شامل ۰ تا ۹

جاي خالي يا Blank

كاراكترهاي مخصوص. شامل  ^ % $ # @ ! + – = / \ * ? ( ) < > { } [ ] ~ ;. ,&

حتما بخوانید  آموزش برنامه نویسی ++c (جلسه سوم)

كاراكترهاي فرمت‌بندی.  براي بيان حالتهای ويژه‌اي به کار مي‌روند و عبارت‌اند از كاراكتر Horizontal Tab يا \t، كاراكترVertical Tab يا \v، كاراكتر خط جديد يا \n ، كاراكتر برگشت به عقب (Back Space) يا \b، كاراكتر تغذية فرم (Form Feed) يا \f، كاراكتر ابتداي سطر يا \r، كاراكتر تهي يا \۰، و جز آن كه آنها را کاراکترهاي فرمان نيز مي‌نامند. لازم به توضيح است که هر کاراکتر فرمان بيان‌‌کنندة تنها يک کاراکتر است هر چند که با دو يا چند کاراکتر نوشته مي‌شود.

شناسه‌ها

شناسه‌ها نشانه‌‌هاي سمبوليكي‌اند كه براي مراجعه به انواع داده‌ها مانند مقادير ثابت، متغيرها، نوعها و توابع به كار می‌روند. به عبارتي ديگر شناسه‌ نامي است كه به عناصر مختلف برنامه مانند متغيرها، توابع، آرايه‌ها، اشاره‌‌گرها و جز آن اختصاص می‌یابد. يك شناسة C دنباله‌اي است از حروف، ارقام يا علامت زيرخط که با هر ترتيبي مي‌توانند قرار گيرند. اما اولين کاراکتر بايد حرفی باشد. در شناسه‌‌ها هر دو شکل حروف بزرگ و کوچک مجاز شناخته مي‌شوند. برحسب قرارداد شناسه‌هايي كه با علامت زيرخط‌ شروع مي‌شوند فقط در برنامه‌هاي سيستم كاربرد دارند و در برنامه‌هاي كاربردي قابل استفاده نيستند. در مورد تعداد کاراکترها در اسامي از نظر C محدوديتي وجود ندارد گرچه هر مفسر ويژگيها و محدوديتهاي خاص خودش را به كار مي‌برد. طول اسامي در زبان C استاندارد تا ۳۱ كاراكتر مجاز است.

مثال ۱ـ۱ اسامي زير شناسه‌‌هاي معتبرند.

x1 , sum , payam_noor , maximum

مثال ۱ـ۲ اسامي زير شناسه‌‌هاي غیرمعتبرند.

book-5 , 4s , $tax , “p” , number one

 

متغيرها

متغيرها در زبان C شناسه‌هايي‌اند كه محلهايي از حافظه را به خود اختصاص مي‌دهند. به عبارت ديگر متغير شناسه‌اي است که در ميان بخشی از برنامه براي نسبت دادن نوع تعيين شده‌اي از اطلاعات مورد استفاده قرار مي‌گيرد. در ساده‌‌ترين حالت هر متغير جانشين يک قلم داده می‌شود. متغير تركيبي است از ارقام، حروف و علامت زيرخط ( _ ). لازم به ذكر است متغيرهايي كه با علامت زيرخط شروع مي‌شوند براي متغيرهاي داخلي سيستم رزرو شده‌اند. طول هر متغير در استاندارد ANSI تا ۳۱ كاراكتر است، ولي در بعضي از مفسرهاي قديمي محدود به ۸ كاراكتر است. تمامي متغيرهايي که در برنامه‌‌هاي C به کار می‌روند بايد تعريف يا اعلان شوند. به يک متغير مي‌توان داده‌‌هاي مختلفي در محلهاي گوناگون برنامه نسبت داد. بنابراين مقدار متغير در طول اجراي برنامه ممکن است تغيير کند.

بعضي از شناسه‌هاي زبان C كلمات رزرو شده يا كليدي‌‌اند. يعني معني و مفهوم آن از قبل در زبان تعريف و پيش‌بيني شده است. بنابراين شناسه‌هاي تعريف شدة برنامه‌نويس نیستند. متداول‌ترين كلمات كليدي زبان C در زير نشان داده شده است.

 

for goto else If Char float int main
enum register return signed default while do double
sizeof static struct auto Case short coutinue const
union unsigned extern typedef Void switch long break

 

البته در بعضي از مفسرهاي زبان C ممكن است كلمات كليدي ديگري نيز وجود داشته باشد كه بايد به كتاب راهنماي مربوط مراجعه کرد. همچنين توجه داشته باشيد كه همة كلمات كليدي با حروف كوچك نوشته مي‌شوند. پس main كلمة كليدي است درحالي كه Main كلمة كليدي نیست زيرا حرف اول آن بزرگ است. همين طور void کلمة کليدي است اما VOID کلمة کليدي نيست.

علامت توضيح

در زبان C هر عبارتي كه بين دو علامت */ و /* قرار گيرد صرفاً توضيح محسوب مي‌شود. مثلاً اگر بخواهيم در مورد دستوری توضيح دهيم كه چه كاري انجام مي‌دهد در هر جاي برنامه كه فضاي خالي مجاز باشد مي‌توان براي توضيح از علامت فوق استفاده كرد. (در اغلب نسخه‌‌ها علامت // هم مجاز است.)

حتما بخوانید  آموزش برنامه نویسی ++c (جلسه دوم)

 مثال ۱ـ۳ در برنامة زير از علامت توضيح استفاده شده است.

include>stdio.h>#

main ()

 {

int j , k;

for (j =1 ; j <= 10 ; j+ +)    /* outer loop */

 {

printf(“%5d “, j) ;

for (k=1; k<=10; k+ +)    /* inner loop */

printf(“%5d”, j * k) ;

printf(“\n”) ;

 }

 }

 

ساختار برنامه‌‌هاي C

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

 

دستورالعملهاي اجرايي

در هر برنامه دستورالعملهاي اجرايي بايد بعد از تعريف متغيرها درج شوند. دستوري قابليت اجرا دارد كه در پايان آن دستور، علامت سميكولون (;) نوشته شود. براي فهم بهتر اين موضوع به مثال زير توجه کنيد.

v مثال ۱ـ۴ برنامه‌اي بنويسيد كه مساحت مستطيلي به طول ۶ و عرض ۳ را محاسبه و چاپ كند.

#include<stdio.h>

main()

{

 int length , width , S ; /* variable declaration */

 length = 6 ;

 width = 3 ;

 S = length * width ;

 printf (“area = %d”, S) ;

}

 پس از اجراي برنامه، خروجي برنامه به صورت زير نمايش داده مي‌شود.

area = 18

توضیح. برنامه با حروف کوچک تايپ شده است. توضيحات نيز معمولاً با حروف کوچک تايپ مي‌شوند. در زبان C حروف بزرگ و کوچک معادل يکديگر نیستند. خط اول برنامه اعلان مي‌كند كه كتابخانة مربوط به توابع ورودي و خروجي براي دستيابي به توابع آن آماده شود. در واقع ارجاع به فايلي است که شامل اطلاعاتي است که هنگام تفسیر بايد در برنامه قرار گيرند. C يكي از زبانهايي است كه به لحاظ داشتن توابع توكار يا از پيش‌فرض شده بسيار غني است. هر مجموعه از توابع كه عمليات ويژه‌اي را انجام مي‌دهد در مجموعه‌ای با عنوان كتابخانه يا library قرار مي‌گيرد. توابعي كه عمليات ورودي و خروجي را انجام مي‌دهند در كتابخانه‌اي به نام stdio.h قرار دارند كه در آن stdio به معني standard input output (ورودي و خروجي استاندارد) و h نيز معرف header يا عنوان است. تابع printf نيز يكي از توابع خروجي است.

حال به توضيح #include مي‌پردازيم. برنامه‌هاي نوشته شده به زبان C قبل از اينكه به‌وسيلة مفسر ترجمه شوند در اختيار برنامة ديگري با عنوان پيش‌پردازنده يا preprocessor قرار مي‌گيرند. يكي از كاربردهاي اصلي اين برنامه آن است كه كتابخانه‌هاي مورد نياز برنامة منبع را يعني كتابخانه‌هايي را كه توابع به كار رفته در برنامة منبع را شامل است براي استفاده آماده می‌کند. اين كار با دستور include كه در ابتداي آن علامت # و به دنبال آن نام كتابخانه در داخل علامت <> يا ” ” مي‌آيد انجام مي‌گيرد. اولين عبارت در برنامة بالا همين كار را براي ما انجام مي‌دهد.

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

حتما بخوانید  آموزش برنامه نویسی ++c (جلسه چهارم)

اولين دستور در متن برنامه يا همان شروع آكولاد، توصيف متغيرهاست. سه دستور بعدي دستورات محاسباتي و جايگزيني‌اند و در آخر نيز دستور خروجي است كه در آن تابع printf براي چاپ فرمت‌‌‌دار است. اولين آرگومان تابع مذكور متن داخل گيومه است كه تابع آن را به همان صورت در خروجي چاپ مي‌كند. البته بعضي از قسمتهاي متن كه شامل علامت % باشد مانند %d به مفسر اطلاع مي‌دهد كه اولين متغير بعد از بسته ‌شدن گيومه كه در اين مثال S است مقادير صحيح مي‌پذيرد. در اينجا d معرف decimal است و %d فرمت متغير در خروجي را تعريف مي‌كند. در فصلهاي بعدي به طور كامل به بحث فرمت متغيرها خواهيم پرداخت.

 

 مثال ۱ـ۵ برنامة زير طول و عرض مستطيلي را از طريق ورودي استاندارد مي‌خواند و با فراخواندن تابعي به نام Rectangle مساحت آن را محاسبه می‌کند و سپس طول و عرض و مساحت را در دستگاه استاندارد خروجي نمايش مي‌دهد. طول با a و عرض با b و مساحت با area مشخص می‌شود.

# include <stdio. h>

main ()

   {

 int a , b , area ;

 int Rectangle (int a , int b) ;

 scanf (“%d %d” , &a , &b) ;

 area = Rectangle (a , b);

 printf (“\n length = %d width = %d area = %d” , a , b , area) ;

    }

int Rectangle (int a , int b) ;

   {

          int s ;

 s = a * b ;

 return (s) ;

    }

 

اگر ۵ = a و ۴ = b، خروجي برنامة مذكور به صورت زير خواهد بود.

length = 5 width = 4 area = 20

توضيح. خط اول ارجاع به فايل کتابخانه‌اي، خط دوم تعريف تابع اصلي، خط سوم شروع تابع اصلي، و خط چهارم اعلان متغيرهاست. در خط پنجم تابع فرعي Rectangle اعلان شده است كه مقدار صحيح برمي‌گرداند و آرگومانهاي آن نيز a و b‌اند كه مقادير صحيح‌اند. در خط ششم، تابع ورودي استاندارد scanf به كار رفته است. اين تابع كه جزء كتابخانة stdio.h است، اطلاعات را از طريق ورودي استاندارد كه صفحه كليد است دريافت مي‌كند. فرمت و ساز و كار اين گونه توابع را در فصلهای بعد بررسي می‌کنیم. در اينجا يادآور مي‌شويم كه فرم كلي تابع مزبور به صورت زیر است.

scanf (control string , argl , arg2 , … , argn) ;

كه در آن رشتة كنترل كه در داخل گيومه (” “) می‌آید، اطلاعات مورد نياز دربارة فرمت اقلام داده‌هاي ورودي را شامل می‌شود و عناصر arg1 , arg2 ,… argn نيز آرگومانهايي‌اند كه اقلام داده‌‌هاي ورودي را معرفي مي‌کنند. در اين دستور کاراکتر “&” عملگر آدرس است. در رشتة كنترلي نيز كه در داخل گيومه قرار دارد، از چپ به راست %d اول معرف فرمت اولين آرگومان يا دادة ورودي به عنوان عدد صحيح است و به دنبال آن %d دوم نيز معرف فرمت دومين آرگومان به عنوان عدد صحيح است. علامت \n در رشتة كنترلي تابع printf، موجب انتقال به سطر جديد مي‌گردد. بنابراين اطلاعات بعدي در سطر جديد چاپ خواهد شد.

 

خودآزمایی ۱

  1. كدام يك از اسامي زير مجاز است به عنوان نام متغيردر برنامه به كار رود؟

Integer , -19, Lesson four , Unit_25, define , Loop2, Star565void , Please?, Payam_noor , C+ +, S#, Five$

  1. برنامة‌ زير مساحت مربعي به ضلع ۵ سانتی‌متر را محاسبه و چاپ مي‌كند. قسمتهاي مختلف آن را شرح دهيد.

#include<stdio.h>

main()

   {

 int x , S ;

 x = 5 ;

 S = x * x ;

 printf (“area = %d”, S) ;

   }

 

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *