فرم و تبدیل‌ها با تیروتیر

۱۵ برنامهٔ کاربردی؛ هر کدام یک فرم ویندوز (عکس واقعی) و یک برنامهٔ کنسولی که واقعاً محاسبه می‌کند (نمونهٔ اجرا از مفسر تیروتیر ۱٫۱٫۰). تبدیل تاریخ با ۶۱۰ بررسی روی الگوریتم مرجع سنجیده شده است.

۱) GUI در تیروتیر ۱٫۱٫۰ چه می‌تواند و چه نمی‌تواند (از سورس)
دستورنحو
پنجرهپنجره بساز با -عنوان- و ۴۲۰ و ۳۰۰ (عرض و ارتفاع)
برچسب / دکمهبرچسب بساز با -متن- · دکمه بساز با -متن-
ورودی / متن چندخطیورودی بساز · متن چندخطی بساز (بدون آرگومان)
چک‌باکسچک‌باکس بساز با -متن-
فهرست / منوی انتخابلیست بساز با -الف- و -ب- · منوی انتخاب بساز با -الف- و -ب-
نوار لغزشنوار لغزش بساز با ۱۰۰ (بیشینه، از ۰)
نمایش / بستننمایش پنجره (باید آخر برنامه باشد) · پنجره ببند

اجرا: tirotir gui فایل.t روی ویندوز یا هر دسکتاپی که Tkinter دارد. در tirotir.toml کلید gui باید true باشد. ویجت‌ها به ترتیب زیر هم چیده می‌شوند؛ مکان‌دهی، اندازه و رنگ ویجت قابل تنظیم نیست.

مهم‌ترین محدودیت: در این نسخه callback و رویداد برای دکمه‌ها وجود ندارد و مقدار ورودی‌ها هم قابل خواندن نیست (README رسمی هم همین را می‌گوید). بنابراین فرم «تبدیل» نمی‌تواند خودش محاسبه کند. برای همین هر برنامه را در دو لایه نوشته‌ام: فرم ویندوز (ظاهر، با همین دستورهای واقعی) و برنامهٔ کاربردی کنسول که با چاپ و بخوان واقعاً محاسبه می‌کند.

۲) آموزش برنامهٔ کاربردی کنسول
چاپ -مقدار:-
بگذار س برابر بخوان          # دریافت یک خط از کاربر (متن)
بگذار عدد برابر به_عدد با س   # تبدیل متن به عدد
چاپ -دو برابر: - + به_متن با عدد * ۲

اجرا: tirotir run فایل.t. ورودی را با ارقام لاتین یا فارسی بنویسید، اما ممیز اعشار را «.» بزنید (مثل ۲.۵)، چون «٫» را به‌عنوان عدد نمی‌شناسد.

۳) نکته‌ها و دام‌هایی که هنگام آزمایش پیدا کردم

برنامه‌ها

1. تبدیل طول

فرم ویندوز (عکس واقعی از اجرای Tkinter)

فرم تبدیل طول

نمونهٔ اجرای برنامهٔ کاربردی (خروجی واقعی مفسر)

=== تبدیل طول ===
1) متر
2) سانتیمتر
3) میلیمتر
4) کیلومتر
5) اینچ
6) فوت
7) مایل
شمارهٔ واحد مبدأ:
» 4
شمارهٔ واحد مقصد:
» 1
مقدار:
» 2.5
کیلومتر: 2.5
متر: 2500
الف) برنامهٔ کاربردی (کنسول، محاسبه می‌کند)
# ---- توابع کمکی ----
# «صحیح»: عدد اعشاری (مثل ۳٫۰) را به عدد صحیح تبدیل می‌کند (برای اندیس فهرست)
تابع صحیح با x
    بگذار i برابر ۰
    تاوقتی i + ۱ <= x
        بگذار i برابر i + ۱
    بازگردان i
# «خوب»: گرد کردن تا ۶ رقم اعشار و حذف «.0» اضافی از انتهای عدد
تابع خوب با عدد
    بگذار ص برابر عدد * ۱۰۰۰۰۰۰ + ۰٫۵
    بگذار ص برابر (ص - ص % ۱) / ۱۰۰۰۰۰۰
    بگذار م برابر به_متن با ص
    بگذار ن برابر طول با م
    اگر ن > ۲
        اگر م[ن - ۲] == -.- و م[ن - ۱] == -0-
            بگذار خ برابر م[۰]
            بگذار ک برابر ۱
            تاوقتی ک < ن - ۲
                بگذار خ برابر خ + م[ک]
                بگذار ک برابر ک + ۱
            بازگردان خ
    بازگردان م
# ---- برنامه ----
بگذار نام‌ها برابر [-متر-، -سانتیمتر-، -میلیمتر-، -کیلومتر-، -اینچ-، -فوت-، -مایل-]
بگذار ضریب‌ها برابر [۱، ۰٫۰۱، ۰٫۰۰۱، ۱۰۰۰، ۰٫۰۲۵۴، ۰٫۳۰۴۸، ۱۶۰۹٫۳۴۴]
چاپ -=== تبدیل طول ===-
بگذار ش برابر ۱
برای و در نام‌ها
    بگذار ر برابر به_متن با ش
    چاپ ر + -) - + و
    بگذار ش برابر ش + ۱
چاپ -شمارهٔ واحد مبدأ:-
بگذار س برابر بخوان
بگذار ع برابر به_عدد با س
بگذار الف برابر صحیح با ع
چاپ -شمارهٔ واحد مقصد:-
بگذار س برابر بخوان
بگذار ع برابر به_عدد با س
بگذار ب برابر صحیح با ع
چاپ -مقدار:-
بگذار س برابر بخوان
بگذار مقدار برابر به_عدد با س
بگذار تعداد برابر طول با نام‌ها
اگر الف < ۱ یا الف > تعداد یا ب < ۱ یا ب > تعداد
    چاپ -شمارهٔ واحد درست نیست.-
وگرنه
    بگذار نتیجه برابر مقدار * ضریب‌ها[الف - ۱] / ضریب‌ها[ب - ۱]
    بگذار پ برابر خوب با نتیجه
    بگذار ت برابر خوب با مقدار
    چاپ نام‌ها[الف - ۱] + -: - + ت
    چاپ نام‌ها[ب - ۱] + -: - + پ
ب) فرم ویندوز (فقط ظاهر)
پنجره بساز با -تبدیل طول- و ۴۲۰ و 358
برچسب بساز با -مقدار-
ورودی بساز
برچسب بساز با -از واحد-
منوی انتخاب بساز با -متر- و -سانتیمتر- و -میلیمتر- و -کیلومتر- و -اینچ- و -فوت- و -مایل-
برچسب بساز با -به واحد-
منوی انتخاب بساز با -متر- و -سانتیمتر- و -میلیمتر- و -کیلومتر- و -اینچ- و -فوت- و -مایل-
دکمه بساز با -تبدیل-
نمایش پنجره

2. تبدیل وزن

فرم ویندوز (عکس واقعی از اجرای Tkinter)

فرم تبدیل وزن

نمونهٔ اجرای برنامهٔ کاربردی (خروجی واقعی مفسر)

