زنگ

کسانی هستند که این خبر را قبل از شما می خوانند.
برای دریافت آخرین مقالات مشترک شوید.
پست الکترونیک
نام
نام خانوادگی
چگونه می خواهید The Bell را بخوانید
بدون اسپم

1. معرفی

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

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

به عنوان مبنایی برای بحث در مورد مشکلات برنامه نویسی خودکار ، ما یک سخنرانی اخیر توسط A.A. Shalyto می گیریم و مقالات "برنامه نویسی" وی در مورد تعریف الگوی برنامه نویسی خودکار.

زبان برنامه نویسی C ++

آخرین بروزرسانی: 28.08.2017

زبان برنامه نویسی C ++ یک زبان برنامه نویسی کامپایل شده با سطح بالا ، تایپ شده است که برای ساختن طیف گسترده ای از برنامه ها مناسب است. امروز C ++ یکی از محبوب ترین و گسترده ترین زبان ها است.

این ریشه در زبان C دارد که در سالهای 1969-1973 در آزمایشگاه های بل توسط برنامه نویس دنیس ریچی توسعه داده شد. در اوایل دهه 1980 ، Bjarne Stroustrup ، برنامه نویس دانمارکی ، که در آن زمان در آزمایشگاه های Bell بود ، C ++ را به عنوان افزونه زبان C توسعه داد. در واقع ، در ابتدا ، C ++ به سادگی زبان C را با برخی قابلیت های برنامه نویسی شی گرا تکمیل می کرد. و بنابراین استروپروپ در ابتدا از آن به عنوان "C با کلاس" یاد کرد.

پس از آن ، زبان جدید شروع به محبوبیت کرد. ویژگی های جدیدی به آن افزوده شده است که آن را نه تنها علاوه بر C بلکه یک زبان برنامه نویسی کاملاً جدید ساخته است. در نتیجه ، "C با کلاس" به C ++ تغییر نام داد. و از آن زمان ، هر دو زبان مستقل از یکدیگر شروع به توسعه کردند.

C ++ یک زبان قدرتمند است ، و دارای قابلیت های حافظه غنی از C است. بنابراین ، C ++ اغلب کاربردهای خود را در برنامه نویسی سیستم ، به ویژه هنگام ایجاد سیستم عامل ، درایورها ، ابزارهای مختلف ، آنتی ویروس ها و غیره پیدا می کند. به هر حال ، ویندوز بیشتر در C ++ نوشته شده است. اما استفاده از این زبان فقط به برنامه نویسی سیستم محدود نمی شود. C ++ را می توان در برنامه هایی از هر سطح که سرعت و کارایی در آن مهم باشد استفاده کرد. اغلب برای ایجاد برنامه های گرافیکی و برنامه های مختلف کاربردی استفاده می شود. همچنین به ویژه اغلب برای ایجاد بازی هایی با تجسم غنی و غنی مورد استفاده قرار می گیرد. علاوه بر این ، اخیراً جهت تلفن همراه در حال افزایش است ، جایی که C ++ کاربرد آن را نیز پیدا کرده است. و حتی در توسعه وب نیز می توان از C ++ برای ایجاد برنامه های وب یا نوعی خدمات کمکی که در خدمت برنامه های وب هستند استفاده کرد. به طور کلی ، C ++ زبانی است که به طور گسترده ای مورد استفاده قرار می گیرد و تقریباً در هر نوع برنامه می توان ایجاد کرد.

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

بر خلاف C ، C ++ به شما امکان می دهد برنامه هایی را به سبک شیء گرا بنویسید و یک برنامه را به عنوان مجموعه ای از کلاس ها و اشیاء متقابل ارائه دهید. که ساخت برنامه های بزرگ را آسان می کند.

مراحل اصلی توسعه

در سالهای 80-1980 ، Bjarne Stroustrup گسترش زبان C را گسترش داد - "C with کلاس". در سال 1983 ، این زبان به C ++ تغییر نام داد.

در سال 1985 ، اولین نسخه تجاری زبان C ++ منتشر شد ، و همچنین چاپ اول کتاب "زبان برنامه نویسی C ++" که اولین توصیف این زبان را در صورت عدم وجود استاندارد رسمی ارائه می داد.

