আপনার শিরোনাম প্রশ্নের উত্তর দেওয়ার জন্য "কোনও প্রোগ্রামিং ভাষার ভাষা যেমন গণিতে রয়েছে তেমন ভেরিয়েবলগুলি ব্যবহার করে?": সি, সি #, জাভা, সি ++ এবং অন্য কোনও সি স্টাইলের ভাষা যেভাবে গণিতে ব্যবহৃত হয় সেভাবে ভেরিয়েবল ব্যবহার করে।
আপনাকে কেবল = এর পরিবর্তে == ব্যবহার করতে হবে।
আমি যদি আপনার মূল গ্রহণ করি
root(square(x)) = abs(x)
তারপরে আমি সিনট্যাক্স ছাড়া অন্য কোনও পরিবর্তন ছাড়াই সরাসরি সি # তে অনুবাদ করতে পারি।
Math.Sqrt(Math.Pow(x,2)) == Math.Abs(x)
এটি x এর যে কোনও মানের ক্ষেত্রে সত্য হিসাবে মূল্যায়ন করবে যতক্ষণ x স্কোয়ার্ড আপনি ব্যবহার করছেন এমন ডেটা টাইপের সর্বোচ্চের চেয়ে কম হবে is
(জাভা মোটামুটি একই রকম হবে তবে আমি বিশ্বাস করি ম্যাথের নেমস্পেসটি কিছুটা আলাদা)
এই পরবর্তী বিটটি সি # তে সংকলন করতে ব্যর্থ হবে কারণ সংকলকটি যথেষ্ট স্মার্ট যাতে আমি জানতে পারি না যে অন্য ক্রিয়াকলাপের অপারেশনটিকে আমি অন্য ক্রিয়াকলাপে ফিরিয়ে দিতে পারি না।
Math.Sqrt(Math.Pow(x,2)) = Math.Abs(x)
অপরিষ্কার এর সাথে কিছু করার নেই। আপনাকে এখনও একটি অপরিবর্তনীয় ভাষায় মান নির্ধারণ করতে হবে এবং প্রদত্ত ভাষা অপারেটর হিসাবে = ব্যবহার করে এটি করতে পারে তা সম্পূর্ণভাবে সম্ভব।
বিন্দুটি আরও প্রমাণ করে, এই লুপটি চলবে যতক্ষণ না আপনি x এর আইনি মানগুলি সরিয়ে ফেলে এবং একটি ওভারফ্লো ব্যতিক্রম না পান:
while (Math.Sqrt(Math.Pow(x, 2)) == Math.Abs(x))
{
++x;
System.Console.WriteLine(x);
}
এই কারণেই গণিতবিদগণ অ্যাসাইনমেন্টের জন্য = ব্যবহারকে ঘৃণা করেন। এটি তাদের গুলিয়ে দেয়। আমি মনে করি এটি আপনাকে নিজেকে বিভ্রান্ত করতে পরিচালিত করেছে। আপনার উদাহরণ নিন
y = (x**2)**.5
x *= 2
assert y == abs(x)
আমি যখন এটিকে বীজগণিতায় পরিণত করি তখন আমি এটি পাই:
অ্যাবস (2x) = মূল (x ^ 2)
কোনটি অবশ্যই ০. এর চেয়ে অন্য মানগুলির জন্য সত্য নয় অপরিবর্তনীয়তা কেবলমাত্র আপনাকে x এর মান পরিবর্তন করার ত্রুটি থেকে বাঁচায় যখন আপনি মূল সমীকরণের বাম হাতের ও ডান হাতের দিকটি মূল্যায়নের মধ্যে অতিরিক্ত পদক্ষেপ যুক্ত করেন। আপনি কীভাবে এক্সপ্রেশনটিকে মূল্যায়ন করেন এটি আসলে পরিবর্তন হয় না ।