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

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

یک زبان الگوریتمی شبیه به الگوریتم با نحو روسی توسط آکادمیسین A.P. Ershov در اواسط دهه 1980 به عنوان پایه ای برای دوره علوم کامپیوتر "بدون ماشین" معرفی شد.

کلمات سرویس اصلی زبان الگوریتمی

شرح الگوریتم

  • alg(الگوریتم)
  • ارگ(بحث و جدل)
  • قطع كردن(نتیجه)
  • زود(شروع) - آغاز الگوریتم
  • باهم(پایان) - پایان الگوریتم
  • داده شده- داده های اولیه به هر شکل
  • لازم استهدف الگوریتم است

انواع داده ها:

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

نماد وضعیت

  • اگر
  • در غیر این صورت
  • انتخاب
  • ارزش

تعیین چرخه

  • nc(شروع چرخه)
  • kts(پایان چرخه)
  • خدا حافظ

توابع و مقادیر بولی برای ساخت عبارات

ورودی خروجی

  • ورودی
  • نتیجه

نمای کلی الگوریتم

1
2
3
4
5
6

algنام الگوریتم (استدلال ها و نتایج)
| داده شدهشرایط کاربرد الگوریتم
| لازم استهدف الگوریتم
زودتوصیف مقادیر میانی
| دنباله دستور (بدنه الگوریتم)
باهم

بخشی از الگوریتم از کلمه algبه کلمه زودعنوان نامیده می شود و بخشی که بین کلمات محصور شده است زودو باهم- بدنه الگوریتم

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

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

ساختارهای الگوریتمی پایه

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

| اگروضعیت
| | سپساقدامات
| همه

چنگال کامل

1
2
3
4
5

| اگروضعیت
| | سپساقدامات 1
| | در غیر این صورتاقدام 2
| همه

شاخه

1
2
3
4
5
6
7
8

| انتخابپارامتر
| | در ارزشارزش 1
| | | اقدامات 1
| | در ارزشارزش 2
| | | اقدام 2
| | در غیر این صورت
| | | اقدامات پیش فرض
| همه

حلقه با پیش شرط

| nts خداحافظوضعیت
| | اقدامات
| kts

حلقه با شرط پست

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

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

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

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

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

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

نمای کلی الگوریتم:

alg نام الگوریتم (استدلال ها و نتایج)

داده شده شرایط کاربرد الگوریتم

لازم است هدف الگوریتم

زود توصیف مقادیر میانی

دنباله فرمان(بدنه الگوریتم)

بخشی از الگوریتم از کلمه alg به کلمه زود عنوان نامیده می شود و بخشی که بین کلمات محصور شده است زود و باهم - بدنه الگوریتم

در یک جمله alg پس از نام الگوریتم، در داخل پرانتز، مشخصات (arg، res) و نوع مقدار (عدد صحیح، واقعی، sim، lit یا log) همه متغیرهای ورودی (آرگومان) و خروجی (نتایج) مشخص شده است. هنگام توصیف آرایه ها (جدول)، یک کلمه سرویس استفاده می شود برگه، با جفت های مرزی برای هر شاخص عنصر آرایه پر شده است.

نمونه جملات alg :

alg حجم و مساحت سیلندر (arg w R, H, res w V, S)

alg ریشه های KvUr ( ارگچیز الف، ب، ج، قطع كردنمورد x1، x2، res lit t)

alg حذف عنصر ( ارگعدد صحیح N، ارگبرگه مورد برش A)

alg مورب ( ارگعدد صحیح N، ارگکل زبانه A، برش روشن. پاسخ)

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

alg جایگزینی (arg lit Str1, Str2, arg res lit text)

داده شده | طول زیر رشته های Str1 و Str2 یکسان است

نیاز | در همه جای خط متن زیر رشته Str1 با Str2 جایگزین می شود

alg تعداد ماکزیمم (arg عدد صحیح N، arg برگه واقعی A، res عدد صحیح K)

داده شده | N>0

نیاز | K - تعداد حداکثر عناصر در جدول A

alg مقاومت (arg real R1، R2، arg عدد صحیح N، res real R)

داده شده | N>5، R1>0، R2>0

نیاز | R - مقاومت مدار

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

کلمات خدمات اصلی زبان الگوریتمی:

alg (الگوریتم) sim (سمبلیک) برای بله

arg (برهان) روشن (به معنای واقعی کلمه) باید از نه

نتیجه (نتیجه) ورود به سیستم (بولی) اگر به at

شروع (شروع) تب (جدول) سپس مقدار انتخاب کنید