در سال 1989 نسخه جدیدی از زبان C ++ 2.0 منتشر شد که شامل چندین ویژگی جدید بود. پس از آن ، این زبان تا سال 2011 نسبتاً آرام توسعه یافت. اما در همان زمان ، در سال 1998 ، اولین تلاش برای استاندارد سازی این زبان توسط ISO (سازمان بین المللی استاندارد سازی) انجام شد. اولین استاندارد به صورت کوتاه ISO / IEC 14882: 1998 یا C ++ 98 نامگذاری شد. بعداً در سال 2003 نسخه جدیدی از استاندارد C ++ 03 منتشر شد.

در سال 2011 ، استاندارد جدید C ++ 11 منتشر شد که حاوی اضافات بسیاری بود و زبان C ++ را با تعداد زیادی از قابلیت های جدید غنی می کرد. پس از آن ، در سال 2014 ، اضافی اندک از استاندارد منتشر شد که با نام C ++ 14 نیز شناخته می شود. و کلید اصلی دیگر انتشار این زبان برای سال 2017 تنظیم شده است.

کامپایلرها و محیطهای توسعه

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

همچنین می توانید از IDE هایی مانند Visual Studio ، Netbeans ، Eclipse ، Qt و غیره برای ایجاد برنامه استفاده کنید.

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

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

تابع خروجی استاندارد printf ()

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

تابع printf () نمونه اولیه ای در پرونده stdio.h دارد
int printf (char * رشته کنترل ، ...)؛

در صورت موفقیت آمیز ، تابع printf () تعداد کاراکترهای چاپ شده را برمی گرداند.

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

تابع printf () یک تابع خروجی فرمت شده است. این بدان معناست که در پارامترهای تابع ، باید فرمت داده ای را که خروجی خواهد بود ، مشخص کنید. قالب داده ها توسط مشخصات قالب مشخص شده است. مشخصات قالب با یک٪٪ کاراکتر و به دنبال آن یک کد قالب شروع می شود.

مشخصات قالب:

٪از جانب نماد
٪ d اعشاری عدد صحیح
٪ من اعشاری عدد صحیح
٪ e عدد اعشاری به شکل x.xx e + xx
٪ E عدد اعشاری به شکل x.xx E + xx
٪ f
٪ F نقطه شناور اعشاری xx.xxxx
٪ g ٪ f یا٪ e ، هر کدام کوتاه تر باشد
٪ G ٪ F یا٪ E ، هر کدام کوتاه تر باشد
٪ o عدد اکتال
٪ s رشته شخصیت
٪ تو شماره اعشاری بدون امضا
٪ ایکس تعداد شش ضلعی
٪ ایکس تعداد شش ضلعی
%% ٪ شخصیت
٪ پ اشاره گر
٪ n اشاره گر

علاوه بر این ، اصلاح کننده های l و h را می توان در دستورات فرمت اعمال کرد.

٪ ld چاپ طولانی
٪ هو چاپ کوتاه بدون امضا
٪ Lf چاپ طولانی دو برابر

در مشخصات قالب ، پس از٪ کاراکتر ، می توان دقت (تعداد رقم های بعد از نقطه اعشار) را مشخص کرد. دقت به شرح زیر است:٪ .n<код формата>... جایی که n تعداد ارقام بعد از نقطه اعشار است ، و<код формата> - یکی از کدهای فوق.

به عنوان مثال ، اگر متغیر x \u003d 10.3563 نوع float داریم و می خواهیم مقدار آن را با دقت حداکثر 3 رقم بعد از نقطه اعشار نمایش دهیم ، پس باید بنویسیم:

printf ("متغیر x \u003d٪ .3f" ، x)؛

نتیجه:
متغیر x \u003d 10.356

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

به عنوان مثال ، اگر می نویسید:

printf ("٪ 5d" ، 20)؛

سپس نتیجه به شرح زیر خواهد بود:
20

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

مثلا:

printf ("٪ 05d" ، 20)؛

نتیجه:
00020

علاوه بر مشخصه های فرمت داده ، رشته کنترل می تواند شامل کاراکترهای کنترلی باشد:

\\ b BS ، سوراخ پایین
\\ f صفحه جدید ، ترجمه صفحه
\\ n خط جدید ، فید خط
\\ r برگشت محموله
\\ t برگه افقی
\\ v برگه عمودی
\" نقل قول مضاعف
\" ارتداد
\\ بک گراند
\0 شخصیت تهی ، بایت تهی
\\ آ علامت
\\ نه ثابت روز
\\ xN شش ضلعی ثابت
\? علامت سوال

