عدد گویا بهصورت خارجقسمت دو عدد صحیح a و b تعریف میشود که بهترتیب صورت و مخرج نامیده میشوند و در آن b != 0 است.
قدر مطلق |r| عدد گویای r = a/b برابر با |a|/|b| است.
مجموع دو عدد گویای r₁ = a₁/b₁ و r₂ = a₂/b₂ برابر است با r₁ + r₂ = a₁/b₁ + a₂/b₂ = (a₁ * b₂ + a₂ * b₁) / (b₁ * b₂).
تفاضل دو عدد گویای r₁ = a₁/b₁ و r₂ = a₂/b₂ برابر است با r₁ - r₂ = a₁/b₁ - a₂/b₂ = (a₁ * b₂ - a₂ * b₁) / (b₁ * b₂).
حاصلضرب (ضرب) دو عدد گویای r₁ = a₁/b₁ و r₂ = a₂/b₂ برابر است با r₁ * r₂ = (a₁ * a₂) / (b₁ * b₂).
تقسیم عدد گویای r₁ = a₁/b₁ بر عدد گویای دیگری مانند r₂ = a₂/b₂ برابر است با r₁ / r₂ = (a₁ * b₂) / (a₂ * b₁)، به شرطی که a₂ صفر نباشد.
توانرسانی عدد گویای r = a/b به توان عدد صحیح نامنفی n برابر است با r^n = (a^n)/(b^n).
توانرسانی عدد گویای r = a/b به توان عدد صحیح منفی n برابر است با r^n = (b^m)/(a^m) که در آن m = |n|.
توانرسانی عدد گویای r = a/b به توان یک عدد حقیقی (شناور) x برابر است با خارجقسمت (a^x)/(b^x) که خودش عددی حقیقی است.
توانرسانی عدد حقیقی x به توان عدد گویای r = a/b برابر است با x^(a/b) = root(x^a, b) که در آن root(p, q) ریشهی qاُم p است.
این عملیات را پیادهسازی کنید:
پیادهسازی شما از اعداد گویا باید همیشه به سادهترین صورت کسر کاهش یابد. برای مثال، 4/4 باید به 1/1 کاهش یابد، 30/60 باید به 1/2 کاهش یابد، 12/8 باید به 3/2 کاهش یابد و به همین ترتیب. برای کاهش عدد گویای r = a/b، a و b را بر بزرگترین مقسومعلیه مشترک (gcd) a و b تقسیم کنید. پس برای مثال، gcd(12, 8) = 4 است، بنابراین r = 12/8 را میتوان به (12/4)/(8/4) = 3/2 کاهش داد.
فرض کنید زبان برنامهنویسیای که استفاده میکنید پیادهسازیای از اعداد گویا ندارد.
Implicit و Explicit ممکن است، بسیار به شما کمک میکند.در Exercism ثبتنام کنید تا Delphi Pascal را همراه با 76 تمرین و مربیگری انسانی واقعی یاد بگیرید و در آن استاد شوید، همهی اینها رایگان.