پایان (پایان) nts (شروع چرخه) در غیر این صورت و وارد کنید

عدد صحیح (عدد صحیح) kts (پایان حلقه) همه یا خروجی

طول (طول) واقعی (واقعی) هنوز تایید نشده است

دستورات پایه:

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

به عنوان مثال: a:= (b+c) * sin(Pi/4); i:= i+1.

دستورات ورودی و خروجی

ورودی نام متغیرها (ورودی صفحه کلید)

نتیجه نام متغیرها، عبارات، متون. (خروجی داده به صفحه نمایش)

دستورات شعبه

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

ساختار انشعاب در چهار نوع اصلی وجود دارد:

1. تیم اگر پس از آن؛

اگر وضعیت

سپس اقدامات

2. تیم اگر - پس - در غیر این صورت؛

اگروضعیت

سپس اقدامات 1

در غیر این صورت اقدام 2

3. تیم انتخاب؛

انتخاب

در شرط 1: اعمال 1

در شرط 2: اعمال 2

. . . . . . . . . . . .

در شرط N: اعمال N

4. تیم انتخاب متفاوت است

انتخاب

در شرط 1: اعمال 1

در شرط 2: اعمال 2

. . . . . . . . . . . .

در شرط N: اعمال N

در غیر این صورت اقدامات N+1

فرمان های چرخه ای

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

دو دستور برای حلقه کردن وجود دارد:

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

ncخدا حافظوضعیت

بدنه حلقه

(ترتیب دهی)

kts

2. نوع چرخه برای -دستور اجرای بدنه حلقه برای همه مقادیر یک متغیر (پارامتر حلقه) در محدوده مشخص شده را می دهد.

ncبرایمن از جانب i1 قبل از i2

بدنه حلقه

(ترتیب دهی)

kts

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

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

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

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

زبان های برنامه نویسی دارای ویژگی های زیر هستند:

  • سطح زبان - با پیچیدگی وظایف حل شده با کمک این زبان مشخص می شود.
  • قدرت زبان - با تعداد و تنوع وظایف مشخص می شود، الگوریتم هایی برای حل که می توان با استفاده از این زبان نوشت.
  • قابلیت اطمینان - زبان باید هنگام نوشتن برنامه ها حداقل خطا را ارائه دهد. علاوه بر این، زبان باید باشد برنامه های اشتباهنوشتن سخت بود
  • خوانایی ب -سهولت درک برنامه ها توسط شخص. این ویژگی در کار گروهی مهم است، زمانی که چند نفر با متون برنامه یکسان کار می کنند.
  • کامل بودن - توانایی توصیف دسته ای از مسائل در یک حوزه موضوعی خاص را مشخص می کند.
  • انعطاف پذیری - سهولت بیان اقدامات لازم را مشخص می کند.

با توجه به این معیار می توان سطوح زیر را از زبان های برنامه نویسی تشخیص داد:

  • دستگاه؛
  • ماشین گرا (مونتاژکنندگان)؛
  • مستقل از ماشین (زبان های سطح بالا).

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

زبان های سطح بالا به دو دسته تقسیم می شوند:

  • رویه ای (الگوریتمی)(Basic، Pascal، C، و غیره)، که برای توصیف بدون ابهام الگوریتم ها در نظر گرفته شده است. برای حل یک مشکل، زبان های رویه ای نیاز به نوشتن صریح رویه حل آن به یک شکل یا شکل دیگر دارند.
  • بازی فکری ( Prolog، Lisp و غیره ) ، که نه بر توسعه الگوریتمی برای حل مسئله، بلکه بر توصیف سیستماتیک و رسمی مسئله متمرکز شده اند به طوری که راه حل از توضیحات جمع آوری شده پیروی می کند.
  • شی گرا(ابجکت پاسکال، سی پلاس پلاس، جاوا و غیره)، که بر اساس مفهوم یک شی است که داده ها و اعمال را روی ما ترکیب می کند. یک برنامه در یک زبان شی گرا، که مشکل خاصی را حل می کند، اساساً بخشی از جهان مربوط به این مشکل را توصیف می کند. توصیف واقعیت در قالب سیستمی از اشیاء متقابل طبیعی‌تر از روش‌های متقابل است.

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

§ تحلیل و بررسی؛

§ طرح؛

§ برنامه نويسي؛

§ تست و اشکال زدایی؛