بیشتر اوقات از کاراکتر \\ n استفاده خواهید کرد. با استفاده از این شخصیت کنترل می توانید یک خط جدید را شاخه کنید. به برنامه های نمونه نگاه کنید و همه چیز را خواهید فهمید.

نمونه برنامه ها

/ * مثال 1 * /
#عبارتند از

اصلی ساقط (باطل)
{
int a، b، c؛ // اعلام متغیرهای a، b، c
a \u003d 5؛
b \u003d 6؛
c \u003d 9؛
printf ("a \u003d٪ d ، b \u003d٪ d ، c \u003d٪ d" ، a ، b ، c)؛
}

نتیجه برنامه:
a \u003d 5 ، b \u003d 6 ، c \u003d 9

/ * مثال 2 * /
#عبارتند از

اصلی ساقط (باطل)
{
float x، y، z؛

X \u003d 10.5؛
y \u003d 130.67؛
z \u003d 54؛

Printf ("مختصات شی: x:٪. 2f ، y:٪. 2f ، z:٪. 2f" ، x، y، z)؛
}

نتیجه برنامه:
مختصات شی: x: 10.50 ، y: 130.67 ، z: 54.00

/ * مثال 3 * /
#عبارتند از

اصلی خالی است ()
{
int x؛

X \u003d 5؛
printf ("x \u003d٪ d" ، x * 2)؛
}

نتیجه برنامه:
x \u003d 10

/ * مثال 4 * /
#عبارتند از

اصلی ساقط (باطل)
{
printf ("\\" متن به نقل از \\ "")؛
printf ("\\ n محتوای اکسیژن: 100٪٪")؛
}

نتیجه برنامه:
"متن در نقل قول ها"
میزان اکسیژن: 100٪

/ * مثال 5 * /
#عبارتند از

اصلی ساقط (باطل)
{
int a؛

A \u003d 11؛ // 11 اعشار با b hexadecimal برابر است
printf ("a-dec \u003d٪ d، a-hex \u003d٪ X"، a، a)؛
}

نتیجه برنامه:
a-dec \u003d 11، a-hex \u003d b

/ * مثال 6 * /
#عبارتند از

اصلی ساقط (باطل)
{
char ch1 ، ch2 ، ch3؛

Ch1 \u003d "A"؛
ch2 \u003d "B"؛
ch3 \u003d "C"؛

Printf ("٪ c٪ c٪ c" ، ch1 ، ch2 ، ch3)؛
}

نتیجه برنامه:
ABC

/ * مثال 7 * /
#عبارتند از

اصلی ساقط (باطل)
{
char * str \u003d "رشته من."؛

Printf ("این٪ s است" ، خ)؛
}

نتیجه برنامه:
این خط من است.

/ * مثال 8 * /
#عبارتند از

اصلی ساقط (باطل)
{
printf ("سلام! \\ n")؛ // پس از چاپ ، خط جدیدی وجود خواهد داشت - \\ n
printf ("نام من پاول است.")؛ // این در یک خط جدید چاپ می شود
}

نتیجه برنامه:
سلام!
اسم من پاول است.

عملکرد ورودی استاندارد Scanf ()

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

تابع Scanf () نمونه اولیه را در پرونده stdio.h دارد:
int scanf (char * رشته کنترل)؛

این تابع تعداد متغیرهایی را که یک مقدار به آنها اختصاص داده شده را برمی گرداند.

رشته کنترل شامل سه نوع کاراکتر است: مشخصات قالب ، فضاها و سایر کاراکترها. مشخصات قالب با٪٪ کاراکتر شروع می شود.

مشخصات قالب:

هنگام وارد کردن رشته با استفاده از Scanf () (مشخص کننده قالب٪ s) ، رشته قبل از اولین فضای وارد می شود !! آن اگر وارد خط "سلام جهان!" با استفاده از تابع Scanf ()


scanf ("٪ s" ، خیابان)؛

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

char * می شود (char * buf)؛

با عملکرد () می توانید رشته های کاملی را وارد کنید. تابع می شود () کاراکترها را از صفحه کلید می خواند تا اینکه یک شخصیت جدید (\\ n) ظاهر شود. وقتی دکمه enter را وارد می کنید ، شخصیت جدید خط ظاهر می شود. تابع یک نشانگر را به buf باز می گرداند. buf یک بافر (حافظه) برای رشته ورودی است.

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

#عبارتند از

