কোটলিনে একটি জন্মদিনের বার্তা তৈরি করুন

এই কোডল্যাবে আপনি একটি ছোট কোটলিন প্রোগ্রাম তৈরি করবেন যা একটি কেক এবং একটি জন্মদিনের ব্যানার সহ একটি জন্মদিনের বার্তা প্রিন্ট করে।

পূর্বশর্ত

  • কিভাবে https://try.kotlinlang.org/ , একটি ব্রাউজার-ভিত্তিক Kotlin প্রোগ্রামিং টুল-এ কোড খুলবেন এবং সম্পাদনা করবেন।
  • বুঝুন "Hello world!" প্রোগ্রাম থেকে আপনার প্রথম কোটলিন প্রোগ্রাম কোডল্যাব লিখুন।
  • অনলাইন কোটলিন কোড এডিটরের কনসোলে পাঠ্য লিখতে println() কীভাবে ব্যবহার করবেন।

যা শিখবেন

  • কিভাবে আপনার প্রোগ্রাম থেকে আরো জটিল টেক্সট মুদ্রণ.
  • কোটলিনে কীভাবে মৌলিক গণিত করবেন এবং পরবর্তী ব্যবহারের জন্য ভেরিয়েবলগুলিতে ফলাফলগুলি সংরক্ষণ করবেন।
  • কিভাবে একই স্ট্রিং একাধিকবার প্রিন্ট করার জন্য একটি ফাংশন তৈরি করতে হয়।
  • কীভাবে একটি লুপ তৈরি করবেন যা একটি পাঠ্য স্নিপেট একাধিকবার প্রিন্ট করে।

আপনি কি নির্মাণ করবেন

  • আপনি একটি ছোট প্রোগ্রাম তৈরি করবেন যা আপনি জন্মদিনের বার্তা, একটি কেকের একটি পাঠ্য-ভিত্তিক ছবি এবং একটি ব্যানার প্রিন্ট করতে ব্যবহার করতে পারেন।

তুমি কি চাও

  • ইন্টারনেট অ্যাক্সেস সহ একটি কম্পিউটার এবং একটি আধুনিক ওয়েব ব্রাউজার, যেমন Chrome এর সর্বশেষ সংস্করণ৷

আপনার স্টার্টার কোড সেট আপ করুন

  1. আপনার ব্রাউজারে, https://try.kotlinlang.org/ খুলুন। এটি একটি ব্রাউজার-ভিত্তিক কোটলিন প্রোগ্রামিং টুল খোলে।
  2. ফাইল এক্সপ্লোরারে, নিশ্চিত করুন উদাহরণ > হ্যালো, ওয়ার্ল্ড! > সহজতম সংস্করণ > SimplestVersion.kt নির্বাচন করা হয়েছে, এবং কোড সম্পাদক Hello world! কার্যক্রম.
  3. আপনি যদি আপনার পূর্ববর্তী পরিবর্তনগুলির সাথে কোডটি দেখতে পান, তাহলে ঠিক আছে৷ ফাইলের নামের পাশে Undo তীর ক্লিক করে প্রোগ্রামের আসল অবস্থা পুনরুদ্ধার করুন।

  1. fun main() এর সংজ্ঞায়, আর্গুমেন্ট args: Array<String> কারণ আপনি এটি ব্যবহার করতে যাচ্ছেন না। এটি সম্পাদকে ডিফল্টরূপে প্রদত্ত কোডে সরবরাহ করা হয়, তবে এটি থাকা বাধ্যতামূলক নয়। আপনার প্রোগ্রামের প্রথম লাইনটি এখন নীচের কোডের মতো হওয়া উচিত।
