زنگ

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

عملیات و عملگرهای زبان برنامه نویسی C. نمونه های برنامه

کنترل ساختارها و ساختارهای اساسی زبان های برنامه نویسی

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

وضعیت برخی از سلول های حافظه که توسط ما به عنوان متغیر درک می شود.

نقطه فعال برنامه یعنی دستور برنامه ای که در حال اجراست.

بنابراین، می توان دو دسته اصلی از اقدامات قابل انجام را تشخیص داد سیستم محاسباتی:

اقداماتی که یک ناحیه حافظه را برای متغیرهای برنامه اختصاص می دهد (توضیحات).

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

مجموعه‌ای از اقدامات دسته دوم نیز ساختارهای کنترلی نامیده می‌شوند.

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

در دهه 1960، مشخص شد که اکثر مشکلاتی که توسط تیم های توسعه تجربه شده است نرم افزاراستفاده کنترل نشده از کنترل انتقال. مقصر عبارت goto بود که به برنامه نویس اجازه می دهد کنترل برنامه را به یکی از آدرس های ممکن در محدوده بسیار وسیعی منتقل کند. مفهوم به اصطلاح برنامه نویسی ساخت یافتهتقریباً مترادف "استثنای بیانیه goto" شده است.

تحقیقات بوهم و جاکوپینی نشان داد که برنامه نویسی حتی در غیاب کامل عبارات goto امکان پذیر است. تغییر سبک برنامه نویسی به "برنامه نویسی بدون گفتو" به یک شعار دوران ساز برای برنامه نویسان تبدیل شده است. اما تا دهه 1970 بود که محافل گسترده ای از برنامه نویسان حرفه ای شروع به جدی گرفتن برنامه نویسی ساختاریافته کردند. نتایج چشمگیر بوده است زیرا تیم‌های توسعه نرم‌افزار کاهش زمان توسعه، تحویل مکرر سیستم را به موقع و تکمیل پروژه با بودجه گزارش کرده‌اند. کلید موفقیت به سادگی این است که برنامه‌های مبتنی بر روش‌های برنامه‌نویسی ساختاریافته قابل درک‌تر، اشکال‌زدایی و اصلاح آسان‌تر، و مهم‌تر از همه، بیشتر احتمال دارد که بدون خطا نوشته شوند.
کار بوهم و جاکوپینی در سال 1966 نشان داد که همه برنامه ها را می توان تنها با استفاده از سه ساختار کنترلی، یعنی ساختار توالی، ساختار انتخاب و ساختار تکرار نوشت. این نتیجه توسط بوم و جاکوپینی در سال 1966 با اثبات اینکه هر برنامه ای را می توان به برنامه ای معادل تبدیل کرد که فقط از این ساختارها و ترکیبات آنها تشکیل شده است، ایجاد شد. در این مورد، ساختار ترتیبی اساساً در زبان C ساخته شده است. مگر اینکه خلاف آن مشخص شده باشد، کامپیوتر به طور خودکار دستورات C را یکی پس از دیگری به ترتیبی که نوشته شده اند اجرا می کند.

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

ساختارهای حاکم عبارتند از:

· ساختار زیر.

ساختار انشعاب

ساختار یافته اپراتورها - اینها سازه هایی هستند که طبق قوانین خاصی از سایر اپراتورها ساخته شده اند. بیانیه های ساختاریافته عبارتند از:

بیانیه مرکب

اپراتور مشروط

اپراتورهای انتخاب

عبارات حلقه

با بیانیه

1. عملگر مرکب

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

فرمت بیانیه مرکب:

شروع<Оператор1>; ... ; <ОператорN>;

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

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

2. اپراتور شرطی

مشروط اپراتور تضمین می کند که برخی دستورات بسته به شرایط خاص اجرا می شوند یا اجرا نمی شوند.

قالب بیانیه شرطی:

اگر سپس<Оператор1> ;

شرط یک بیان است نوع بولی. دستور به صورت زیر عمل می کند: اگر شرط درست باشد (مقدار True داشته باشد)، دستور 1 اجرا می شود، در غیر این صورت دستور 2 اجرا می شود. هر دو عملگر می توانند مرکب باشند.

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

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

3. اپراتور را انتخاب کنید

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

انتخاب فرمت بیانیه:

مورد<Выражение-селектор>از

<Список1> : <Оператор1>;

<СписокN> : <ОператорN>

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

دستور select به صورت زیر اجرا می شود:

1. مقدار عبارت انتخابگر ارزیابی می شود.

2. بررسی متوالی گزینه ها برای مطابقت مقدار انتخابگر با ثابت ها و مقادیر از محدوده لیست مربوطه انجام می شود.