=== تبدیل وزن ===
1) کیلوگرم
2) گرم
3) میلیگرم
4) تن
5) پوند
6) اونس
شمارهٔ واحد مبدأ:
» 5
شمارهٔ واحد مقصد:
» 1
مقدار:
» 2
پوند: 2
کیلوگرم: 0.907185
الف) برنامهٔ کاربردی (کنسول، محاسبه می‌کند)
# ---- توابع کمکی ----
# «صحیح»: عدد اعشاری (مثل ۳٫۰) را به عدد صحیح تبدیل می‌کند (برای اندیس فهرست)
تابع صحیح با x
    بگذار i برابر ۰
    تاوقتی i + ۱ <= x
        بگذار i برابر i + ۱
    بازگردان i
# «خوب»: گرد کردن تا ۶ رقم اعشار و حذف «.0» اضافی از انتهای عدد
تابع خوب با عدد
    بگذار ص برابر عدد * ۱۰۰۰۰۰۰ + ۰٫۵
    بگذار ص برابر (ص - ص % ۱) / ۱۰۰۰۰۰۰
    بگذار م برابر به_متن با ص
    بگذار ن برابر طول با م
    اگر ن > ۲
        اگر م[ن - ۲] == -.- و م[ن - ۱] == -0-
            بگذار خ برابر م[۰]
            بگذار ک برابر ۱
            تاوقتی ک < ن - ۲
                بگذار خ برابر خ + م[ک]
                بگذار ک برابر ک + ۱
            بازگردان خ
    بازگردان م
# ---- برنامه ----
بگذار نام‌ها برابر [-کیلوگرم-، -گرم-، -میلیگرم-، -تن-، -پوند-، -اونس-]
بگذار ضریب‌ها برابر [۱، ۰٫۰۰۱، ۰٫۰۰۰۰۰۱، ۱۰۰۰، ۰٫۴۵۳۵۹۲۳۷، ۰٫۰۲۸۳۴۹۵۲۳۱۲۵]
چاپ -=== تبدیل وزن ===-
بگذار ش برابر ۱
برای و در نام‌ها
    بگذار ر برابر به_متن با ش
    چاپ ر + -) - + و
    بگذار ش برابر ش + ۱
چاپ -شمارهٔ واحد مبدأ:-
بگذار س برابر بخوان
بگذار ع برابر به_عدد با س
بگذار الف برابر صحیح با ع
چاپ -شمارهٔ واحد مقصد:-
بگذار س برابر بخوان
بگذار ع برابر به_عدد با س
بگذار ب برابر صحیح با ع
چاپ -مقدار:-
بگذار س برابر بخوان
بگذار مقدار برابر به_عدد با س
بگذار تعداد برابر طول با نام‌ها
اگر الف < ۱ یا الف > تعداد یا ب < ۱ یا ب > تعداد
    چاپ -شمارهٔ واحد درست نیست.-
وگرنه
    بگذار نتیجه برابر مقدار * ضریب‌ها[الف - ۱] / ضریب‌ها[ب - ۱]
    بگذار پ برابر خوب با نتیجه
    بگذار ت برابر خوب با مقدار
    چاپ نام‌ها[الف - ۱] + -: - + ت
    چاپ نام‌ها[ب - ۱] + -: - + پ
ب) فرم ویندوز (فقط ظاهر)
پنجره بساز با -تبدیل وزن- و ۴۲۰ و 358
برچسب بساز با -مقدار-
ورودی بساز
برچسب بساز با -از واحد-
منوی انتخاب بساز با -کیلوگرم- و -گرم- و -میلیگرم- و -تن- و -پوند- و -اونس-
برچسب بساز با -به واحد-
منوی انتخاب بساز با -کیلوگرم- و -گرم- و -میلیگرم- و -تن- و -پوند- و -اونس-
دکمه بساز با -تبدیل-
نمایش پنجره

3. تبدیل حجم

فرم ویندوز (عکس واقعی از اجرای Tkinter)

فرم تبدیل حجم

نمونهٔ اجرای برنامهٔ کاربردی (خروجی واقعی مفسر)

=== تبدیل حجم ===
1) لیتر
2) میلیلیتر
3) متر مکعب
4) گالن آمریکایی
شمارهٔ واحد مبدأ:
» 4
شمارهٔ واحد مقصد:
» 1
مقدار:
» 3
گالن آمریکایی: 3
لیتر: 11.356235
الف) برنامهٔ کاربردی (کنسول، محاسبه می‌کند)
# ---- توابع کمکی ----
# «صحیح»: عدد اعشاری (مثل ۳٫۰) را به عدد صحیح تبدیل می‌کند (برای اندیس فهرست)
تابع صحیح با x
    بگذار i برابر ۰
    تاوقتی i + ۱ <= x
        بگذار i برابر i + ۱
    بازگردان i
# «خوب»: گرد کردن تا ۶ رقم اعشار و حذف «.0» اضافی از انتهای عدد
تابع خوب با عدد
    بگذار ص برابر عدد * ۱۰۰۰۰۰۰ + ۰٫۵
    بگذار ص برابر (ص - ص % ۱) / ۱۰۰۰۰۰۰
    بگذار م برابر به_متن با ص
    بگذار ن برابر طول با م
    اگر ن > ۲
        اگر م[ن - ۲] == -.- و م[ن - ۱] == -0-
            بگذار خ برابر م[۰]
            بگذار ک برابر ۱
            تاوقتی ک < ن - ۲
                بگذار خ برابر خ + م[ک]
                بگذار ک برابر ک + ۱
            بازگردان خ
    بازگردان م
# ---- برنامه ----
بگذار نام‌ها برابر [-لیتر-، -میلیلیتر-، -متر مکعب-، -گالن آمریکایی-]
بگذار ضریب‌ها برابر [۱، ۰٫۰۰۱، ۱۰۰۰، ۳٫۷۸۵۴۱۱۷۸۴]
چاپ -=== تبدیل حجم ===-
بگذار ش برابر ۱
برای و در نام‌ها
    بگذار ر برابر به_متن با ش
    چاپ ر + -) - + و
    بگذار ش برابر ش + ۱
چاپ -شمارهٔ واحد مبدأ:-
بگذار س برابر بخوان
بگذار ع برابر به_عدد با س
بگذار الف برابر صحیح با ع
چاپ -شمارهٔ واحد مقصد:-
بگذار س برابر بخوان
بگذار ع برابر به_عدد با س
بگذار ب برابر صحیح با ع
چاپ -مقدار:-
بگذار س برابر بخوان
بگذار مقدار برابر به_عدد با س
بگذار تعداد برابر طول با نام‌ها
اگر الف < ۱ یا الف > تعداد یا ب < ۱ یا ب > تعداد
    چاپ -شمارهٔ واحد درست نیست.-
وگرنه
    بگذار نتیجه برابر مقدار * ضریب‌ها[الف - ۱] / ضریب‌ها[ب - ۱]
    بگذار پ برابر خوب با نتیجه
    بگذار ت برابر خوب با مقدار
    چاپ نام‌ها[الف - ۱] + -: - + ت
    چاپ نام‌ها[ب - ۱] + -: - + پ
