ZAMYLA Chan: এটা একটা-আমার, Zamyla এর. আজকে আমরা বাস্তবায়ন করতে যাচ্ছেন মারিও, যেখানে আমরা মারিও আঁকা তার জন্য একটি পূর্ণ পিরামিড উপর তিড়িং লাফ করতে. এর নিচে ভাঙি এই সমস্যার জন্য উপ-কর্ম. প্রথমত, আমরা ব্যবহারকারীকে অনুরোধ জানানো চাই পিরামিডের উচ্চতা জন্য. এবং তারপর আমরা নিশ্চিত করতে চাই যে ইনপুট বৈধ নয়. এবং তারপর আমরা চলুন পিরামিড আঁকা চান. সুতরাং এর প্ররোচনা সম্পর্কে কথা বলা যাক এবং ব্যবহারকারীর ইনপুট বৈধতা দান করে. এটা ভালো কিছু চেহারা হতে পারে এই, একটি কাজের জন্য সময় লুপ যে একটি জন্য ব্যবহারকারীকে অনুরোধ জানানো হবে পূর্ণসংখ্যা এবং তারপর শুধুমাত্র পুনরাবৃত্তি যদি যে পূর্ণসংখ্যা অবৈধ. তাই কি এই অবস্থায় কি করা উচিত? এই জন্য, চল যাই স্পেসিফিকেশন. আচ্ছা, বৈশিষ্ট যে কোনো বৈধ আমাদেরকে বলে উচ্চতা, 0 এবং 23 এর মধ্যে হতে যাচ্ছে অন্তর্ভুক্ত. আমি তখন যে এর মানে হল যে কোন অবৈধ উচ্চতা কম 0 হতে যাচ্ছে বা আরো বেশী 23. তাই এখন আমরা এই তথ্য আছে, আসুন আমাদের শর্ত ডিজাইন করি. কিন্তু আমরা সতর্কতা অবলম্বন করা প্রয়োজন, কারণ আমরা এখন দুই Booleans যে আমরা মূল্যায়ন করতে চাই. এখানে আমি আপনার প্রদত্ত একটি সত্য টেবিলের সাথে. এই আমাদের দুই নিতে পারবেন Booleans, বুলিয়ান এক এবং দুই. এবং আমরা হয় bool1 মূল্যায়ন করতে পারেন এবং bool2 বা bool1 বা bool2. তাই কি পার্থক্য মধ্যে এবং বা? আচ্ছা, bool1 এবং bool2 হবে মূল্যায়ন সত্য যদি এবং কেবল উভয় Booleans সত্য হয়, যেহেতু বা অপারেশন সত্য হবে যদি হয় এক Booleans বা উভয় সত্য. এই মন দিয়ে তাই, দেখুন যদি আপনি চিন্তা করতে পারেন কি উপযুক্ত অবস্থার জন্য একটি অবৈধ এন জন্য আপনার কাজের জন্য সময় লুপ হতে যাচ্ছে. যে, আমরা অনুরোধ যাচাই করেছি পিরামিডের উচ্চতা জন্য ব্যবহারকারী তারা চান যে. সুতরাং এখন, এটা আমাদের উপর নির্ভর করছে পিরামিড আঁকা. এই জন্য পূর্ণ পিরামিড সমস্যা সামান্য বিট দেখাবে এই মত, যেখানে আমরা একটি বাম পিরামিড আছে, কিছু ফাঁক, এবং তারপর একটি সঠিক পিরামিড. তাই আসুন এই নিচে অল্প বিরতি দেওয়া. তাহলে আমি আমার টেক্সট এডিটর যান, এখানে আমি করেছি আমাদের একটি বাম-প্রান্তিক পিরামিড টানা. কিন্তু এটা করতে হবে না. আমরা কি করতে চান আমরা আলোচনা করতে চাই প্রথম একটি ডান-প্রান্তিক পিরামিড তৈরি. তাই এই কাজ করতে, শুধু চাপ প্রয়োগ করা পাশ বরাবর আমার হ্যাশ, আমি শুধু কিছু অক্ষর করা যাচ্ছি মধ্যে, শুধু এই বিন্দুর মধ্যে. তারপর আমি দুই লাগাতে যাচ্ছি পরের লাইন, এবং যে লাইনে এক. তাই এখানে আমি একটি আছে ডান-প্রান্তিক পিরামিড. পরে যে, আমি যাচ্ছি উপরের সারির ফিরে যেতে এবং ফাঁক, রাখা, যা বৈশিষ্ট, দুই শূণ্যস্থান প্রতি, হয়. তারপর আমি পূরণ করতে যাচ্ছি পিরামিডের ওপারে. আমি দ্বিতীয় সারিতে যেতে যাচ্ছি, অনুগ্রহ করে লিখুন ফাঁক জন্য দুই স্পেস এবং তারপর দুই হ্যাশ. পিছনে তৃতীয় সারিতে, দুই শূণ্যস্থান ফাঁক এবং তিন হ্যাশ জন্য. এবং শেষে, দুই শূণ্যস্থান ফাঁক এবং চার হ্যাশ জন্য. সুতরাং এটা কি একটি পূর্ণ পিরামিড মত চেহারা হবে. অবশ্যই, আমরা চাই না ভাবে এই বিন্দু. সুতরাং আমরা এই প্রতিস্থাপন করতে যাচ্ছেন কিছু স্পেস নির্বাণ দ্বারা বিন্দু. এক, দুই, তিন প্রথম লাইনে. এক, দুই সেকেন্ড. আর তৃতীয় লাইনে এক. তাই এই আমরা যদি আমরা কী করবেন শুধু একটি পূর্ণ পিরামিড করতে চেয়েছিলেন, আমাদের টেক্সট এডিটর বলুন. তাই আসুন এই নিয়ে যাক; নিদর্শন বুঝতে, এবং এটা কিছু pseudocode ধরে রূপান্তর. পিরামিডের প্রতিটি সারির জন্য, আমরা চাই বাম পিরামিড প্রিন্ট এবং তারপর ফাঁক এবং তারপর ডান পিরামিড. বাম পিরামিড জন্য, আমরা মুদ্রণ স্পেস প্রয়োজনীয় পরিমাণ, হ্যাশ দ্বারা অনুসৃত. তারপর আমরা ফাঁক, প্রিন্ট যা প্রত্যেক সময় মাত্র দুই শূণ্যস্থান হয়. আর ডান পিরামিড, আমরা মুদ্রণ হ্যাশ এর প্রয়োজনীয় সংখ্যা. দ্বিতীয় সারির জন্য, আমরা পরিচালিত একই সঠিক প্রক্রিয়া. আমরা বাম জন্য স্পেস প্রিন্ট পিরামিড, প্রয়োজনীয় পরিমাণ হ্যাশ, ফাঁক, দুই স্পেস, এবং তারপর ডান পিরামিড জন্য হ্যাশ. এর প্যাটার্ন মোকাবেলা যাক বাম পিরামিড জন্য. যদি আমার কাছে তা থাকত, উদ্দেশ্য এই উদাহরণে, একটি উচ্চতা আট দ্বারা অনুরোধ ব্যবহারকারী, তারপর আমার প্রথম সারির এক হ্যাশ এবং সাত শূণ্যস্থান হবে. আমার দ্বিতীয় সারির হবে দুই হ্যাশ, ছয় স্পেস. তৃতীয় সারিতে তিনটি হ্যাশ, পাঁচটি স্পেস. আপনি সম্ভবত এটা করতে পারেন নিজেকে আট বছরের একটি উচ্চতার জন্য এবং প্রতিটি সারির জন্য নির্ধারণ কত হ্যাশ এবং কতগুলি শূণ্যস্থান আপনি প্রয়োজন. কিন্তু আমরা কি করতে চান আমরা এটা বিমূর্ত চাই. তাই আমি আপনাকে কোন n তম সারিতে কতজন জন্য জিজ্ঞাসা হ্যাশ এবং আমরা কত স্পেস দরকার? এখন, আপনি নির্ধারণ যেমন কতগুলি হ্যাশ জন্য প্যাটার্ন এবং কিভাবে অনেক শূণ্যস্থান আপনার জন্য প্রয়োজন একটি প্রদত্ত উচ্চতা জন্য কোন n তম সারিতে, সতর্কতা অবলম্বন করা আবশ্যক মনে রাখবেন কিভাবে আপনি ইন্ডেক্স করছি. আমি কি এই দ্বারা অর্থ দৈনন্দিন যে হয় জীবন আমাদের অধিকাংশ এক দ্বারা গণনা শুরু. সুতরাং প্রথম সারির এক নম্বর হতে হবে. দ্বিতীয সারিতে সারিতে হবে দুই নম্বর, তাই এবং তাই ঘোষণা. কিন্তু কম্পিউটার বিজ্ঞান ও এবং CS50, আমরা শূন্য সূচীবদ্ধ করা হয়. সুতরাং আমরা আসলে শূন্য এ গণনা শুরু. তাই প্রথম সারি would সারি সংখ্যা শূন্য হতে. দ্বিতীয সারিতে সারি হব এক নম্বর. সুতরাং যদি আমি আট উচ্চতা ছিল আমার পিরামিড, তারপর n এর সর্বশেষ মূল্য আসলে সাত এবং আট হবে. তাই এই বিষয়ে সতর্কতা অবলম্বন করা আবশ্যক. এবং সচেতন যখন আপনি নির্ণয় করছি হতে আপনার প্যাটার্ন কিনা আপনার শূন্য ইন্ডেক্স অথবা এক ইন্ডেক্স ঠিক আছে. তাই এখন আমরা আছে বাম পিরামিড জন্য প্যাটার্ন, আমরা তা নির্ধারণ করতে পারে ফাঁক জন্য প্যাটার্ন. ভাগ্যক্রমে, এই সত্যিই সহজ. এটা শুধু সবসময় দুই স্পেস. তাই এখন আমরা ডান প্যাটার্ন এগিয়ে যান. প্রথম সারির এক হ্যাশ থাকবে. দ্বিতীয় সারি, দুই. তৃতীয় সারিতে তিনটি. তাই এবং তাই ঘোষণা. তাই আবার, কোনো বিমূর্ত জন্য নির্ধারণ এন এবং যে কোন উচ্চতা কত হ্যাশ এবং কিভাবে অনেক শূণ্যস্থান প্রতিটি সারির থাকা উচিত. ঠিক আছে. যাতে আমরা জানতে পারি যে প্রতিটি সারির আমরা জন্য কিছু প্রক্রিয়া সম্পন্ন করার জন্য প্রয়োজন. আমরা যে কিভাবে করব? আচ্ছা, আমরা লুপ কনস্ট্রাক্ট জন্য ব্যবহার, একটি আরম্ভের গঠিত, একটি শর্ত, এবং একটি আপডেট. loops, ব্যবহার করা যেতে পারে প্রসেস পুনরাবৃত্তি. তাই বলে আমি এটা হ্যালো বলতে চাই, বিশ্বের 50 বার, তারপর আমার জন্য লুপ ভালো কিছু দেখাবে, যেখানে আমি শূন্য থেকে আমার পরিবর্তনশীল আরম্ভ. এই শর্তে যে, আমি 50 তুলনায় কম হয়. এবং তারপর আপডেট এটা যে হয় এক যে সময় দ্বারা ইনক্রিমেন্ট. তাই এই কি করবেন তা হবে একটি সারিতে হ্যালো প্রিন্ট, বিশ্বের 50 বার. এখন, আমি পুনরুক্তি করতে চেয়েছিলেন বলে পিরামিডের উচ্চতা বেশি. তারপর হার্ড কোডিং এর পরিবর্তে অবস্থায় কিছু মান, আমি শুধু পরিবর্তনশীল উচ্চতা ব্যবহার. তাই এই কি হবে বারবার হয় উচ্চতা প্রতিটি সারির উপর. আর আমি কিছু ভিতরে কি করতে পারেন যে লুপ শরীরের. আমরা কি করতে চাও লুপ শরীরের ভিতরে? ওয়েল, যেমন আমরা আগে নির্দেশিত, আমরা চাই স্পেস এবং হ্যাশ প্রিন্ট করতে বাম পিরামিড এবং তারপর মুদ্রণ জন্য দুই স্পেস এবং তারপর হ্যাশ প্রিন্ট করা হবে. সুতরাং আমরা ইতিমধ্যে যে মূর্ত আউট করেছি. সুতরাং আমরা পূরণ করতে শুরু করতে পারেন আমাদের প্রোগ্রামে অনেক বেশি. এখানে আমি লুপ জন্য একটি বাইরের আছে পিরামিড প্রতিটি সারির উপর iterates. এবং যে শরীরের ভিতর আমি যাচ্ছি বারবার স্পেস প্রিন্ট করতে বারবার হ্যাশ, এবং তারপর ফাঁক, এবং তারপর ডান পিরামিড জন্য হ্যাশ, এবং তারপর, পরিশেষে, একটি নতুন লাইন পরবর্তী সারি শুরু করার. যে, আমরা অনুরোধ জানানো করেছি ইনপুট জন্য ব্যবহারকারীকে. আমরা নিশ্চিত যে এটা বৈধ করেছি. এবং তারপর আমরা পিরামিড টানা করেছি. সুতরাং মারিও পারেন সফলভাবে পিরামিড আরোহণ. আমার সম্পর্কে নাম Zamyla. এবং এই CS50.