اصلی ساقط (باطل)
{
بافر char؛ // آرایه (بافر) برای رشته ورودی

می شود (بافر)؛ // یک خط وارد کنید و enter را فشار دهید
printf ("٪ s" ، بافر)؛ // خط وارد شده را روی صفحه نمایش دهید
}

یک یادداشت مهم دیگر! برای وارد کردن داده ها با استفاده از تابع Scanf () ، باید آدرس متغیرها به عنوان پارامتر منتقل شود ، نه خود متغیرها. برای به دست آوردن آدرس یک متغیر ، باید علامت & (ampersand) را در مقابل نام متغیر قرار دهید. & نشانه به معنای گرفتن آدرس است.

آدرس چیست؟ سعی میکنم توضیح بدم ما یک متغیر در برنامه داریم. متغیر مقدار خود را در حافظه کامپیوتر ذخیره می کند. بنابراین آدرسی که با آن دریافت می کنیم و همان آدرس در حافظه کامپیوتر است که در آن مقدار متغیر ذخیره شده است.

بیایید نگاهی به یک برنامه نمونه ای بیندازیم که نحوه استفاده و

#عبارتند از

اصلی ساقط (باطل)
{
int x؛

Printf ("متغیر x را وارد کنید:")؛
اسکن ("٪ d" ، & x)؛
printf ("متغیر x \u003d٪ d" ، x)؛
}

حالا برگردیم به خط کنترل Scanf (). از نو:

int scanf (char * رشته کنترل)؛

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

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

مثلا:

scanf ("٪ d٪ * c٪ d" ، & i ، & j)؛

تایپ 50 + 20 i را به 50 ، j تا 20 تنظیم می کند و + را خوانده و نادیده می گیریم.

فرمان فرمت می تواند بزرگترین عرض فیلد را برای خواندن مشخص کند.

مثلا:

اسکن ("٪ 5s" ، خیابان)؛

نشان می دهد که آیا 5 شخصیت اول را از جریان ورودی بخوانید. اگر 1234567890ABC وارد کنید ، آرایه str فقط شامل 12345 خواهد بود ، بقیه شخصیت ها نادیده گرفته می شوند. جداکننده ها: فضا ، برگه و خط جدید - وقتی تایپ می شوند ، مانند سایر شخصیت ها رفتار می شوند.

اگر شخصیت دیگری در رشته کنترل یافت نشد ، آنها برای شناسایی و جستجوی شخصیت مربوطه در نظر گرفته شده اند. جریان کاراکتر 10plus20 توسط اپراتور

scanf ("٪ dplus٪ d" ، & x ، & y)؛

x را به 10 ، y تا 20 تنظیم می کند ، و از آنجا که در خط کنترل ظاهر می شوند ، نویسه های plus را پرش می کنید.

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

#عبارتند از

اصلی ساقط (باطل)
{
char str1 ، str2؛
Scanf ("٪٪ s" ، str1 ، str2)؛
printf ("\\ n٪ s \\ n٪ s" ، str1 ، str2)؛
}
بیایید مجموعه ای از نمادها را معرفی کنیم:
12345abcdefg456

در صفحه نمایش این برنامه نمایش داده می شود:
12345
abcdefg456

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

scanf ("٪ 10" ، str1)؛

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

بگذارید یادآوری کنم که هنگام استفاده از تابع Scanf () ، باید آدرس متغیرها را به عنوان پارامتر به آن منتقل کنید. کد بالا نوشته شده است:

خیابان شارژ؛ // آرایه ای از 80 کاراکتر
scanf ("٪ s" ، خیابان)؛

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

نمونه برنامه ها

مثال 1
این برنامه عبارت "چند ساله است؟" را نمایش می دهد و منتظر است تا داده ها وارد شوند. اگر به عنوان مثال شماره 20 را وارد کنید ، برنامه رشته "شما 20 ساله هستید" نمایش داده می شود. هنگام فراخوانی تابع Scanf () ، علامت & را جلوی متغیر سن قرار می دهیم ، زیرا تابع skff () به آدرس متغیرها نیاز دارد. تابع Scanf () مقدار وارد شده را به آدرس مشخص شده می نویسد. در مورد ما ، مقدار وارد شده 20 به آدرس سن متغیر نوشته می شود.

/ * مثال 1 * /

#عبارتند از

اصلی ساقط (باطل)
{
سن متوسط؛

Printf ("\\ n چند ساله هستید؟")؛
اسکن ("٪ d" ، و سن)؛
printf ("شما٪ d سال دارید." ، سن)؛
}