ب) فرم ویندوز (فقط ظاهر)
پنجره بساز با -تبدیل حجم- و ۴۲۰ و 358
برچسب بساز با -مقدار-
ورودی بساز
برچسب بساز با -از واحد-
منوی انتخاب بساز با -لیتر- و -میلیلیتر- و -متر مکعب- و -گالن آمریکایی-
برچسب بساز با -به واحد-
منوی انتخاب بساز با -لیتر- و -میلیلیتر- و -متر مکعب- و -گالن آمریکایی-
دکمه بساز با -تبدیل-
نمایش پنجره

4. تبدیل سرعت

فرم ویندوز (عکس واقعی از اجرای Tkinter)

فرم تبدیل سرعت

نمونهٔ اجرای برنامهٔ کاربردی (خروجی واقعی مفسر)

=== تبدیل سرعت ===
1) متر بر ثانیه
2) کیلومتر بر ساعت
3) مایل بر ساعت
4) گره دریایی
شمارهٔ واحد مبدأ:
» 2
شمارهٔ واحد مقصد:
» 1
مقدار:
» 90
کیلومتر بر ساعت: 90
متر بر ثانیه: 25
الف) برنامهٔ کاربردی (کنسول، محاسبه می‌کند)
# ---- توابع کمکی ----
# «صحیح»: عدد اعشاری (مثل ۳٫۰) را به عدد صحیح تبدیل می‌کند (برای اندیس فهرست)
تابع صحیح با x
    بگذار i برابر ۰
    تاوقتی i + ۱ <= x
        بگذار i برابر i + ۱
    بازگردان i
# «خوب»: گرد کردن تا ۶ رقم اعشار و حذف «.0» اضافی از انتهای عدد
تابع خوب با عدد
    بگذار ص برابر عدد * ۱۰۰۰۰۰۰ + ۰٫۵
    بگذار ص برابر (ص - ص % ۱) / ۱۰۰۰۰۰۰
    بگذار م برابر به_متن با ص
    بگذار ن برابر طول با م
    اگر ن > ۲
        اگر م[ن - ۲] == -.- و م[ن - ۱] == -0-
            بگذار خ برابر م[۰]
            بگذار ک برابر ۱
            تاوقتی ک < ن - ۲
                بگذار خ برابر خ + م[ک]
                بگذار ک برابر ک + ۱
            بازگردان خ
    بازگردان م
# ---- برنامه ----
بگذار نام‌ها برابر [-متر بر ثانیه-، -کیلومتر بر ساعت-، -مایل بر ساعت-، -گره دریایی-]
بگذار ضریب‌ها برابر [۱، ۰٫۲۷۷۷۷۷۷۷۷۷۷۷۸، ۰٫۴۴۷۰۴، ۰٫۵۱۴۴۴۴۴۴۴۴۴۴۴]
چاپ -=== تبدیل سرعت ===-
بگذار ش برابر ۱
برای و در نام‌ها
    بگذار ر برابر به_متن با ش
    چاپ ر + -) - + و
    بگذار ش برابر ش + ۱
چاپ -شمارهٔ واحد مبدأ:-
بگذار س برابر بخوان
بگذار ع برابر به_عدد با س
بگذار الف برابر صحیح با ع
چاپ -شمارهٔ واحد مقصد:-
بگذار س برابر بخوان
بگذار ع برابر به_عدد با س
بگذار ب برابر صحیح با ع
چاپ -مقدار:-
بگذار س برابر بخوان
بگذار مقدار برابر به_عدد با س
بگذار تعداد برابر طول با نام‌ها
اگر الف < ۱ یا الف > تعداد یا ب < ۱ یا ب > تعداد
    چاپ -شمارهٔ واحد درست نیست.-
وگرنه
    بگذار نتیجه برابر مقدار * ضریب‌ها[الف - ۱] / ضریب‌ها[ب - ۱]
    بگذار پ برابر خوب با نتیجه
    بگذار ت برابر خوب با مقدار
    چاپ نام‌ها[الف - ۱] + -: - + ت
    چاپ نام‌ها[ب - ۱] + -: - + پ
ب) فرم ویندوز (فقط ظاهر)
پنجره بساز با -تبدیل سرعت- و ۴۲۰ و 358
برچسب بساز با -مقدار-
ورودی بساز
برچسب بساز با -از واحد-
منوی انتخاب بساز با -متر بر ثانیه- و -کیلومتر بر ساعت- و -مایل بر ساعت- و -گره دریایی-
برچسب بساز با -به واحد-
منوی انتخاب بساز با -متر بر ثانیه- و -کیلومتر بر ساعت- و -مایل بر ساعت- و -گره دریایی-
دکمه بساز با -تبدیل-
نمایش پنجره

5. تبدیل حجم داده

فرم ویندوز (عکس واقعی از اجرای Tkinter)

فرم تبدیل حجم داده

نمونهٔ اجرای برنامهٔ کاربردی (خروجی واقعی مفسر)

=== تبدیل حجم داده ===
1) بایت
2) کیلوبایت
3) مگابایت
4) گیگابایت
5) ترابایت
شمارهٔ واحد مبدأ:
» 4
شمارهٔ واحد مقصد:
» 3
مقدار:
» 2
گیگابایت: 2
مگابایت: 2048
الف) برنامهٔ کاربردی (کنسول، محاسبه می‌کند)
# ---- توابع کمکی ----
# «صحیح»: عدد اعشاری (مثل ۳٫۰) را به عدد صحیح تبدیل می‌کند (برای اندیس فهرست)
تابع صحیح با x
    بگذار i برابر ۰
    تاوقتی i + ۱ <= x
        بگذار i برابر i + ۱
    بازگردان i
# «خوب»: گرد کردن تا ۶ رقم اعشار و حذف «.0» اضافی از انتهای عدد
تابع خوب با عدد
    بگذار ص برابر عدد * ۱۰۰۰۰۰۰ + ۰٫۵
    بگذار ص برابر (ص - ص % ۱) / ۱۰۰۰۰۰۰
    بگذار م برابر به_متن با ص
    بگذار ن برابر طول با م
    اگر ن > ۲
        اگر م[ن - ۲] == -.- و م[ن - ۱] == -0-
            بگذار خ برابر م[۰]
            بگذار ک برابر ۱
            تاوقتی ک < ن - ۲
                بگذار خ برابر خ + م[ک]
                بگذار ک برابر ک + ۱
            بازگردان خ
    بازگردان م
# ---- برنامه ----
بگذار نام‌ها برابر [-بایت-، -کیلوبایت-، -مگابایت-، -گیگابایت-، -ترابایت-]
بگذار ضریب‌ها برابر [۱، ۱۰۲۴، ۱۰۴۸۵۷۶، ۱۰۷۳۷۴۱۸۲۴، ۱۰۹۹۵۱۱۶۲۷۷۷۶]
چاپ -=== تبدیل حجم داده ===-
بگذار ش برابر ۱
برای و در نام‌ها
    بگذار ر برابر به_متن با ش
    چاپ ر + -) - + و
    بگذار ش برابر ش + ۱