fun main(){
  1. fun main() ফাংশনের ভিতরে, "Hello, world!" প্রতিস্থাপন করুন। লেখা "Happy Birthday, Rover!" .
  2. এর নীচে, এখনও কোঁকড়া ধনুর্বন্ধনীর ভিতরে, প্রিন্ট করতে আরও দুটি লাইন যুক্ত করুন: "You are already 5!" এবং "5 is the very best age to celebrate!".

আপনার সমাপ্ত কোড এই মত হওয়া উচিত.

fun main() {
    println("Happy Birthday, Rover!")
    println("You are already 5!")
    println("5 is the very best age to celebrate!")
}
  1. আপনার কোড চালান.
  2. যাচাই করুন যে কনসোল ট্যাবে শুভ জন্মদিন দেখায়, রোভার! এবং তার নিচে, আপনি ইতিমধ্যে 5! এবং 5 হল উদযাপনের জন্য সবচেয়ে সেরা বয়স!

একটি জন্মদিনের কেক যোগ করুন

একটি জন্মদিনের বার্তা একটি জন্মদিন-থিমযুক্ত ছবি প্রয়োজন. যেমন, একটি কেক। আপনি অতিরিক্ত লাইন মুদ্রণ করে আপনার জন্মদিনের বার্তায় একটি কেক যোগ করতে পারেন যা আপনার কীবোর্ড এবং println() এ অক্ষর এবং চিহ্ন ব্যবহার করে।

উপরের সমাধান কোড থেকে চালিয়ে যান।

  1. আপনার কোডে, Happy Birthday জন্য দুটি println() বিবৃতি এবং You are already 5 মধ্যে, নীচে দেখানো হিসাবে প্রিন্ট স্টেটমেন্টের নিম্নলিখিত লাইনগুলি যোগ করুন। এটি একটি কেক তৈরি করে। শেষ println() স্টেটমেন্টে উদ্ধৃতিগুলির মধ্যে কোনও পাঠ্য নেই, যা একটি খালি লাইন প্রিন্ট করে।
    println("   ,,,,,   ")
    println("   |||||   ")
    println(" =========")
    println("@@@@@@@@@@@")
    println("{~@~@~@~@~}")
    println("@@@@@@@@@@@")
    println("")

অন্যদের আপনার কোড বুঝতে সাহায্য করার জন্য, আপনি কেক প্রিন্ট করার আগে একটি মন্তব্য যোগ করতে পারেন। আপনি যদি আপনার কোডটি চালান তবে আউটপুটটি আলাদা দেখাবে না, কারণ মন্তব্যগুলি কেবলমাত্র আপনার এবং অন্যান্য বিকাশকারীদের জন্য তথ্য, সিস্টেমের জন্য আদেশ নয়। একটি ইনলাইন মন্তব্য // দিয়ে শুরু হয়, যা নীচে দেখানো হয়েছে।

// This is a comment line
// This is another comment
  1. কেক প্রিন্ট করার আগে একটি মন্তব্য যোগ করুন: // Let's print a cake! .
  2. খালি লাইন প্রিন্ট করার আগে একটি মন্তব্য যোগ করুন: // This prints an empty line

আপনার কোড নিচের কোডের মত দেখতে হবে।

fun main() {
    println("Happy Birthday, Rover!")
    
    // Let's print a cake!
    println("   ,,,,,   ")
    println("   |||||   ")
    println(" =========")
    println("@@@@@@@@@@@")
    println("{~@~@~@~@~}")
    println("@@@@@@@@@@@")
    
    // This prints an empty line.
    println("")

    println("You are already 5!")
    println("5 is the very best age to celebrate!")
}
  1. আপনার কোড চালান, এবং আউটপুট নীচের স্ক্রিনশট মত হওয়া উচিত.

রোভারের বয়স একটি পরিবর্তনশীল মধ্যে সংরক্ষণ করুন

  1. এখন পর্যন্ত আপনার সমাপ্ত কোডে, লক্ষ্য করুন কিভাবে আপনি একই বয়সের সংখ্যা দুইবার পুনরাবৃত্তি করছেন।

এই সংখ্যাটি পুনরাবৃত্তি করার পরিবর্তে, আপনি এটিকে একটি পরিবর্তনশীল হিসাবে এক জায়গায় সংরক্ষণ করতে পারেন। এটি একটি বাক্সে আপনার নম্বর স্থাপন এবং এটি একটি নাম দেওয়ার মত. তারপর আপনি এই পরিবর্তনশীল নাম ব্যবহার করতে পারেন যে কোনো সময় আপনি মান প্রয়োজন. এবং, বয়স পরিবর্তিত হলে, আপনাকে শুধুমাত্র একটি জায়গায় আপনার প্রোগ্রাম পরিবর্তন করতে হবে। ভেরিয়েবল পরিবর্তন করে, ভ্যারিয়েবল ব্যবহার করা হয়েছে এমন সব জায়গায় বয়সের জন্য সঠিক মান মুদ্রিত হয়।

  1. আপনার প্রোগ্রামে, main( ) ফাংশনের ভিতরে কোডের প্রথম লাইন হিসাবে, নিচের মতো 5 এর মান সহ age নামক একটি ভেরিয়েবল তৈরি করতে নিম্নলিখিত কোডটি যোগ করুন। (আপনাকে অবশ্যই এই লাইনটি println() স্টেটমেন্টের আগে রাখতে হবে)।
val age = 5

এই লাইন মানে:

  • val হল একটি বিশেষ শব্দ যা Kotlin দ্বারা ব্যবহৃত হয়, যাকে একটি কীওয়ার্ড বলা হয়, যা নির্দেশ করে যে নিম্নলিখিতটি একটি পরিবর্তনশীলের নাম।
  • age পরিবর্তনশীলের নাম।
  • = age মান (এর বাম দিকে) তার ডানদিকের মানের সমান করে তোলে। গণিতে, একটি একক সমান চিহ্ন ব্যবহার করা হয় যে প্রতিটি পাশের মান একই। কোটলিনে, গণিতের বিপরীতে, একটি একক সমান চিহ্ন বাম দিকের নামিত পরিবর্তনশীলের ডানদিকের মান নির্ধারণ করতে ব্যবহৃত হয়।

একজন বিকাশকারী এটিকে এভাবে বলবেন: এই লাইনটি age নামের একটি পরিবর্তনশীল ঘোষণা করে যার নির্ধারিত মান হল 5

একটি প্রিন্ট স্টেটমেন্টের ভিতরে একটি ভেরিয়েবল ব্যবহার করার জন্য, আপনাকে এটিকে কিছু চিহ্ন দিয়ে ঘিরে রাখতে হবে যা সিস্টেমকে বলে যে এর পরে যা আসে তা পাঠ্য নয়, একটি পরিবর্তনশীল। টেক্সট প্রিন্ট করার পরিবর্তে, সিস্টেমটিকে ভেরিয়েবলের মান প্রিন্ট করতে হবে। আপনি নীচের উদাহরণের মত একটি ডলার চিহ্নের পূর্বে কোঁকড়া ধনুর্বন্ধনীর ভিতরে আপনার ভেরিয়েবল রেখে এটি করতে পারেন।

${variable}
  1. আপনার কোডে, উভয় প্রিন্ট স্টেটমেন্টে 5 নম্বরটি নীচের দেখানো age পরিবর্তনশীল দিয়ে প্রতিস্থাপন করুন।
println("You are already ${age}!")
println("${age} is the very best age to celebrate!")
  1. আপনার কোড চালান, এবং উভয় বার্তা একই বয়স দেখানো উচিত.
  2. ভেরিয়েবলের মানকে ভিন্ন কিছুতে পরিবর্তন করুন। উদাহরণস্বরূপ, আপনি রোভারের বয়স বছরের পরিবর্তে দিনে দেখাতে পারেন। এটি করার জন্য, লিপ বছর বাদ দিয়ে বয়সকে 365 দিয়ে গুণ করুন। আপনি এই গণনাটি ঠিক করতে পারেন যখন আপনি ভেরিয়েবল তৈরি করবেন, যেমনটি নীচে দেখানো হয়েছে।
val age = 5 * 365
  1. আপনার কোড আবার চালান, এবং লক্ষ্য করুন যে উভয় বার্তাই এখন বয়স দেখায় দিনের মধ্যে।

  1. [ঐচ্ছিক] দিনের সাথে আরও ভাল কাজ করার জন্য মুদ্রণ বার্তাগুলির পাঠ্য পরিবর্তন করুন। উদাহরণস্বরূপ, পড়তে তাদের পরিবর্তন করুন:
You are already 1825 days old!
1825 days old is the very best age to celebrate!

একটি পরিবর্তনশীল মধ্যে টেক্সট রাখুন

আপনি সংখ্যাগুলিকে শুধুমাত্র ভেরিয়েবলে রাখতে পারবেন না, কিন্তু পাঠ্যও করতে পারবেন।

  1. age জন্য ভেরিয়েবলের নীচে, জন্মদিনের ব্যক্তির name জন্য নাম নামক একটি ভেরিয়েবল যোগ করুন এবং এর মান "Rover" এ সেট করুন।
val name = "Rover"
  1. জন্মদিনের বার্তায় Rover নামটি পরিবর্তনশীল দিয়ে প্রতিস্থাপন করুন, যেমনটি নীচে দেখানো হয়েছে।
println("Happy Birthday, ${name}!")

এবং আপনি একটি মুদ্রণ বিবৃতিতে একাধিক পরিবর্তনশীল থাকতে পারে।

  1. name পরিবর্তনশীল ব্যবহার করে বয়সের বার্তায় Rover যোগ করুন, যেমনটি নীচে দেখানো হয়েছে।
println("You are already ${age} days old, ${name}!")

আপনার সম্পূর্ণ কোড এই অনুরূপ দেখতে হবে.

fun main() {
    
    val age = 5 * 365
    val name = "Rover"
    
    println("Happy Birthday, ${name}!")
    
    // Let's print a cake!
    println("   ,,,,,   ")
    println("   |||||   ")
    println(" =========")
    println("@@@@@@@@@@@")
    println("{~@~@~@~@~}")
    println("@@@@@@@@@@@")
    
    // This prints an empty line.
    println("")

    println("You are already ${age} days old, ${name}!")
    println("${age} days old is the very best age to celebrate!")
}

অভিনন্দন! আপনি এখন পাঠ্য সহ বার্তা তৈরি করতে পারেন, প্রতীক থেকে তৈরি গ্রাফিক্স, সংখ্যা এবং পাঠ্য সংরক্ষণ করতে ভেরিয়েবল ব্যবহার করতে পারেন এবং ভেরিয়েবল ব্যবহার করে পাঠ্য মুদ্রণ করতে পারেন।

এই কাজটিতে আপনি একটি জন্মদিনের ব্যানার তৈরি করবেন, এবং তারপরে কোডটি পুনরাবৃত্তি এবং পুনরায় ব্যবহার করার কৌশলগুলি ব্যবহার করে কীভাবে সেই কোডটিকে সরল করা যায় এবং কেন এটি একটি ভাল জিনিস তা শিখবেন।

একটি স্টার্টার জন্মদিনের ব্যানার তৈরি করুন

  1. https://try.kotlinlang.org/- এ, কোডের ভিতরে কোথাও আপনার কার্সার রাখুন।
  2. প্রসঙ্গ মেনু খুলতে ডান-ক্লিক করুন এবং সমস্ত নির্বাচন করুন (Ctrl-A) নির্বাচন করুন।
  3. সমস্ত কোড মুছে ফেলতে ব্যাকস্পেস বা ডিলিট কী টিপুন।
  4. নীচের কোডটি সম্পাদকে কপি-পেস্ট করুন।
fun main() {
    println("=======================")
    println("Happy Birthday, Jhansi!")
    println("=======================")
}
  1. কনসোলে মুদ্রিত একটি ব্যানার দেখতে আপনার প্রোগ্রামটি চালান।
=======================
Happy Birthday, Jhansi!
=======================

বর্ডার প্রিন্ট করার জন্য একটি ফাংশন তৈরি করুন

আপনি এইমাত্র যে কোডটি পেস্ট করেছেন এবং রান করেছেন সেটি হল main() নামক একটি ফাংশন যাতে তিনটি প্রিন্ট স্টেটমেন্ট থাকে। যখন আপনি রান বোতাম টিপুন, সিস্টেমটি ফাংশনটি এবং এর ভিতরের সমস্ত কোড চালায়।

আপনার Kotlin প্রোগ্রাম সবসময় একটি main() ফাংশন আছে. উপরন্তু, আপনি আপনার নিজস্ব ফাংশন তৈরি এবং ব্যবহার করতে পারেন। ভেরিয়েবল যেমন আপনাকে নকল কাজ এড়াতে সাহায্য করে, ফাংশনগুলি আপনাকে একই কোড একাধিকবার লেখা এড়াতে সাহায্য করতে পারে। আপনার কোডে, ব্যানারের উপরের এবং নীচের জন্য প্রিন্ট স্টেটমেন্ট ঠিক একই। আসুন একটি ফাংশন তৈরি এবং ব্যবহার করি সেই বর্ডারগুলি প্রিন্ট করার জন্য।

  1. সম্পাদকে, main() ফাংশনের নীচে, একটি খালি লাইন সন্নিবেশ করান, শুধু আপনাকে কাজ করার জন্য কিছু জায়গা দিতে। সিস্টেমটি খালি লাইনগুলিকে উপেক্ষা করে, এবং আপনি সেগুলিকে সন্নিবেশ করতে পারেন যেখানে তারা আপনার কোড সংগঠিত করার জন্য সহায়ক।
  2. একটি ফাংশন তৈরি করুন। fun কীওয়ার্ড দিয়ে শুরু করুন, তারপরে একটি নাম, printBorder , এক জোড়া বন্ধনী () , এবং এক জোড়া কোঁকড়া বন্ধনী {} , নীচে দেখানো হয়েছে৷
fun printBorder() {}

নামকরণ ফাংশন সম্পর্কে একটি শব্দ.

  • লক্ষ্য করুন কিভাবে printBorder ফাংশনের নাম একটি ছোট হাতের অক্ষর এবং একটি ক্রিয়া দিয়ে শুরু হয়। ফাংশনের নামগুলি প্রায় সবসময় একটি ছোট হাতের অক্ষর এবং একটি ক্রিয়া দিয়ে শুরু হয় এবং নামটি ফাংশনটি কী করে তা বর্ণনা করা উচিত। যেমন: print() বা এখানে, printBorder()
  • আরও লক্ষ্য করুন যে নামের ভিতরের দ্বিতীয় শব্দটি বড় হাতের অক্ষর দিয়ে শুরু হয়। এই শৈলীটিকে "উট কেস" বলা হয়, এবং নামগুলি পড়তে অনেক সহজ করে তোলে। আরো কিছু নামের উদাহরণ হল drawReallyCoolFancyBorder এবং printBirthdayMessage
  1. একটি নতুন লাইনে printBorder ফাংশনের ক্লোজিং ব্রেস } রাখুন এবং দুটি কোঁকড়া ধনুর্বন্ধনীর মধ্যে একটি খালি লাইন যোগ করুন, যাতে আপনাকে আরও কোড যোগ করার জন্য জায়গা দেয়। ক্লোজিং ব্রেস } এর নিজস্ব লাইনে থাকলে ফাংশনটি কোথায় শেষ হয় তা দেখা সহজ করে তোলে।
  2. main() ফাংশনের ভিতরে, বর্ডারের জন্য প্রিন্ট স্টেটমেন্ট কপি করুন এবং printBorder() ফাংশনের কোঁকড়া বন্ধনীর মধ্যে পেস্ট করুন।