§ بهره برداری.

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

  • نسل اول: زبان های ماشینیدر اواسط دهه 40 قرن XX ظاهر شد.
  • نسل دوم: مونتاژ کنندگاندر واقع، اینها همان زبانهای ماشینی هستند، اما زیباتر "پیچیده شده" هستند. در اواخر دهه 1950 ظاهر شد
  • نسل سوم: زبان های رویه ایدر اوایل دهه 1960 ظاهر شد. این نسل شامل زبان‌های سطح بالا جهانی است که می‌توانند برای حل مشکلات از هر منطقه استفاده شوند (به عنوان مثال، Algol-60).
  • نسل چهارم: زبان هایی که از ساختارهای داده پیچیده پشتیبانی می کنند(به عنوان مثال SQL). در اواخر دهه 60 قرن XX ظاهر شد.
  • نسل پنجم: زبان های هوش مصنوعی(به عنوان مثال Prolog). در اوایل دهه 70 قرن XX ظاهر شد.
  • نسل ششم: زبان های شبکه عصبی(زبان های خودآموز). کار پژوهشیدر این منطقه از اواسط دهه 1980 آغاز شد.

نتیجه

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

وزارت آموزش و پرورش فدراسیون روسیهدانشگاه فنی دولتی پرم

بخش فناوری اطلاعاتو سیستم های خودکار

ویکنتیوا او. ال.

چکیده سخنرانی های درس "زبان های الگوریتمی و برنامه نویسی" (مبانی زبان C ++، ترم اول)

مقدمه

ترم اول به ساختارهای پایه زبان C و فناوری برنامه نویسی پایه (برنامه نویسی ساختاریافته) می پردازد.

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

1.1. الگوریتم و برنامه

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

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

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

1.2 ویژگی های الگوریتم

1. کاراکتر جرم: الگوریتم باید نه برای یک مسئله، بلکه برای یک کلاس کامل از مسائل مشابه اعمال شود (الگوریتمی برای حل یک معادله درجه دوم باید نه یک معادله، بلکه همه معادلات درجه دوم را حل کند).

2. کارایی: الگوریتم باید در تعداد مراحل مشخصی به نتیجه برسد (هنگام تقسیم 1 بر 3، کسری تناوبی 0.3333(3) به دست می آید، برای رسیدن به نتیجه نهایی، باید دقت به دست آوردن این کسر را مشخص کرد. به عنوان مثال، تا 4 رقم اعشار).

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

4. گسسته - فرآیند باید با استفاده از تقسیم ناپذیر توصیف شود

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

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

1) توصیف شفاهی الگوریتم

2) توضیحات گرافیکی الگوریتم

3) با استفاده از یک زبان برنامه نویسی الگوریتمی

1.2. کامپایلر و مفسر

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

دوره کار، ترجمه هر عبارت به زبان ماشین.

1.3 زبان های برنامه نویسی

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

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

زبان های سطح بالا عبارتند از:

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

2. COBOL - زبان گردآوری شده برای محاسبات و راه حل های اقتصادیوظایف تجاری در اوایل دهه 60 توسعه یافت. Cobol ابزارهای بسیار قدرتمندی را برای کار با حجم زیادی از داده های ذخیره شده در رسانه های خارجی پیاده سازی کرده است.

3. پاسکال - در پایان ایجاد شددهه 70 توسط ریاضیدان سوئیسی نیکلاوس ویرث به طور خاص برای آموزش برنامه نویسی. این به شما امکان می دهد تفکر الگوریتمی را توسعه دهید، کوتاه و خوب بسازید برنامه خواندنی، تکنیک های اساسی الگوریتم سازی را نشان می دهد، همچنین برای اجرای پروژه های بزرگ مناسب است.

4. BASIC - ایجاد شده دردهه 60 نیز برای آموزش برنامه نویسی. کامپایلر و مفسر برای آن وجود دارد، این یکی از محبوب ترین زبان های برنامه نویسی است.

5. C - ایجاد شده در دهه 70 در ابتدا به عنوان یک زبان برنامه نویسی انبوه در نظر گرفته نشد. برنامه ریزی شده بود که اسمبلر جایگزین شود تا بتوان همان برنامه های کارآمد و کوتاه را ایجاد کرد، اما به یک پردازنده خاص وابسته نیست. از بسیاری جهات شبیه پاسکال است و دارد ویژگی های اضافیبرای کار با حافظه این شامل بسیاری از کاربردی و برنامه های سیستمی، همچنین سیستم عاملیونیکس

6. C++ یک پسوند شی گرا از زبان C است که توسط Bjarne Stroustrup در سال 1980 ایجاد شد.