چاپ -شمارهٔ واحد مبدأ:-
بگذار س برابر بخوان
بگذار ع برابر به_عدد با س
بگذار الف برابر صحیح با ع
چاپ -شمارهٔ واحد مقصد:-
بگذار س برابر بخوان
بگذار ع برابر به_عدد با س
بگذار ب برابر صحیح با ع
چاپ -مقدار:-
بگذار س برابر بخوان
بگذار مقدار برابر به_عدد با س
بگذار تعداد برابر طول با نام‌ها
اگر الف < ۱ یا الف > تعداد یا ب < ۱ یا ب > تعداد
    چاپ -شمارهٔ واحد درست نیست.-
وگرنه
    بگذار نتیجه برابر مقدار * ضریب‌ها[الف - ۱] / ضریب‌ها[ب - ۱]
    بگذار پ برابر خوب با نتیجه
    بگذار ت برابر خوب با مقدار
    چاپ نام‌ها[الف - ۱] + -: - + ت
    چاپ نام‌ها[ب - ۱] + -: - + پ
ب) فرم ویندوز (فقط ظاهر)
پنجره بساز با -تبدیل حجم داده- و ۴۲۰ و 358
برچسب بساز با -مقدار-
ورودی بساز
برچسب بساز با -از واحد-
منوی انتخاب بساز با -بایت- و -کیلوبایت- و -مگابایت- و -گیگابایت- و -ترابایت-
برچسب بساز با -به واحد-
منوی انتخاب بساز با -بایت- و -کیلوبایت- و -مگابایت- و -گیگابایت- و -ترابایت-
دکمه بساز با -تبدیل-
نمایش پنجره

6. تبدیل دما

فرم ویندوز (عکس واقعی از اجرای Tkinter)

فرم تبدیل دما

نمونهٔ اجرای برنامهٔ کاربردی (خروجی واقعی مفسر)

=== تبدیل دما ===
۱) سلسیوس  ۲) فارنهایت  ۳) کلوین
واحد مبدأ:
» 1
واحد مقصد:
» 2
مقدار:
» 100
نتیجه:
212
الف) برنامهٔ کاربردی (کنسول، محاسبه می‌کند)
# ---- توابع کمکی ----
# «صحیح»: عدد اعشاری (مثل ۳٫۰) را به عدد صحیح تبدیل می‌کند (برای اندیس فهرست)
تابع صحیح با x
    بگذار i برابر ۰
    تاوقتی i + ۱ <= x
        بگذار i برابر i + ۱
    بازگردان i
# «خوب»: گرد کردن تا ۶ رقم اعشار و حذف «.0» اضافی از انتهای عدد
تابع خوب با عدد
    بگذار ص برابر عدد * ۱۰۰۰۰۰۰ + ۰٫۵
    بگذار ص برابر (ص - ص % ۱) / ۱۰۰۰۰۰۰
    بگذار م برابر به_متن با ص
    بگذار ن برابر طول با م
    اگر ن > ۲
        اگر م[ن - ۲] == -.- و م[ن - ۱] == -0-
            بگذار خ برابر م[۰]
            بگذار ک برابر ۱
            تاوقتی ک < ن - ۲
                بگذار خ برابر خ + م[ک]
                بگذار ک برابر ک + ۱
            بازگردان خ
    بازگردان م
# ---- برنامه ----
چاپ -=== تبدیل دما ===-
چاپ -۱) سلسیوس  ۲) فارنهایت  ۳) کلوین-
چاپ -واحد مبدأ:-
بگذار س برابر بخوان
بگذار الف برابر به_عدد با س
چاپ -واحد مقصد:-
بگذار س برابر بخوان
بگذار ب برابر به_عدد با س
چاپ -مقدار:-
بگذار س برابر بخوان
بگذار مقدار برابر به_عدد با س
# ابتدا به سلسیوس تبدیل می‌کنیم
بگذار سلسیوس برابر مقدار
اگر الف == ۲
    بگذار سلسیوس برابر (مقدار - ۳۲) * ۵ / ۹
اگر الف == ۳
    بگذار سلسیوس برابر مقدار - ۲۷۳٫۱۵
# سپس از سلسیوس به واحد مقصد
بگذار نتیجه برابر سلسیوس
اگر ب == ۲
    بگذار نتیجه برابر سلسیوس * ۹ / ۵ + ۳۲
اگر ب == ۳
    بگذار نتیجه برابر سلسیوس + ۲۷۳٫۱۵
چاپ -نتیجه:-
چاپ خوب با نتیجه
ب) فرم ویندوز (فقط ظاهر)
پنجره بساز با -تبدیل دما- و ۴۲۰ و 358
برچسب بساز با -مقدار-
ورودی بساز
برچسب بساز با -از واحد-
منوی انتخاب بساز با -سلسیوس- و -فارنهایت- و -کلوین-
برچسب بساز با -به واحد-
منوی انتخاب بساز با -سلسیوس- و -فارنهایت- و -کلوین-
دکمه بساز با -تبدیل-
نمایش پنجره

7. تبدیل ثانیه به روز و ساعت و دقیقه

فرم ویندوز (عکس واقعی از اجرای Tkinter)

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

نمونهٔ اجرای برنامهٔ کاربردی (خروجی واقعی مفسر)

=== ثانیه به روز، ساعت، دقیقه ===
تعداد ثانیه را وارد کنید:
» 200000
روز: 2
ساعت: 7
دقیقه: 33
ثانیه: 20
الف) برنامهٔ کاربردی (کنسول، محاسبه می‌کند)
# ---- توابع کمکی ----
# «صحیح»: عدد اعشاری (مثل ۳٫۰) را به عدد صحیح تبدیل می‌کند (برای اندیس فهرست)
تابع صحیح با x
    بگذار i برابر ۰
    تاوقتی i + ۱ <= x
        بگذار i برابر i + ۱
    بازگردان i
# «خوب»: گرد کردن تا ۶ رقم اعشار و حذف «.0» اضافی از انتهای عدد
تابع خوب با عدد
    بگذار ص برابر عدد * ۱۰۰۰۰۰۰ + ۰٫۵
    بگذار ص برابر (ص - ص % ۱) / ۱۰۰۰۰۰۰
    بگذار م برابر به_متن با ص
    بگذار ن برابر طول با م
    اگر ن > ۲
        اگر م[ن - ۲] == -.- و م[ن - ۱] == -0-
            بگذار خ برابر م[۰]
            بگذار ک برابر ۱
            تاوقتی ک < ن - ۲
                بگذار خ برابر خ + م[ک]
                بگذار ک برابر ک + ۱
            بازگردان خ
    بازگردان م
# ---- برنامه ----
چاپ -=== ثانیه به روز، ساعت، دقیقه ===-
چاپ -تعداد ثانیه را وارد کنید:-
بگذار س برابر بخوان
بگذار کل برابر به_عدد با س
بگذار روز برابر (کل - کل % ۸۶۴۰۰) / ۸۶۴۰۰
بگذار باقی برابر کل % ۸۶۴۰۰
بگذار ساعت برابر (باقی - باقی % ۳۶۰۰) / ۳۶۰۰
بگذار باقی برابر باقی % ۳۶۰۰
بگذار دقیقه برابر (باقی - باقی % ۶۰) / ۶۰
بگذار ثانیه برابر باقی % ۶۰
بگذار الف برابر خوب با روز
بگذار ب برابر خوب با ساعت
بگذار ج برابر خوب با دقیقه
بگذار د برابر خوب با ثانیه
چاپ -روز: - + الف
چاپ -ساعت: - + ب
چاپ -دقیقه: - + ج
چاپ -ثانیه: - + د
ب) فرم ویندوز (فقط ظاهر)
پنجره بساز با -تبدیل ثانیه به روز و ساعت و دقیقه- و ۴۲۰ و 222
برچسب بساز با -تعداد ثانیه-
ورودی بساز
دکمه بساز با -تبدیل-
نمایش پنجره