আপনার সমাপ্ত printBorder() ফাংশন এই মত হওয়া উচিত.

fun printBorder() {
    println("=======================")
}

একটি ফাংশন ব্যবহার বা কল করতে, বন্ধনী সহ এর নাম ব্যবহার করুন। লক্ষ্য করুন যে আপনি এভাবেই ব্যবহার করছেন println() ! তাই printBorder ফাংশন ব্যবহার করতে, আপনার কোডের যেকোন জায়গায় printBorder() কল করুন যা আপনার প্রয়োজন।

  1. main() ফাংশনে, কোডের লাইনগুলি প্রতিস্থাপন করুন যা println() ব্যবহার করে একটি বর্ডার লাইন প্রিন্ট করে printBorder() ফাংশনে কল করে। আপনার সমাপ্ত কোড এই মত হওয়া উচিত.
fun main() {
    printBorder()
    println("Happy Birthday, Jhansi!")
    printBorder()
}

fun printBorder() {
    println("=======================")
}
  1. সব আগের মত কাজ করছে তা নিশ্চিত করতে আপনার কোড চালান।

মনে রাখবেন যে আউটপুট পরিবর্তন না করেই কাজকে আরও ভাল বা সহজ করার জন্য কোডে পরিবর্তন করাকে " রিফ্যাক্টরিং " বলা হয়।