مثال 2
برنامه ماشین حساب. این ماشین حساب فقط می تواند اعداد را اضافه کند. اگر 100 + 34 را وارد کنید ، برنامه نتیجه می دهد: 100 + 34 \u003d 134.

/ * مثال 2 * /

#عبارتند از

اصلی ساقط (باطل)
{
int x، y؛

Printf ("\\ n محاسبه گر:")؛
Scanf ("٪ d +٪ d" ، & x ، & y)؛
printf ("\\ n٪ d +٪ d \u003d٪ d" ، x ، y ، x + y)؛
}

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

/ * مثال 3 * /

#عبارتند از

اصلی ساقط (باطل)
{
نام شخصیت؛

Printf ("\\ n نام کاربری خود را وارد کنید (بیش از 5 کاراکتر):")؛
اسکن ("٪ 5s" ، نام)؛
printf ("\\ n شما وارد٪ s" شده اید ، نام)؛
}

مثال 4
مثال آخر در این مقاله نحوه استفاده از چندین جستجو را نشان می دهد. پس از شروع برنامه ، عددی از 2 به 5 را وارد کنید.

/ * مثال 4 * /

#عبارتند از

اصلی ساقط (باطل)
{
char bal؛

Printf ("امتیاز شما 2،3،4،5 است:")؛
Scanf ("٪" ، & bal)؛
printf ("\\ n ارزیابی٪ c" ، بال)؛
}

این آموزش ها برای همه افراد است ، خواه تازه وارد برنامه نویسی باشید یا تجربه برنامه نویسی گسترده ای به زبان های دیگر داشته باشید! این مواد برای کسانی است که می خواهند زبانهای C / C ++ را از همان پایه های خود تا پیچیده ترین ساختارها بیاموزند.

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

نصب / IDE

اولین کاری که قبل از شروع یادگیری C ++ باید انجام دهید این است که مطمئن شوید که دارای IDE هستید - یک محیط توسعه یکپارچه (برنامه ای که در آن برنامه نویسی خواهید شد). اگر IDE ندارید ، این مکان برای شما مناسب است. پس از تصمیم گیری بر روی IDE ، آن را نصب کنید و با ایجاد پروژه های ساده تمرین کنید.

آشنایی با زبان C ++

C ++ مجموعه ای از دستورات است که به کامپیوتر می گوید چه کاری انجام دهد. این مجموعه از دستورات معمولاً به عنوان منبع منبع یا فقط کد نامیده می شوند. دستورات یا "توابع" یا "کلمات کلیدی" هستند. کلید واژه ها (کلمات محفوظ C / C ++) ساختار اصلی زبان هستند. توابع بلوک های ساختاری پیچیده هستند زیرا از لحاظ عملکردهای ساده تر نوشته شده اند - این را در اولین برنامه اول ما که در زیر نشان داده شده است خواهید دید. این ساختار توابع به محتوای یک کتاب شباهت دارد. جدول مطالب می تواند فصل های کتاب را نشان دهد ، هر فصل از کتاب می تواند فهرست مطالب خاص خود را که شامل پاراگراف ها باشد ، داشته باشد ، هر پاراگراف می تواند پاراگراف های خاص خود را داشته باشد. اگرچه C ++ بسیاری از کارکردهای متداول و کلمات محفوظ را ارائه می دهد که می توانید از آنها استفاده کنید ، اما هنوز نیاز به نوشتن توابع خود دارید.

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

بنابراین چگونه به این ویژگی های استاندارد دسترسی پیدا می کنید؟ برای دسترسی به توابع استانداردی که با کامپایلر همراه است ، باید با استفاده از دستورالعمل پیش پردازنده ، فایل هدر را وارد کنید - #include. چرا مؤثر است؟ بیایید به نمونه ای از یک برنامه کاری نگاهی بیندازیم:

#عبارتند از << "Моя первая программа на С++\n"; cin.get(); }