3. اگر این جستجو برای نوع بعدی موفقیت آمیز باشد، عملگر این نوع اجرا می شود. پس از آن اجرای دستور select به پایان می رسد.

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

مثال.بیانیه را انتخاب کنید

caseNumberDay of

1..5: strDay:= "روز کاری";

6..7: strDay: = "روز تعطیل"

else strDay:="";

بسته به مقدار متغیر عدد صحیح NumberDay که شامل تعداد روز هفته است، به متغیر رشته ای strDay مقدار مناسب اختصاص داده می شود.

>> ساختارهای کنترل. اطلاعات کلیدر مورد چرخه ها

دوره های آموزشی:

ساختارهای کنترلی اطلاعات کلی در مورد چرخه ها

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

اطلاعات کلی در مورد چرخه ها

چرخه ها تکرار عملیات هستند تا زمانی که یک شرط منطقی درست باشد. به عنوان مثال، اجازه دهید یک شرط حلقه که برخی از متغیرهای a کمتر از 10 باشد.

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

سه نوع حلقه وجود دارد: for، do...while، while. برای مثال ساختار حلقه for را در نظر بگیرید.

برای (آغاز کردن متغیر، شرط، تغییر متغیر پس از هر اجرای بلوک عبارات حلقه)
{
بدنه حلقه
}

بیایید به مثالی از استفاده از حلقه for نگاه کنیم (لیست 3.1).

لیست 3.1.
برای مثال حلقه

این برنامه ده ستاره را در یک خط نمایش می دهد. نیازی به مقداردهی اولیه متغیر شمارنده در حلقه نیست (متغیر شمارنده متغیری است که تعداد اجراهای بدنه حلقه را تعیین می کند). مثالی از برنامه ای را بدون اعلام متغیر شمارنده در یک حلقه در نظر بگیرید (لیست 3.2).

لیست 3.2.
مثالی از یک برنامه بدون اعلان متغیر شمارنده در یک حلقه

شما می توانید از بیش از یک متغیر شمارنده استفاده کنید، اما از چندین متغیر. نمونه ای از چنین برنامه ای را در لیست 3.3 در نظر بگیرید.

لیست 3.3.
نمونه ای از استفاده از چندین متغیر شمارنده

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

در حالی که (شرط)
{
بدنه حلقه
}

یک برنامه نمونه را در نظر بگیرید که از حلقه while استفاده می کند (لیست 3.4).

لیست 3.4.
نمونه ای از استفاده از حلقه while

خروجی این برنامه ده ستاره خواهد بود.

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

نمونه ای از برنامه های اشتباه

اکنون حلقه do...while را در نظر بگیرید.
بسیار شبیه به حلقه while است و تنها در این تفاوت دارد که شرط را نه قبل از اجرای بعدی حلقه، بلکه پس از اجرای آن بررسی می کند. حلقه do...while در زیر نشان داده شده است.

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


2 فصل 6. ساختارهای کنترلی عملگر انتساب اپراتور یک ساختار زبان برنامه نویسی است که برای تنظیم برخی از اقدامات یا دنباله ای از اقدامات در یک برنامه بر روی داده ها عمل می کند. مجموعه عملگرهای برنامه الگوریتم تعبیه شده در آن را پیاده سازی می کند. هر اپراتور مستلزم برخی اقدامات است. فرآیند "فشار دادن" یک مقدار به یک متغیر، تخصیص نامیده می شود (اولین تخصیص اولیه نامیده می شود). تخصیص با استفاده از یک ساختار خاص انجام می شود - عملگر انتساب: شناسه متغیر:=:= عبارت Var W,H: Integer; شروع W:= 23; H:= 17; W:=W*H; پایان.


3 فصل 6. ساختارهای کنترل دستورات ساده و مرکب دو عبارت متوالی باید با یک نقطه ویرگول (به معنای انتهای عبارت) از هم جدا شوند: a:= 11; b:= a * a; نوشتن (a,b)؛ یک دستور مرکب، دنباله ای از گزاره ها است که به عنوان یک دستور واحد در نظر گرفته می شود. با استفاده از کلمات رزرو شده شروع و پایان (پرانتز اپراتور) تشکیل شده است. عملگر در یک برنامه یک جمله تقسیم ناپذیر منفرد است که عملی را انجام می دهد. یک دستور ساده حاوی عبارات دیگری نیست (بیانات انتساب، فراخوانی رویه، ...). شروع a:= 11; b:= a * a; نوشتن (الف، ب) پایان;