একটি সীমানা প্যাটার্ন পুনরাবৃত্তি করুন

সীমানা রেখার দিকে তাকিয়ে, এটি আবার সত্যিই একই প্রতীক। সুতরাং, বলার পরিবর্তে:

"23টি চিহ্নের এই স্ট্রিংটি প্রিন্ট করুন"

তুমি বলতে পার,

"এই 1 চিহ্নটি 23 বার প্রিন্ট করুন"।

কোডে, আপনি একটি repeat() বিবৃতি ব্যবহার করে এটি করেন।

  1. printBorder() পদ্ধতিতে, 23 বার সমান চিহ্ন প্রিন্ট করতে repeat() স্টেটমেন্ট ব্যবহার করুন।
  2. println() ব্যবহার করার পরিবর্তে, print() ব্যবহার করুন, যাতে প্রতিটি "=" প্রিন্ট করার পরে আপনি একটি নতুন লাইনে না যান।

এখানে কোড আছে. আপনার কাছে এখন সমান চিহ্নটি প্রিন্ট করার জন্য একটি একক নির্দেশ রয়েছে এবং সেই নির্দেশটি 23 বার পুনরাবৃত্তি করতে, আপনি একটি repeat() বিবৃতি ব্যবহার করেন।

fun printBorder() {
    repeat(23) {
        print("=")
    }
}
  • repeat() বিবৃতি repeat শব্দ দিয়ে শুরু হয়, তারপরে () । এই ধরনের বিবৃতিকে 'লুপ' বলা হয় কারণ আপনি একই কোড একাধিকবার পুনরাবৃত্তি করছেন বা লুপ করছেন। আপনি পরে লুপ তৈরির অন্যান্য উপায় সম্পর্কে শিখবেন।
  • বন্ধনীর ভিতরে () পুনরাবৃত্তির সংখ্যা,
  • এর পরে কোঁকড়া ধনুর্বন্ধনী {},
  • এবং কোঁকড়া ধনুর্বন্ধনীর ভিতরে {} , পুনরাবৃত্তি করার কোড।
  1. printBorder() পদ্ধতির মধ্যে, repeat() স্টেটমেন্টের ক্লোজিং কার্লি ব্রেস } এর পরে, যেটি আপনি বর্ডার লাইন প্রিন্ট করার পরে, একটি নতুন লাইন প্রিন্ট করতে একটি println() স্টেটমেন্ট যোগ করুন।

আপনার কোড এখন এই মত হওয়া উচিত.

fun printBorder() {
    repeat(23) {
        print("=")
    }
    println()
}

main() ফাংশনের কোড পরিবর্তন হয় না, এবং আপনার পুরো প্রোগ্রামটি এইরকম হওয়া উচিত।=

fun main() {
    printBorder()
    println("Happy Birthday, Jhansi!")
    printBorder()
}

fun printBorder() {
    repeat(23) {
        print("=")
    }
    println()
}
  1. আপনার কোড চালান. আউটপুট আগের মতই হওয়া উচিত, কিন্তু এইবার, আপনি শুধুমাত্র একবার "=" চিহ্ন নির্দিষ্ট করে সীমানা তৈরি করতে সক্ষম হয়েছেন!
=======================
Happy Birthday, Jhansi!
=======================

সীমানা পরিবর্তন করতে যুক্তি ব্যবহার করুন

আপনি যদি বিভিন্ন চিহ্ন ব্যবহার করে এমন সীমানা তৈরি করতে চান, যেমন নীচেরগুলি?

%%%%%%%%%%%%%%

****************************************************** **

::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::

আপনি এই বিভিন্ন প্রতীক প্রতিটি জন্য একটি পৃথক ফাংশন সংজ্ঞায়িত করতে পারে. যাইহোক, এটি করার একটি আরো কার্যকর উপায় আছে। আপনি ইতিমধ্যে যে ফাংশনটি লিখেছেন তা পুনরায় ব্যবহার করতে পারেন এবং এটিকে আরও নমনীয় করতে পারেন, যাতে এটি বিভিন্ন ধরণের প্রতীকের জন্য কাজ করে।

ফাংশন সম্পর্কে একটি দুর্দান্ত জিনিস হল যে আপনি আর্গুমেন্ট ব্যবহার করে তাদের ইনপুট দিতে পারেন। আপনি পূর্ববর্তী কোডল্যাবে সংক্ষিপ্তভাবে এটির সম্মুখীন হয়েছেন, যখন আপনি main() এর সাথে পরিচিত হয়েছিলেন। এই ধাপে, আপনি printBorder() ফাংশনে একটি আর্গুমেন্ট যোগ করবেন, যাতে এটি আপনার সরবরাহ করা যেকোনো বর্ডার প্যাটার্ন প্রিন্ট করতে পারে।

  1. main() তে, উপরের দিকে, বর্ডার প্যাটার্নের জন্য border নামে একটি ভেরিয়েবল তৈরি করুন। এটি সীমানার জন্য পুনরাবৃত্তি করার জন্য পাঠ্য ধরে রাখবে।
val border = "%"
  1. এখন, একটি আর্গুমেন্ট হিসাবে printBorder() ফাংশনে উভয় কলে সেই border ভেরিয়েবলটি পাস করুন। আপনি বন্ধনী () এর ভিতরে border স্থাপন করে এটি করেন, ঠিক যেমন আপনি println() মুদ্রণের জন্য পাঠ্য সরবরাহ করেছিলেন।

আপনার main() ফাংশন নিচের কোডের মত দেখতে হবে।

fun main() {
    val border = "%"
    printBorder(border)
    println("Happy Birthday, Jhansi!")
    printBorder(border)
}

printBorder() ফাংশনটি এই border মান একটি ইনপুট হিসাবে গ্রহণ করবে এবং কিভাবে সম্পূর্ণ বর্ডার প্রিন্ট আউট করতে হবে তা বের করবে।

  1. আপনার কোড চালান৷ আপনার কোডটি কার্যকর হয় না এবং পরিবর্তে, আপনি আপনার কোডের পাশে ত্রুটি আইকনগুলি দেখতে পান৷

  1. সমস্যা ভিউ দেখুন , এবং একটি ত্রুটি বার্তা আছে।

আগের মতো, বার্তাটি নির্দেশ করে যে ত্রুটিটি কোথায়, এবং এটি কী হতে পারে সে সম্পর্কে আপনাকে একটি ইঙ্গিত দেয়। গুরুত্বপূর্ণ অংশ হল: Too many arguments for public fun printBorder() । আপনি printBorder() ফাংশন কল করছেন এবং ইনপুট হিসাবে একটি বর্ডার পাস করছেন। যাইহোক, printBorder() ফাংশন সংজ্ঞা এই মুহূর্তে কোনো ইনপুট গ্রহণ করে না।

  1. printBorder() ফাংশন সংজ্ঞাতে সীমানার জন্য একটি আর্গুমেন্ট যোগ করে এই ত্রুটিটি ঠিক করুন। নিচে দেখানো কোডের প্রথম লাইন দেখুন।