بیایید با جزئیات بیشتر عناصر برنامه را در نظر بگیریم. #include یک دستورالعمل پیش پردازنده است که به کامپایلر می گوید قبل از ایجاد اجرایی ، کد مربوط به پرونده هدر iostream را در برنامه ما قرار دهد. با اتصال فایل هدر به برنامه ، به بسیاری از کارکردهای مختلف که می توانید در برنامه خود استفاده کنید ، دسترسی پیدا می کنید. به عنوان مثال ، عملگر cout نیاز به iostream دارد. خط با استفاده از namespace std؛ به کامپایلر می گوید تا از گروهی از توابع که بخشی از کتابخانه استاندارد std است استفاده کند. این خط همچنین به برنامه اجازه می دهد تا از عباراتی مانند cout استفاده کند. نیمه هادی بخشی از نحوی C ++ است. به کامپایلر می گوید که این پایان دستور است. بعداً خواهید دید که تکست ها برای تکمیل اکثر دستورات در C ++ استفاده می شوند.

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

در C ++ از شی cout برای نمایش متن استفاده می شود (تلفظ "C out"). او از نمادها استفاده می کند<< , известные как «оператор сдвига», чтобы указать, что отправляется к выводу на экран. Результатом вызова функции cout << является отображение текста на экране. Последовательность \n фактически рассматривается как единый символ, который обозначает новую строку (мы поговорим об этом позже более подробно). Символ \n перемещает курсор на экране на следующую строку. Опять же, обратите внимание на точку с запятой, её добавляют в конец, после каждого оператора С++.

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

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

#عبارتند از با استفاده از namespace std؛ int main () (cout<<"Моя первая программа на С++\n"; cin.get(); return 1; }

برای ادغام مواد ، کد برنامه را در IDE خود تایپ کرده و آن را اجرا کنید. بعد از شروع برنامه و نتیجه را می توانید کمی با عبارت cout آزمایش کنید. این به شما کمک می کند تا به زبان عادت کنید.

حتما در مورد برنامه های خود نظر دهید!

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

با همه این نوع متغیرها چه باید کرد؟

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

اعلام متغیرها در C ++

برای اعلام متغیر ، از نوع نحو استفاده کنید<имя>؛ ... در اینجا چند نمونه از اظهارات متغیر آورده شده است:

Int num؛ شخصیت شخصیت؛ float num_float؛

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

Int x، y، z، d؛

اگر از نزدیک دقت کرده باشید ، ممکن است دیده اید که یک بیانیه متغیر همیشه با یک کلمه به کار می رود. می توانید درباره کنوانسیون بیشتر بدانید - "در مورد نامگذاری متغیرها".

اشتباهات رایج هنگام اعلام متغیرها در C ++

اگر سعی کنید از متغیری استفاده کنید که اعلام نکرده اید ، برنامه شما کامپایل نمی شود و پیام خطایی دریافت خواهید کرد. در C ++ ، کلمات کلیدی زبان ، همه عملکردها و همه متغیرها حساس به مورد هستند.

با استفاده از متغیرها

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

#عبارتند از با استفاده از namespace std؛ int main () (عدد int؛ cout<< "Введите число: "; cin >\u003e تعداد؛ cin.ignore ()؛ فحش دادن<< "Вы ввели: "<< number <<"\n"; cin.get(); }

بیایید نگاهی به این برنامه بیندازیم و کد آن را بصورت خطی بررسی کنیم. کلمه کلیدی int می گوید که شماره یک عدد صحیح است. عملکرد سین \u003e\u003e یک عدد را به عدد می خواند ، کاربر باید پس از وارد کردن شماره ، enter را فشار دهد. cin.ignore () تابعی است که یک شخصیت را می خواند و آن را نادیده می گیرد. ما ورودی خود را در برنامه سازماندهی کردیم ، بعد از وارد کردن یک شماره ، کلید ENTER را فشار می دهیم ، که به جریان ورودی نیز منتقل می شود. ما به این نیاز نداریم ، بنابراین آنرا دور می کنیم. به خاطر داشته باشید که این متغیر از نوع عدد صحیح اعلام شده است ، در صورتی که کاربر سعی کند عدد اعشاری را وارد کند ، کوتاه می شود (یعنی اعشاری از عدد نادیده گرفته می شود). سعی کنید یک عدد اعشاری یا دنباله ای از کاراکترها را وارد کنید ، وقتی برنامه نمونه را اجرا می کنید ، جواب به مقدار ورودی بستگی دارد.