5 سپس X:= X + 5 را شروع کنید. Y:= 1 انتهای دیگری Y:= -1; عملگر شرطی برای برنامه ریزی شاخه ها استفاده می شود. مواقعی که تحت شرایط خاصی اجرای "title="(!LANG:4 Ch. 6. CONTROL Structures) دستور شرطی اگر K > 5 ضروری است، X:= X + 5؛ Y:= 1 و دیگری Y:= - شروع می شود. 1؛ عملگر شرطی برای برنامه‌نویسی شاخه‌ها استفاده می‌شود، یعنی شرایطی که اجرای آن در شرایط خاصی ضروری است." class="link_thumb"> 4 !} 4 فصل 6. ساختارهای کنترلی عبارت شرطی اگر K> 5 باشد، X:= X + 5 شروع می شود. Y:= 1 انتهای دیگری Y:= -1; عملگر شرطی برای برنامه ریزی شاخه ها استفاده می شود. شرایطی که تحت شرایط خاصی انجام اعمال مختلف ضروری می شود. دستور شرطی ساختاری دارد: if بیان بولیسپس عبارت statement other فقط یک دستور در هر شاخه مجاز است. 5 سپس X:= X + 5 را شروع کنید. Y:= 1 انتهای دیگری Y:= -1; عملگر شرطی برای برنامه ریزی شاخه ها استفاده می شود. در شرایطی که در شرایط خاصی اجرای "> 5 ضروری می شود، سپس X:= X + 5 شروع می شود؛ Y:= 1 پایان دیگر Y:= -1؛ عملگر شرطی برای برنامه ریزی شاخه ها استفاده می شود، به عنوان مثال، موقعیت هایی که نیاز ایجاد می شود زمانی که نیاز ایجاد می شود. اعمال مختلف را تحت شرایط معین انجام دهید. دستور شرطی ساختاری دارد: اگر عبارت منطقی باشد، دستور else فقط یک دستور در هر شاخه مجاز است."> 5 سپس X:= X + 5 شروع می شود. Y:= 1 انتهای دیگری Y:= -1; عملگر شرطی برای برنامه ریزی شاخه ها استفاده می شود. مواقعی که تحت شرایط خاصی اجرای "title="(!LANG:4 Ch. 6. CONTROL Structures) دستور شرطی اگر K > 5 ضروری است، X:= X + 5؛ Y:= 1 و دیگری Y:= - شروع می شود. 1؛ عملگر شرطی برای برنامه‌نویسی شاخه‌ها استفاده می‌شود، یعنی شرایطی که اجرای آن در شرایط خاصی ضروری است."> title="4 فصل 6. ساختارهای کنترلی عبارت شرطی اگر K> 5 باشد، X:= X + 5 شروع می شود. Y:= 1 انتهای دیگری Y:= -1; عملگر شرطی برای برنامه ریزی شاخه ها استفاده می شود. شرایطی که انجام آن تحت شرایط خاصی ضروری است"> !}




6 فصل 6. ساختارهای کنترلی بیانیه چند گزینه ای دستور انتخاب برای پیاده سازی چندین مورد استفاده می شود گزینه های جایگزیناقداماتی که هر کدام با مقادیر خاص خود از برخی پارامترها مطابقت دارد. بیان موردی دستورات ثابت/محدوده else: دستور end ; مقدار و همچنین باید یکی از انواع ترتیبی (غیر از LongInt) باشد. بسته به مقدار، عبارتی که قبل از آن یک ثابت انتخاب برابر با مقدار محاسبه شده است انتخاب می شود (به طور متناوب، دستورات پس از دیگری). مقادیر ثابت باید در هر مجموعه منحصر به فرد باشد، به عنوان مثال. آنها فقط می توانند در یک نوع ظاهر شوند.


7 فصل 6. ساختارهای کنترل مورد I از (I: Word) 1: X:= X +1; 2.3: X:= X +2; 4..9: شروع نوشتن (X); X:= X + 3 (m.b. ";") پایان (m.b. ";") دیگری X:= X * X; Writeln(X) (m.b. ";") end;


8 فصل 6. ساختارهای کنترلی دستور چرخه "While" (با پیش شرط) در حالی که عبارت شرطی do (بدنه حلقه) بعد از کلمه سرویس do به صورت چرخه ای اجرا می شود تا زمانی که شرط منطقی برآورده شود، یعنی. در حالی که مقدار True است. برای اینکه یک حلقه فرصتی برای خاتمه پیدا کند، محتویات بدنه آن باید بر وضعیت حلقه تأثیر بگذارد. شرط باید شامل عبارات و مقادیر معتبری باشد که قبل از اولین اجرای بدنه حلقه تعریف شده اند. VarF,N: LongInt;(محاسبه 10 Begin F:= 1; N:= 1; while N !}