7. جاوا زبانی است که در ابتدا توسط Sun ساخته شددهه 90 بر اساس C++. این برنامه برای ساده سازی توسعه برنامه ها در C++ با حذف ویژگی های سطح پایین از آن طراحی شده است. ویژگی اصلیزبان این است که در کد ماشین کامپایل نمی شود، بلکه در بایت کد مستقل از پلتفرم کامپایل می شود (هر دستور یک بایت را اشغال می کند). این کد را می توان با استفاده از یک مفسر، ماشین مجازی جاوا (JVM) اجرا کرد.

2. ساختار برنامه در C++

یک برنامه C دارای ساختار زیر است: #دستورالعمل های پیش پردازنده

. . . . . . . . .

# دستورات پیش پردازنده تابع a ()

عملگرهای تابع در ()

اپراتورها

void main () // تابعی که اجرای برنامه با آن اپراتورها شروع می شود

توضیحات

تکالیف

تابع دستور خالی

کامپوزیت

انتقال

دستورالعمل های پیش پردازنده - تغییر شکل متن برنامه را قبل از کامپایل کنترل کنید. برنامه اصلی به صورت SI تهیه شده است فایل متنی، 3 مرحله پردازش را طی می کند:

1) تبدیل متن پیش پردازنده؛

2) تدوین؛

3) طرح بندی (ویرایش یا مونتاژ پیوند).

پس از این سه مرحله کد اجرایی برنامه تشکیل می شود. وظیفه پیش پرو

cessor - تبدیل متن برنامه قبل از تدوین. قوانین پیش پردازش توسط برنامه نویس با استفاده از دستورالعمل های پیش پردازنده تعریف می شود. دستورالعمل با # شروع می شود. مثلا،

1) #define - قوانین جایگزینی را در متن نشان می دهد. # صفر 0.0 را تعریف کنید

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

2) #شامل< имя заголовочного файла>- برای درج در متن برنامه متن از فهرست "فایل های سرصفحه" ارائه شده با کتابخانه های استاندارد در نظر گرفته شده است. هر تابع کتابخانه C توضیحات مربوطه را در یکی از فایل های هدر دارد. لیست فایل های هدر توسط استاندارد زبان تعریف می شود. استفاده از دستورالعمل شامل شامل پیش‌بند استاندارد مربوطه نمی‌شود.

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

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

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

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

تعاریف - اشیاء را معرفی کنید (یک شی یک ناحیه حافظه نامگذاری شده است، یک مورد خاص از یک شی یک متغیر است) برای نمایش داده های در حال پردازش در برنامه ضروری است. یک مثال است

int y = 10 ; //به نام ثابت float x ; //متغیر

توضیحات - کامپایلر را در مورد خصوصیات و نام اشیاء و توابع شرح داده شده در قسمت های دیگر برنامه مطلع کنید.

اپراتورها - اقدامات برنامه را در هر مرحله از اجرای آن تعریف می کنند

برنامه C مثال:

#عبارتند از //دستورالعمل پیش پردازنده

سوالات تستی

1. برنامه C++ از چه بخش هایی تشکیل شده است؟

2. تعریف چه تفاوتی با اعلان دارد؟

3. مراحل ایجاد یک برنامه اجرایی در C++ را فهرست کنید.

4. پیش پردازنده چیست؟

5. دستورالعمل پیش پردازنده چیست؟ نمونه هایی از دستورالعمل های پیش پردازنده را ذکر کنید.

6. برنامه ای بنویسید که متن "اولین برنامه سی پلاس پلاس من" را چاپ کند.

2. امکانات اولیه زبان C++ 2.1 ترکیب زبان

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

برنج. 1.1. ترکیب زبان الگوریتمی بنابراین، عناصر زبان الگوریتمی عبارتند از:

شناسه ها نام اشیاء برنامه C هستند. می توان از حروف لاتین، اعداد و زیرخط در شناسه استفاده کرد. حروف بزرگ و کوچک متمایز می شوند، به عنوان مثال PROG1، prog1 و Prog1 سه شناسه متفاوت هستند. کاراکتر اول باید یک حرف یا زیرخط (نه یک عدد) باشد. فاصله در شناسه ها مجاز نیست.

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

- علائم عملیات یک یا چند نماد هستند که یک عملیات را بر روی عملوندها تعریف می کنند. با توجه به تعداد عملوندهای درگیر در این عملیات، عملیات به یک واحد، باینری و سه تایی تقسیم می شوند.

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

جداکننده - براکت، نقطه، کاما، کاراکتر فاصله.

2.1.1. ثابت ها در C++

یک ثابت نشانه ای است که نشان دهنده یک مقدار عددی، رشته یا کاراکتر ثابت است.