8. تبدیل مبنای عدد

فرم ویندوز (عکس واقعی از اجرای Tkinter)

فرم تبدیل مبنای عدد

نمونهٔ اجرای برنامهٔ کاربردی (خروجی واقعی مفسر)

=== تبدیل مبنای عدد ===
یک عدد صحیح نامنفی (دهدهی) وارد کنید:
» 255
دودویی: 11111111
هشتتایی: 377
شانزدهتایی: FF
الف) برنامهٔ کاربردی (کنسول، محاسبه می‌کند)
# ---- توابع کمکی ----
# «صحیح»: عدد اعشاری (مثل ۳٫۰) را به عدد صحیح تبدیل می‌کند (برای اندیس فهرست)
تابع صحیح با x
    بگذار i برابر ۰
    تاوقتی i + ۱ <= x
        بگذار i برابر i + ۱
    بازگردان i
# «خوب»: گرد کردن تا ۶ رقم اعشار و حذف «.0» اضافی از انتهای عدد
تابع خوب با عدد
    بگذار ص برابر عدد * ۱۰۰۰۰۰۰ + ۰٫۵
    بگذار ص برابر (ص - ص % ۱) / ۱۰۰۰۰۰۰
    بگذار م برابر به_متن با ص
    بگذار ن برابر طول با م
    اگر ن > ۲
        اگر م[ن - ۲] == -.- و م[ن - ۱] == -0-
            بگذار خ برابر م[۰]
            بگذار ک برابر ۱
            تاوقتی ک < ن - ۲
                بگذار خ برابر خ + م[ک]
                بگذار ک برابر ک + ۱
            بازگردان خ
    بازگردان م
# ---- برنامه ----
بگذار ارقام برابر [-0-، -1-، -2-، -3-، -4-، -5-، -6-، -7-، -8-، -9-، -A-، -B-، -C-، -D-، -E-، -F-]
# عدد صحیح نامنفی را به مبنای دلخواه (۲ تا ۱۶) می‌نویسد
تابع مبنا با عدد و پایه
    اگر عدد == ۰
        بازگردان -0-
    بگذار متن برابر ارقام[صحیح با عدد % پایه]
    بگذار عدد برابر (عدد - عدد % پایه) / پایه
    تاوقتی عدد > ۰
        بگذار متن برابر ارقام[صحیح با عدد % پایه] + متن
        بگذار عدد برابر (عدد - عدد % پایه) / پایه
    بازگردان متن
چاپ -=== تبدیل مبنای عدد ===-
چاپ -یک عدد صحیح نامنفی (دهدهی) وارد کنید:-
بگذار س برابر بخوان
بگذار عدد برابر به_عدد با س
چاپ -دودویی: - + مبنا با عدد و ۲
چاپ -هشتتایی: - + مبنا با عدد و ۸
چاپ -شانزدهتایی: - + مبنا با عدد و ۱۶
ب) فرم ویندوز (فقط ظاهر)
پنجره بساز با -تبدیل مبنای عدد- و ۴۲۰ و 290
برچسب بساز با -عدد دهدهی-
ورودی بساز
برچسب بساز با -مبنای مقصد-
لیست بساز با -دودویی- و -هشتتایی- و -شانزدهتایی-
دکمه بساز با -تبدیل-
نمایش پنجره

9. مساحت و محیط

فرم ویندوز (عکس واقعی از اجرای Tkinter)

فرم مساحت و محیط

نمونهٔ اجرای برنامهٔ کاربردی (خروجی واقعی مفسر)

=== مساحت و محیط ===
۱) مربع  ۲) مستطیل  ۳) دایره
» 3
شعاع:
» 5
مساحت: 78.539816
محیط: 31.415927
الف) برنامهٔ کاربردی (کنسول، محاسبه می‌کند)
# ---- توابع کمکی ----
# «صحیح»: عدد اعشاری (مثل ۳٫۰) را به عدد صحیح تبدیل می‌کند (برای اندیس فهرست)
تابع صحیح با x
    بگذار i برابر ۰
    تاوقتی i + ۱ <= x
        بگذار i برابر i + ۱
    بازگردان i
# «خوب»: گرد کردن تا ۶ رقم اعشار و حذف «.0» اضافی از انتهای عدد
تابع خوب با عدد
    بگذار ص برابر عدد * ۱۰۰۰۰۰۰ + ۰٫۵
    بگذار ص برابر (ص - ص % ۱) / ۱۰۰۰۰۰۰
    بگذار م برابر به_متن با ص
    بگذار ن برابر طول با م
    اگر ن > ۲
        اگر م[ن - ۲] == -.- و م[ن - ۱] == -0-
            بگذار خ برابر م[۰]
            بگذار ک برابر ۱
            تاوقتی ک < ن - ۲
                بگذار خ برابر خ + م[ک]
                بگذار ک برابر ک + ۱
            بازگردان خ
    بازگردان م
# ---- برنامه ----
چاپ -=== مساحت و محیط ===-
چاپ -۱) مربع  ۲) مستطیل  ۳) دایره-
بگذار س برابر بخوان
بگذار ک برابر به_عدد با س
اگر ک == ۱
    چاپ -طول ضلع:-
    بگذار س برابر بخوان
    بگذار الف برابر به_عدد با س
    چاپ -مساحت: - + خوب با الف * الف
    چاپ -محیط: - + خوب با ۴ * الف
وگرنه اگر ک == ۲
    چاپ -طول:-
    بگذار س برابر بخوان
    بگذار الف برابر به_عدد با س
    چاپ -عرض:-
    بگذار س برابر بخوان
    بگذار ب برابر به_عدد با س
    چاپ -مساحت: - + خوب با الف * ب
    چاپ -محیط: - + خوب با ۲ * (الف + ب)
وگرنه اگر ک == ۳
    چاپ -شعاع:-
    بگذار س برابر بخوان
    بگذار ش برابر به_عدد با س
    چاپ -مساحت: - + خوب با ۳٫۱۴۱۵۹۲۶۵ * ش * ش
    چاپ -محیط: - + خوب با ۲ * ۳٫۱۴۱۵۹۲۶۵ * ش
وگرنه
    چاپ -گزینهٔ نامعتبر-
ب) فرم ویندوز (فقط ظاهر)
پنجره بساز با -مساحت و محیط- و ۴۲۰ و 358
برچسب بساز با -شکل-
منوی انتخاب بساز با -مربع- و -مستطیل- و -دایره-
برچسب بساز با -اندازه اول-
ورودی بساز
برچسب بساز با -اندازه دوم-
ورودی بساز
دکمه بساز با -محاسبه-
نمایش پنجره