fun printBorder(border: String) {
    repeat(23) {
        print("=")
    }
    println()
}
  • লক্ষ্য করুন আর্গুমেন্টের নাম border
  • নামটি একটি কোলন দ্বারা অনুসরণ করা হয় :
  • এবং String শব্দটি, যা এই যুক্তির কি ধরনের বা প্রকারের বর্ণনা।

একটি String হল পাঠ্যের একটি অংশ যা উদ্ধৃতি দ্বারা বেষ্টিত অক্ষর দ্বারা গঠিত। আপনি এটিকে একটি মালা হিসাবে একটি স্ট্রিং এর উপর সারিবদ্ধ হিসাবে মনে করতে পারেন, যেমন, শব্দ এবং পাঠ্য গঠনের জন্য অক্ষরগুলি সারিবদ্ধ। যুক্তিটিকে একটি String হতে হবে তা উল্লেখ করা সিস্টেমকে এটি প্রয়োগ করতে সহায়তা করে যে আপনার যুক্তিটি পাঠ্য, এবং উদাহরণ স্বরূপ, একটি সংখ্যা নয়।

  1. আপনার কোড চালান. printBorder() ফাংশন এখন একটি বর্ডার String ইনপুট হিসেবে গ্রহণ করে। এবং main() এর কোডটি আর্গুমেন্ট হিসাবে border সহ printBorder(border) কল করে। আপনার কোড ত্রুটি ছাড়া চালানো উচিত.
  2. কনসোলে আপনার প্রোগ্রামের আউটপুট দেখুন এবং এটি এখনও আগের মতো একই সীমানা দেখায়?
=======================
Happy Birthday, Jhansi!
=======================

এটা উদ্দেশ্যমূলক আচরণ নয়! আপনি "%" চিহ্ন দিয়ে একটি সীমানা তৈরি করার চেষ্টা করেছেন, কিন্তু প্রোগ্রামটি এখনও "=" চিহ্নের সাথে একটি সীমানা মুদ্রণ করছে। পরবর্তী ধাপে, আপনি তদন্ত করবেন কেন এটি ঘটছে।

  1. সম্পাদকে, একটি ধূসর বিস্ময়বোধক চিহ্ন লক্ষ্য করুন। এই আইকনটি একটি সতর্কতা নির্দেশ করে। সতর্কতাগুলি আপনার কোডের সমস্যাগুলি সম্পর্কে যা আপনাকে মনোযোগ দিতে হবে, কিন্তু সেগুলি আপনার কোডকে চলতে দেয় না৷

  1. সমস্যা ভিউতে স্যুইচ করুন এবং সতর্কতা পড়ুন। এটি বলে "Parameter 'border' is never used." এই সতর্কতা আউটপুট সঙ্গে সমস্যা ব্যাখ্যা. আপনি ফাংশনে সীমানার জন্য একটি নতুন স্ট্রিং পাস করছেন, কিন্তু আপনি মুদ্রণের জন্য এটি ব্যবহার করছেন না।
  1. "=" মুদ্রণের পরিবর্তে border পাস করা ব্যবহার করতে printBorder() ফাংশন পরিবর্তন করুন। এটি ঠিক একইভাবে কাজ করে যেন border একটি পরিবর্তনশীল যা আপনি ফাংশনের ভিতরে সংজ্ঞায়িত করেছেন!
fun printBorder(border: String) {
    repeat(23) {
        print(border)
    }
    println()
}
  1. আবার আপনার কোড চালান. আউটপুট নিচের মত দেখতে হবে।
%%%%%%%%%%%%%%%%%%%%%%%
Happy Birthday, Jhansi!
%%%%%%%%%%%%%%%%%%%%%%%

দুর্দান্ত কাজ, আপনি সমস্যাটি ঠিক করেছেন! এখানে আপনার সমাপ্ত কোড.

fun main() {
    val border = "%"
    printBorder(border)
    println("Happy Birthday, Jhansi!")
    printBorder(border)
}

fun printBorder(border: String) {
    repeat(23) {
        print(border)
    }
    println()
}

আপনি অনেক বেশি কোড যোগ না করে printBorder() ফাংশনটিকে অনেক বেশি নমনীয় করেছেন। এখন আপনি শুধুমাত্র একটি ছোট পরিবর্তনের সাথে বিভিন্ন চিহ্নের একটি বর্ডার প্রিন্ট করতে পারেন।

  1. [ঐচ্ছিক] main() ফাংশনে শুধুমাত্র কোডের একটি লাইন পরিবর্তন করে, আপনি কীভাবে জন্মদিনের ব্যানারগুলি এভাবে প্রিন্ট করবেন?
***********************
Happy Birthday, Jhansi!
***********************
:::::::::::::::::::::::
Happy Birthday, Jhansi!
:::::::::::::::::::::::

দুটি আর্গুমেন্ট থাকতে একটি ফাংশন পরিবর্তন করুন

আপনি যদি একটি ভিন্ন প্যাটার্ন ব্যবহার করতে চান যা 1টি অক্ষরের চেয়ে দীর্ঘ, বলুন "`-._,-'" ৷ আপনি এই প্যাটার্নটি 23 বার পুনরাবৃত্তি করবেন না কারণ এটি খুব দীর্ঘ হবে। আপনি এটি 4 বার পুনরাবৃত্তি করতে পারেন। এটি সম্পন্ন করার জন্য, আপনি printBorder() এর repeat() স্টেটমেন্টে পুনরাবৃত্তির সংখ্যা পরিবর্তন করতে পারেন। যাইহোক, আপনি আরও ভাল কিছু করতে পারেন!

আপনি দুটি জিনিসের উপর ভিত্তি করে একটি অভিনব সীমানা সংজ্ঞায়িত করতে পারেন:

  • পুনরাবৃত্তি করার প্যাটার্ন (যা আপনি ইতিমধ্যেই করেছেন)
  • আপনি যতবার প্যাটার্নটি পুনরাবৃত্তি করতে চান

আপনি প্রতিটি, প্যাটার্ন এবং পুনরাবৃত্তির সংখ্যার জন্য ভেরিয়েবল তৈরি করতে পারেন এবং তারপরে printBorder() ফাংশনে তথ্যের উভয় অংশ পাস করতে পারেন।

  1. main() তে, সীমানাটিকে "`-._,-'" প্যাটার্নে পরিবর্তন করুন।