ثابت ها به 5 گروه تقسیم می شوند:

کل؛

- واقعی (نقطه شناور)؛

برشمرده شده؛

نمادین؛

رشته

کامپایلر یک واژه را انتخاب می کند و آن را به یک گروه یا گروه دیگر و سپس به صورت داخلی اختصاص می دهد

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

ثابت های اعداد صحیح می توانند اعشاری، اکتال و هگزادسیمال باشند. ثابت اعشاری به عنوان دنباله ای از ارقام اعشاری تعریف می شود که از 0 شروع نمی شود مگر اینکه آن عدد 0 باشد (مثال: 8، 0، 192345). ثابت هشتی ثابتی است که همیشه با 0 شروع می شود. 0 با ارقام اکتالی دنبال می شود (مثال: 016 - مقدار اعشاری 14، 01). ثابت‌های هگزا دسیمال دنباله‌ای از ارقام هگزا دسیمال هستند که قبل از کاراکترهای 0x یا 0X قرار می‌گیرند (مثلاً: 0xA، 0X00F).

AT بسته به مقدار یک کامپایلر ثابت عدد صحیحمتفاوت ارائه کند

که در حافظه کامپیوتر (یعنی کامپایلر نوع داده مناسب را به ثابت نسبت می دهد).

ثابت های واقعی شکل متفاوتی از نمایش داخلی در حافظه کامپیوتر دارند. کامپایلر چنین ثابت هایی را با شکل آنها تشخیص می دهد. ثابت های واقعی را می توان به دو شکل نشان داد: نقطه ثابت و ممیز شناور. نوع ثابت نقطه ثابت: [رقم]. [رقم] (مثال: 5.7، 0.0001، 41.). نوع ثابت ممیز شناور: [رقم][.][رقم]E|e[+|-][رقم ] (مثال: 0.5e5، 0.11e-5، 5E3). در نمادگذاری ثابت های واقعی، یک عدد صحیح یا یک جزء کسری، یا یک نقطه اعشاری، یا علامت یک توان با توان را می توان حذف کرد.

ثابت های شمارش شده با استفاده از کلمه کلیدی enum معرفی می شوند. اینها ثابت های اعداد صحیح معمولی هستند که به آنها نماد منحصر به فرد و آسان برای استفاده اختصاص داده شده است. مثالها: enum (یک=1، دو=2، سه=3، چهار=4)؛

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

enum( ده=10، سه=3، چهار، پنج، شش)؛

enum (یکشنبه، دوشنبه، سه شنبه، چهارشنبه، پنجشنبه، جمعه، شنبه،

ثابت های کاراکتر یک یا دو کاراکتر هستند که در آپستروف ها محصور شده اند. ثابت های کاراکتری متشکل از یک کاراکتر از نوع char هستند و یک بایت در حافظه اشغال می کنند، ثابت های کاراکتر متشکل از دو کاراکتر از نوع int هستند و دو بایت را اشغال می کنند. دنباله هایی که با علامت \ شروع می شوند، دنباله های فرار نامیده می شوند، از آنها استفاده می شود:

- برای نشان دادن کاراکترهایی که نمایشگر گرافیکی ندارند، به عنوان مثال:

\a - سیگنال صوتی،

\b - یک مرحله بازگشت، \n - فید خط،

\t - زبانه افقی.

- برای نشان دادن کاراکترها: \ , ' , ? , ” (\\, \’ ,\? ,\”).

- برای نشان دادن کاراکترها با استفاده از کدهای هگزا دسیمال یا اکتال (\073، \0xF5).

ثابت رشته ای دنباله ای از کاراکترهای محصور در گیومه است.

از کاراکترهای کنترلی نیز می توان در رشته ها استفاده کرد. به عنوان مثال: "\nخط جدید"،

"\n\"زبان های برنامه نویسی الگوریتمی سطح بالا \"".

2.2. انواع داده در C++

داده ها دنیای اطراف را در برنامه نمایش می دهند. هدف این برنامه پردازش داده ها است. داده ها انواع مختلفمتفاوت ذخیره و پردازش می شود. نوع داده تعریف می کند:

1) نمایش داخلی داده ها در حافظه کامپیوتر؛

2) مجموعه مقادیری که مقادیر از این نوع می توانند بگیرند؛

3) عملیات و توابعی که می تواند برای داده های این نوع اعمال شود.

AT بسته به الزامات کار، برنامه نویس یک نوع را برای اشیاء برنامه انتخاب می کند. انواع C++ را می توان به انواع ساده و مرکب تقسیم کرد. انواع ساده انواعی هستند که با یک مقدار مشخص می شوند. C++ 6 نوع داده ساده را تعریف می کند:

int (عدد صحیح)

کاراکتر (شخصیت)

wchar_t (کاراکتر گسترده) bool (بولی) شناور (واقعی)

دو برابر (دقت دو برابر واقعی)

4 نوع مشخص کننده وجود دارد که نمایش داخلی و محدوده انواع استاندارد را مشخص می کند

کوتاه (کوتاه) بلند (بلند) امضا شده (امضا)

بدون امضا

2.2.1. int را تایپ کنید

مقادیر این نوع اعداد صحیح هستند.

اندازه نوع int توسط استاندارد تعریف نشده است، اما به کامپیوتر و کامپایلر بستگی دارد. برای یک پردازنده 16 بیتی، 2 بایت برای آن، برای یک پردازنده 32 بیتی، 4 بایت اختصاص داده شده است.

اگر یک مشخص کننده کوتاه قبل از int وجود داشته باشد، 2 بایت برای عدد و اگر مشخص کننده طولانی باشد، 4 بایت اختصاص می یابد. مجموعه به مقدار حافظه اختصاص داده شده برای شی بستگی دارد. مقادیر مجاز، که شی می تواند بپذیرد:

int کوتاه - 2 بایت را اشغال می کند، بنابراین دارای محدوده -32768 ..+32767;

long int - 4 بایت را اشغال می کند، بنابراین دارای محدوده -2 147 483 648.. + 2 147 483 647 است.

نوع int مانند نوع int کوتاه در رایانه های شخصی 16 بیتی و نوع int طولانی در رایانه های شخصی 32 بیتی است.

اصلاح‌کننده‌های امضا شده و بدون علامت نیز بر مجموعه مقادیر معتبری که یک شی می‌تواند بگیرد، تأثیر می‌گذارد:

int کوتاه بدون علامت - 2 بایت را اشغال می کند، بنابراین دارای محدوده 0 ..65536 است. int طولانی بدون علامت - 4 بایت را اشغال می کند، بنابراین دارای محدوده 0..+4 294 967 است.

2.2.2. char تایپ کنید

مقادیر این نوع عناصر یک مجموعه منظم از کاراکترها هستند. به هر کاراکتر یک عدد اختصاص داده می شود که به آن کد کاراکتر می گویند. زیر ارزش نوع شخصیت 1 بایت اختصاص داده شده است. نوع char را می توان با مشخص کننده های علامت دار و بدون علامت استفاده کرد. داده‌های کاراکتر امضاشده می‌توانند مقادیر را در محدوده -128 تا 127 ذخیره کنند. کاراکتر بدون علامت می‌تواند مقادیر را در محدوده 0 تا 255 ذخیره کند. رمزگذاری از ASCII (کد استاندارد آمریکایی، تبادل بین‌المللی دشمن) استفاده می‌کند. نمادهایی با کدهای 0 تا 31 نمادهای خدماتی هستند و فقط در دستورات ورودی/خروجی معنای مستقلی دارند.

مقادیر نوع char نیز برای ذخیره اعداد از محدوده های مشخص شده استفاده می شود.

2.2.3. wchar_t نوع

طراحی شده برای کار با مجموعه ای از کاراکترها که کدگذاری آن ها 1 بایت کافی نیست، مانند یونیکد. اندازه این نوع، به عنوان یک قاعده، مربوط به نوع کوتاه است. ثابت های رشته ای از این نوع با پیشوند L نوشته می شوند: L"رشته #1".

2.2.4. bool را تایپ کنید

نوع bool را Boolean می گویند. مقادیر آن می تواند مقادیر true و false را بگیرد. نمایش داخلی false 0 است، هر مقدار دیگری به عنوان true تفسیر می شود.

2.2.5. انواع ممیز شناور

نمایندگی داخلی عدد واقعیاز 2 بخش مانتیس و نما تشکیل شده است. در رایانه های شخصی سازگار با IBM، مقادیر شناور 4 بایت را اشغال می کنند که یک بیت برای علامت مانتیس، 8 بیت برای توان و 24 بیت برای مانتیس اختصاص داده می شود.

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

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

2.2.6. نوع خالی

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

2.3. متغیرها

یک متغیر در C++ ناحیه ای نامگذاری شده از حافظه است که داده های یک نوع خاص را ذخیره می کند. یک متغیر دارای یک نام و یک مقدار است. این نام برای اشاره به ناحیه ای از حافظه که مقدار در آن ذخیره می شود استفاده می شود. هر متغیری باید قبل از استفاده اعلام شود. مثال ها:

نمای کلی اپراتور توضیحات:

[کلاس حافظه] نام نوع [آغاز کننده]؛

کلاس ذخیره سازی می تواند مقادیر زیر را داشته باشد: auto, extern, static, register. کلاس ذخیره سازی طول عمر و محدوده متغیر را تعریف می کند. اگر کلاس ذخیره سازی به صراحت مشخص نشده باشد، کامپایلر آن را بر اساس متن اعلان تعیین می کند. طول عمر می تواند ثابت باشد - در طول اجرای برنامه، یا موقت - در طول بلوک. Scope بخشی از متن برنامه است که از آن دسترسی عادی به یک متغیر مجاز است. معمولاً scope همان scope است. به جز زمانی که متغیری با همین نام در بلوک داخلی وجود دارد.

Const - نشان می دهد که این متغیر را نمی توان تغییر داد (به نام ثابت). هنگام توصیف، می توانید یک مقدار اولیه را به یک متغیر اختصاص دهید (initialization). کلاس های حافظه:

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

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

static یک متغیر ثابت است، فقط در فایلی که متغیر تعریف شده است وجود دارد.

ثبت - شبیه خودکار است، اما حافظه برای آنها در ثبات های پردازنده تخصیص داده می شود. اگر این امکان پذیر نباشد، متغیرها به عنوان خودکار در نظر گرفته می شوند.

int a; //متغیر جهانی void main()(

int b;//متغیر محلی

extern int x;//متغیر x در جای دیگری تعریف شده است static int c;//متغیر استاتیک محلی a=1;//تخصیص به متغیر سراسری

int a;//متغیر محلی a

a=2;//انتساب به متغیر محلی::a=3;//انتساب به متغیر سراسری

int x=4;//تعریف و مقداردهی اولیه x

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

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

نام متغیر باید در محدوده خود منحصر به فرد باشد.

اعلان متغیر می تواند به صورت اعلان یا تعریف انجام شود. اعلان حاوی اطلاعاتی در مورد کلاس ذخیره سازی و نوع متغیر است و تعریف به همراه این اطلاعات دستور تخصیص فضای ذخیره سازی را می دهد. در مثال extern int x; - اعلامیه، و بقیه - تعاریف.

2.4. علائم عملیات در C++

علائم عملیات شکل گیری عبارات را فراهم می کند. عبارات از عملوند، علائم عملگر و پرانتز تشکیل شده است. هر عملوند به نوبه خود یک عبارت یا حالت خاصی از یک عبارت است - یک ثابت یا یک متغیر.

عملیات Unary

& آدرس عملوند را دریافت کنید

* ارجاع به آدرس (عدم ارجاع)

- unary minus، علامت عملوند حسابی را تغییر می دهد

++ افزایش واحد:

عملیات پیشوند - عملوند را قبل از استفاده افزایش می دهد

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

int a=(m++)+n; // a=4,m=2,n=2

int b=m+(++n);//a=3,m=1,n=3

کاهش یک بار:

عملیات پیشوند - عملوند را به استفاده از آن کاهش می دهد

عملیات postfix یک عملوند را پس از استفاده از آن کاهش می دهد

محاسبه اندازه (بر حسب بایت) برای یک شی از نوع که

عملوند دارد

دو شکل دارد

اندازه بیان

sizeof(float)//4

sizeof(1.0)//8 زیرا ثابت های واقعی پیش فرض هستند

زبان الگوریتمی آموزشی وسیله ای برای نوشتن الگوریتم ها به شکلی است که بین نوشتن الگوریتم به زبان طبیعی (انسانی) و نوشتن به زبان کامپیوتر (زبان برنامه نویسی) قرار دارد.

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

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

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

ویژگی هدر الگوریتم کلمه کلیدی است alg.

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

alg نام الگوریتم

ارگ لیست داده های اولیه

قطع كردن لیست نتایج

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

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

اینگونه نوشته شده است:

<переменная> := <выражение>

علامت ": =" "تخصیص" خوانده می شود.

در صورتی که مقداری که مقدار به آن اختصاص داده شده در سمت راست دستور قرار گیرد، موارد زیر اتفاق می‌افتد:

1) مقدار عبارت نوشته شده در سمت راست دستور انتساب با استفاده از مقادیر فعلی تمام مقادیر موجود در این عبارت محاسبه می شود.

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

بنابراین دستور b: = a + b به این معنی است که مقدار متغیر a به مقدار فعلی قبلی b اضافه می شود و نتیجه به دست آمده به مقدار فعلی جدید b تبدیل می شود.