10. شاخص توده بدنی (BMI)

فرم ویندوز (عکس واقعی از اجرای Tkinter)

فرم شاخص توده بدنی (BMI)

نمونهٔ اجرای برنامهٔ کاربردی (خروجی واقعی مفسر)

=== شاخص توده بدنی ===
وزن (کیلوگرم):
» 70
قد (سانتیمتر):
» 175
BMI: 22.857143
وضعیت: طبیعی
الف) برنامهٔ کاربردی (کنسول، محاسبه می‌کند)
# ---- توابع کمکی ----
# «صحیح»: عدد اعشاری (مثل ۳٫۰) را به عدد صحیح تبدیل می‌کند (برای اندیس فهرست)
تابع صحیح با x
    بگذار i برابر ۰
    تاوقتی i + ۱ <= x
        بگذار i برابر i + ۱
    بازگردان i
# «خوب»: گرد کردن تا ۶ رقم اعشار و حذف «.0» اضافی از انتهای عدد
تابع خوب با عدد
    بگذار ص برابر عدد * ۱۰۰۰۰۰۰ + ۰٫۵
    بگذار ص برابر (ص - ص % ۱) / ۱۰۰۰۰۰۰
    بگذار م برابر به_متن با ص
    بگذار ن برابر طول با م
    اگر ن > ۲
        اگر م[ن - ۲] == -.- و م[ن - ۱] == -0-
            بگذار خ برابر م[۰]
            بگذار ک برابر ۱
            تاوقتی ک < ن - ۲
                بگذار خ برابر خ + م[ک]
                بگذار ک برابر ک + ۱
            بازگردان خ
    بازگردان م
# ---- برنامه ----
چاپ -=== شاخص توده بدنی ===-
چاپ -وزن (کیلوگرم):-
بگذار س برابر بخوان
بگذار وزن برابر به_عدد با س
چاپ -قد (سانتیمتر):-
بگذار س برابر بخوان
بگذار قد برابر به_عدد با س
بگذار متر برابر قد / ۱۰۰
بگذار شاخص برابر وزن / (متر * متر)
چاپ -BMI: - + خوب با شاخص
اگر شاخص < ۱۸٫۵
    چاپ -وضعیت: کم وزن-
وگرنه اگر شاخص < ۲۵
    چاپ -وضعیت: طبیعی-
وگرنه اگر شاخص < ۳۰
    چاپ -وضعیت: اضافه وزن-
وگرنه
    چاپ -وضعیت: چاقی-
ب) فرم ویندوز (فقط ظاهر)
پنجره بساز با -شاخص توده بدنی (BMI)- و ۴۲۰ و 290
برچسب بساز با -وزن (کیلوگرم)-
ورودی بساز
برچسب بساز با -قد (سانتیمتر)-
ورودی بساز
دکمه بساز با -محاسبه BMI-
نمایش پنجره

11. تخفیف و مالیات

فرم ویندوز (عکس واقعی از اجرای Tkinter)

فرم تخفیف و مالیات

نمونهٔ اجرای برنامهٔ کاربردی (خروجی واقعی مفسر)

=== تخفیف و مالیات ===
قیمت اصلی:
» 1200000
درصد تخفیف:
» 15
درصد مالیات:
» 10
قیمت پس از تخفیف: 1020000
قیمت نهایی با مالیات: 1122000
الف) برنامهٔ کاربردی (کنسول، محاسبه می‌کند)
# ---- توابع کمکی ----
# «صحیح»: عدد اعشاری (مثل ۳٫۰) را به عدد صحیح تبدیل می‌کند (برای اندیس فهرست)
تابع صحیح با x
    بگذار i برابر ۰
    تاوقتی i + ۱ <= x
        بگذار i برابر i + ۱
    بازگردان i
# «خوب»: گرد کردن تا ۶ رقم اعشار و حذف «.0» اضافی از انتهای عدد
تابع خوب با عدد
    بگذار ص برابر عدد * ۱۰۰۰۰۰۰ + ۰٫۵
    بگذار ص برابر (ص - ص % ۱) / ۱۰۰۰۰۰۰
    بگذار م برابر به_متن با ص
    بگذار ن برابر طول با م
    اگر ن > ۲
        اگر م[ن - ۲] == -.- و م[ن - ۱] == -0-
            بگذار خ برابر م[۰]
            بگذار ک برابر ۱
            تاوقتی ک < ن - ۲
                بگذار خ برابر خ + م[ک]
                بگذار ک برابر ک + ۱
            بازگردان خ
    بازگردان م
# ---- برنامه ----
چاپ -=== تخفیف و مالیات ===-
چاپ -قیمت اصلی:-
بگذار س برابر بخوان
بگذار قیمت برابر به_عدد با س
چاپ -درصد تخفیف:-
بگذار س برابر بخوان
بگذار تخفیف برابر به_عدد با س
چاپ -درصد مالیات:-
بگذار س برابر بخوان
بگذار مالیات برابر به_عدد با س
بگذار بعد برابر قیمت - قیمت * تخفیف / ۱۰۰
بگذار نهایی برابر بعد + بعد * مالیات / ۱۰۰
چاپ -قیمت پس از تخفیف: - + خوب با بعد
چاپ -قیمت نهایی با مالیات: - + خوب با نهایی
ب) فرم ویندوز (فقط ظاهر)
پنجره بساز با -تخفیف و مالیات- و ۴۲۰ و 358
برچسب بساز با -قیمت اصلی-
ورودی بساز
برچسب بساز با -درصد تخفیف-
نوار لغزش بساز با ۱۰۰
برچسب بساز با -درصد مالیات-
ورودی بساز
دکمه بساز با -محاسبه-
نمایش پنجره

12. تبدیل ارز با نرخ دلخواه

فرم ویندوز (عکس واقعی از اجرای Tkinter)

فرم تبدیل ارز با نرخ دلخواه

نمونهٔ اجرای برنامهٔ کاربردی (خروجی واقعی مفسر)

=== تبدیل ارز ===
مقدار ارز (مثلاً دلار):
» 250
نرخ هر واحد به ریال یا تومان:
» 60000
معادل: 15000000
الف) برنامهٔ کاربردی (کنسول، محاسبه می‌کند)
# ---- توابع کمکی ----
# «صحیح»: عدد اعشاری (مثل ۳٫۰) را به عدد صحیح تبدیل می‌کند (برای اندیس فهرست)
تابع صحیح با x
    بگذار i برابر ۰
    تاوقتی i + ۱ <= x
        بگذار i برابر i + ۱
    بازگردان i
# «خوب»: گرد کردن تا ۶ رقم اعشار و حذف «.0» اضافی از انتهای عدد
تابع خوب با عدد
    بگذار ص برابر عدد * ۱۰۰۰۰۰۰ + ۰٫۵
    بگذار ص برابر (ص - ص % ۱) / ۱۰۰۰۰۰۰
    بگذار م برابر به_متن با ص
    بگذار ن برابر طول با م
    اگر ن > ۲
        اگر م[ن - ۲] == -.- و م[ن - ۱] == -0-
            بگذار خ برابر م[۰]
            بگذار ک برابر ۱
            تاوقتی ک < ن - ۲
                بگذار خ برابر خ + م[ک]
                بگذار ک برابر ک + ۱
            بازگردان خ
    بازگردان م
