1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:02,500 ZAMYLA Chan: এটা একটি আমাকে, Zamyla এর. 3 00:00:02,500 --> 00:00:06,910 মারিও মধ্যে আজ, আমরা হতে যাচ্ছেন মারিও জন্য অর্ধেক পিরামিড অঙ্কন 4 00:00:06,910 --> 00:00:08,290 আপ আরোহণ. 5 00:00:08,290 --> 00:00:11,570 >> সুতরাং এর সম্পর্কে কথা বলা যাক আমাদের এই সমস্যার জন্য টু-না এর. 6 00:00:11,570 --> 00:00:13,610 আমরা চাই চলুন লেখার অনুরোধ জানানো এবং যাচাই করতে 7 00:00:13,610 --> 00:00:18,290 কিভাবে একটি বৈধ ইনপুট জন্য ব্যবহারকারী উচ্চ তারা মারিও এর পিরামিড হতে চাই. 8 00:00:18,290 --> 00:00:20,090 এবং তারপর, আমরা এটা আঁকা চলুন. 9 00:00:20,090 --> 00:00:24,870 সুতরাং এর প্ররোচনা দিয়ে শুরু করা যাক এবং তাদের ইনপুট জন্য ব্যবহারকারীকে বৈধতা দান করে. 10 00:00:24,870 --> 00:00:27,640 >> আমরা ব্যবহার করতে পারেন CS50 লাইব্রেরি ফাংশন 11 00:00:27,640 --> 00:00:31,160 int যে নিশ্চিত করবে পেতে ব্যবহারকারী একটি পূর্ণসংখ্যা ইনপুট. 12 00:00:31,160 --> 00:00:35,730 কোন ধনাত্মক পূর্ণসংখ্যা, নেতিবাচক ইন্টিজার, সংখ্যা 0 সব ন্যায্য খেলা হয়. 13 00:00:35,730 --> 00:00:41,670 অন্যথা, ব্যবহারকারী অনুরোধ করা হবে তারা ইনপুট একটি বৈধ পূর্ণসংখ্যা পর্যন্ত পুনরায় চেষ্টা করুন. 14 00:00:41,670 --> 00:00:44,210 এখন যদিও পেতে int- করে আমাদের জন্য কাজ অনেক 15 00:00:44,210 --> 00:00:46,730 নিশ্চিত যে ব্যবহারকারী আমাদের একটি পূর্ণসংখ্যা দেয়, 16 00:00:46,730 --> 00:00:50,760 আমরা এখনও কিছু আবেদন করতে হবে যে অতিরিক্ত সীমাবদ্ধতা. 17 00:00:50,760 --> 00:00:56,420 সব পরে, আমরা মারিও আরোহণ থাকতে পারে না উচ্চতা নেতিবাচক 12 একটি অর্ধেক পিরামিড. 18 00:00:56,420 --> 00:00:59,040 >> এ ছাড়াও, সমস্যা স্পেসিফিকেশন 19 00:00:59,040 --> 00:01:02,490 বলছেন যে আমরা শুধু পারি মারিও আরোহণ করার অনুমতি দেয় 20 00:01:02,490 --> 00:01:06,940 0 এবং 23 এর মধ্যে উচ্চতা একটি পিরামিড. 21 00:01:06,940 --> 00:01:11,120 ঠিক আছে, তাই এর মানে হল যে আমরা প্রয়োজন একটানা ব্যবহারকারীকে অনুরোধ জানানো 22 00:01:11,120 --> 00:01:14,320 আমাদের একটি বৈধ দিতে সংখ্যা এবং শুধুমাত্র অবিরত 23 00:01:14,320 --> 00:01:17,120 একবার তারা একটি বৈধ উচ্চতা দিয়েছি. 24 00:01:17,120 --> 00:01:18,720 আমরা যে কিভাবে করব? 25 00:01:18,720 --> 00:01:23,760 >> ওয়েল, ক্রমাগত প্রক্রিয়া আমাদেরকে দাও loops-- কিছু করছেন ধারণা 26 00:01:23,760 --> 00:01:24,720 বারেবারে. 27 00:01:24,720 --> 00:01:28,220 কিছুদিনের যেমন সি এক লুপ লুপ যে ক্রমাগত হবে 28 00:01:28,220 --> 00:01:33,480 যতদিন শরীর লুপ চালানো প্রদত্ত শর্ত সত্য মূল্যায়ণ করা হয়. 29 00:01:33,480 --> 00:01:36,200 যত তাড়াতাড়ি যে শর্ত হিসাবে মিথ্যা মূল্যায়ণ, 30 00:01:36,200 --> 00:01:39,770 প্রোগ্রাম এগিয়ে যেতে হবে যাই হোক না কেন যে পরে আসে. 31 00:01:39,770 --> 00:01:43,180 সুতরাং যখন loops এক উপায় হয় যে আমরা ক্রমাগত নিশ্চিত 32 00:01:43,180 --> 00:01:45,320 একটি বৈধ ইনপুট জন্য ব্যবহারকারীকে অনুরোধ জানানো. 33 00:01:45,320 --> 00:01:50,070 আর একবার তারা একটি বৈধ ইনপুট দিতে, আমরা যাই হোক না কেন আগামী আসে এগিয়ে যেতে হবে. 34 00:01:50,070 --> 00:01:54,380 আমরা জানি যে আমরা জিজ্ঞাসা করতে যাচ্ছেন অন্তত একবার ইনপুট জন্য ব্যবহারকারীকে. 35 00:01:54,380 --> 00:01:59,200 তাই এখন আমরা একটি বোন আসা যখন লুপ, যা করতে সময় লুপ. 36 00:01:59,200 --> 00:02:02,650 >> যখন loops চালানো হবে না লুপ শরীরের অন্তত একবার. 37 00:02:02,650 --> 00:02:06,150 সুতরাং শর্ত চেক ছাড়া, এটা শরীর লুপ চালানো হবে. 38 00:02:06,150 --> 00:02:09,750 এবং তারপর অবস্থা পরীক্ষা দেখতে তা পুনরাবৃত্তি করতে হবে. 39 00:02:09,750 --> 00:02:13,080 এই কুশলী যখন আসে আমরা ব্যবহারকারীর ইনপুট যাচাই করছি. 40 00:02:13,080 --> 00:02:15,830 আমরা জানি যে আমরা চলুন অন্তত একবার তাদের জিজ্ঞাসা করতে. 41 00:02:15,830 --> 00:02:18,780 তাই না একটি সময় লুপ প্রতাপ এই মত কিছু চেহারা. 42 00:02:18,780 --> 00:02:20,090 আমরা একটি পূর্ণসংখ্যা এন আছে. 43 00:02:20,090 --> 00:02:22,760 এবং কি এর ভিতরে যখন লুপ, আমরা অবিলম্বে 44 00:02:22,760 --> 00:02:24,750 একটি পূর্ণসংখ্যা জন্য ব্যবহারকারীকে অনুরোধ জানানো. 45 00:02:24,750 --> 00:02:29,740 যদি n অকার্যকর, তবে আমরা তাদের অনুরোধ জানানো হবে আবার এবং আবার এবং আবার তারা পর্যন্ত 46 00:02:29,740 --> 00:02:31,820 আমাদের যে বৈধ পূর্ণসংখ্যা দিতে. 47 00:02:31,820 --> 00:02:37,440 অবশেষে একবার, n একটি বৈধ ইনপুট হয়, আমরা করব আমাদের প্রোগ্রাম বাকি এগিয়ে যান. 48 00:02:37,440 --> 00:02:41,830 >> সুতরাং এর বৈশিষ্ট এবং চেক ফিরে যাই কি একটি বৈধ ইনপুট জন্য শর্ত 49 00:02:41,830 --> 00:02:43,670 হতে যাচ্ছে. 50 00:02:43,670 --> 00:02:48,090 বৈধ উচ্চতা করতে যাচ্ছি 0 এবং 23 এর মধ্যে হওয়া. 51 00:02:48,090 --> 00:02:53,350 তাই অবৈধ উচ্চতা করতে যাচ্ছি কম 0 বা 23 টির বেশি হবে. 52 00:02:53,350 --> 00:02:56,420 তাই নকশা করে আপনার শর্ত সাবধানে, 53 00:02:56,420 --> 00:02:58,660 বুদ্ধিমান শর্তে যে না যখন লুপ জন্য 54 00:02:58,660 --> 00:03:01,470 হওয়া উচিত যখন n অবৈধ. 55 00:03:01,470 --> 00:03:05,080 এখন এই একটি হতে যাচ্ছে না সহজ একক বুলিয়ান অভিব্যক্তি. 56 00:03:05,080 --> 00:03:07,630 আমরা একত্রিত আছে চলুন দুটি ভিন্ন এক্সপ্রেশন 57 00:03:07,630 --> 00:03:09,900 আমাদের পুরো শর্ত করতে. 58 00:03:09,900 --> 00:03:13,290 >> তাই আসুন শুধু একটি সত্য টেবিল আমি করেছি তাকান ইতিমধ্যে আপনি ইঙ্গিত আমরা করছি যে দেওয়া 59 00:03:13,290 --> 00:03:15,200 দুই Booleans সাথে ডিল করা যাচ্ছে. 60 00:03:15,200 --> 00:03:19,620 তাই এখানে একটি সত্য টেবিল যেখানে আমি দুই Booleans-- বুলিয়ান 1 এবং 2 আছে. 61 00:03:19,620 --> 00:03:27,050 সুতরাং আমরা নির্ণয় করার অপশন আছে bool1 এবং bool2 বা bool1 বা bool2. 62 00:03:27,050 --> 00:03:31,980 এবং শুধুমাত্র উভয় যদি সত্য হবে Booleans, সত্য নির্ণয় করা যেহেতু সব 63 00:03:31,980 --> 00:03:37,280 অথবা যতদিন সত্য হবে এক হিসাবে দুই Booleans সত্য মূল্যায়ণ করা হয়. 64 00:03:37,280 --> 00:03:41,450 ঠিক আছে, তাই কিছু সময় দিন, এই বিরাম ভিডিও এবং এই সত্য টেবিল হজম. 65 00:03:41,450 --> 00:03:42,930 আমি এখানেই অপেক্ষা করব. 66 00:03:42,930 --> 00:03:45,760 যখন আপনি ফিরে আসা, দেখুন আপনি একসাথে টুকরা করতে পারেন 67 00:03:45,760 --> 00:03:51,910 জন্য একটি বুলিয়ান অভিব্যক্তি আপনার n এর শর্ত একটি অবৈধ ইনপুট হচ্ছে. 68 00:03:51,910 --> 00:03:54,420 >> তাই এখন যে আমরা বৈধ ব্যবহারকারীর ইনপুট, আসুন 69 00:03:54,420 --> 00:03:58,710 এগিয়ে যান এবং কিভাবে আমরা যে বিষয়ে কথা অর্ধেক পিরামিড আঁকা পারে. 70 00:03:58,710 --> 00:04:03,410 এখানে এই সহজ টেক্সট এডিটর, আমি বাম প্রান্তিককৃত পিরামিড টানা করেছি. 71 00:04:03,410 --> 00:04:07,050 কিন্তু আমরা জানি যে আমরা আমাদের প্রয়োজন পিরামিড ডান প্রান্তিককৃত করা. 72 00:04:07,050 --> 00:04:08,650 সুতরাং কিভাবে এই আমি কি হতে পারে? 73 00:04:08,650 --> 00:04:11,440 ওয়েল, আমি ধাক্কা করার চেষ্টা করতে পারে পাশ থেকে সবকিছু 74 00:04:11,440 --> 00:04:14,880 অল্পমাত্র নির্বাণ দ্বারা মধ্যে অক্ষর. 75 00:04:14,880 --> 00:04:16,779 এবং তারপর, পরের জন্য লাইন, আমি লাগাতে যাচ্ছি 76 00:04:16,779 --> 00:04:20,970 আরো কিছু অক্ষর এটি ধাক্কা বরাবর, এবং further-- তাই এবং তাই ঘোষণা 77 00:04:20,970 --> 00:04:23,360 যতক্ষণ না আমি ডান প্রান্তিককৃত পিরামিড আছে. 78 00:04:23,360 --> 00:04:27,780 সুতরাং আমরা একটি ডান সারিবন্ধন পিরামিড আছে, কিন্তু এটা বিন্দু দিয়ে এত বড় মনে হচ্ছে না. 79 00:04:27,780 --> 00:04:30,680 কিন্তু আমরা এখনও করতে চান যে সুন্দর ব্যবধান বজায় রাখা. 80 00:04:30,680 --> 00:04:35,260 তাই আমি আক্ষরিক যাচ্ছি কিছু শূণ্যস্থান সন্নিবেশ. 81 00:04:35,260 --> 00:04:39,420 >> পরিবর্তে তিনটি বিন্দু, আমি যাব এক, দুই, তিন স্সেস. 82 00:04:39,420 --> 00:04:40,370 দ্বিতীয় লাইন. 83 00:04:40,370 --> 00:04:42,640 আমি এক, দুই স্পেস রেখে দেব. 84 00:04:42,640 --> 00:04:45,370 আর উপান্ত্য উপর লাইন, মাত্র এক স্থান. 85 00:04:45,370 --> 00:04:48,290 আর এখানে আমি একটি ডান প্রান্তিককৃত পিরামিড আছে. 86 00:04:48,290 --> 00:04:52,170 পাঠ্যে উদাহরণ করছেন থেকে সম্পাদক, আমরা প্যাটার্ন জন্য একটি ধারণা আছে 87 00:04:52,170 --> 00:04:54,590 যে আমরা অর্ধেক পিরামিড আঁকা ব্যবহার করব. 88 00:04:54,590 --> 00:04:58,080 প্রতি সারিতে জন্য, আমরা কি কি আমরা কিছু স্পেস টাইপ করা হয়, 89 00:04:58,080 --> 00:05:00,170 কিছু এবং তারপর টাইপ হ্যাশ, এবং তারপর টাইপ 90 00:05:00,170 --> 00:05:03,020 Enter কী, যা একটি নতুন লাইন তৈরি করা হয়. 91 00:05:03,020 --> 00:05:07,770 তাই এখন যে আছে আমরা, চলো যাই আরও এক ধাপ এবং একটি প্যাটার্ন খুঁজে. 92 00:05:07,770 --> 00:05:10,170 >> তাই আমি বলতে যাচ্ছি, জন্য এই উদাহরণে সুদ, 93 00:05:10,170 --> 00:05:12,480 আমরা 8 উচ্চতা সঙ্গে লেনদেন করছেন. 94 00:05:12,480 --> 00:05:17,100 প্রথম সারি দুটি আছে যাচ্ছে হ্যাশ যে সাত শূণ্যস্থান নিম্নরূপ. 95 00:05:17,100 --> 00:05:20,020 দ্বিতীয় তিন হ্যাশ, ছয় স্পেস. 96 00:05:20,020 --> 00:05:24,260 থার্ড row-- চার হ্যাশ, পাঁচটি spaces-- তাই এবং তাই ঘোষণা 97 00:05:24,260 --> 00:05:26,350 যতক্ষণ না আমরা n তম সারিতে পেতে. 98 00:05:26,350 --> 00:05:31,540 তাহলে দেখা যায়, আমি n তম সারিতে জন্য আপনাকে জিজ্ঞাসা, কতগুলি হ্যাশ আমরা আছে যাচ্ছি 99 00:05:31,540 --> 00:05:33,120 এবং কিভাবে অনেক শূণ্যস্থান? 100 00:05:33,120 --> 00:05:37,000 সুতরাং এটি একটি জিনিসটা আপনি আপ সূত্র কত হ্যাশ প্রতিনিধিত্বকারী 101 00:05:37,000 --> 00:05:42,020 এবং কিভাবে অনেক শূণ্যস্থান জন্য প্রয়োজন হয় N তম সারিতে আপনি কিছু উচ্চতা আছে. 102 00:05:42,020 --> 00:05:46,060 >> এখন আপনি এই figuring আউট করছি যখন, সতর্ক থাকুন আপনি কিভাবে ইন্ডেক্স করছি. 103 00:05:46,060 --> 00:05:49,170 আমি কি এই দ্বারা মানে যে দৈনন্দিন জীবনে আমাদের সব 104 00:05:49,170 --> 00:05:51,540 1 গণনায়, সাধারণত শুরু. 105 00:05:51,540 --> 00:05:55,950 CS50 মধ্যে এবং কম্পিউটার বিজ্ঞান মধ্যে কিন্তু সাধারণভাবে, আমরা 0 সূচীবদ্ধ করা হয়. 106 00:05:55,950 --> 00:06:00,620 তাই প্রথম সারি হবে 0 এন 1 উল্টোদিকে. 107 00:06:00,620 --> 00:06:04,550 এই সতর্কতা অবলম্বন করা আবশ্যক যখন আপনি আছেন আপনার প্যাটার্ন চিন্তা করার চেষ্টা. 108 00:06:04,550 --> 00:06:07,570 তাই এখন আমি কিভাবে ফিরে যাই আমরা আমাদের পিরামিড আঁকা চলুন. 109 00:06:07,570 --> 00:06:12,300 প্রতি সারিতে জন্য, আমরা চাই চলুন শূণ্যস্থান মুদ্রণ হ্যাশ প্রিন্ট, 110 00:06:12,300 --> 00:06:14,050 এবং তারপর একটি নতুন লাইন প্রিন্ট করা হবে. 111 00:06:14,050 --> 00:06:19,160 ইঙ্গিত এখানে প্রতি সারিতে "জন্য" শব্দ. 112 00:06:19,160 --> 00:06:21,470 সি, আমরা একটি নির্মানের আছে লুপ জন্য একটি আহ্বান, 113 00:06:21,470 --> 00:06:25,250 একটি গঠিত হয় যা আরম্ভের, একটি শর্ত, একটি আপডেট, 114 00:06:25,250 --> 00:06:26,790 এবং লুপ শরীরের. 115 00:06:26,790 --> 00:06:31,360 >> আমি হ্যালো বলতে চেয়েছিলেন, বলুন বিশ্বের 50 বার, আমার লুপ জন্য 116 00:06:31,360 --> 00:06:32,880 ভালো কিছু দেখাবে. 117 00:06:32,880 --> 00:06:35,480 আমি 0 থেকে আমার পূর্ণসংখ্যা আরম্ভ. 118 00:06:35,480 --> 00:06:38,230 এই শর্তে যে, আমি 50 তুলনায় কম হয়. 119 00:06:38,230 --> 00:06:42,350 তারপর আমার আপডেটে শুধু এক যে সময় দ্বারা আমি বৃদ্ধিশীল. 120 00:06:42,350 --> 00:06:45,140 আমরা loops জন্য ব্যবহার করা যেতে পারে কিছু পুনরুক্তি. 121 00:06:45,140 --> 00:06:47,820 এখানে লক্ষ্য করুন কিভাবে আমরা না আছে কঠিন একটি সংখ্যা কোডেড, 122 00:06:47,820 --> 00:06:51,820 বরং পরিবর্তনশীল স্থাপন পরিবর্তে শর্ত মধ্যে উচ্চতা. 123 00:06:51,820 --> 00:06:56,420 তাই আমি এখানে কাজ করছি আমি iterating করছি হয় পিরামিড প্রতিটি সারির উপর. 124 00:06:56,420 --> 00:07:00,160 আমি প্রত্যেকের জন্য কিছু করতে পারেন আমার লুপ শরীরের ভিতরে সারি. 125 00:07:00,160 --> 00:07:02,350 >> আমরা ভিতরে কি করছ লুপ শরীরের? 126 00:07:02,350 --> 00:07:07,120 ওয়েল, যেমন আমরা ইতোমধ্যে বলেছেন, আমরা মুদ্রণ করছি স্পেস এবং আমরা হ্যাশ মুদ্রণ করছি 127 00:07:07,120 --> 00:07:09,480 এবং আমরা একটি নতুন লাইন মুদ্রণ করছি. 128 00:07:09,480 --> 00:07:11,950 সুতরাং লুপ জন্য আমার বাইরের ভালো দেখবে. 129 00:07:11,950 --> 00:07:15,070 আমি প্রতি সারিতে পুনরুক্তি পিরামিডের, ব্যবহার, 130 00:07:15,070 --> 00:07:18,890 এই ক্ষেত্রে, পরিবর্তনশীল যেমন উচ্চতা যে পিরামিডের উচ্চতা সঞ্চয় করে. 131 00:07:18,890 --> 00:07:22,870 যে লুপ শরীরের ভিতরে, আমি আছি বারবার শূণ্যস্থান মুদ্রণ যাচ্ছে, মুদ্রণ 132 00:07:22,870 --> 00:07:26,730 বারবার হ্যাশ, এবং তারপর একটি নতুন লাইন প্রিন্ট করা হবে. 133 00:07:26,730 --> 00:07:31,010 >> সুতরাং এখন, ধারণার ব্যবহারে যে আমি, এই হাঁটার মাধ্যমে এ সম্পর্কে বিস্তারিত আলোচনা করেছি 134 00:07:31,010 --> 00:07:35,210 লেখার অনুরোধ জানানো করতে সক্ষম হওয়া উচিত ব্যবহারকারীর ইনপুট জন্য, যে ইনপুট বৈধতা যাচাই, 135 00:07:35,210 --> 00:07:37,370 এবং তারপর অর্ধেক পিরামিড আঁকা. 136 00:07:37,370 --> 00:07:41,510 >> আমার সম্পর্কে নাম Zamyla, এবং এই CS50. 137 00:07:41,510 --> 00:07:43,167