val border = "`-._,-'"
  1. আপনার কোড চালান, এবং লক্ষ্য করুন যে প্যাটার্নটি এখন অনেক দীর্ঘ।
  2. main() এ, border সংজ্ঞার নীচে, পুনরাবৃত্তির সংখ্যার জন্য timesToRepeat নামে একটি নতুন ভেরিয়েবল তৈরি করুন। এর মান 4 এ সেট করুন।
val timesToRepeat = 4
  1. main() এ, printBorder() কল করার সময়, দ্বিতীয় আর্গুমেন্ট হিসাবে পুনরাবৃত্তির সংখ্যা যোগ করুন। দুটি আর্গুমেন্টকে কমা দিয়ে আলাদা করুন।
printBorder(border, timesToRepeat)

main() ফাংশনটি এখন এইরকম হওয়া উচিত:

fun main() {
    val border = "`-._,-'"
    val timesToRepeat = 4
    printBorder(border, timesToRepeat)
    println("Happy Birthday, Jhansi!")
    printBorder(border, timesToRepeat)
}

আগের মতো, এই কোডটি আপনাকে একটি ত্রুটি দেয়, কারণ আপনার কাছে printBorder() এর সংজ্ঞার চেয়ে printBorder() printBorder() কে কল করার জন্য আরও বেশি আর্গুমেন্ট রয়েছে।

  1. ইনপুট হিসাবে পুনরাবৃত্তির সংখ্যা গ্রহণ করতে printBorder() ঠিক করুন। আর্গুমেন্টের পরে একটি কমা যোগ করুন, তারপরে অতিরিক্ত আর্গুমেন্ট: timesToRepeat: Int. আপনার ফাংশন সংজ্ঞার প্রথম লাইন এখন নীচে দেখানো মত দেখাচ্ছে।