# ---- برنامه ----
# نرخ ارز ثابت نیست؛ نرخ روز را خودتان وارد می‌کنید
چاپ -=== تبدیل ارز ===-
چاپ -مقدار ارز (مثلاً دلار):-
بگذار س برابر بخوان
بگذار مقدار برابر به_عدد با س
چاپ -نرخ هر واحد به ریال یا تومان:-
بگذار س برابر بخوان
بگذار نرخ برابر به_عدد با س
چاپ -معادل: - + خوب با مقدار * نرخ
ب) فرم ویندوز (فقط ظاهر)
پنجره بساز با -تبدیل ارز با نرخ دلخواه- و ۴۲۰ و 290
برچسب بساز با -مقدار ارز-
ورودی بساز
برچسب بساز با -نرخ هر واحد-
ورودی بساز
دکمه بساز با -تبدیل-
نمایش پنجره

13. ماشین حساب

فرم ویندوز (عکس واقعی از اجرای Tkinter)

فرم ماشین حساب

نمونهٔ اجرای برنامهٔ کاربردی (خروجی واقعی مفسر)

=== ماشین حساب ===
عدد اول:
» 12
عدد دوم:
» 4
عملیات: ۱) جمع  ۲) تفریق  ۳) ضرب  ۴) تقسیم
» 4
حاصل: 3
الف) برنامهٔ کاربردی (کنسول، محاسبه می‌کند)
# ---- توابع کمکی ----
# «صحیح»: عدد اعشاری (مثل ۳٫۰) را به عدد صحیح تبدیل می‌کند (برای اندیس فهرست)
تابع صحیح با x
    بگذار i برابر ۰
    تاوقتی i + ۱ <= x
        بگذار i برابر i + ۱
    بازگردان i
# «خوب»: گرد کردن تا ۶ رقم اعشار و حذف «.0» اضافی از انتهای عدد
تابع خوب با عدد
    بگذار ص برابر عدد * ۱۰۰۰۰۰۰ + ۰٫۵
    بگذار ص برابر (ص - ص % ۱) / ۱۰۰۰۰۰۰
    بگذار م برابر به_متن با ص
    بگذار ن برابر طول با م
    اگر ن > ۲
        اگر م[ن - ۲] == -.- و م[ن - ۱] == -0-
            بگذار خ برابر م[۰]
            بگذار ک برابر ۱
            تاوقتی ک < ن - ۲
                بگذار خ برابر خ + م[ک]
                بگذار ک برابر ک + ۱
            بازگردان خ
    بازگردان م
# ---- برنامه ----
چاپ -=== ماشین حساب ===-
چاپ -عدد اول:-
بگذار س برابر بخوان
بگذار الف برابر به_عدد با س
چاپ -عدد دوم:-
بگذار س برابر بخوان
بگذار ب برابر به_عدد با س
چاپ -عملیات: ۱) جمع  ۲) تفریق  ۳) ضرب  ۴) تقسیم-
بگذار س برابر بخوان
بگذار ک برابر به_عدد با س
اگر ک == ۱
    چاپ -حاصل: - + خوب با الف + ب
وگرنه اگر ک == ۲
    چاپ -حاصل: - + خوب با الف - ب
وگرنه اگر ک == ۳
    چاپ -حاصل: - + خوب با الف * ب
وگرنه اگر ک == ۴
    اگر ب == ۰
        چاپ -تقسیم بر صفر ممکن نیست.-
    وگرنه
        چاپ -حاصل: - + خوب با الف / ب
وگرنه
    چاپ -عملیات نامعتبر-
ب) فرم ویندوز (فقط ظاهر)
پنجره بساز با -ماشین حساب- و ۴۲۰ و 358
برچسب بساز با -عدد اول-
ورودی بساز
برچسب بساز با -عدد دوم-
ورودی بساز
برچسب بساز با -عملیات-
منوی انتخاب بساز با -جمع- و -تفریق- و -ضرب- و -تقسیم-
دکمه بساز با -محاسبه-
نمایش پنجره

14. تاریخ میلادی به شمسی

فرم ویندوز (عکس واقعی از اجرای Tkinter)

فرم تاریخ میلادی به شمسی

نمونهٔ اجرای برنامهٔ کاربردی (خروجی واقعی مفسر)

=== میلادی به شمسی ===
سال میلادی:
» 2026
ماه (۱ تا ۱۲):
» 9
روز:
» 28
تاریخ شمسی: 1405/7/6
نام ماه: مهر
الف) برنامهٔ کاربردی (کنسول، محاسبه می‌کند)
# ---- توابع کمکی ----
# «صحیح»: عدد اعشاری (مثل ۳٫۰) را به عدد صحیح تبدیل می‌کند (برای اندیس فهرست)
تابع صحیح با x
    بگذار i برابر ۰
    تاوقتی i + ۱ <= x
        بگذار i برابر i + ۱
    بازگردان i
# «خوب»: گرد کردن تا ۶ رقم اعشار و حذف «.0» اضافی از انتهای عدد
تابع خوب با عدد
    بگذار ص برابر عدد * ۱۰۰۰۰۰۰ + ۰٫۵
    بگذار ص برابر (ص - ص % ۱) / ۱۰۰۰۰۰۰
    بگذار م برابر به_متن با ص
    بگذار ن برابر طول با م
    اگر ن > ۲
        اگر م[ن - ۲] == -.- و م[ن - ۱] == -0-
            بگذار خ برابر م[۰]
            بگذار ک برابر ۱
            تاوقتی ک < ن - ۲
                بگذار خ برابر خ + م[ک]
                بگذار ک برابر ک + ۱
            بازگردان خ
    بازگردان م
# ---- برنامه ----
تابع خارج با الف و ب
    بازگردان (الف - الف % ب) / ب
بگذار روزهای_ماه برابر [۰، ۳۱، ۵۹، ۹۰، ۱۲۰، ۱۵۱، ۱۸۱، ۲۱۲، ۲۴۳، ۲۷۳، ۳۰۴، ۳۳۴]
بگذار نام_ماه‌ها برابر [-فروردین-، -اردیبهشت-، -خرداد-، -تیر-، -مرداد-، -شهریور-، -مهر-، -آبان-، -آذر-، -دی-، -بهمن-، -اسفند-]
چاپ -=== میلادی به شمسی ===-
چاپ -سال میلادی:-
بگذار س برابر بخوان
بگذار گس برابر به_عدد با س
چاپ -ماه (۱ تا ۱۲):-
بگذار س برابر بخوان
بگذار ع برابر به_عدد با س
بگذار گم برابر صحیح با ع
چاپ -روز:-
بگذار س برابر بخوان
بگذار گر برابر به_عدد با س
اگر گس > ۱۶۰۰
    بگذار جس برابر ۹۷۹
    بگذار گس برابر گس - ۱۶۰۰
وگرنه
    بگذار جس برابر ۰
    بگذار گس برابر گس - ۶۲۱
بگذار گسب برابر گس
اگر گم > ۲
    بگذار گسب برابر گس + ۱
