From 5aa692f5f3bbfa7b79224748dcfd8ca5fba7a8bc Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 12 Feb 2016 11:42:25 -0800 Subject: brainfuck->bf --- fa-ir/bf-fa.html.markdown | 81 ++++++++++++++++++++++++++++++++++++++++ fa-ir/brainfuck-fa.html.markdown | 81 ---------------------------------------- 2 files changed, 81 insertions(+), 81 deletions(-) create mode 100644 fa-ir/bf-fa.html.markdown delete mode 100644 fa-ir/brainfuck-fa.html.markdown (limited to 'fa-ir') diff --git a/fa-ir/bf-fa.html.markdown b/fa-ir/bf-fa.html.markdown new file mode 100644 index 00000000..bc5d8dc4 --- /dev/null +++ b/fa-ir/bf-fa.html.markdown @@ -0,0 +1,81 @@ +--- +language: bf +contributors: + - ["Mohammad Valipour", "https://github.com/mvalipour"] +lang: fa-ir +--- + +

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

+

دستور است.

+ +

هر کارکتری به جر کارکتر های زیر در این زبان در نظر گرفته نمیشود.

+ + +`>` `<` `+` `-` `.` `,` `[` `]` + +

برین فاک به صورت یک آرایه ی سی هزار خانه ای کار میکند که در ابتدا تمامی خانه های آن صفر هستند.

+

همچنین یک اشاره گر در این برنامه به خانه ی فعلی اشاره میکند.

+ +

در زیر هشت دستور این زبان شرح داده شده است:

+ +

`+` : یک عدد به خانه ی فعلی اضافه می کند. +

`-` : یک عدد از خانه ی فعلی کم می کند.

+

`>` : اشاره گر به خانه ی بعدی میرود -- به راست

+

`<` : اشاره گر به خانه ی قبلی میرود -- به چپ

+

`.` : کارکتر اسکی معادل مقدار خانه ی فعلی را چاپ میکند. -- به عنوان مثال 65 برای A

+

`,` : یک کارکتر را از ورودی خوانده و مقدار آن را در خانه ی فعلی زخیره میکند.

+

`[` : اگر مقدار خانه ی فعلی صفر باشد به محل بسته شدن کروشه جهش میکند. -- و از همه ی دستور های بین آن صرف نظر میشود.

+

در غیر این صورت به دستور بعدی میرود.

+

`]` : اگر مقدار خانه ی فعلی صفر باشد به خانه ی بعدی و در غیر این صورت به محل باز شدن کروشه جهش می کند. -- به عقب

+ +

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

+ +

در اینجا یک برنامه ی ساره برین فاک را مشاهده میکنید.

+ +``` +++++++ [ > ++++++++++ < - ] > +++++ . +``` + +

این برنامه کارکتر A را بر روی خروجی چاپ میکند.

+

در این برنامه خانه ی اول به عنوان متغیر حلقه و خانه ی دوم برای مقدار عددی A

+

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

+

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

+

-- و در انتهای حلقه به خانه ی اول برگشته تا حلقه کنترل شود

+

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

+ +``` +, [ > + < - ] > . +``` + +

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

+

عددی کارکتر، یک عدد به خانه ی دوم اضافه می کند. با این کار در واقع برنامه مقدار ورودی را در خانه ی

+

دوم کپی می کند. و در نهایت آن را برروی خروجی چاپ می کند.

+ +

توجه داشته باشید که ردر بالا فواصل بین دستور ها فقط برای خوانایی بیشتر گذاشته شده اند.

+

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

+ +``` +,[>+<-]>. +``` + +

حال سعی کنید ببینید که برنامه ی زیر چه کاری انجام می دهد؟

+ +``` +,>,< [ > [ >+ >+ << -] >> [- << + >>] <<< -] >> +``` + +

این برنامه دو عدد را از ورودی خوانده و با هم ضرب می کند.

+ +

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

+

و درون آن حلقه ی دیگری بر روی خانه ی دوم شروع میشود که خانه ی 3 را زیاد میکند.

+

ولی مشکلی که در اینجا به وجود می آید اینست که در پایان حلقه ی دوم مقدار خانه ی 2 صفر شده

+

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

+

و در پایان حلقه مقدار آن به خانه 2 کپی میشود.

+

در پایان خانه ی شماره 2 حاوی حاصلضرب خواهد بود.

+ +
+ +

و این همه ی برین فاک بود! خیلی ساده برای یادگیری ولی سنگین برای به کار بردن.