fun printBorder(border: String, timesToRepeat: Int) {

বিজ্ঞপ্তি:

  • কমা দুটি আর্গুমেন্টকে আলাদা করে।
  • timesToRepeat যুক্তির নাম,
  • একটি কোলন দ্বারা অনুসরণ করা: প্রতীক,
  • এবং প্রকার: Int. timesToRepeat একটি সংখ্যা, তাই এটিকে String টাইপ করার পরিবর্তে, আপনাকে Int টাইপ করতে হবে, যা একটি পূর্ণসংখ্যার জন্য ছোট, একটি পূর্ণ সংখ্যা।
  1. printBorder() এর ভিতরে, timesToRepeat আর্গুমেন্ট ব্যবহার করতে repeat পরিবর্তন করুন (23 নম্বরের পরিবর্তে)। আপনার printBorder() কোড এইরকম হওয়া উচিত।
fun printBorder(border: String, timesToRepeat: Int) {
    repeat(timesToRepeat) {
        print(border)
    }
    println()
}
  1. আপনার কোড চালান. এবং আউটপুট নিচের মত দেখায়।
`-._,-'`-._,-'`-._,-'`-._,-'
Happy Birthday, Jhansi!
`-._,-'`-._,-'`-._,-'`-._,-'
  1. এই আউটপুটটি নিখুঁত করতে, শুভ জন্মদিনের বার্তার শুরুতে দুটি স্থান সন্নিবেশ করুন। তাহলে আপনার আউটপুট নিচের মত হবে।
`-._,-'`-._,-'`-._,-'`-._,-'
  Happy Birthday, Jhansi!
`-._,-'`-._,-'`-._,-'`-._,-'

এখানে আপনার ব্যানারের জন্য চূড়ান্ত কোড:

fun main() {
    val border = "`-._,-'"
    val timesToRepeat = 4
    printBorder(border, timesToRepeat)
    println("  Happy Birthday, Jhansi!")
    printBorder(border, timesToRepeat)
}

fun printBorder(border: String, timesToRepeat: Int) {
    repeat(timesToRepeat) {
        print(border)
    }
    println()
}

অভিনন্দন! ফাংশন, আর্গুমেন্ট, ভেরিয়েবল এবং রিপিট লুপের সাহায্যে আপনি মৌলিক বিল্ডিং ব্লক শিখেছেন যা প্রায় সব প্রোগ্রামেই ব্যবহৃত হয়।

একটি বিরতি নিন, এবং তারপরে নীচের পরবর্তী কাজটি মোকাবেলা করুন, যেখানে আপনি আরও ফাংশন এবং লুপ তৈরি করবেন এবং আপনি মাত্র কয়েক লাইনের প্রোগ্রামিং সহ সঠিক সংখ্যক মোমবাতি সহ একটি বিশাল কেক তৈরি করার ক্ষমতা অর্জন করবেন।

এই টাস্কে, আপনি জন্মদিনের কেক কোড আপগ্রেড করতে যাচ্ছেন যাতে যেকোন বয়সের জন্য সঠিক সংখ্যক মোমবাতি সহ সর্বদা সঠিক আকারের হয়।

  • আপনি মোমবাতি দিয়ে একটি স্তরযুক্ত কেক আঁকার জন্য মোট তিনটি ফাংশন তৈরি করবেন।
  • আপনি আরেকটি repeat() repeat() ব্যবহার করবেন, যাকে "নেস্টেড লুপ" বলা হয়।
  • আপনি যেভাবে এই কোডটি তৈরি করবেন তা হল আপনি কীভাবে কোনও প্রোগ্রাম তৈরি করতে পারেন, বড় ছবি দিয়ে শুরু করে এবং বিস্তারিত যোগ করতে পারেন। একে বলা হয় ‘টপ-ডাউন ডেভেলপমেন্ট’।
  • নির্দেশাবলী এই অনুশীলনের জন্য বিস্তারিত নয়, এবং আপনি যদি আটকে যান তাহলে আপনি সমাপ্ত কোড উল্লেখ করতে পারেন।

আপনি যে কেক বেক করবেন তার একটি ছবি এখানে রয়েছে:

এবং এখানে নির্দেশাবলী আছে.

প্রধান ফাংশন তৈরি করুন

  1. এডিটরে আপনার কোড রিসেট করুন Hello, world! কার্যক্রম.
  2. আপনি যুক্তিটিকে main() এ সরাতে পারেন, কারণ আপনি এটি ব্যবহার করবেন না।
  3. main() এ, একটি পরিবর্তনশীল age তৈরি করুন এবং এটি 24 এ সেট করুন।
  4. main() এ, একটি দ্বিতীয় পরিবর্তনশীল layers তৈরি করুন এবং এটি 5 এ সেট করুন।
  5. main() এ, একটি ফাংশন printCakeCandles() কল করুন এবং age পাস করুন। এটি আপনাকে একটি ত্রুটির সাথে ছেড়ে দেবে, কারণ আপনি এখনও সেই ফাংশনটি তৈরি করেননি।
  6. একইভাবে, একটি ফাংশন printCakeTop() কল করুন এবং age পাস করুন।
  7. অবশেষে, একটি ফাংশন printCakeBottom() কল করুন এবং age এবং layers সংখ্যা পাস করুন।
  8. ত্রুটিগুলি পরিত্রাণ পেতে, নীচে দেখানো হিসাবে প্রতিটি লাইনের শুরুতে // যোগ করে তিনটি ফাংশন কল মন্তব্য করুন। এই কৌশলটি আপনাকে ত্রুটিগুলি ট্রিগার না করেই আপনার কোড খসড়া করতে দেয়৷
  9. আপনার প্রোগ্রাম চালান, এবং এতে কোন ত্রুটি থাকা উচিত নয় এবং কিছুই করবেন না।

আপনার main() ফাংশন নিচের কোডের মত দেখতে হবে।

fun main() {
    val age = 24
    val layers = 5
    // printCakeCandles(age)
    // printCakeTop(age)
    // printCakeBottom(age, layers)
}

প্রিন্ট কেকটপ তৈরি করুন()

কেকের শীর্ষে প্রিন্ট করার জন্য printCakeTop() ফাংশন, সমান চিহ্নের একটি লাইন, প্রায় একই রকম printBorder() ফাংশন যা আপনি এই কোডল্যাবে আগে তৈরি করেছিলেন।

==========================
  1. main() ফাংশনের নীচে, একটি ফাঁকা লাইন যোগ করুন, এবং তারপর একটি ফাংশন তৈরি করুন, printCakeTop() যা Int টাইপের একটি যুক্তি, age নেয়।
  2. ভিতরে, একটি repeat() স্টেটমেন্ট ব্যবহার করুন একটি সমান সাইন age বার প্লাস 2 প্রিন্ট করতে। অতিরিক্ত দুটি সমান চিহ্ন যাতে মোমবাতিগুলি কেকের পাশ থেকে পড়ে না যায়।
  3. শেষে, repeat() হয়ে গেলে, একটি খালি লাইন প্রিন্ট করুন।
  4. main() এ, printCakeTop() এর জন্য কোডের লাইনের শুরু থেকে দুটি // চিহ্ন সরিয়ে দিন, কারণ ফাংশনটি এখন বিদ্যমান।
printCakeTop(age)

এখানে আপনার সমাপ্ত ফাংশন.

fun printCakeTop(age: Int) {
    repeat(age + 2) {
        print("=")
    }
    println()
}
  1. কেকের শীর্ষ দেখতে আপনার কোড চালান।

প্রিন্ট কেক ক্যান্ডেল তৈরি করুন()

প্রতিটি মোমবাতি দুটি চিহ্ন দিয়ে তৈরি। একটি কমা, শিখার জন্য, এবং একটি উল্লম্ব রেখা | মোমবাতি শরীরের জন্য.

,,,,,,,,,,,,,,,,,,,,,,,,,,,,

||||||||||||||||||||||||

একটি ফাংশনে এটি সম্পন্ন করতে, আপনার ফাংশনে দুটি repeat() স্টেটমেন্ট রাখুন, একটি অগ্নিকাণ্ডের জন্য এবং একটি দেহের জন্য।

  1. main() ফাংশন এবং printCakeTop() ফাংশনের নীচে, একটি নতুন ফাংশন তৈরি করুন, printCakeCandles() যা Int টাইপের একটি আর্গুমেন্ট, age নেয়।
  2. ভিতরে , শিখার জন্য একটি কমা প্রিন্ট করতে একটি repeat() স্টেটমেন্ট ব্যবহার করুন।
  3. এই age বার পুনরাবৃত্তি.
  4. শেষে, একটি খালি লাইন মুদ্রণ করুন।
  5. মোমবাতি স্থাপনের জন্য একটি স্থান প্রিন্ট করতে একটি print() স্টেটমেন্ট যোগ করুন।
  6. নীচে, একটি উল্লম্ব রেখা দিয়ে ক্যান্ডেল বডি প্রিন্ট করার জন্য দ্বিতীয় repeat() স্টেটমেন্ট তৈরি করার ধাপগুলি পুনরাবৃত্তি করুন |
  7. main() এ, printCakeCandles() এর কোডের লাইনের শুরু থেকে দুটি // চিহ্ন সরিয়ে দিন।
printCakeCandles(age)
  1. কেকের শীর্ষ এবং মোমবাতি দেখতে আপনার কোড চালান

সমাধান:

fun printCakeCandles(age: Int) {
    print (" ")
    repeat(age) {
        print(",")
    }    
    println() // Print an empty line   
 
    print(" ") // Print the inset of the candles on the cake
    repeat(age) {
        print("|")
    }    
    println()
}

প্রিন্ট কেকবটম() তৈরি করুন

এই ফাংশনে, আপনি একটি কেকের নীচে আঁকছেন যা age + 2 এর মতো চওড়া, এবং আপনি একটি নির্দিষ্ট সংখ্যক স্তরের উচ্চতার জন্য এটি আঁকছেন।

@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
  • এর মানে আপনার ফাংশনের দুটি আর্গুমেন্টের প্রয়োজন, একটি প্রস্থ ( age ) এবং একটি উচ্চতার জন্য ( layers )।
  • কেকের নীচে প্রিন্ট করতে, আপনি প্রথমে 'at' @ চিহ্ন age + 2 বার একটি স্তর প্রিন্ট করতে পুনরাবৃত্তি করুন। তারপর, আপনি এক স্তর layers বার মুদ্রণ পুনরাবৃত্তি.

অঙ্কন স্তর পুনরাবৃত্তি করুন

একটি স্তর তৈরি করতে চিহ্ন বয়স + 2 বার আঁকুন

  1. বিদ্যমান ফাংশনগুলির নীচে, দুটি আর্গুমেন্ট সহ একটি ফাংশন printCakeBottom() তৈরি করুন, age এবং layers , উভয় প্রকার Int
  2. ফাংশনের ভিতরে, 'at' @ চিহ্নের age + 2 বার একটি স্তর প্রিন্ট করতে একটি repeat() স্টেটমেন্ট ব্যবহার করুন। নীচে দেখানো হিসাবে, একটি খালি লাইন মুদ্রণ করে শেষ করুন।
fun printCakeBottom(age: Int, layers: Int) {
    repeat(age + 2) {
        print("@")
    }
    println()
}
  1. এটি কেকের নীচের একটি লাইন প্রিন্ট করে তা যাচাই করতে আপনার কোডটি চালান।
 ,,,,,,,,,,,,,,,,,,,,,,,,
 ||||||||||||||||||||||||
==========================
@@@@@@@@@@@@@@@@@@@@@@@@@@

নেস্টেড পুনরাবৃত্তি() স্টেটমেন্ট

কেকের নিচের একাধিক অভিন্ন স্তর প্রিন্ট করতে, আপনি বলতে পারেন:

লেয়ার 1 এর জন্য চিহ্নটি 12 বার পুনরাবৃত্তি করুন: @@@@@@@@@@@@@

লেয়ার 2 এর জন্য চিহ্নটি 12 বার পুনরাবৃত্তি করুন: @@@@@@@@@@@@@

লেয়ার 3 এর জন্য চিহ্নটি 12 বার পুনরাবৃত্তি করুন: @@@@@@@@@@@@@

অথবা আপনি এটি আরও সংক্ষিপ্তভাবে বলতে পারেন:

তিনটি স্তরের জন্য পুনরাবৃত্তি করুন:

প্রতীকটি 12 বার পুনরাবৃত্তি করুন।

@@@@@@@@@@@@

@@@@@@@@@@@@

@@@@@@@@@@@@

এখন, এটি এমন কিছু যা আপনি repeat() বিবৃতি দিয়ে করতে পারেন। আপনি একটি repeat() স্টেটমেন্ট আরেকটি repeat() ) স্টেটমেন্টের ভিতরে রাখতে পারেন। সুতরাং আপনি একটি repeat() স্টেটমেন্ট তৈরি করতে পারেন একটি repeat repeat() repeat() স্টেটমেন্টের মধ্যে একটি নির্দিষ্ট সংখ্যক স্তরের জন্য নির্দিষ্ট সংখ্যক বার প্রতীকটি প্রিন্ট করতে।

