زبان برنامه نویسی کاتی
شاید برای خیلی از افراد مخصوصا نوآموزان برنامهنویسی، جالب باشد که بخواهند با زبان فارسی برنامه نویسی نمایند. ما این امکان را برای این افرا مهیا کردهایم. راه حل ما استفاده از زبان برنامه نویسی کاتی است.
کاتی یک زبان برنامهنویسی انعطاف پذیر و قدرتمند به زبان فارسی میباشد. کاتی به منظور یادگیری و درک برنامهنویسی نوشته شده است و میتواند ابزار مناسبی برای شروع یادگیری برنامهنویسی باشد. استفاده از کاتی نیازی به دانستن زبان انگلیسی ندارد.
زبان کاتی در وب سایت scanf.ir پشتیبانی میشود و شما برای اجرای برنامه خود میتوانید از ویرایشگر آنلاین استفاده نمایید.
دستور شروع
اولین دستور برنامه در زبان کاتی دستور /شروع/ است. در پایان هر یک از دستورات کاتی بایستی علامت نقطه(.) قرار بگیرد.
شروع.
دستور پایان
دستور /پایان/ در برنامه کاتی برای خاتمه استفاده میشود. هر برنامه کاتی حاوی یک /دستور/ شروع و حداقل یک دستور /پایان/ است.
پایان.
متغییرها
متغییر محلی از حافظه برای ذخیره موقت اطلاعات برنامه است. نام یک متغییر در زبان کاتی بایستی با حروف الفبای فارسی یا انگلیسی شروع شود. به جز کلمات کلیدی هر نام دیگری که با یک حرف شروع شود میتواند به عنوان نام متغییر استفاده شود.
مثالهایی از متغییر عبارتند از: میانگین، الف،مساحت، طول، عرض، شعاع.
انواع دادهها
در حال حاضر کاتی فقط از نوع داده عددی اعشاری پشتیبانی میکند. یعنی همه اعدادی که در کاتی استفاده میشوند به صورت اعشاری میباشند.
این امکان وجود دارد که رشتهها در دستور خروجی استفاده نماییم. برای این منظور رشته خروجی را در بین علامت || قرار میدهیم.
مقدار |سلام| را بنویس.
دستور ورودی: بخوان
برای خواندن اطلاعات از فایل یا از ورودی از دستور بخوان استفاده میشود.مقدار /متغییر/ را {از ورودی} بخوان.
به مثالهایی از خواندن اطلاعات از ورودی توجه نمایید.مقدار الف را بخوان. مقدار الف را از ورودی بخوان. مقدار الف را از فایل بخوان. مقدار طول و عرض را بخوان.
دستور خروجی: بنویس و سرخط
دستور سرخط:
دستور /سرخط/، کاراکتر خط بعد را در خروجی مینویسد. این دستور باعث میشود خروجیهای بعدی از ابتدای خط بعد نوشته شوند.سرخط.
دستور بنویس:
دستور /بنویس/ اطلاعات را در فایل خروجی مینویسد. در حال حاضر امکان استفاده از دستورهای مربوط به فایل وجود ندارد. این امکان وجود دارد که از بنویس در انتهای دستور محاسباتی /مقدار/ استفاده کنیم.مقدار الف را بنویس. مقدار الف دقت 0.4 را بنویس. مقدار الف را /در خروجی/ بنویس. حاصل الف را /در فایل/ بنویس. مقدار الف با دقت 0.3 را بنویس. مقدار الف با دقت 4.3 و ب با دقت 0.6 را بنویس. مقدار 3.1415926 با دقت 4.1 را بنویس.
شروع. مقدار شعاع را از ورودی بخوان. مقدار ۳.۱۴ را در پی ذخیره کن. مقدار پی را بنویس. حاصل ضرب پی در ضرب شعاع در شعاع را در مساحت ذخیره کن. مقدار مساحت دقت 0.3 را بنویس. مقدار مساحت دقت 6.3 را بنویس. پایان.
عملگرهای محاسباتی
عملگرهای محاسباتی مختلفی در زبان کاتی تعریف شده است که عبارتند از: جمع، ضرب، تفریق، تقسیم، تقسیم صحیح، باقیمانده، نصف، ثلث (یک سوم)، ربع (یک جهارم)، خمس (یک پنجم)، معکوس (تقسم یک بر عدد)، قرینه (قرینه عدد). دقت کنید که عملگرهای محاسباتی قبل از عملوندهای خود قرار میگیرند.
ضرب الف و ب. تقسیم الف بر ب. تقسیم صحیح الف بر ب. جمع الف و ب. تفریق الف از ب. باقیمانده الف بر ب. معکوس الف. جذر الف. نصف الف. ثلث الف. ربع الف. خمس الف. قرینه الف.
انتساب یا جایگزینی
برای ذخیره نتیجه یک عملیات محاسبانی میتوان از دستور /حاصل/ به صورت /حاصل ... را در ... ذخیره کن./ استفاده نمود.حاصل الف را در ب ذخیره کن. حاصل نصف الف را در د ذخیره کن. حاصل ضرب الف در ب را در ج ذخیره کن. حاصل ۵۶ را در الف ذخیره کن. حاصل ۵۶ را در الف بنویس.
در زبان کاتی /مقدار/ و /حاصل/ مترادف هم میباشند.عملگرهای مقایسه
گونه دیگر از عملگرهای قابل استفاده در زبان کاتی، عملگرهای مقایسهای هستند. نتیجه یک عملگر مقایسهای مقدار صفر یا یک است. عملگرهای مقایسهای عبارتند از:
برابر یا مساوی بزرگتر (بیشتر) کوچکتر (کمتر) بزرگترمساوی (بیشترمساوی) کوچکترمساوی(کمترمساوی).
بعد از هر یک از عملگرهای مقایسهای کلمه /است/ یا /باشد/ یا /بود/ و در حالت نقیض /نیس/ یا /نباشد/ یا /نبود/ قرار میگیرد. توجه به این نکته ضروری است که عملگر همیشه در ابتدا قرار میگیرد.برابر است الف با ب. مساوی است الف با ب. بزرگتر است الف از ب. کوچکتر است الف از ب. کوچکتر نیست الف از ب. بزرگترمساوی است الف از ب. کوچکترمساوی است الف از ب.
ترکیب شرطها
ترکیب شرطها: /هنوز پیاده نشده/
/هم/ برای ترکیب عطفی. /یا/ برای ترکیب فصلی. /نباشد/ برای نقیض.
هم برابر است الف با ب و هم برابر است ب با ج. یا برابر است الف با ب یا برابر است ب با ج.
دستور اگر:
اگر /شرط/ آنگاه { } وگرنه { }
اگر شرط درست باشد دستورات بعد از آنگاه انجام میشود و اگر شرط نادرست باشد دستور بعد از وگرنه در صورت وجود اجرا میشود. بخش /وگرنه/ در دستور /اگر/ الزامی نیست.دستورات تکرار:
دستور اگر-تکرارکن
اگر بخواهیم یک مجموعه از دستورات را بنا به شرایطی تکرار کنیم از دستور /اگر/ به همراه /تکرارکن/ استفاده میکنیم. اگر شرط درست باشد دستورات موجود در بدنه تکرار، تکرار میشود. در صورتی که در اولین بررسی شرط شرط نادرست باشد دستورات بعد از /وگرنه/ فقط یک بار انجام میشود.اگر /شرط/ آنگاه تکرارکن { بدنه تکرار } وگرنه { بنده وگرنه }
دستور تعداد
در صورتی که تعداد تکرار مشخص باشد از دستور /تعداد/ استفاده میشود. یک متغییر داخلی به نام /شمارنده/ به صورت ضمنی توسط کاتی ساخته میشود. متغییر /شمارنده/ شماره تکرار را مشخص میکند.تعداد الف مرتبه تکرارکن : بشمار{ }
مثال: برنامه نمایش اعداد ۱ تا ۱۰۰.شروع. تعداد ۱۰۰ مرتبه تکرار کن: بشمار { مقدار بشمار را بنویس. سرخط. } پایان.
در مثال زیر برنامه نویس به جای نام /شمارنده/ نام /بشمار/ را تعیین کرده است. کافی است بعد از کلمه تکرار کن علامت دونقطه و سپس نام جایگزین برای /شمارنده/ انتخاب نماییم.شروع. مقدار 5 را در الف بنویس. تعداد الف مرتبه تکرار کن: بشمار { مقدار بشمار را بنویس. سرخط. }
دستورات تکرار به صورت تودرتو هم قابل استفاده است. مثال: جدول ضرب ۵ در ۵.شروع. تعداد ۵ مرتبه تکرارکن: الف { تعداد ۵ مرتبه تکرارکن: ب { حاصل ضرب الف و ب و | | را بنویس. } سرخط. } پایان.
دستورات کنترل تکرار:
دستورت /توقف/ و /ادامه/ برای کنترل تکرار در داخل بدنه استفاده میشود. دستور /توقف/ تکرار را خاتمه میدهد و ادامه اجرا به دستور بعد از تکرار منتقل میشود. دستور /ادامه/ موجب انتقال اجرا به ابتدای دستور تکرار و در صورت برقرار بودن شرایط تکرار بعدی انجام میشود.توقف.
ادامه.
برنامه زیر اعداد ۵۰ تا ۱۰۰ را در خروجی مینویسد. چون برای اعداد زیر ۵۰ تکرار بعدی اتفاق میافتد.شروع. تعداد ۱۰۰ بار تکرار کن : الف { اگر کمتر است الف از ۵۰ آنگاه ادامه. مقدار الف را بنویس. سرخط. } پایان.
برنامه زیر اعداد ۱ تا ۵۰ را در خروجی مینویسد. چون در صورتی که مقدار الف از ۵۰ بیشتر شود اجرای دستور تکرار متوقف میشود.شروع. تعداد ۱۰۰ بار تکرار کن : الف { اگر بیشتر است الف از ۵۰ آنگاه توقف. مقدار الف را بنویس. سرخط. } پایان.
دستور بروبه:
تعریف برچسب:
یک عدد به همراه دونقطه بعد از آن.
کلمات کلیدی:
شروع، پایان، تمام، بازگشت ضرب، تقسیم، جمع، تفریق، تفاضل، باقیمانده، برابر، معکوس، نصف، ثلث، ربع، خمس، جذر قرینه، در، بر، با، از، و، را، مساوی، مخالف، بزرگتراز، کوچکتراز، بزرگترمساوی کوچکترمساوی، بنویس، بخوان، سرخط، برویه، برچسب، اگر، بود، آنگاه، تکرارکن، بار توقف، ادامه
اعداد پیش تعریف شده: صفر، یک، دو، سه، چهار، پنج، شش، هفت، هشت، نه، ده، صد، هزار
برنامههای نمونه به زبان کاتی
تشخیص زوج بودن یک عدد
یک عدد زوج است اگر باقیمانده تقسیم عدد بر دو برابر صفر باشد.شروع. شروع. مقدار الف را از ورودی بخوان. مقدار الف را بنویس. اگر برابر است باقیمانده الف بر ۲ و صفر آنگاه بنویس | زوج است|. وگرنه بنویس | فرد است|. پایان.
تولید لیست اعداد کوچکتر از یک عدد
شروع. حاصل ۲۰ را در عدد ذخیره کن. تعداد عدد مرتبه تکرار کن : بشمار { مقدار بشمار را در خروجی بنویس. سرخط. } پایان.
متغییر /بشمار/ در دستور تکرار شماره تکرار را نشان میدهد.
اعداد زوج کمتر از ۱۰۰
شروع. تعداد 100 مرتبه تکرار کن: بشمار { اگر برابر است باقیمانده بشمار بر دو با صفر آنگاه مقدار بشمار را بنویس . سرخط. } پایان.
حل معادله درجه ۲
برنامه زیر برای حل یک معادله درجه دو به زبان برنامه نویسی کاتی نوشته شده است. مقدار ضریبهای معادله بایستی در ورودی موجود باشد.شروع. مقدار الف و ب و س را از ورودی بخوان. اگر برابر است الف با صفر آنگاه { مقدار |خطا مقدار ضریب اول نباید صفر باشد| را بنویس. پایان. } حاصل تفریق ضرب ۴ در ضرب الف و س از ضرب ب و ب را در دلتا ذخیره کن. اگر کمتر است دلتا از صفر آنگاه { مقدار |خطا مقدار دلتا منفی شد ومعادله ریشه ندارد| را بنویس. } وگرنه اگر برابر است دلتا و صفر آنگاه { حاصل تقسیم قرینه ب بر ضرب دو و الف را در ریشه ذخیره کن. مقدار ریشه دقت 0.3 را بنویس. } وگرنه { حاصل تقسیم تفریق جذر دلتا از قرینه ب بر ضرب دو و الف را در ریشه۱ ذخیره کن. حاصل تقسیم جمع جذر دلتا با قرینه ب بر ضرب دو و الف را در ریشه۲ ذخیره کن. بنویس |معادله داری دو ریشه است:|. سرخط. مقدار ریشه۱ دقت 0.3 را بنویس. سرخط. مقدار ریشه۲ دقت 0.3 را بنویس. } پایان.
تست عدد اول
عدد اول عددی است که به بجز یک و خودش برهیچ عدد دیگری بخش پذیر نباشد. برنامه زیر یک عدد را از ورودی خوانده و اول بودن آن را بررسی میکند.شروع. مقدار عدد را بخوان. اگر کمتر است عدد از ۲ آنگاه { مقدار |اعداد کمتر از ۲ تست نمیشوند| را بنویس. پایان. } مقدار |عدد | عدد را بنویس. مقدار دو را در الف ذخیره کن. اگر بیشتر نیست الف از جذر عدد آنگاه تکرارکن { اگر برابر است با صفر باقیمانده عدد بر الف آنگاه { مقدار | اول نیست| را بنویس. پایان. } حاصل جمع یک با الف را در الف ذخیره کن. } مقدار | یک عدد اول است| را بنویس. پایان. مقدار دو را در الف ذخیره کن. اگر بیشتر نیست الف از جذر عدد آنگاه تکرارکن { اگر برابر است با صفر باقیمانده عدد بر الف آنگاه { مقدار | اول نیست| را بنویس. پایان. } حاصل جمع یک با الف را در الف ذخیره کن. } مقدار | یک عدد اول است| را بنویس. پایان.
یافتن بزرگترین عدد
تعدادی عدد در ورودی وجود دارد و قرار است بزرگترین عدد را در بین این اعداد بیابیم. در برنامه زیر فرض شده است که اولین ورودی نشان دهنده تعداد عدد میباشد.شروع. مقدار الف را از ورودی بخوان. تعداد الف مرتبه تکرار کن: شمارش { مقدار ب را از ورودی بخوان. اگر برابر است شمارش و یک آنگاه مقدار ب را در ماکزیمم ذخیره کن. وگرنه اگر بزرگتر است ب از ماکزیمم آنگاه مقدار ب را در ماکزیمم ذخیره کن. } مقدار ماکزیمم را در خروجی بنویس. پایان.