9 فصل 6. ساختارهای کنترلی بیانیه حلقه "Before" (با شرط پست) عبارات بین کلمات تکرار و تا زمانی که بدنه حلقه را تشکیل می دهند. اگر درست باشد، حلقه به پایان می رسد. حلقه "While" - "در حالی که شرط درست است، دستورات بدنه را اجرا کنید." حلقه "قبل" - "بدنه حلقه را تا زمانی که شرط درست شود اجرا کنید"؛ تکرار کنید تانادرست عملگر t را تا بیان شرطی تکرار کنید.


10 فصل 6. ساختارهای کنترلی یک اپراتور حلقه با پارامتر (حلقه روی شمارنده) یک متغیر از نوع ترتیبی است، و مقادیر و نیز باید به همان نوع تعلق داشته باشند. مقدار به ترتیب صعودی (با استفاده از کلمه رزرو شده به) یا نزولی (پایین) از مقدار به مقدار با یک گام ثابت برابر با فاصله بین دو نزدیکترین مقدار در نوع مورد نظر تغییر می کند (برای انواع عدد صحیح- این 1 است، برای یک کاراکتر - از یک کاراکتر به کاراکتر دیگر هنگام افزایش کد با 1 و غیره). برای حلقه هااگر هیچ یک از حلقه‌های تودرتو از متغیرها - پارامترهای حلقه‌های بیرونی استفاده نمی‌کند یا آنها را تغییر نمی‌دهد، اجازه تودرتو می‌دهد. برای سازماندهی حلقه های "سخت" استفاده می شود که باید چندین بار انجام شود. برای پارامتر حلقه r:= عبارت 1 تا عبارت 2 do downto عبارت


12 فصل 6. ساختارهای کنترلی عملگر پرش بدون قید و شرط یک برچسب می تواند در هر نقطه ای از برنامه بین اپراتورها ظاهر شود و با علامت ":" از عملگر دوم جدا می شود. دامنه عملگرهای پرش بدون قید و شرط کاملاً محلی است. انتقال در دستور goto بین رویه ها و همچنین بین بلوک اصلی و رویه ممنوع است. اپراتور شاخه بدون قید و شرط کنترل اجرا را به محل برنامه نشان داده شده توسط برچسب منتقل می کند (از نظر تئوری برنامه ریزی ساخت یافته "زائد" است). goto label برچسب عدد صحیح بدون علامت. شناسه برچسب، نمودارهای نحوی و: LabelL1، L2. شروع ... goto L1;... L1: goto L2;... L2: پایان.


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

اپراتور شعبه

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

تبادل آنلاین مقالات دانشجویی">

مثال 1

به عنوان مثال، اگر a > b سپس max = a Else max = b.

اگر چندین دستور نیاز به اجرا داشته باشد، آنها با دو نقطه از هم جدا می شوند.

مثال 2

به عنوان مثال، اگر a > 0 سپس b = a + 1: c = a\2.

نحو بلوک قدرتمندتر، ساختارمندتر و خواناتر است.

نحو بلوک:

Condition - یک عبارت منطقی که می تواند یک مقدار بگیرد درست است، واقعی(درست است، واقعی)، نادرست(کاذب) یا خالی، که برابر است با نادرست. هنگامی که یک دستور شاخه بلوکی اجرا می شود، شرط بررسی می شود و اگر درست باشد، دستور زیر دستور اجرا می شود. سپس. اگر شرط درست نیست، بررسی کنید شرط 2، پشت سر گذاشتن اگر دیگر. هنگامی که یک مقدار واقعی یافت می شود، true_statement2 اجرا می شود که به شرح زیر است سپس، پس از آن برنامه خارج می شود EndIf(یعنی بعدی اگر دیگر، در صورت وجود، بررسی نمی شوند). اگر شرایط واقعی برای اگر دیگریافت نشد، statement_false_condition اجرا شد.

شکل 3. مثال نحو بلوک. نویسنده24 - تبادل آنلاین مقالات دانشجویی

بیانیه را انتخاب کنید

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

شکل 4. نحو دستور select. نویسنده24 - تبادل آنلاین مقالات دانشجویی

مقدار یک متغیر یا عبارت است که در برابر یک یا چند شرط آزمایش می شود. لیست مقادیر با کاما از هم جدا شده است، محدوده مقادیر با استفاده از کلمه سرویس مشخص می شود. به(مثلاً 5 تا 9).

مثال 3

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

زنگ

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