আমার একটি পরীক্ষা আসছে এবং আমি কী আশা করব সে সম্পর্কে কিছু ধারণা পেতে অতীতের কাগজপত্রগুলি দেখছি। আমি নিম্নলিখিতটির উপর কিছুটা আটকে রয়েছি এবং যদি কেউ কিছু উদাহরণের উত্তর দিতে পারে তবে সত্যই প্রশংসা করব।
নিম্নলিখিত প্রতিটি ক্রিয়াকলাপের জন্য ওসিএলে পূর্ব শর্ত এবং পোস্টকন্ডিশনগুলি লিখুন (java.util প্যাকেজের স্ট্যাক শ্রেণিতে অন্তর্ভুক্ত):
- (1) বুলিয়ান খালি () - এই স্ট্যাকটি খালি থাকলে পরীক্ষা করে
- (২) ই পিক () - স্ট্যাকটি সরিয়ে না রেখে এই স্ট্যাকের শীর্ষে অবস্থিত অবজেক্টটিকে দেখায়
- (3) ই পপ () - এই স্ট্যাকের শীর্ষে থাকা বস্তুটি সরিয়ে দেয় এবং এই ক্রিয়াকলাপের মান হিসাবে সেই বস্তুটিকে ফেরত দেয়
- (4) ই পুশ (ই আইটেম) - এই স্ট্যাকের শীর্ষে একটি আইটেম ঠেলাঠেলি করে
এখানে ই স্ট্যাকের উপাদানগুলির ধরণকে বোঝায়।
আমার প্রচেষ্টা নিম্নরূপ:
Boolean empty()
pre: none
post: self -> IsEmpty() = true
//should this be result -> IsEmpty() = true because it returns a boolean value?
E peek()
pre: self -> NotEmpty() = true
post: result = ???
// I lose hope at this stage.
আমি জানি না যে আমার স্ট্যাকের উপাদানগুলি উল্লেখ করা উচিত। উদাহরণস্বরূপ: স্ব-উপাদানসমূহ -> ইসেম্পটি () = সত্য
যদি কেউ আমাকে সহায়তা করতে পারে আমি সত্যিই এটির প্রশংসা করব।
সম্পাদনা
বন্ধুর নিম্নলিখিত ধারণাগুলি রয়েছে:
context Stack empty()
pre: self.data.size = 0
context Stack peek()
pre: self.data.AsSequence.first
context Stack pop()
pre: !self.data.isEmpty
post: self.data.AsSequence.first.remove (not sure about this one)
post: self.data.count = @pre:data - 1
context Stack push(E Item)
post: self.data.asSquence.prepend(E.asSequence)
post: self.data.size = @pre.data.size + 1