কেক লেয়ার প্রিন্ট করার জন্য সেটা করা যাক।

  1. ফাংশনের ভিতরে সমস্ত কোডের চারপাশে একটি দ্বিতীয় repeat() স্টেটমেন্ট রাখুন। এই লুপ layers বার বার পুনরাবৃত্তি করুন.
  2. main() এ, printCakeBottom() এর কোডের লাইন থেকে শুধুমাত্র দুটি // সরিয়ে দিন।
printCakeBottom(age, layers)
  1. পুরো কেক দেখতে আপনার কোড চালান.

printCakeBottom() জন্য সমাধান।

fun printCakeBottom(age: Int, layers: Int) {
    repeat(layers) {
        repeat(age + 2) {
            print("@")
        }
        println()
    }    
}

অভিনন্দন! আপনি সবেমাত্র বেশ কয়েকটি ফাংশন এবং একটি নেস্টেড repeat বিবৃতি সহ একটি সুন্দর জটিল প্রোগ্রাম শেষ করেছেন। এবং আপনার কেক সবসময় মোমবাতি সঠিক সংখ্যা থাকবে!

আপনার প্রোগ্রামের চূড়ান্ত আউটপুট হওয়া উচিত:

 ,,,,,,,,,,,,,,,,,,,,,,,,
 ||||||||||||||||||||||||
==========================
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@

সমাধান কোড

fun main() {
    val age = 24
    val layers = 5
    printCakeCandles(age)
    printCakeTop(age)
    printCakeBottom(age, layers)
}

fun printCakeCandles(age: Int) {
    print (" ")
    repeat(age) {
          print(",") // Print an empty line
    }    
    println()    

    print(" ") // Print the inset of the candles on the cake
    repeat(age) {
        print("|")
    }    
    println()
}

fun printCakeTop(age: Int) {
    repeat(age + 2) {
        print("=")
    }
    println()
}

fun printCakeBottom(age: Int, layers: Int) {
    repeat(layers) {
        repeat(age + 2) {
            print("@")
        }
        println()
    }    
}
  • প্রিন্ট স্টেটমেন্টের টেক্সটে ভেরিয়েবল এবং ক্যালকুলেশনকে ঘিরে ${} ব্যবহার করুন। উদাহরণস্বরূপ: ${age} যেখানে age একটি পরিবর্তনশীল।
  • val কীওয়ার্ড এবং একটি নাম ব্যবহার করে একটি ভেরিয়েবল তৈরি করুন। একবার সেট করলে, এই মান পরিবর্তন করা যাবে না। সমান চিহ্ন ব্যবহার করে একটি ভেরিয়েবলে একটি মান বরাদ্দ করুন। মানগুলির উদাহরণ হল পাঠ্য এবং সংখ্যা।
  • একটি String হল উদ্ধৃতি দ্বারা বেষ্টিত পাঠ্য, যেমন "Hello"
  • একটি Int একটি সম্পূর্ণ ধনাত্মক বা ঋণাত্মক সংখ্যা, যেমন 0, 23, বা -1024।
  • আপনি ফাংশন ব্যবহার করার জন্য একটি ফাংশনে এক বা একাধিক আর্গুমেন্ট পাস করতে পারেন, উদাহরণস্বরূপ:
    fun printCakeBottom(age:Int, layers:Int) {}
  • একটি repeat() {} বিবৃতি ব্যবহার করে নির্দেশাবলীর একটি সেট একাধিকবার পুনরাবৃত্তি করুন। উদাহরণস্বরূপ: repeat (23) { print('%") } বা repeat (layers) { print("@@@@@@@@@@") }
  • একটি লুপ হল নির্দেশাবলী একাধিকবার পুনরাবৃত্তি করার জন্য একটি নির্দেশ। একটি repeat() স্টেটমেন্ট একটি লুপের উদাহরণ।
  • আপনি loops নেস্ট করতে পারেন, যে, loops মধ্যে loops রাখুন. উদাহরণ স্বরূপ, আপনি একটি repeat() স্টেটমেন্ট তৈরি করতে পারেন একটি repeat repeat() repeat() স্টেটমেন্টের মধ্যে একটি চিহ্ন প্রিন্ট করার জন্য বহু সংখ্যক সারিগুলির জন্য, যেমন আপনি কেক স্তরগুলির জন্য করেছিলেন।

ফাংশন আর্গুমেন্ট ব্যবহার করার সারাংশ: একটি ফাংশনের সাথে আর্গুমেন্ট ব্যবহার করতে, আপনাকে তিনটি জিনিস করতে হবে:

  • যুক্তি যোগ করুন এবং ফাংশন সংজ্ঞা টাইপ করুন: printBorder(border: String)
  • ফাংশনের ভিতরে আর্গুমেন্ট ব্যবহার করুন: println(border)
  • আপনি যখন ফাংশনটি কল করেন তখন যুক্তি সরবরাহ করুন: printBorder(border)

এই কোডল্যাবে আপনি যে কোটলিন ধারণাগুলি শিখেছেন তার জন্য এখানে অফিসিয়াল ডকুমেন্টেশন রয়েছে।

যদি ব্রাউজার-ভিত্তিক কোটলিন প্রোগ্রামিং টুল আপনার কোডটি কার্যকর না করে বা আপনাকে একটি ত্রুটি দেয় যেমন নীচের একটি, আপনি নিম্নলিখিত চেষ্টা করতে পারেন।

  • SHIFT-রিলোড ব্যবহার করে পৃষ্ঠাটি পুনরায় লোড করুন।
  • এক মিনিট অপেক্ষা করুন, তারপর আবার চেষ্টা করুন।