ZAMYLA Chan: এটা একটি আমাকে, Zamyla এর. মারিও মধ্যে আজ, আমরা হতে যাচ্ছেন মারিও জন্য অর্ধেক পিরামিড অঙ্কন আপ আরোহণ. সুতরাং এর সম্পর্কে কথা বলা যাক আমাদের এই সমস্যার জন্য টু-না এর. আমরা চাই চলুন লেখার অনুরোধ জানানো এবং যাচাই করতে কিভাবে একটি বৈধ ইনপুট জন্য ব্যবহারকারী উচ্চ তারা মারিও এর পিরামিড হতে চাই. এবং তারপর, আমরা এটা আঁকা চলুন. সুতরাং এর প্ররোচনা দিয়ে শুরু করা যাক এবং তাদের ইনপুট জন্য ব্যবহারকারীকে বৈধতা দান করে. আমরা ব্যবহার করতে পারেন CS50 লাইব্রেরি ফাংশন int যে নিশ্চিত করবে পেতে ব্যবহারকারী একটি পূর্ণসংখ্যা ইনপুট. কোন ধনাত্মক পূর্ণসংখ্যা, নেতিবাচক ইন্টিজার, সংখ্যা 0 সব ন্যায্য খেলা হয়. অন্যথা, ব্যবহারকারী অনুরোধ করা হবে তারা ইনপুট একটি বৈধ পূর্ণসংখ্যা পর্যন্ত পুনরায় চেষ্টা করুন. এখন যদিও পেতে int- করে আমাদের জন্য কাজ অনেক নিশ্চিত যে ব্যবহারকারী আমাদের একটি পূর্ণসংখ্যা দেয়, আমরা এখনও কিছু আবেদন করতে হবে যে অতিরিক্ত সীমাবদ্ধতা. সব পরে, আমরা মারিও আরোহণ থাকতে পারে না উচ্চতা নেতিবাচক 12 একটি অর্ধেক পিরামিড. এ ছাড়াও, সমস্যা স্পেসিফিকেশন বলছেন যে আমরা শুধু পারি মারিও আরোহণ করার অনুমতি দেয় 0 এবং 23 এর মধ্যে উচ্চতা একটি পিরামিড. ঠিক আছে, তাই এর মানে হল যে আমরা প্রয়োজন একটানা ব্যবহারকারীকে অনুরোধ জানানো আমাদের একটি বৈধ দিতে সংখ্যা এবং শুধুমাত্র অবিরত একবার তারা একটি বৈধ উচ্চতা দিয়েছি. আমরা যে কিভাবে করব? ওয়েল, ক্রমাগত প্রক্রিয়া আমাদেরকে দাও loops-- কিছু করছেন ধারণা বারেবারে. কিছুদিনের যেমন সি এক লুপ লুপ যে ক্রমাগত হবে যতদিন শরীর লুপ চালানো প্রদত্ত শর্ত সত্য মূল্যায়ণ করা হয়. যত তাড়াতাড়ি যে শর্ত হিসাবে মিথ্যা মূল্যায়ণ, প্রোগ্রাম এগিয়ে যেতে হবে যাই হোক না কেন যে পরে আসে. সুতরাং যখন loops এক উপায় হয় যে আমরা ক্রমাগত নিশ্চিত একটি বৈধ ইনপুট জন্য ব্যবহারকারীকে অনুরোধ জানানো. আর একবার তারা একটি বৈধ ইনপুট দিতে, আমরা যাই হোক না কেন আগামী আসে এগিয়ে যেতে হবে. আমরা জানি যে আমরা জিজ্ঞাসা করতে যাচ্ছেন অন্তত একবার ইনপুট জন্য ব্যবহারকারীকে. তাই এখন আমরা একটি বোন আসা যখন লুপ, যা করতে সময় লুপ. যখন loops চালানো হবে না লুপ শরীরের অন্তত একবার. সুতরাং শর্ত চেক ছাড়া, এটা শরীর লুপ চালানো হবে. এবং তারপর অবস্থা পরীক্ষা দেখতে তা পুনরাবৃত্তি করতে হবে. এই কুশলী যখন আসে আমরা ব্যবহারকারীর ইনপুট যাচাই করছি. আমরা জানি যে আমরা চলুন অন্তত একবার তাদের জিজ্ঞাসা করতে. তাই না একটি সময় লুপ প্রতাপ এই মত কিছু চেহারা. আমরা একটি পূর্ণসংখ্যা এন আছে. এবং কি এর ভিতরে যখন লুপ, আমরা অবিলম্বে একটি পূর্ণসংখ্যা জন্য ব্যবহারকারীকে অনুরোধ জানানো. যদি n অকার্যকর, তবে আমরা তাদের অনুরোধ জানানো হবে আবার এবং আবার এবং আবার তারা পর্যন্ত আমাদের যে বৈধ পূর্ণসংখ্যা দিতে. অবশেষে একবার, n একটি বৈধ ইনপুট হয়, আমরা করব আমাদের প্রোগ্রাম বাকি এগিয়ে যান. সুতরাং এর বৈশিষ্ট এবং চেক ফিরে যাই কি একটি বৈধ ইনপুট জন্য শর্ত হতে যাচ্ছে. বৈধ উচ্চতা করতে যাচ্ছি 0 এবং 23 এর মধ্যে হওয়া. তাই অবৈধ উচ্চতা করতে যাচ্ছি কম 0 বা 23 টির বেশি হবে. তাই নকশা করে আপনার শর্ত সাবধানে, বুদ্ধিমান শর্তে যে না যখন লুপ জন্য হওয়া উচিত যখন n অবৈধ. এখন এই একটি হতে যাচ্ছে না সহজ একক বুলিয়ান অভিব্যক্তি. আমরা একত্রিত আছে চলুন দুটি ভিন্ন এক্সপ্রেশন আমাদের পুরো শর্ত করতে. তাই আসুন শুধু একটি সত্য টেবিল আমি করেছি তাকান ইতিমধ্যে আপনি ইঙ্গিত আমরা করছি যে দেওয়া দুই Booleans সাথে ডিল করা যাচ্ছে. তাই এখানে একটি সত্য টেবিল যেখানে আমি দুই Booleans-- বুলিয়ান 1 এবং 2 আছে. সুতরাং আমরা নির্ণয় করার অপশন আছে bool1 এবং bool2 বা bool1 বা bool2. এবং শুধুমাত্র উভয় যদি সত্য হবে Booleans, সত্য নির্ণয় করা যেহেতু সব অথবা যতদিন সত্য হবে এক হিসাবে দুই Booleans সত্য মূল্যায়ণ করা হয়. ঠিক আছে, তাই কিছু সময় দিন, এই বিরাম ভিডিও এবং এই সত্য টেবিল হজম. আমি এখানেই অপেক্ষা করব. যখন আপনি ফিরে আসা, দেখুন আপনি একসাথে টুকরা করতে পারেন জন্য একটি বুলিয়ান অভিব্যক্তি আপনার n এর শর্ত একটি অবৈধ ইনপুট হচ্ছে. তাই এখন যে আমরা বৈধ ব্যবহারকারীর ইনপুট, আসুন এগিয়ে যান এবং কিভাবে আমরা যে বিষয়ে কথা অর্ধেক পিরামিড আঁকা পারে. এখানে এই সহজ টেক্সট এডিটর, আমি বাম প্রান্তিককৃত পিরামিড টানা করেছি. কিন্তু আমরা জানি যে আমরা আমাদের প্রয়োজন পিরামিড ডান প্রান্তিককৃত করা. সুতরাং কিভাবে এই আমি কি হতে পারে? ওয়েল, আমি ধাক্কা করার চেষ্টা করতে পারে পাশ থেকে সবকিছু অল্পমাত্র নির্বাণ দ্বারা মধ্যে অক্ষর. এবং তারপর, পরের জন্য লাইন, আমি লাগাতে যাচ্ছি আরো কিছু অক্ষর এটি ধাক্কা বরাবর, এবং further-- তাই এবং তাই ঘোষণা যতক্ষণ না আমি ডান প্রান্তিককৃত পিরামিড আছে. সুতরাং আমরা একটি ডান সারিবন্ধন পিরামিড আছে, কিন্তু এটা বিন্দু দিয়ে এত বড় মনে হচ্ছে না. কিন্তু আমরা এখনও করতে চান যে সুন্দর ব্যবধান বজায় রাখা. তাই আমি আক্ষরিক যাচ্ছি কিছু শূণ্যস্থান সন্নিবেশ. পরিবর্তে তিনটি বিন্দু, আমি যাব এক, দুই, তিন স্সেস. দ্বিতীয় লাইন. আমি এক, দুই স্পেস রেখে দেব. আর উপান্ত্য উপর লাইন, মাত্র এক স্থান. আর এখানে আমি একটি ডান প্রান্তিককৃত পিরামিড আছে. পাঠ্যে উদাহরণ করছেন থেকে সম্পাদক, আমরা প্যাটার্ন জন্য একটি ধারণা আছে যে আমরা অর্ধেক পিরামিড আঁকা ব্যবহার করব. প্রতি সারিতে জন্য, আমরা কি কি আমরা কিছু স্পেস টাইপ করা হয়, কিছু এবং তারপর টাইপ হ্যাশ, এবং তারপর টাইপ Enter কী, যা একটি নতুন লাইন তৈরি করা হয়. তাই এখন যে আছে আমরা, চলো যাই আরও এক ধাপ এবং একটি প্যাটার্ন খুঁজে. তাই আমি বলতে যাচ্ছি, জন্য এই উদাহরণে সুদ, আমরা 8 উচ্চতা সঙ্গে লেনদেন করছেন. প্রথম সারি দুটি আছে যাচ্ছে হ্যাশ যে সাত শূণ্যস্থান নিম্নরূপ. দ্বিতীয় তিন হ্যাশ, ছয় স্পেস. থার্ড row-- চার হ্যাশ, পাঁচটি spaces-- তাই এবং তাই ঘোষণা যতক্ষণ না আমরা n তম সারিতে পেতে. তাহলে দেখা যায়, আমি n তম সারিতে জন্য আপনাকে জিজ্ঞাসা, কতগুলি হ্যাশ আমরা আছে যাচ্ছি এবং কিভাবে অনেক শূণ্যস্থান? সুতরাং এটি একটি জিনিসটা আপনি আপ সূত্র কত হ্যাশ প্রতিনিধিত্বকারী এবং কিভাবে অনেক শূণ্যস্থান জন্য প্রয়োজন হয় N তম সারিতে আপনি কিছু উচ্চতা আছে. এখন আপনি এই figuring আউট করছি যখন, সতর্ক থাকুন আপনি কিভাবে ইন্ডেক্স করছি. আমি কি এই দ্বারা মানে যে দৈনন্দিন জীবনে আমাদের সব 1 গণনায়, সাধারণত শুরু. CS50 মধ্যে এবং কম্পিউটার বিজ্ঞান মধ্যে কিন্তু সাধারণভাবে, আমরা 0 সূচীবদ্ধ করা হয়. তাই প্রথম সারি হবে 0 এন 1 উল্টোদিকে. এই সতর্কতা অবলম্বন করা আবশ্যক যখন আপনি আছেন আপনার প্যাটার্ন চিন্তা করার চেষ্টা. তাই এখন আমি কিভাবে ফিরে যাই আমরা আমাদের পিরামিড আঁকা চলুন. প্রতি সারিতে জন্য, আমরা চাই চলুন শূণ্যস্থান মুদ্রণ হ্যাশ প্রিন্ট, এবং তারপর একটি নতুন লাইন প্রিন্ট করা হবে. ইঙ্গিত এখানে প্রতি সারিতে "জন্য" শব্দ. সি, আমরা একটি নির্মানের আছে লুপ জন্য একটি আহ্বান, একটি গঠিত হয় যা আরম্ভের, একটি শর্ত, একটি আপডেট, এবং লুপ শরীরের. আমি হ্যালো বলতে চেয়েছিলেন, বলুন বিশ্বের 50 বার, আমার লুপ জন্য ভালো কিছু দেখাবে. আমি 0 থেকে আমার পূর্ণসংখ্যা আরম্ভ. এই শর্তে যে, আমি 50 তুলনায় কম হয়. তারপর আমার আপডেটে শুধু এক যে সময় দ্বারা আমি বৃদ্ধিশীল. আমরা loops জন্য ব্যবহার করা যেতে পারে কিছু পুনরুক্তি. এখানে লক্ষ্য করুন কিভাবে আমরা না আছে কঠিন একটি সংখ্যা কোডেড, বরং পরিবর্তনশীল স্থাপন পরিবর্তে শর্ত মধ্যে উচ্চতা. তাই আমি এখানে কাজ করছি আমি iterating করছি হয় পিরামিড প্রতিটি সারির উপর. আমি প্রত্যেকের জন্য কিছু করতে পারেন আমার লুপ শরীরের ভিতরে সারি. আমরা ভিতরে কি করছ লুপ শরীরের? ওয়েল, যেমন আমরা ইতোমধ্যে বলেছেন, আমরা মুদ্রণ করছি স্পেস এবং আমরা হ্যাশ মুদ্রণ করছি এবং আমরা একটি নতুন লাইন মুদ্রণ করছি. সুতরাং লুপ জন্য আমার বাইরের ভালো দেখবে. আমি প্রতি সারিতে পুনরুক্তি পিরামিডের, ব্যবহার, এই ক্ষেত্রে, পরিবর্তনশীল যেমন উচ্চতা যে পিরামিডের উচ্চতা সঞ্চয় করে. যে লুপ শরীরের ভিতরে, আমি আছি বারবার শূণ্যস্থান মুদ্রণ যাচ্ছে, মুদ্রণ বারবার হ্যাশ, এবং তারপর একটি নতুন লাইন প্রিন্ট করা হবে. সুতরাং এখন, ধারণার ব্যবহারে যে আমি, এই হাঁটার মাধ্যমে এ সম্পর্কে বিস্তারিত আলোচনা করেছি লেখার অনুরোধ জানানো করতে সক্ষম হওয়া উচিত ব্যবহারকারীর ইনপুট জন্য, যে ইনপুট বৈধতা যাচাই, এবং তারপর অর্ধেক পিরামিড আঁকা. আমার সম্পর্কে নাম Zamyla, এবং এই CS50.