توجه داشته باشید که در هنگام چاپ از یک متغیر از نقل قول استفاده نمی شود. عدم وجود نقل قول به کامپایلر می گوید متغیر وجود دارد و بنابراین برنامه باید مقدار متغیر را بررسی کند تا بتواند نام متغیر را با مقدار آن در زمان اجرا جایگزین کند. عملگرهای چند شیفت در همان خط خوب هستند و خروجی به همان ترتیب انجام می شود. شما باید ادبیات رشته (رشته های نقل قول) و متغیرها را از هم جدا کنید ، و به هر یک از اپراتورهای مختلف تغییر دهید<< . Попытка поставить две переменные вместе с одним оператором сдвига << выдаст сообщение об ошибке . Не забудьте поставить точку с запятой. Если вы забыли про точку с запятой, компилятор выдаст вам сообщение об ошибке при попытке скомпилировать программу.

تغییر و مقایسه مقادیر

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

  • * ضرب،
  • - منها کردن،
  • + علاوه بر این ،
  • / تقسیم ،
  • \u003d تکلیف ،
  • \u003d\u003d برابری ،
  • \u003e بیشتر ،
  • < меньше.
  • ! \u003d نابرابر
  • \u003e \u003d بزرگتر از یا برابر است
  • <= меньше или равно

اپراتورهایی که عملکردهای ریاضی را انجام می دهند باید در سمت راست علامت واگذاری قرار بگیرند تا نتیجه را به یک متغیر در سمت چپ اختصاص دهند.

در اینجا چند مثال آورده شده است:

A \u003d 4 * 6؛ // استفاده از توضیحات خط و نقطه ، یک برابر 24 a \u003d a + 5؛ // برابر است با مقدار مقدار اصلی و پنج عدد \u003d 5 \u003d 5/5 اختصاص داده نشده است ، بررسی می شود که 5 باشد یا نه

شما اغلب در سازه هایی از قبیل شرطی و حلقه از \u003d\u003d استفاده خواهید کرد.

آ< 5 // Проверка, a менее пяти? a > 5 // بررسی کنید که آیا a از پنج بیشتر است؟ a \u003d\u003d 5 // بررسی کنید که a پنج است؟ a! \u003d 5 // بررسی کنید ، اما با پنج برابر نیست؟ a\u003e \u003d 5 // بررسی کنید که a از پنج برابر یا برابر باشد؟ آ<= 5 // Проверка, a меньше или равно пяти?

این مثالها در مورد استفاده از علائم مقایسه کاملاً واضح نیست ، اما وقتی مطالعه اپراتورهای انتخاب را شروع می کنیم ، خواهید فهمید که چرا این امر ضروری است.

یادگیری اصول و پیچیدگی های زبان برنامه نویسی C ++. کتاب درسی با کارها و آزمونهای عملی. آیا می خواهید یاد بگیرید که چگونه برنامه نویسی کنید؟ سپس شما در جای مناسب قرار دارید - در اینجا یک آموزش برنامه نویسی رایگان است. چه در این زمینه تجربه داشته باشید و چه نخواهید ، این دروس برنامه نویسی به شما کمک می کند تا برنامه های C ++ را در محیط های مختلف توسعه شروع به ساخت ، گردآوری و اشکال زدایی کنید: Visual Studio ، Code :: Blocks ، Xcode یا Eclipse.

تعداد زیادی مثال و توضیحات مفصل. ایده آل برای هر دو مبتدی (آدمک) و پیشرفته تر. همه چیز از ابتدا تا جزئیات توضیح داده شده است. این دروس (200+) برای درک برنامه نویسی نه تنها در C ++ بلکه در سایر زبانهای برنامه نویسی ، پایه و اساس خوبی را به شما می دهد. و کاملاً رایگان است!

همچنین ایجاد مرحله به مرحله یک بازی در C ++ ، کتابخانه گرافیکی SFML و بیش از 50 کار را برای تست مهارت و دانش خود در C ++ را در بر می گیرد. پاداش اضافه شده است.

برای repost +20 کارما و تشکر از شما!

فصل شماره 0 مقدمه. شروع کار

فصل 1. مبانی C ++

فصل شماره 2 متغیرها و انواع داده اصلی در C ++

فصل شماره 3. اپراتورهای C ++

فصل شماره 4. دامنه و انواع دیگر متغیرها در C ++

فصل شماره 5 ترتیب اجرای کد در برنامه. حلقه ها ، شاخه های C ++

زنگ

کسانی هستند که این خبر را قبل از شما می خوانند.
برای دریافت آخرین مقالات مشترک شوید.
پست الکترونیک
نام
نام خانوادگی
چگونه می خواهید The Bell را بخوانید
بدون اسپم