বক্তা 1: পানি সম্পর্কে কথা বলা যাক. এই সমস্যা, আমরা বলতে ব্যবহারকারীকে জিজ্ঞাসা আমাদের মিনিটের মধ্যে কতদিন তাদের ঝরনা ছিল এবং তারপর আমরা সমতুল্য নিরূপণ পানির বোতল সংখ্যা তাদের ঝরনা ব্যবহার করে. সুতরাং আমাদের করণীয় কী হয় এই সমস্যার জন্য? প্রথমত, আমরা চাই চলুন অনুরোধ জানানো এবং তারপর বৈধতা যাচাই ইনপুট যে ব্যবহারকারী আমাদের দেয়. একবার আমরা যে আমরা নিশ্চিত বৈধ ব্যবহারকারীর ইনপুট আছে, আমরা নিরূপণ করতে যাচ্ছেন পানির বোতল সমতুল্য সংখ্যা ব্যবহারকারী সময় ছিল যে তাদের ঝরনা, এবং তারপর আমরা করছি তাদের বলা যাচ্ছে যে সংখ্যা প্রিন্ট আউট. তাই আমাদের প্রথম মোকাবেলা যাক টাস্ক, প্ররোচনা এবং যাচাই ব্যবহারকারীর ইনপুট. এই জন্য আমরা লিখিত করেছি একটি ফাংশন আপনার জন্য বলা CS50 লাইব্রেরি অবস্থিত get_int. get_int নিশ্চিত করে যে ব্যবহারকারী ইনপুট একটি পূর্ণসংখ্যা, তাই কোনো ধনাত্মক সংখ্যার, ঋণাত্মক সংখ্যা, অথবা শূন্য সব গৃহীত হয়. কিন্তু ব্যবহারকারী অন্য কিছু ইনপুট যদি, তাই চিঠি বা সংখ্যার কোনো সমন্বয় বা দশমিক সংখ্যা, তারপর ব্যবহারকারী পুনরায় চেষ্টা করতে অনুরোধ জানানো হবে এবং ফাংশন কিছু মেনে নেবে না যতক্ষন পর্যন্ত ব্যবহারকারী তাদের একটি পূর্ণসংখ্যা দেয়. তাই কিভাবে আমরা get_int ব্যবহার করেন? আপনি আপনার কর্মক্ষেত্র খুলুন এবং integer.c আসুন নামে একটি ফাইল তৈরি নিম্নলিখিত টাইপ করুন. হ্যাশট্যাগ cs50.h. অন্তর্ভুক্ত এই কারণ get_int প্রয়োজন একটি CS50 লাইব্রেরি ফাংশন, হয় তাই আমরা হ্যাশট্যাগ আবশ্যক অন্তর্ভুক্ত যাতে তার ঘোষণা ফাংশন ব্যবহার করতে. এবং তারপর আমার মূল এ কাজ আমি যাচ্ছি কেবল ফাংশন get_int ডাকতে. তাই আসুন এই চালানো যাক এবং দেখুন কিভাবে এটি কাজ করে. আমি ইতিমধ্যে এটি কম্পাইল করেছি, তাই আসুন শুধু এগিয়ে যান এবং এই প্রোগ্রাম চালানো, ./integer. এখানে আমি একটি প্রম্পট আছে এবং এখানে যেখানে আমি ইনপুট মান. আমি শুধু কিছু পূর্ণসংখ্যা রাখা বলুন, 50, প্রোগ্রাম excepts এবং হিসাবনিকাশ চুকান এবং যে যে. কিন্তু বলতে আমি আবার এটি চালানো এবং আমি ইনপুট অন্য কিছু. সম্ভবত, হ্যালো দুনিয়া. যে একটি পূর্ণসংখ্যা তাই নয় প্রোগ্রাম পুনরায় চেষ্টা করতে আমাকে লেখার অনুরোধ জানানো হবে. এর সঙ্গে আবার চেষ্টা করা যাক সম্ভবত একটি দশমিক এই সময়. 0.5, আবার, একটি পূর্ণসংখ্যা না তাই প্রোগ্রাম তা গ্রহণ করা হবে না এবং এটি পুনরায় চেষ্টা করব. সুতরাং এটি অন্য একটি নম্বর দিন. এটি প্রোগ্রাম গ্রহণ, শোধবোধ হয়ে যাওয়া, এবং আমরা কাজ সম্পন্ন হয়. তাই এখন আমরা একটি ফাংশন আছে আমাদের এবং নিশ্চিত করতে সক্ষম হবেন ব্যবহারকারী একটি ইনপুট যে পূর্ণসংখ্যা, কিন্তু আমরা কীভাবে আসলে ট্র্যাক রাখতে পূর্ণসংখ্যা ব্যবহারকারী দ্বারা ইনপুট? আচ্ছা, আমরা কি সব করব স্টোর একটি ভেরিয়েবলের মধ্যে এই মান, এন বলে. সুতরাং যদি আমি একটি পূর্ণসংখ্যা n ডিক্লেয়ার, এবং আমি get_int যে মান নির্ধারণ, তারপর এন তারপর সংরক্ষণ করবে যাই হোক না কেন ব্যবহারকারী ইনপুট মূল্য. ঠিক আছে, তাই এখন আমরা নিশ্চিত করেছি যে ব্যবহারকারী আমাদের একটি পূর্ণসংখ্যা দিতে হবে এবং আমরা জানি কিভাবে ট্র্যাক রাখতে পূর্ণসংখ্যা, কিন্তু মনে রাখবেন, পূর্ণসংখ্যার ইতিবাচক ও নেতিবাচক উভয় হয়. সুতরাং এটা সত্যিই অর্থে দেখা যায় না এই সমস্যা প্রসঙ্গে ব্যবহারকারী একটি ঝরনা লাগে যে এর বলে নেতিবাচক 12 মিনিট. তাই আমরা যে ব্যবহারকারী নিশ্চিত করা প্রয়োজন আসলে আমাদের একটি ধনাত্মক পূর্ণসংখ্যা দেয়. এখন আমরা না শুধু একটি যে জন্য একক ফাংশন, তাই আমরা আছে চলুন তৈরি করতে নিজেদেরকে যে. সুতরাং আমরা ক্রমাগত করতে চান ব্যবহারকারীকে অনুরোধ জানানো যতক্ষণ না তারা আমাদের একটি ধনাত্মক পূর্ণসংখ্যা দিতে. আমি কিছু কাজ করছি ক্রমাগত তারপর যে একটি লুপ, একটি পুনরাবৃত্তি সদৃশ নয়. নির্মান আমরা ব্যবহার করি যে এক তাই গ পুনরাবৃত্তি এবং loops বাস্তবায়ন একটি লুপ হয়. সুতরাং যখন একটি লুপ, যেমন এখানে দেখানো হয়েছে, চালানো হবে যাই হোক না কেন লুপ শরীর হয় প্রদত্ত শর্ত মূল্যায়ণ যতদিন সত্যতে. যত তাড়াতাড়ি যে শর্ত হিসাবে মিথ্যা মূল্যায়ণ, তারপর প্রোগ্রাম এগিয়ে যেতে হবে যাই হোক না কেন লুপ শরীরের পরে আসে. সুতরাং যখন loops করতে যাচ্ছি CS50 মধ্যে সত্যিই দরকারী হতে. কিন্তু এই বিশেষ কেস, আমরা জানি আমরা করছি যে অন্তত ব্যবহারকারীকে অনুরোধ জানানো যাচ্ছে একবার এবং তারপর শুধুমাত্র লুপ প্রয়োজনে. তাই আমরা এখানে একটি আসা বিশেষ কনস্ট্রাক্ট এবং যে অনুরূপ যখন একটি লুপ না সময় লুপ বলা. তাই না একটি সময় লুপ executes লুপ শরীরের অন্তত একবার এবং তারপর এটি দেখতে পরীক্ষা কিনা এটি চালানো উচিত, একটি লুপ উল্টোদিকে, যা অবস্থা পরীক্ষা হবে এবং তারপর শরীরের চালানো. তাই একটি লুপ করার সময় কি আমরা যেতে পারি না একটি পূর্ণসংখ্যা জন্য ব্যবহারকারীকে অনুরোধ জানানো হয়, এবং তারপর চেক যদি এটা অবৈধ বা না. যদি এটা অবৈধ, তারপর আমরা করব প্রক্রিয়া ব্যবহারকারীকে জিজ্ঞাসা পুনরাবৃত্তি আমাদের অন্য একটি পূর্ণসংখ্যা দিতে, এবং তারপর শুধুমাত্র যখন যে পূর্ণসংখ্যা বৈধ, আমরা চালিয়ে যাব যাই হোক না কেন পরে আসে. এখন আপনি যে বিজ্ঞপ্তি পাবেন পূর্ণসংখ্যা n এর ঘোষণা থেকে কিছুটা ভিন্ন কি আমরা পূর্ববর্তী উদাহরণে আগের মতোই এবং এই সুযোগ কারণ হল. আমরা ভিতরে পূর্ণসংখ্যা এন ঘোষণা করে তাহলে কি সময় লুপ দেহ, তারপর আমরা অ্যাক্সেস করতে সক্ষম হবে না সেই কোঁকড়া বাইরে n এর যে মান লুপ শরীরের ইঙ্গিত ধনুর্বন্ধনী. কিন্তু আমরা আসলে কি অ্যাক্সেস করতে চান পরে আমাদের প্রোগ্রামে উপর n এর মান. ঠিক আছে, তাই এখন এর সম্পর্কে কথা বলা যাক কি এই শর্ত হওয়া উচিত. আমরা শুধুমাত্র reprompt চাই ব্যবহারকারী যতদিন এন অবৈধ হিসেবে. তাই নিজেকে মনে কি একটি অবৈধ পূর্ণসংখ্যা মান মত দেখাবে এবং তারপর একটি বুলিয়ান তৈরি অভিব্যক্তি প্রকাশ করার যে. আমরা প্রায় আমাদের subtask সঙ্গে সমাপ্ত করছি এর প্ররোচনা এবং ব্যবহারকারীর ইনপুট বৈধতা দান করে. তাই আসুন এই একটু করা যাক বিট আরো ব্যবহারকারী বন্ধুত্বপূর্ণ এবং ব্যবহারকারী একটু দিতে বিট আরো তথ্য এর কি আমরা তাদের জন্য অনুরোধ করছি. সুতরাং এর ব্যবহারকারীকে অনুরোধ জানানো, প্রতি দিন বৈশিষ্ট, স্ট্রিং মিনিট. অতএব, আপনি আপনার printf, বিবৃতি ব্যবহার, করা নিশ্চিত করুন যে আপনি এই ঠিক মেলে. ঠিক আছে. তাই এখন আমরা একটি বৈধ ব্যবহারকারী আছে ইনপুট, একটি ধনাত্মক পূর্ণসংখ্যা কত মিনিট মান তারা ঝরনা অতিবাহিত. তাই কি পরের নিরূপণ করা হয় বোতল সমতুল্য সংখ্যা. আমরা এখানে কাজ করতে যাচ্ছেন কি পারে প্রথমে আপনাকে খুব সুস্পষ্ট হতে, এবং যে ঠিক আছে. আমরা কি করতে চান আমরা হয় অনুশীলন শুরু করতে চান নিদর্শন detecting ধারণা এবং সমস্যার জন্য সূত্র উন্নয়নশীল. সুতরাং আমরা বৈশিষ্ট প্রতি জানান করছি ঝরনা মধ্যে যে এক মিনিট সম্পর্কে সমতূল্য পানির 12 বোতল. আমি তখন দুই মিনিট would 24 সমতুল্য হতে, পাঁচ মিনিট সময় ব্যয় হবে 60 সমতুল্য হতে. তাই এখন আপনি যদি মনে করেন আপনি এটা পেয়েছেন, তারপর আসুন আপনি যদি আসা আপ করতে পারেন দেখুন একটি প্যাটার্ন বা সূত্র সঙ্গে প্রকাশ করার আমরা যদি বলি আছে, এন মিনিট, কত জল বোতল যে এন পরিপ্রেক্ষিতে প্রকাশ করা হবে? আবার, যদিও এই প্রথমে সহজ হতে পারে, পরে যখন আমরা পেতে উপর আরো জটিল সমস্যার আমরা সেঁধান চান চলুন চিহ্নিতকরণের অনুশীলন নিদর্শন এবং উন্নয়নশীল সূত্র এইসব জিনিস জিনিসটা. সি আপনি এক্সেস আছে প্রমিত গাণিতিক অপারেশন, উপরন্তু, বিয়োগ, গুণন এবং বিভাজন. তাই আমি এটা ছেড়ে দেব আপনি এখন জিনিসটা কিভাবে প্রকাশ করতে বোতল সমতুল্য সংখ্যা ব্যবহারকারী ক্ষয়প্রাপ্ত যে তাদের ঝরনা সময়. ঠিক আছে, আমরা প্রায় সম্পন্ন করে ফেলেছেন. আমরা তাদের ইনপুট জন্য ব্যবহারকারীকে অনুরোধ জানানো করেছি, আমরা নিশ্চিত করেছি যে এটা বৈধ ইনপুট, এবং তারপর আমরা আউট কিভাবে মূর্ত করেছি সমতুল্য নিরূপণ করা বোতল যে তারা ক্ষয়প্রাপ্ত সংখ্যা. সুতরাং যা করার জন্য গত জিনিস আউটপুট হয় বোতল সমতুল্য সংখ্যা এবং আশা উত্সাহিত তাদের কিছু পানি সংরক্ষণ করতে. মান outputting হবে একটি printf বিবৃতি হতে. যদি আমি তোমাকে যে আমি বলতে চেয়েছিলাম উদাহরণস্বরূপ, তিনটি পোষা প্রাণী আছে, আমি একটি printf বিবৃতি ব্যবহার হতে পারে যে ভালো কিছু দেখায়. আমি তিনটি পোষা প্রাণী আছে, এবং একটি নতুন চমৎকার বিন্যাস জন্য লাইন. এখন আমরা চাই না কেবল হার্ড কোড কিছু. এর সংখ্যা বলুন আমার গৃহপালিত সময়ের সাথে পরিবর্তিত. তারপর আমি ব্যবহার করতে যাচ্ছি আমার printf বিবৃতিতে স্থানধারক. তাই এখানে আমার নম্বর একটি পূর্ণসংখ্যা. তাই আমি একটি স্থানধারক করতে যাচ্ছি একটি পূর্ণসংখ্যা% আমি ব্যবহার করার জন্য. আমি স্ট্রিং লিখতে যাচ্ছি, এবং তারপর স্ট্রিং পরে আমি একটি কমা এবং তারপর লিখুন পরিবর্তনশীল যে আমি প্রিন্ট করতে চান. সুতরাং যে মান প্রিন্ট করা হবে যে প্লেসহোল্ডার% আমি বদলে. আপনি স্থানধারক ব্যবহার করতে পারেন, যেমন ভাল, একটি% চ সঙ্গে ফ্লোট জন্য. এছাড়াও আপনি একাধিক থাকতে পারে একটি স্ট্রিং স্থানধারক. উদাহরণস্বরূপ, আমি কিছু সংখ্যা আছে যদি কুকুর এবং বিড়ালের কিছু সংখ্যা, আমি দুই স্থানধারক এখানে এবং তারপর করা নিজ নিজ অনুক্রমে আমার দুটি ভেরিয়েবল. তাই এখন আমরা জানি যে প্রিন্ট কিভাবে মান ভেরিয়েবলের মধ্যে সংরক্ষিত, খুব শেষ জিনিস কি যে আমরা নিশ্চিত করা সঠিক বিন্যাসে মান প্রিন্ট স্পেসিফিকেশন নির্দেশিত. যে, আমরা অনুরোধ জানানো করেছি ব্যবহারকারী এবং তাদের ইনপুট যাচাই. আমরা তখন সমতুল্য হিসাব করেছি পানির বোতল সংখ্যা যে তারা তাদের ঝরনা সময় গ্রাস, এবং আমরা তাদের যে মান outputted থাকেন. আর তাই, আমরা পানি সম্পন্ন করেছি. আমার নাম [? Zamila?] এবং এই CS50.