میدونیم که تو هیچ زبان برنامه سازی data type برای اعداد گویا وجود ندارد
چطوری اینdata type رو تعریف کنیم و عملیات مختلف بر روی اعداد گویا رو پشتیبانی کنیم.
میدونیم که تو هیچ زبان برنامه سازی data type برای اعداد گویا وجود ندارد
چطوری اینdata type رو تعریف کنیم و عملیات مختلف بر روی اعداد گویا رو پشتیبانی کنیم.
اگه منظورت از اعداد گویا مجموعه اعداد :
a/b={(a,b) | a e IN , b e IN}
میتونی با یه آرایه دوعنصری از مقادیر Integer به مقصودت برسی و در مورد پیاده سازی اعمال هم فرمولهای ریاضی وجود داره:
(a/b) + (c/d)=(ad+cb)/(bd)
(a/b) - (c/d)=(ad-cb)/(bd)
(a/b) * (c/d)=(ac/bd)
(a/b) / (c/d)=(ad)/(bc)
سلام
منظورم از اعداد گویا همون اعداد کسری هستش .
منظورم اینه که مثلا فرض کنید تو زبان پاسکال می خواهیم با اعداد گویا کار کنیم.مثلا دو عدد گویا رو با هم جمع کنیم یا تفریق کنیم یا ضرب و...
اولا:یک data type برای اعداد گویا تعریف کنیم.
ثانیا:توابعی برای جمع -تفریق-ضرب و تقسیم اعداد گویا بنویسیم و در برنامه از این توابع استفاده کنیم.
پس جواب همون بالاییه :mrgreen:
سلام
ببخشید إقای phantasm که من از اسمتون خیلی میترسم شما تو جوابتون فقط دو عدد کسری روبصورت ریاضی با هم جمع کردین. :mad:
از شما که یک کاربر نقره ای هستین بعیده(البته ببخشید ها :موفق: )
منظورم اینه که اگه من تو برنامه اصلی بخوام دو عدد کسری رو با هم جمع کنم برنامه های فرعی رو چطوری صدا بزنم.یا بخوام عددها رو منها یا ضرب کنم .
یعنی تو function من برای هر عدد گویا دو تا آرگومان یکی برای صورت کسر و یکی برای مخرج کسر میخوام.
اما من دقیقا نمیتونم کد functionها رو بنویسم.
اگه میتونید کد function ها رو بنویسید. :wink:
جواب بالایی رو یخورده اصلاح کردم!
data type تشکیل شده از یه مجموعه داده و یه مجموعه از عملگرها (البته یسری اصول هم داره که فعلا بی خیال) ?خوب با این دید به نوع داده همونطور که خودت هم میدونی تنها لازمه مجموعه داده و عملگر ها رو معرفی کنی یعنی همون چیزی که در بالا نوشتم.
مجموعه داده :
a/b={(a,b) | a e IN , b e IN}
که مجموعه داده تعریف شده در بالا میگه ما با اعدادی سر و کار داریم که از دو جزء a و b تشکیل شدند که هر دو تاشون هم مقدار صحیح میگیرن .حالا شما میتونی توی برنامت این دو جزء رو مثلا توی دوتا خونه یه آرایه ذخیره کنی مثلا:
Type AdaDGooya=array[1..2] of integer;
در مورد کد function یا همون عملگرها هم که توضیح دادم . مثلا یه پیاده سازی از function جمع میتونه به این صورت باشه:
Procedure ADD(a,b:AdaDGooya,var c:AdaDGooya);
BEGIN
c[1]:=(a[1]*b[2]+b [1]*a[2]);
c[2]:=(a[2]*b[2]&# 41;;
END;
و در مورد فراخوانی اول دوتا متغیر از نوع AdaDGooya رو تعریف میکنی:
Var M,N,P:AdaDGooya;
و در نهایت :
M[1]:=2; { مقداردهی M و N }
M[2]:=7;
N[1]:=6;
N[2]:=13;
ADD(M,N,P);
توی کد بالا فرض کردم که قسمت صحیح رو توی عنصر اول آرایه میریزی و مخرج رو توی عنصر دوم.
امیدوارم خوب توضیح داده باشم :)
در مورد ID ایم هم از عمد اینو گذاشتم که دیگرانو بترسونم :evil2:
سلام
از کمکتون ممنونم گرفتم
ولی فکر کنم تو اونprocedure که نوشتین یه جا اشتباه کردین تو خط سوم و چهارم بجای MوN باید ازaوb استفاده کنی نه؟ :kaf:
در ضمن اون یه سری اصول که فعلا باید بی خیال شم چیه؟
******************************************
[b]((موفقیت یک درصد از کاری است که 99٪ آن شکست بوده است.))
چیرو هوندا[/b]
آره :wink:ولی فکر کنم تو اونprocedure که نوشتین یه جا اشتباه کردین تو خط سوم و چهارم بجای MوN باید ازaوb استفاده کنی نه؟
در ریاضیات سیستم های ریاضی رو به شکلهای مختلفی تعریف و گاها میسازن ٬ بدیهیات یا اصول در اونجا مطرحه و به سوال شما ربطی نداره.در ضمن اون یه سری اصول که فعلا باید بی خیال شم چیه؟
آیا صورت و مخرج اعداد گویا باید حتما صحیح باشن؟ یعنی مثلا 5/3.5 گویا نیست؟
بهر حال استفاده از رکورد خیلی منطقی تر بنظر میاد:
type adadgooya=record soorat,makhraj:real; end;
:موفق: :sad2:
سلام
خب فرقی نداره بازم میشه ازیک آرایه اعشاری استفاده کنیم.
******************************************
اگر برای یک اشتباه هزار دلیل بیاوریم میشود هزار و یک اشتباه.
((ابو علی سینا))
فرق نداره ولی رکورد خبلی خواناتر است
بهتر است از رکورد استفاده کنی
MSK :موفق:
اولا که این مباحث ربطی به الگوریتم نداشت.
ثانیا که خداوند - جل و علی- سالهاست که OOP رو خلق کردهفرق نداره ولی رکورد خبلی خواناتر است
بهتر است از رکورد استفاده کنی
ثالثا هم که تو اینجور موارد تجربه حقیرمیگه <span dir=ltr>C++</span> به خاطر امکان تعریف دوباره عملگر بهترین زبونه.
به نظر شما به چی ربط داشت؟ :mrgreen:اولا که این مباحث ربطی به الگوریتم نداشت
نخیر عزیز من چرا کفر میگی خدا که oop رو خلق نکرده. :strange:ثانیا که خداوند - جل و علی- سالهاست که OOP رو خلق کرده
ما هم میدونیم کهC++ بهتره ولی میخواستیم با پاسکال یا c این کارو انجام بدیم. :wink:ثالثا هم که تو اینجور موارد تجربه حقیرمیگه C++ به خاطر امکان تعریف دوباره عملگر بهترین زبونه
:sorry:
سپیدار جان , برای اینکه مفهوم OOP رو کسی درک کنه(سپس اون رو بکار بگیره) ابتدا لازمه با جدا سازی مفهوم تعریف(Declaration) و پیاده سازی(ّImplementation) ساختارها آشنا بشه.هدف یادگیری مفاهیم بود و مسلمه که در عمل سیستم های جامع تری وجود داره.ثانیا که خداوند - جل و علی- سالهاست که OOP رو خلق کرده
کدوم موارد؟ثالثا هم که تو اینجور موارد تجربه حقیرمیگه C++ به خاطر امکان تعریف دوباره عملگر بهترین زبونه.
در مورد تعریف (شامل شبه کدهایی برای مشخص کردن کلی توابعی که روی نوع داده جدید عمل میکنند) موافقم؛سپیدار جان , برای اینکه مفهوم OOP رو کسی درک کنه(سپس اون رو بکار بگیره) ابتدا لازمه با جدا سازی مفهوم تعریف(Declaration) و پیاده سازی(ّImplementation) ساختارها آشنا بشه.هدف یادگیری مفاهیم بود و مسلمه که در عمل سیستم های جامع تری وجود داره.
اما پیاده سازی یه مساله کاملا تکنیکیه که با محیطی که داریم در اون عمل پیاده سازی رو انجام میدیم، ارتباط مستقیم داره.
در مورد برنامه سازی در مواردی که با انواع ریاضی مختلف سر و کار داریم (شامل کار با ماتریسها، اعداد مختلط، بردارها، همین مثال و مثالهای متعدد دیگر)، <span dir=ltr>C++</span> با فراهم آوردن ویژگی «تعریف مجدد عملگر» دو محسنه بزرگ برای برنامه نویسان به ارمغان آوردهاولا (بر خلاف اونچه که گفته میشه) خوانایی برنامه ها واقعا اضافه میشه. ثانیا (بالاخص در محاسات ریاضی) استفاده کننده از شئ، از سر و کله زدن بیخود با پشته، راحت میشه.کدوم موارد؟
یه کم بیشتر فکر کن.نخیر عزیز من چرا کفر میگی خدا که oop رو خلق نکرده.
چون مربوط به پیاده سازی بود به:به نظر شما به چی ربط داشت؟
***ما هم میدونیم کهC++ بهتره ولی میخواستیم با پاسکال یا c این کارو انجام بدیم.
در ضمن دیگه هم از این پستا نکن. چون آف تاپیک به حساب میاد.
سلام آقای سپیدار
به خدا من شرمنده ام :sorry: من منظور خاصی نداشتم خواستم شوخی کنم ولی فکر میکنم که شما از دست من ناراحت شدید ببخشید
چند تا سوال دارم اگه ممکنه جواب بدبن
1-منظورتون از (یه کم بیشتر فکر کن) چیه؟یعنی چه جوری خدا oop رو خلق کرده؟
2-اونجا که نوشتین( چون مربوط به پیاده سازی بود) جملتون ناقصه.
3-منظورتون از *** چی بوده؟
4-آف تاپیک چیه؟
اینم تقدیم میکنم به شما :flower:
***************************************
برای پیروزی و موفقیت در زندگی سه چیز لازم است:
اول پشتکار دوم پشتکار سوم پشتکار
((لرد آویبوری))
سلام
دوستی که گفتن مثلا ۳/۵.۵ گویا هست یا نه : دوست عزیز As a matter of definition عدد گویا به صورت کسری که صورت و مخرجش عدد صحیح هستن تعریف شده ۳/۵.۵ رو اگر بخواین به شکل گویا بنویسید کاری نداره میشه ۶/۱۱ .
ضمنا جناب سپیدار درست میگن در این مواقع استفاده از Operator Overloading که از امکانات قوی C++ است خیلی کمک میکنه.
در ضمن در زبان کفار! به عدد گویا Rational Number میگن اگر خواستین سرچ کنید این کلمه رو سرچ کنید.
اتفاقا کاربردهای زیادی داره. به عنوان یه مسابقه کوچیک آیا کسی میتونه یه مثال از کاربرد اعداد گویا و اینکه یه کلاس براش بنویسیم بگه ؟؟
ممنون علی
خیر ! تعریف اعداد گویا این است که حتما صورت و مخرج صحیح باشند. 5/3.5 برابر 10/7 است.آیا صورت و مخرج اعداد گویا باید حتما صحیح باشن؟ یعنی مثلا 5/3.5 گویا نیست؟
من این مورد رو تو جواب ایشون ندیدم ! اصلاحش کردین یا چشم من مشکل داره ؟نقل قول:
ولی فکر کنم تو اونprocedure که نوشتین یه جا اشتباه کردین تو خط سوم و چهارم بجای MوN باید ازaوb استفاده کنی نه؟
آره
تو Procedure Add که همه چیز درسته و تو فراخوانی هم که M و N مشکلی نداره !
ضمنا من فکر می کنم اگر ساده کردن کسر رو بتونیم تعریف کنیم خوب باشه ! توجه به بزرگ شدن صورت و مخرج حاصل جمع چند کسر دلیل این تعریف است.
سلام
میخواستم درباره ی تکنیک raid5 ,انواع داده ها در sql serverبرام توضیح بدید \mer30