+

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

+

و یا یک اجرا کننده برین فاک را با یک زبان دیگر پیاده سازی کنید.

+

و یا اگر خیلی دوست داشتید یک اجرا کننده ی برین فاک با برین فاک بنویسید!!

diff --git a/fa-ir/brainfuck-fa.html.markdown b/fa-ir/brainfuck-fa.html.markdown deleted file mode 100644 index ef2bcba3..00000000 --- a/fa-ir/brainfuck-fa.html.markdown +++ /dev/null @@ -1,81 +0,0 @@ ---- -language: brainfuck -contributors: - - ["Mohammad Valipour", "https://github.com/mvalipour"] -lang: fa-ir ---- - -

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

-

دستور است.

- -

هر کارکتری به جر کارکتر های زیر در این زبان در نظر گرفته نمیشود.

- - -`>` `<` `+` `-` `.` `,` `[` `]` - -

برین فاک به صورت یک آرایه ی سی هزار خانه ای کار میکند که در ابتدا تمامی خانه های آن صفر هستند.

-

همچنین یک اشاره گر در این برنامه به خانه ی فعلی اشاره میکند.

- -

در زیر هشت دستور این زبان شرح داده شده است:

- -

`+` : یک عدد به خانه ی فعلی اضافه می کند. -

`-` : یک عدد از خانه ی فعلی کم می کند.

-

`>` : اشاره گر به خانه ی بعدی میرود -- به راست

-

`<` : اشاره گر به خانه ی قبلی میرود -- به چپ

-

`.` : کارکتر اسکی معادل مقدار خانه ی فعلی را چاپ میکند. -- به عنوان مثال 65 برای A

-

`,` : یک کارکتر را از ورودی خوانده و مقدار آن را در خانه ی فعلی زخیره میکند.

-

`[` : اگر مقدار خانه ی فعلی صفر باشد به محل بسته شدن کروشه جهش میکند. -- و از همه ی دستور های بین آن صرف نظر میشود.

-

در غیر این صورت به دستور بعدی میرود.

-

`]` : اگر مقدار خانه ی فعلی صفر باشد به خانه ی بعدی و در غیر این صورت به محل باز شدن کروشه جهش می کند. -- به عقب

- -

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

- -

در اینجا یک برنامه ی ساره برین فاک را مشاهده میکنید.

- -``` -++++++ [ > ++++++++++ < - ] > +++++ . -``` - -

این برنامه کارکتر A را بر روی خروجی چاپ میکند.

-

در این برنامه خانه ی اول به عنوان متغیر حلقه و خانه ی دوم برای مقدار عددی A

-

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

-

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

-

-- و در انتهای حلقه به خانه ی اول برگشته تا حلقه کنترل شود

-

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

- -``` -, [ > + < - ] > . -``` - -

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

-

عددی کارکتر، یک عدد به خانه ی دوم اضافه می کند. با این کار در واقع برنامه مقدار ورودی را در خانه ی

-

دوم کپی می کند. و در نهایت آن را برروی خروجی چاپ می کند.

- -

توجه داشته باشید که ردر بالا فواصل بین دستور ها فقط برای خوانایی بیشتر گذاشته شده اند.

-

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

- -``` -,[>+<-]>. -``` - -

حال سعی کنید ببینید که برنامه ی زیر چه کاری انجام می دهد؟

- -``` -,>,< [ > [ >+ >+ << -] >> [- << + >>] <<< -] >> -``` - -

این برنامه دو عدد را از ورودی خوانده و با هم ضرب می کند.

- -

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

-

و درون آن حلقه ی دیگری بر روی خانه ی دوم شروع میشود که خانه ی 3 را زیاد میکند.

-

ولی مشکلی که در اینجا به وجود می آید اینست که در پایان حلقه ی دوم مقدار خانه ی 2 صفر شده

-

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

-

و در پایان حلقه مقدار آن به خانه 2 کپی میشود.

-

در پایان خانه ی شماره 2 حاوی حاصلضرب خواهد بود.

- -
- -

و این همه ی برین فاک بود! خیلی ساده برای یادگیری ولی سنگین برای به کار بردن.

-

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

-

و یا یک اجرا کننده برین فاک را با یک زبان دیگر پیاده سازی کنید.

-

و یا اگر خیلی دوست داشتید یک اجرا کننده ی برین فاک با برین فاک بنویسید!!

-- cgit v1.2.3