1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:01,960 বক্তা 1: পানি সম্পর্কে কথা বলা যাক. 3 00:00:01,960 --> 00:00:07,280 এই সমস্যা, আমরা বলতে ব্যবহারকারীকে জিজ্ঞাসা আমাদের মিনিটের মধ্যে কতদিন তাদের ঝরনা ছিল 4 00:00:07,280 --> 00:00:11,040 এবং তারপর আমরা সমতুল্য নিরূপণ পানির বোতল সংখ্যা 5 00:00:11,040 --> 00:00:12,970 তাদের ঝরনা ব্যবহার করে. 6 00:00:12,970 --> 00:00:16,379 >> সুতরাং আমাদের করণীয় কী হয় এই সমস্যার জন্য? 7 00:00:16,379 --> 00:00:20,050 প্রথমত, আমরা চাই চলুন অনুরোধ জানানো এবং তারপর বৈধতা যাচাই 8 00:00:20,050 --> 00:00:22,100 ইনপুট যে ব্যবহারকারী আমাদের দেয়. 9 00:00:22,100 --> 00:00:24,790 একবার আমরা যে আমরা নিশ্চিত বৈধ ব্যবহারকারীর ইনপুট আছে, 10 00:00:24,790 --> 00:00:28,230 আমরা নিরূপণ করতে যাচ্ছেন পানির বোতল সমতুল্য সংখ্যা 11 00:00:28,230 --> 00:00:30,770 ব্যবহারকারী সময় ছিল যে তাদের ঝরনা, এবং তারপর আমরা করছি 12 00:00:30,770 --> 00:00:33,720 তাদের বলা যাচ্ছে যে সংখ্যা প্রিন্ট আউট. 13 00:00:33,720 --> 00:00:37,230 >> তাই আমাদের প্রথম মোকাবেলা যাক টাস্ক, প্ররোচনা এবং যাচাই 14 00:00:37,230 --> 00:00:38,550 ব্যবহারকারীর ইনপুট. 15 00:00:38,550 --> 00:00:40,910 এই জন্য আমরা লিখিত করেছি একটি ফাংশন আপনার জন্য বলা 16 00:00:40,910 --> 00:00:43,950 CS50 লাইব্রেরি অবস্থিত get_int. 17 00:00:43,950 --> 00:00:48,710 get_int নিশ্চিত করে যে ব্যবহারকারী ইনপুট একটি পূর্ণসংখ্যা, তাই কোনো ধনাত্মক সংখ্যার, 18 00:00:48,710 --> 00:00:51,700 ঋণাত্মক সংখ্যা, অথবা শূন্য সব গৃহীত হয়. 19 00:00:51,700 --> 00:00:55,900 কিন্তু ব্যবহারকারী অন্য কিছু ইনপুট যদি, তাই চিঠি বা সংখ্যার কোনো সমন্বয় 20 00:00:55,900 --> 00:00:59,710 বা দশমিক সংখ্যা, তারপর ব্যবহারকারী পুনরায় চেষ্টা করতে অনুরোধ জানানো হবে 21 00:00:59,710 --> 00:01:04,319 এবং ফাংশন কিছু মেনে নেবে না যতক্ষন পর্যন্ত ব্যবহারকারী তাদের একটি পূর্ণসংখ্যা দেয়. 22 00:01:04,319 --> 00:01:06,410 >> তাই কিভাবে আমরা get_int ব্যবহার করেন? 23 00:01:06,410 --> 00:01:10,830 আপনি আপনার কর্মক্ষেত্র খুলুন এবং integer.c আসুন নামে একটি ফাইল তৈরি 24 00:01:10,830 --> 00:01:12,110 নিম্নলিখিত টাইপ করুন. 25 00:01:12,110 --> 00:01:14,760 হ্যাশট্যাগ cs50.h. অন্তর্ভুক্ত 26 00:01:14,760 --> 00:01:18,480 এই কারণ get_int প্রয়োজন একটি CS50 লাইব্রেরি ফাংশন, হয় 27 00:01:18,480 --> 00:01:21,890 তাই আমরা হ্যাশট্যাগ আবশ্যক অন্তর্ভুক্ত যাতে তার ঘোষণা 28 00:01:21,890 --> 00:01:23,370 ফাংশন ব্যবহার করতে. 29 00:01:23,370 --> 00:01:26,570 এবং তারপর আমার মূল এ কাজ আমি যাচ্ছি 30 00:01:26,570 --> 00:01:29,560 কেবল ফাংশন get_int ডাকতে. 31 00:01:29,560 --> 00:01:31,750 >> তাই আসুন এই চালানো যাক এবং দেখুন কিভাবে এটি কাজ করে. 32 00:01:31,750 --> 00:01:35,092 আমি ইতিমধ্যে এটি কম্পাইল করেছি, তাই আসুন শুধু এগিয়ে যান এবং এই প্রোগ্রাম চালানো, 33 00:01:35,092 --> 00:01:36,480 ./integer. 34 00:01:36,480 --> 00:01:39,880 এখানে আমি একটি প্রম্পট আছে এবং এখানে যেখানে আমি ইনপুট মান. 35 00:01:39,880 --> 00:01:44,880 আমি শুধু কিছু পূর্ণসংখ্যা রাখা বলুন, 50, প্রোগ্রাম excepts এবং হিসাবনিকাশ চুকান 36 00:01:44,880 --> 00:01:45,960 এবং যে যে. 37 00:01:45,960 --> 00:01:49,350 >> কিন্তু বলতে আমি আবার এটি চালানো এবং আমি ইনপুট অন্য কিছু. 38 00:01:49,350 --> 00:01:51,350 সম্ভবত, হ্যালো দুনিয়া. 39 00:01:51,350 --> 00:01:55,660 যে একটি পূর্ণসংখ্যা তাই নয় প্রোগ্রাম পুনরায় চেষ্টা করতে আমাকে লেখার অনুরোধ জানানো হবে. 40 00:01:55,660 --> 00:01:59,160 এর সঙ্গে আবার চেষ্টা করা যাক সম্ভবত একটি দশমিক এই সময়. 41 00:01:59,160 --> 00:02:03,450 0.5, আবার, একটি পূর্ণসংখ্যা না তাই প্রোগ্রাম তা গ্রহণ করা হবে না 42 00:02:03,450 --> 00:02:05,290 এবং এটি পুনরায় চেষ্টা করব. 43 00:02:05,290 --> 00:02:07,070 সুতরাং এটি অন্য একটি নম্বর দিন. 44 00:02:07,070 --> 00:02:09,830 এটি প্রোগ্রাম গ্রহণ, শোধবোধ হয়ে যাওয়া, এবং আমরা কাজ সম্পন্ন হয়. 45 00:02:09,830 --> 00:02:13,520 >> তাই এখন আমরা একটি ফাংশন আছে আমাদের এবং নিশ্চিত করতে সক্ষম হবেন 46 00:02:13,520 --> 00:02:16,790 ব্যবহারকারী একটি ইনপুট যে পূর্ণসংখ্যা, কিন্তু আমরা কীভাবে 47 00:02:16,790 --> 00:02:20,330 আসলে ট্র্যাক রাখতে পূর্ণসংখ্যা ব্যবহারকারী দ্বারা ইনপুট? 48 00:02:20,330 --> 00:02:25,260 আচ্ছা, আমরা কি সব করব স্টোর একটি ভেরিয়েবলের মধ্যে এই মান, এন বলে. 49 00:02:25,260 --> 00:02:30,580 সুতরাং যদি আমি একটি পূর্ণসংখ্যা n ডিক্লেয়ার, এবং আমি get_int যে মান নির্ধারণ, 50 00:02:30,580 --> 00:02:34,700 তারপর এন তারপর সংরক্ষণ করবে যাই হোক না কেন ব্যবহারকারী ইনপুট মূল্য. 51 00:02:34,700 --> 00:02:38,620 >> ঠিক আছে, তাই এখন আমরা নিশ্চিত করেছি যে ব্যবহারকারী আমাদের একটি পূর্ণসংখ্যা দিতে হবে 52 00:02:38,620 --> 00:02:42,550 এবং আমরা জানি কিভাবে ট্র্যাক রাখতে পূর্ণসংখ্যা, কিন্তু মনে রাখবেন, 53 00:02:42,550 --> 00:02:45,610 পূর্ণসংখ্যার ইতিবাচক ও নেতিবাচক উভয় হয়. 54 00:02:45,610 --> 00:02:49,110 সুতরাং এটা সত্যিই অর্থে দেখা যায় না এই সমস্যা প্রসঙ্গে 55 00:02:49,110 --> 00:02:53,570 ব্যবহারকারী একটি ঝরনা লাগে যে এর বলে নেতিবাচক 12 মিনিট. 56 00:02:53,570 --> 00:02:59,310 তাই আমরা যে ব্যবহারকারী নিশ্চিত করা প্রয়োজন আসলে আমাদের একটি ধনাত্মক পূর্ণসংখ্যা দেয়. 57 00:02:59,310 --> 00:03:02,130 এখন আমরা না শুধু একটি যে জন্য একক ফাংশন, 58 00:03:02,130 --> 00:03:04,620 তাই আমরা আছে চলুন তৈরি করতে নিজেদেরকে যে. 59 00:03:04,620 --> 00:03:07,190 >> সুতরাং আমরা ক্রমাগত করতে চান ব্যবহারকারীকে অনুরোধ জানানো 60 00:03:07,190 --> 00:03:09,730 যতক্ষণ না তারা আমাদের একটি ধনাত্মক পূর্ণসংখ্যা দিতে. 61 00:03:09,730 --> 00:03:14,300 আমি কিছু কাজ করছি ক্রমাগত তারপর যে একটি লুপ, একটি পুনরাবৃত্তি সদৃশ নয়. 62 00:03:14,300 --> 00:03:19,130 নির্মান আমরা ব্যবহার করি যে এক তাই গ পুনরাবৃত্তি এবং loops বাস্তবায়ন 63 00:03:19,130 --> 00:03:20,410 একটি লুপ হয়. 64 00:03:20,410 --> 00:03:23,020 সুতরাং যখন একটি লুপ, যেমন এখানে দেখানো হয়েছে, চালানো হবে 65 00:03:23,020 --> 00:03:27,030 যাই হোক না কেন লুপ শরীর হয় প্রদত্ত শর্ত মূল্যায়ণ যতদিন 66 00:03:27,030 --> 00:03:27,900 সত্যতে. 67 00:03:27,900 --> 00:03:30,640 যত তাড়াতাড়ি যে শর্ত হিসাবে মিথ্যা মূল্যায়ণ, তারপর 68 00:03:30,640 --> 00:03:34,830 প্রোগ্রাম এগিয়ে যেতে হবে যাই হোক না কেন লুপ শরীরের পরে আসে. 69 00:03:34,830 --> 00:03:39,400 >> সুতরাং যখন loops করতে যাচ্ছি CS50 মধ্যে সত্যিই দরকারী হতে. 70 00:03:39,400 --> 00:03:42,590 কিন্তু এই বিশেষ কেস, আমরা জানি আমরা করছি যে 71 00:03:42,590 --> 00:03:48,140 অন্তত ব্যবহারকারীকে অনুরোধ জানানো যাচ্ছে একবার এবং তারপর শুধুমাত্র লুপ প্রয়োজনে. 72 00:03:48,140 --> 00:03:51,080 তাই আমরা এখানে একটি আসা বিশেষ কনস্ট্রাক্ট এবং যে 73 00:03:51,080 --> 00:03:55,020 অনুরূপ যখন একটি লুপ না সময় লুপ বলা. 74 00:03:55,020 --> 00:03:58,840 >> তাই না একটি সময় লুপ executes লুপ শরীরের অন্তত একবার 75 00:03:58,840 --> 00:04:01,750 এবং তারপর এটি দেখতে পরীক্ষা কিনা এটি চালানো উচিত, 76 00:04:01,750 --> 00:04:05,310 একটি লুপ উল্টোদিকে, যা অবস্থা পরীক্ষা হবে 77 00:04:05,310 --> 00:04:07,200 এবং তারপর শরীরের চালানো. 78 00:04:07,200 --> 00:04:11,880 তাই একটি লুপ করার সময় কি আমরা যেতে পারি না একটি পূর্ণসংখ্যা জন্য ব্যবহারকারীকে অনুরোধ জানানো হয়, 79 00:04:11,880 --> 00:04:14,450 এবং তারপর চেক যদি এটা অবৈধ বা না. 80 00:04:14,450 --> 00:04:18,130 যদি এটা অবৈধ, তারপর আমরা করব প্রক্রিয়া ব্যবহারকারীকে জিজ্ঞাসা পুনরাবৃত্তি 81 00:04:18,130 --> 00:04:22,290 আমাদের অন্য একটি পূর্ণসংখ্যা দিতে, এবং তারপর শুধুমাত্র যখন যে পূর্ণসংখ্যা বৈধ, 82 00:04:22,290 --> 00:04:25,060 আমরা চালিয়ে যাব যাই হোক না কেন পরে আসে. 83 00:04:25,060 --> 00:04:28,030 >> এখন আপনি যে বিজ্ঞপ্তি পাবেন পূর্ণসংখ্যা n এর ঘোষণা 84 00:04:28,030 --> 00:04:31,670 থেকে কিছুটা ভিন্ন কি আমরা পূর্ববর্তী উদাহরণে আগের মতোই 85 00:04:31,670 --> 00:04:33,640 এবং এই সুযোগ কারণ হল. 86 00:04:33,640 --> 00:04:37,920 আমরা ভিতরে পূর্ণসংখ্যা এন ঘোষণা করে তাহলে কি সময় লুপ দেহ, 87 00:04:37,920 --> 00:04:42,640 তারপর আমরা অ্যাক্সেস করতে সক্ষম হবে না সেই কোঁকড়া বাইরে n এর যে মান 88 00:04:42,640 --> 00:04:45,050 লুপ শরীরের ইঙ্গিত ধনুর্বন্ধনী. 89 00:04:45,050 --> 00:04:51,080 কিন্তু আমরা আসলে কি অ্যাক্সেস করতে চান পরে আমাদের প্রোগ্রামে উপর n এর মান. 90 00:04:51,080 --> 00:04:55,730 >> ঠিক আছে, তাই এখন এর সম্পর্কে কথা বলা যাক কি এই শর্ত হওয়া উচিত. 91 00:04:55,730 --> 00:05:00,400 আমরা শুধুমাত্র reprompt চাই ব্যবহারকারী যতদিন এন অবৈধ হিসেবে. 92 00:05:00,400 --> 00:05:04,640 তাই নিজেকে মনে কি একটি অবৈধ পূর্ণসংখ্যা মান মত দেখাবে 93 00:05:04,640 --> 00:05:08,060 এবং তারপর একটি বুলিয়ান তৈরি অভিব্যক্তি প্রকাশ করার যে. 94 00:05:08,060 --> 00:05:13,070 >> আমরা প্রায় আমাদের subtask সঙ্গে সমাপ্ত করছি এর প্ররোচনা এবং ব্যবহারকারীর ইনপুট বৈধতা দান করে. 95 00:05:13,070 --> 00:05:16,010 তাই আসুন এই একটু করা যাক বিট আরো ব্যবহারকারী বন্ধুত্বপূর্ণ 96 00:05:16,010 --> 00:05:18,390 এবং ব্যবহারকারী একটু দিতে বিট আরো তথ্য 97 00:05:18,390 --> 00:05:20,510 এর কি আমরা তাদের জন্য অনুরোধ করছি. 98 00:05:20,510 --> 00:05:24,500 সুতরাং এর ব্যবহারকারীকে অনুরোধ জানানো, প্রতি দিন বৈশিষ্ট, স্ট্রিং মিনিট. 99 00:05:24,500 --> 00:05:28,935 অতএব, আপনি আপনার printf, বিবৃতি ব্যবহার, করা নিশ্চিত করুন যে আপনি এই ঠিক মেলে. 100 00:05:28,935 --> 00:05:30,230 >> ঠিক আছে. 101 00:05:30,230 --> 00:05:33,840 তাই এখন আমরা একটি বৈধ ব্যবহারকারী আছে ইনপুট, একটি ধনাত্মক পূর্ণসংখ্যা 102 00:05:33,840 --> 00:05:37,400 কত মিনিট মান তারা ঝরনা অতিবাহিত. 103 00:05:37,400 --> 00:05:41,300 তাই কি পরের নিরূপণ করা হয় বোতল সমতুল্য সংখ্যা. 104 00:05:41,300 --> 00:05:45,250 আমরা এখানে কাজ করতে যাচ্ছেন কি পারে প্রথমে আপনাকে খুব সুস্পষ্ট হতে, 105 00:05:45,250 --> 00:05:46,640 এবং যে ঠিক আছে. 106 00:05:46,640 --> 00:05:49,320 আমরা কি করতে চান আমরা হয় অনুশীলন শুরু করতে চান 107 00:05:49,320 --> 00:05:53,810 নিদর্শন detecting ধারণা এবং সমস্যার জন্য সূত্র উন্নয়নশীল. 108 00:05:53,810 --> 00:05:57,200 >> সুতরাং আমরা বৈশিষ্ট প্রতি জানান করছি ঝরনা মধ্যে যে এক মিনিট 109 00:05:57,200 --> 00:05:59,960 সম্পর্কে সমতূল্য পানির 12 বোতল. 110 00:05:59,960 --> 00:06:03,020 আমি তখন দুই মিনিট would 24 সমতুল্য হতে, 111 00:06:03,020 --> 00:06:05,850 পাঁচ মিনিট সময় ব্যয় হবে 60 সমতুল্য হতে. 112 00:06:05,850 --> 00:06:08,390 তাই এখন আপনি যদি মনে করেন আপনি এটা পেয়েছেন, তারপর আসুন 113 00:06:08,390 --> 00:06:10,390 আপনি যদি আসা আপ করতে পারেন দেখুন একটি প্যাটার্ন বা সূত্র সঙ্গে 114 00:06:10,390 --> 00:06:14,990 প্রকাশ করার আমরা যদি বলি আছে, এন মিনিট, কত জল বোতল 115 00:06:14,990 --> 00:06:17,930 যে এন পরিপ্রেক্ষিতে প্রকাশ করা হবে? 116 00:06:17,930 --> 00:06:20,680 >> আবার, যদিও এই প্রথমে সহজ হতে পারে, 117 00:06:20,680 --> 00:06:23,240 পরে যখন আমরা পেতে উপর আরো জটিল সমস্যার 118 00:06:23,240 --> 00:06:26,360 আমরা সেঁধান চান চলুন চিহ্নিতকরণের অনুশীলন 119 00:06:26,360 --> 00:06:30,120 নিদর্শন এবং উন্নয়নশীল সূত্র এইসব জিনিস জিনিসটা. 120 00:06:30,120 --> 00:06:33,450 >> সি আপনি এক্সেস আছে প্রমিত গাণিতিক অপারেশন, 121 00:06:33,450 --> 00:06:36,520 উপরন্তু, বিয়োগ, গুণন এবং বিভাজন. 122 00:06:36,520 --> 00:06:38,420 তাই আমি এটা ছেড়ে দেব আপনি এখন জিনিসটা 123 00:06:38,420 --> 00:06:41,300 কিভাবে প্রকাশ করতে বোতল সমতুল্য সংখ্যা 124 00:06:41,300 --> 00:06:43,990 ব্যবহারকারী ক্ষয়প্রাপ্ত যে তাদের ঝরনা সময়. 125 00:06:43,990 --> 00:06:45,700 >> ঠিক আছে, আমরা প্রায় সম্পন্ন করে ফেলেছেন. 126 00:06:45,700 --> 00:06:50,650 আমরা তাদের ইনপুট জন্য ব্যবহারকারীকে অনুরোধ জানানো করেছি, আমরা নিশ্চিত করেছি যে এটা বৈধ ইনপুট, 127 00:06:50,650 --> 00:06:53,330 এবং তারপর আমরা আউট কিভাবে মূর্ত করেছি সমতুল্য নিরূপণ করা 128 00:06:53,330 --> 00:06:55,480 বোতল যে তারা ক্ষয়প্রাপ্ত সংখ্যা. 129 00:06:55,480 --> 00:06:59,430 সুতরাং যা করার জন্য গত জিনিস আউটপুট হয় বোতল সমতুল্য সংখ্যা 130 00:06:59,430 --> 00:07:02,410 এবং আশা উত্সাহিত তাদের কিছু পানি সংরক্ষণ করতে. 131 00:07:02,410 --> 00:07:06,270 >> মান outputting হবে একটি printf বিবৃতি হতে. 132 00:07:06,270 --> 00:07:09,720 যদি আমি তোমাকে যে আমি বলতে চেয়েছিলাম উদাহরণস্বরূপ, তিনটি পোষা প্রাণী আছে, 133 00:07:09,720 --> 00:07:13,090 আমি একটি printf বিবৃতি ব্যবহার হতে পারে যে ভালো কিছু দেখায়. 134 00:07:13,090 --> 00:07:15,880 আমি তিনটি পোষা প্রাণী আছে, এবং একটি নতুন চমৎকার বিন্যাস জন্য লাইন. 135 00:07:15,880 --> 00:07:17,880 >> এখন আমরা চাই না কেবল হার্ড কোড কিছু. 136 00:07:17,880 --> 00:07:20,740 এর সংখ্যা বলুন আমার গৃহপালিত সময়ের সাথে পরিবর্তিত. 137 00:07:20,740 --> 00:07:25,080 তারপর আমি ব্যবহার করতে যাচ্ছি আমার printf বিবৃতিতে স্থানধারক. 138 00:07:25,080 --> 00:07:27,350 তাই এখানে আমার নম্বর একটি পূর্ণসংখ্যা. 139 00:07:27,350 --> 00:07:31,480 তাই আমি একটি স্থানধারক করতে যাচ্ছি একটি পূর্ণসংখ্যা% আমি ব্যবহার করার জন্য. 140 00:07:31,480 --> 00:07:33,930 আমি স্ট্রিং লিখতে যাচ্ছি, এবং তারপর স্ট্রিং পরে 141 00:07:33,930 --> 00:07:38,000 আমি একটি কমা এবং তারপর লিখুন পরিবর্তনশীল যে আমি প্রিন্ট করতে চান. 142 00:07:38,000 --> 00:07:42,730 সুতরাং যে মান প্রিন্ট করা হবে যে প্লেসহোল্ডার% আমি বদলে. 143 00:07:42,730 --> 00:07:47,630 >> আপনি স্থানধারক ব্যবহার করতে পারেন, যেমন ভাল, একটি% চ সঙ্গে ফ্লোট জন্য. 144 00:07:47,630 --> 00:07:50,420 এছাড়াও আপনি একাধিক থাকতে পারে একটি স্ট্রিং স্থানধারক. 145 00:07:50,420 --> 00:07:53,950 উদাহরণস্বরূপ, আমি কিছু সংখ্যা আছে যদি কুকুর এবং বিড়ালের কিছু সংখ্যা, 146 00:07:53,950 --> 00:07:59,210 আমি দুই স্থানধারক এখানে এবং তারপর করা নিজ নিজ অনুক্রমে আমার দুটি ভেরিয়েবল. 147 00:07:59,210 --> 00:08:03,130 >> তাই এখন আমরা জানি যে প্রিন্ট কিভাবে মান ভেরিয়েবলের মধ্যে সংরক্ষিত, 148 00:08:03,130 --> 00:08:06,030 খুব শেষ জিনিস কি যে আমরা নিশ্চিত করা 149 00:08:06,030 --> 00:08:10,920 সঠিক বিন্যাসে মান প্রিন্ট স্পেসিফিকেশন নির্দেশিত. 150 00:08:10,920 --> 00:08:14,990 যে, আমরা অনুরোধ জানানো করেছি ব্যবহারকারী এবং তাদের ইনপুট যাচাই. 151 00:08:14,990 --> 00:08:17,920 আমরা তখন সমতুল্য হিসাব করেছি পানির বোতল সংখ্যা 152 00:08:17,920 --> 00:08:22,100 যে তারা তাদের ঝরনা সময় গ্রাস, এবং আমরা তাদের যে মান outputted থাকেন. 153 00:08:22,100 --> 00:08:24,440 আর তাই, আমরা পানি সম্পন্ন করেছি. 154 00:08:24,440 --> 00:08:28,730 >> আমার নাম [? Zamila?] এবং এই CS50. 155 00:08:28,730 --> 00:08:29,909