این مثال سه ویژگی اصلی یک تکلیف را نشان می دهد:

1) در حالی که به متغیر مقداری اختصاص داده نمی شود، تعریف نشده باقی می ماند.

2) مقدار اختصاص داده شده به متغیر تا زمان تخصیص بعدی یک مقدار جدید به این متغیر در آن ذخیره می شود.

3) یک مقدار جدید اختصاص داده شده به یک متغیر جایگزین مقدار قبلی آن می شود.

اکنون بیایید با ساختارهای اساسی آشنا شویم، بیایید با عملیاتی مانند "دنبال کردن" شروع کنیم. با دنباله ای از اقدامات که یکی پس از دیگری دنبال می شوند تشکیل می شود:

عمل 1

عمل 2

. . . . . . . . .

عمل n

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



1. اگر - آنگاه;

اگر وضعیت

سپس اقدامات

2. اگر-پس-دیگر;

اگر وضعیت

سپس اقدامات 1

در غیر این صورت اقدام 2

انتخاب

درشرط 1: اعمال 1

درشرط 2: اعمال 2

. . . . . . . . . . . .

در شرط N: اعمال N

{در غیر این صورتاقدامات N+1}

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

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

مثال ها

الگوریتم در زبان الگوریتمی به طور کلی به شکل زیر نوشته می شود:

algنام الگوریتم (استدلال ها و نتایج) داده شدهشرایط کاربرد الگوریتم لازم استهدف الگوریتم زودشرح مقادیر میانی | دنباله دستور (بدنه الگوریتم) باهم

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

مثالی از محاسبه مجموع مربعات:

algمجموع مربعات ( ارگ کل n قطع كردن کلس) داده شده| n > 0 لازم است| S = 1*1 + 2*2 + 3*3 + … + n*n زود کلمن | ورودی n S:=0 | ncبرای i از 1 تا n | | S:= S + i * i | kts | نتیجه"S="، S باهم

کارگاه الکترونیکی

برای تقویت مطالعه نظری برنامه نویسی در یک زبان الگوریتمی، در سال 1985، متخصصان مخمت دانشگاه دولتی مسکو یک ویرایشگر-کامپایلر ایجاد کردند. "کارگاه الکترونیکی"("E" - به افتخار ارشوف)، که به شما امکان می دهد برنامه ها را به زبان الگوریتمی وارد، ویرایش و اجرا کنید.

در سال 1986، مجموعه ای از جهان های آموزشی (اجرا کننده) برای "تمرین الکترونیکی" منتشر شد: "ربات"، "پیش نویس"، "دو پا"، "وسیله نقلیه تمام زمینی" که به شما امکان می دهد به سادگی مفاهیم را معرفی کنید. از الگوریتم "کارگاه الکترونیکی" بر روی کامپیوترهای: یاماها، کوروت، UKNC اجرا شد و به طور گسترده مورد استفاده قرار گرفت.

این زبان برنامه نویسی دائماً بهبود یافته است و شرحی از نسخه بعدی "کارگاه الکترونیکی" در کتاب درسی سال 1990 ظاهر شد. سیستم برنامه نویسی "KuMir" ("مجموعه جهان های آموزشی") که از این کتاب درسی پشتیبانی می کند، توسط شرکت InfoMir در سال 1990 منتشر شد. زبان این سیستم «کومیر» نیز نامیده می شود.

در سال 1995، "KuMir" توسط وزارت آموزش و پرورش فدراسیون روسیه به عنوان ماده آموزشی اصلی برای دوره "مبانی انفورماتیک و مهندسی کامپیوتر" بر اساس کتاب درسی A. G. Kushnirenko، G. V. Lebedev و R. A. Svorenya توصیه شد. .

نقد

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

پیوندها

  • A. P. Ershov. زبان الگوریتمی در دوره آموزشگاهی مبانی انفورماتیک و فناوری کامپیوتر. 05/07/1985
  • انجمن زبان های برنامه نویسی روسی و ابزارهای توسعه

بنیاد ویکی مدیا 2010 .

ببینید "زبان الگوریتمی روسی" در سایر لغت نامه ها چیست:

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

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

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

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

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

    نمونه ای از بلوک دیاگرام یک الگوریتم در نمودارهای اژدها در زبان DRAKON DRAKON (زبان الگوریتمی دوستانه روسی که دید را فراهم می کند) یک زبان الگوریتمی بصری است که در چارچوب برنامه فضایی بوران ایجاد شده است. توسعه زبان داده شده... ویکیپدیا