بگذار ا برابر خارج با (گسب + ۳) و ۴
بگذار ب برابر خارج با (گسب + ۹۹) و ۱۰۰
بگذار ج برابر خارج با (گسب + ۳۹۹) و ۴۰۰
بگذار روزها برابر ۳۶۵ * گس + ا - ب + ج - ۸۰ + گر + روزهای_ماه[گم - ۱]
بگذار جس برابر جس + ۳۳ * خارج با روزها و ۱۲۰۵۳
بگذار روزها برابر روزها % ۱۲۰۵۳
بگذار جس برابر جس + ۴ * خارج با روزها و ۱۴۶۱
بگذار روزها برابر روزها % ۱۴۶۱
اگر روزها > ۳۶۵
    بگذار جس برابر جس + خارج با (روزها - ۱) و ۳۶۵
    بگذار روزها برابر (روزها - ۱) % ۳۶۵
اگر روزها < ۱۸۶
    بگذار جم برابر ۱ + خارج با روزها و ۳۱
    بگذار جر برابر ۱ + روزها % ۳۱
وگرنه
    بگذار جم برابر ۷ + خارج با (روزها - ۱۸۶) و ۳۰
    بگذار جر برابر ۱ + (روزها - ۱۸۶) % ۳۰
بگذار سال برابر خوب با جس
بگذار ماه برابر خوب با جم
بگذار روز برابر خوب با جر
چاپ -تاریخ شمسی: - + سال + -/- + ماه + -/- + روز
بگذار ن برابر صحیح با جم
چاپ -نام ماه: - + نام_ماه‌ها[ن - ۱]
ب) فرم ویندوز (فقط ظاهر)
پنجره بساز با -تاریخ میلادی به شمسی- و ۴۲۰ و 358
برچسب بساز با -سال میلادی-
ورودی بساز
برچسب بساز با -ماه-
ورودی بساز
برچسب بساز با -روز-
ورودی بساز
دکمه بساز با -تبدیل تاریخ-
نمایش پنجره

15. تاریخ شمسی به میلادی

فرم ویندوز (عکس واقعی از اجرای Tkinter)

فرم تاریخ شمسی به میلادی

نمونهٔ اجرای برنامهٔ کاربردی (خروجی واقعی مفسر)

=== شمسی به میلادی ===
سال شمسی:
» 1405
ماه (۱ تا ۱۲):
» 7
روز:
» 6
تاریخ میلادی: 2026/9/28
الف) برنامهٔ کاربردی (کنسول، محاسبه می‌کند)
# ---- توابع کمکی ----
# «صحیح»: عدد اعشاری (مثل ۳٫۰) را به عدد صحیح تبدیل می‌کند (برای اندیس فهرست)
تابع صحیح با x
    بگذار i برابر ۰
    تاوقتی i + ۱ <= x
        بگذار i برابر i + ۱
    بازگردان i
# «خوب»: گرد کردن تا ۶ رقم اعشار و حذف «.0» اضافی از انتهای عدد
تابع خوب با عدد
    بگذار ص برابر عدد * ۱۰۰۰۰۰۰ + ۰٫۵
    بگذار ص برابر (ص - ص % ۱) / ۱۰۰۰۰۰۰
    بگذار م برابر به_متن با ص
    بگذار ن برابر طول با م
    اگر ن > ۲
        اگر م[ن - ۲] == -.- و م[ن - ۱] == -0-
            بگذار خ برابر م[۰]
            بگذار ک برابر ۱
            تاوقتی ک < ن - ۲
                بگذار خ برابر خ + م[ک]
                بگذار ک برابر ک + ۱
            بازگردان خ
    بازگردان م
# ---- برنامه ----
تابع خارج با الف و ب
    بازگردان (الف - الف % ب) / ب
بگذار روزهای_ماه_میلادی برابر [۰، ۳۱، ۲۸، ۳۱، ۳۰، ۳۱، ۳۰، ۳۱، ۳۱، ۳۰، ۳۱، ۳۰، ۳۱]
چاپ -=== شمسی به میلادی ===-
چاپ -سال شمسی:-
بگذار س برابر بخوان
بگذار جس برابر به_عدد با س
چاپ -ماه (۱ تا ۱۲):-
بگذار س برابر بخوان
بگذار ع برابر به_عدد با س
بگذار جم برابر ع
چاپ -روز:-
بگذار س برابر بخوان
بگذار جر برابر به_عدد با س
بگذار جس برابر جس + ۱۵۹۵
بگذار ا برابر خارج با جس و ۳۳
بگذار ب برابر خارج با (جس % ۳۳ + ۳) و ۴
بگذار روزها برابر ۳۶۵ * جس + ۸ * ا + ب + جر - ۳۵۵۶۶۸
اگر جم < ۷
    بگذار روزها برابر روزها + (جم - ۱) * ۳۱
وگرنه
    بگذار روزها برابر روزها + (جم - ۷) * ۳۰ + ۱۸۶
بگذار گس برابر ۴۰۰ * خارج با روزها و ۱۴۶۰۹۷
بگذار روزها برابر روزها % ۱۴۶۰۹۷
اگر روزها > ۳۶۵۲۴
    بگذار روزها برابر روزها - ۱
    بگذار گس برابر گس + ۱۰۰ * خارج با روزها و ۳۶۵۲۴
    بگذار روزها برابر روزها % ۳۶۵۲۴
    اگر روزها >= ۳۶۵
        بگذار روزها برابر روزها + ۱
بگذار گس برابر گس + ۴ * خارج با روزها و ۱۴۶۱
بگذار روزها برابر روزها % ۱۴۶۱
اگر روزها > ۳۶۵
    بگذار گس برابر گس + خارج با (روزها - ۱) و ۳۶۵
    بگذار روزها برابر (روزها - ۱) % ۳۶۵
بگذار گر برابر روزها + ۱
بگذار کبیسه برابر ۲۸
اگر گس % ۴ == ۰
    اگر گس % ۱۰۰ != ۰
        بگذار کبیسه برابر ۲۹
اگر گس % ۴۰۰ == ۰
    بگذار کبیسه برابر ۲۹
بگذار گم برابر ۱
بگذار پایان برابر ۰
تاوقتی پایان == ۰
    بگذار طول_ماه برابر روزهای_ماه_میلادی[گم]
    اگر گم == ۲
        بگذار طول_ماه برابر کبیسه
    اگر گر > طول_ماه
        بگذار گر برابر گر - طول_ماه
        بگذار گم برابر گم + ۱
    وگرنه
        بگذار پایان برابر ۱
بگذار الف برابر خوب با گس
بگذار ب برابر خوب با گم
بگذار ج برابر خوب با گر
چاپ -تاریخ میلادی: - + الف + -/- + ب + -/- + ج
ب) فرم ویندوز (فقط ظاهر)
پنجره بساز با -تاریخ شمسی به میلادی- و ۴۲۰ و 358
برچسب بساز با -سال شمسی-
ورودی بساز
برچسب بساز با -ماه-
ورودی بساز
برچسب بساز با -روز-
ورودی بساز
دکمه بساز با -تبدیل تاریخ-
نمایش پنجره