[Powered by Google Translate] ডেভিড জে MALAN: সমস্ত অধিকার, এই CS50 হয়, এবং এই দুই সপ্তাহ শুরু. আপনাকে ধন্যবাদ. আমাদের এখানে একটি ফোন কল দিয়ে শুরু. আমি আমার এখান থেকে 617-বাগ-CS50 ডায়াল. CS50: এটি CS50. শাটল বয় জন্য, 1 টিপুন. শুরু করতে, 9 টিপুন. ডেভিড জে MALAN: তাই তিনি শাটল বয়, প্রেস 1 জন্য বলেন. তাই আমরা 1 টিপুন চলুন. CS50: কি আপনার মূল? জন্য চতুর্ভুজ, প্রেস 1. মাথের, প্রেস 2. Boylston, প্রেস 3. Lamont, প্রেস 4. Mem হল, প্রেস 5. শুরু করতে, 0 টিপুন. ডেভিড জে MALAN: আমরা চতুর্ভুজ জন্য 1 প্রেস করব. CS50: পরবর্তী শাটল 1:10 PM তে পোস্ট করা এ পাতার এই খুব মিনিট, এবং তারপর এই সময়ে 1:20 PM তে পোস্ট করা, 1:30 PM তে পোস্ট করা, 1:40 PM তে পোস্ট. এটি CS50. ডেভিড জে MALAN: সুতরাং এই CS50 এর ভয়েস. এবং এর জন্য অন্তিম প্রকল্পের প্রকারের একটি উদাহরণ, উদাহরণস্বরূপ, আপনি দিকে দান্ত দিয়া ফুটা করা বন্ধ করতে পারেন সেমিস্টারে শেষ. উদাহরণস্বরূপ, যে shuttleboy.cs50.net বিদ্যমান - আসলে একটি প্রকল্প যা আমি প্রথম CS51 নেওয়ার পর লিখেছে ফিরে যখন আমি একজন স্নাতক. এবং এখানে ফিরে অনুপ্রেরণা ছিল তারপর, সব ছিল তারা ছিল মুদ্রিত শাটল বাসে সময়সূচী, এবং সেখানে কোন অনলাইন আপ জিনিস খুঁজছি ধারণা. তাই আমি এক সপ্তাহান্তে ঘুঘু কতকাংশে মাধ্যমে, ঢেলে তফসিল মুদ্রিত, এবং একটি কম্পিউটার প্রোগ্রাম এটি বৈশিষ্ট্যসমূহ নিয়ে আসা. সময়, কম্পিউটার প্রোগ্রাম কি হবে যাও সি এ ও আসলে আপনি টাইপ ফেরি বয় দ্বারা একটি সময়ে এটি স্থাপিত জ্বলজ্বলে মত আমরা এ পর্যন্ত কাজ করেছি অনুরোধ জানানো হয়েছে. কিন্তু বছরের পর বছর ধরে, এটি একটি তাত্ক্ষণিক পরিচাযক এর মেসেজিং Bot. এই ওয়েবসাইটে এর প্রসূত সম্প্রতি আরো একটি মধ্যে, এসএমএস ভিত্তিক হাতিয়ার হিসেবে এই ভয়েস-ভিত্তিক টুল. এবং এই জিনিষ অসুস্থ এ প্রজ্ঞান হল যে আপনি যা করতে পারেন সেমিস্টারে এর শেষে নিজের জন্য না. উদাহরণস্বরূপ আছে,, শাটল বয় যায় SMS সংস্করণ ঘটবে অনুসরণ হিসাবে কাজ করে. আপনার সেল ফোনে যদি,, আপনি একটি টেক্সট মেসেজ পাঠাতে 41411 যাও এবং তারপর বিশেষ চিহ্ন sboy পাঠাতে শাটল বয় জন্য,, A এবং B, যেখানে একটি একটি মূল এবং B অনুসরণ একটি গন্তব্য - উদাহরণস্বরূপ, Boylston স্পেস চতুর্মুখী - আপনি কি কয়েক সেকেন্ডের মধ্যে ফিরে পেতে হবে একটি টেক্সট শাটল বয় থেকে বার্তা বলছে আপনি ঠিক যখন পরের কয়েক shuttles যে বিন্দু থেকে হয়, যে একটি যাওয়া বিন্দু বি এবং এই একটি কি হিসাবে পরিচিত এর মধ্যে আরো সাধারণ উদাহরণ কোনো API ব্যবহার করে. সুতরাং উদাহরণস্বরূপ, এই এখানে শুধুমাত্র shuttleboy.cs50.net, প্রকৃত এই ওয়েব ভিত্তিক অবতার. কিন্তু এই যে তথ্য এবং অন্যান্য underlines যে CS50 বিকশিত করেনি প্রত্যেকের সমস্ত উদ্ভাসিত হয় ফর্ম এখানে এর API, অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস. এবং যে একটি মাত্র বলছে শৌখিন ভাবে মানুষ আমরা চাই ইন্টারনেট এবং অন্যদের কিছু সময় অতিবাহিত তৈরি সফ্টওয়্যার যে আপনি যাতে আমাদের কাছ থেকে তথ্য এবং দখল ব্যবহার করতে পারেন তারপর উপরে আপনার নিজস্ব অ্যাপ্লিকেশন নির্মাণ যে তথ্য সংকলন. সুতরাং উদাহরণস্বরূপ, এই API-টি ফেরি বয় এখানে পাতা, যা CS50 ম্যানুয়াল মূলত, নথি করা ঘটবে কিভাবে আপনি তথ্য CS50 জন্য সার্ভার সম্পর্কে জানতে চাওয়া যেতে পারে. উদাহরণস্বরূপ, যদি আপনি CSV ফাইল, কমা সঙ্গে পরিচিত মান পৃথক, এই মাত্র সাজানোর দ্রুত এবং ময়লা এক্সেল ফাইল এর মত. তাহলে তোমরা সব তথ্য সব শাটল বয় জন্য অনুরোধ করতে পারেন ঘর এবং তাদের জিপিএস স্থানাঙ্ক, এবং আপনি পাবেন ফিরে মূলত,, যে ভালো একটি স্প্রেডশীট যে আপনি তখন আপনার নিজের কোনো প্রোগ্রাম এবং তারপর পড়তে পারেন ফলাফল উত্পন্ন ভালো শাটল বয় নিজেই এরকম করা করাতে. যারা আরো পরিচিত, আরো আধুনিক তথ্য উপস্থাপনা JSON, জাভাস্ক্রিপ্ট অবজেক্ট স্বরলিপি অন্তর্ভুক্ত. আপনি কিছু দিকে ফিরে আসা হবে সেমিস্টারে শেষ. কিন্তু আবার, এটা CS50 এর নিজস্ব API গুলি কয়েক এক. এবং উত্তেজনাপূর্ণ জিনিস এখন হয়, এই দিন, ফেসবুক এবং টুইটার এবং Google এবং প্রায় কাছাকাছি প্রতি জনপ্রিয় ওয়েবসাইট আউট এপিআই, যার মানে হচ্ছে যদি আপনি পড়তে কিছু বাছাই করা হয়েছে সেখানে তাদের ওয়েবসাইটে ডকুমেন্টেশন, আপনি একটি জন্য সাইন আপ একাউন্ট থেকে থাকে, তাহলে আপনি শুরু উপর সফ্টওয়্যার লেখা যাবে যাই হোক না কেন হাতিয়ারসমূহ প্রবেশ বা তথ্য প্রদান করে যে প্রতিষ্ঠানটি আছে. তাই আমাদের নিজস্ব শিক্ষণ ফেলোগণ এক একটি দম্পতি বছর ফিরে এই একটি ম্যাক সংস্করণ লিখেছেন. সুতরাং উপরের বাম লিঙ্কটি খেতাবধারী ম্যাক এখানে এ, আসলে আপনি যা করতে পারেন একটি ম্যাক OS উইজেট আপনার নিজস্ব Mac-চালানো ডাউনলোড করুন জিনিস একই ধরণের. সুতরাং এইসব ভালো তথ্য সংকলনের উপর নির্মাণ সম্পর্কে সব. যে সেমিস্টারে কিন্তু শেষ দিকে আরো. সুতরাং একটি বাগের ফলে, প্রকৃত দ্রুত let এর মধ্যে, আকর্ষণীয় ঠিক ধরনের পেতে জিনিষ উত্তাপিত আজ, এবং কিছু মনে ফিরে জিনিস আমরা গত সপ্তাহে দিকে তাকিয়ে. বিশেষ করে, সম্পর্কে এগিয়ে যান এবং থামা যাক, বলে, এই উদাহরণ. Buggy1.c, এই কোর্স এর ওয়েবসাইট পাওয়া যাবে যদি আপনি চাই এটি ডাউনলোড করুন এবং নিজের চারপাশে অকর্মা চান. কিন্তু এখানে let এর এই মোটামুটি ছোট প্রোগ্রাম এ জুম, এবং মাত্র একটি মৌলিক বিল্ডিং ব্লক যে কিছু অতিদ্রুত সংক্ষিপ্তবৃত্তি আমরা সত্যিই ঠিক ধরিয়া গ্রহণ শুরু করতে যাচ্ছি. 9 মাধ্যমে লাইন 1 নীল সামগ্রী,, ঠিক আছে সফটবল প্রশ্ন. সুতরাং এই শুধু মতামত. তারা কোন কার্যকরী অর্থ আছে. কিন্তু তারা অর্থে মন্তব্যসমূহ যে তারা নোট আমি, মানবিক, নিজেকে তৈরি যাতে বক্তৃতায় এবং পরে বক্তৃতা, আসলে আমি মনে করতে পারেন কি এই প্রোগ্রাম আছে এটি লাইন মাধ্যমে লাইন দ্বারা পড়া করেও এবং আমার মন ইতিহাস recreating. তাছাড়া, যদি আমি মত অন্য কেউ এই প্রোগ্রাম হাতে আপনি, কারণ এটা ভালো মন্তব্য আপনার কাছে পরিস্কার,, কি আসলে প্রোগ্রাম করছে, বা অন্তত কি প্রোগ্রাম করা করাতে অনুমিত এর. থাকুক বা না এটি সঠিক হয় পুরাপুরি অন্য ব্যাপার. সি এখন,, বহু - লাইন মন্তব্য দিয়ে, প্রত্যাহার যে লাইন এখানে কেউ জাদু প্রতীক, / *. এখানে মানে একটি মন্তব্য নেই শুরু আসে. এবং কিছুই অন্য বিষয়ে যতক্ষণ না আপনি শেষ টারমিনেটর পৌঁছানোর, যা * /, বিপরীত. সুতরাং যে আমি 80-কিছু অদ্ভুত বড় আছে এখানে থেকে বাম থেকে ডাইনে সত্যিই শুধু একটি নান্দনিক বিস্তারিত. এটা কোন কার্যকরী অর্থ আছে. এখন কিভাবে আমার লাইন 11? কি এই অ - বিশেষজ্ঞ এর পদ না? ওটা কি? AUDIENCE: মান অন্তর্ভুক্ত. ডেভিড জে MALAN: ঠিক আছে, ভাল. সুতরাং stdio.h লাইব্রেরি রয়েছে. সুতরাং যে কি মানে? যে ফাইলটি ভিতর ভাল,, stdio.h, হয় একটি আভা ফাংশন ঘোষণা - যা, কোড যে কারোর লিখেছে. এবং একটি একটি ফাংশন যে ঘোষণা এর মধ্যে নিখুঁত উদাহরণ stdio.h হয় - যা দ্বারা প্রিয় এখন? তাই printf সাধারণ বেশী এক, ব্যবহার অবশ্যই যাও যে লাইব্রেরি থেকে আগে থেকেই, আছে. যদি আমি যে লাইন কোড অন্তর্ভুক্ত ঝনঝন যাও চিত্কার যাচ্ছে একটি অঘোষিত চিহ্ন ব্যবহার সম্পর্কে এ সম্পর্কে কিছু. কিছু অঘোষিত সম্ভবত অভিব্যক্তি, কারণ আমরা কম্পাইলার কি printf দেখায় অবহিত করেননি যদি না আমরা যে লাইন অন্তর্ভুক্ত করতে চান. এবং আরো নিচে পৃথিবী সত্যিই,, কি যে লাইন বলছে হয় যে ফাইল, stdio.h, খুলুন যেখানেই এটি সার্ভার এর উপর হয় হার্ড ড্রাইভ, বা যন্ত্র এর হার্ড ড্রাইভ, এবং এটি কপি পেস্ট- অধিকার আছে আমার মধ্যে ফাইল, ছাড়া আমার যে নিজে করবেন না. এখন একবার, আমরা প্রধান পেতে এখানে নিচে, শীঘ্র আমরা শুরু করব টিজিং সরাইয়া কি int-কি এবং অকার্যকর হয়. কিন্তু এখন জন্য, লেট এর তিনটি লাইন তাকান মধ্যে 15 17 মাধ্যমে. এখানে আমি বগী হিসাবে দাবি. আমার মতামত লাইন 7 বলে "10 মুদ্রণ হবে আস্টেরিক্স কিন্তু "কেন না. এই না না, আসলে মুদ্রণ, 10 যেমন বড়? AUDIENCE: [শ্রবণাতীত]. ডেভিড জে MALAN: যথাযথভাবে. তাই লক্ষ্য করা যে আমরা 0 থেকে যাও গণনা শুরু করছেন. এবং এই আসলে প্রোগ্রামিং মধ্যে একটি কনভেনশন এবং কম্পিউটার বিজ্ঞান আরো সাধারণভাবে, যাও গণনা শুরু থেকে 0 এর পরিবর্তে 1. এবং সত্যিই এই যে, জন্য শুধু থেকে আহরিত উদাহরণস্বরূপ, যখন আমরা ছিল মঞ্চে আট জনের আপ, যখন কেউ তাদের হাতে ছিল উত্থাপন, তারা সব কার্যকরভাবে zeros. এবং তাই, তাই একটি কম্পিউটার প্রচল শুধু ধরনের, সুতরাং, 0 থেকে গণনা শুরু. যদি এটা সর্বনিম্ন সংখ্যা আপনি বাইনারি মধ্যে উপস্থাপন করতে পারেন. তাই আমরা এখানে 0 যাও তোমার আরম্ভ করা শুরু করেছি. আমরা তোমার 0 সমান সেট করেছি. কিন্তু তারপর আমি এখানে এই ভুল হয়েছে, বলছে আমি কম বা সমান 10. তবে আপনি যদি মনে করেন যে, এর মাধ্যমে, যদি আমি 0 থেকে আরম্ভ হয় এবং তখন আমি কি আপ যাও 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, আমি আসলে করছি যাচ্ছে বড় পর্দায় 11 মুদ্রণ আউট, কারণ আমি সর্বস্বান্ত আপ করেছি যাও এবং সমান 10. আমি তখন এখানে ফিক্স সহজ হয় কি? AUDIENCE: [শ্রবণাতীত]. ডেভিড জে MALAN: শুধু এটি কম যাও পরিবর্তন. সত্যিই যদি আপনি চান, তাহলে আপনি এই কাজ করতে পারে. তবে সাধারণভাবে যে frowned এর উপর. তাই 0 থেকে গণনা শুরু যাও শুধুমাত্র কিছু করা উচিত সাধারণত ব্যবহৃত হয়. এখন, এই কি আমার এবং তার মধ্যে সমগ্র কনস্ট্রাক্ট? এই লাইন 15 লুপ জন্য demarks একটি. সুতরাং একটি ফাংশন জন্য নয়. এটি শুধু একটি বিবৃতি. এটা একটা looping কনস্ট্রাক্ট, ভালো আমরা ভূত দেখেছি. এবং এটি তিনটি অংশ আছে. উল্লেখ্য, প্রথম অংশে আছে সেমিকোলন বাম. এর মধ্যে দুটি semicolons মধ্যে মধ্যম অংশ আছে. এবং তারপরে ঠিক আছে ডানদিকের অংশ দ্বিতীয় সেমিকোলন. এখন, এই প্রথম কি আছে? AUDIENCE: [শ্রবণাতীত]. ডেভিড জে MALAN: পিছনে আছে? হাঁ? AUDIENCE: সূচনা. ডেভিড জে MALAN: সূচনা. এই কি তাই মানে? আমরা একটি পরিবর্তনশীল তোমার নামক ঘোষিত. এই পার্টিশনটির ধরন int-হয়, কারণ আমি তোমার int-এ নির্দিষ্ট করা. এবং আমি 0 মান যাও তোমার আরম্ভ করছি. কি সত্যিই এই এর বলছে? এটি কম্পিউটার কার্যকরভাবে এর বলছে হেই, সম্পর্কে যথেষ্ট দেত্তয়া মেমরি, পর্যাপ্ত RAM উপস্থিত না, একটি সংখ্যা মাপসই করা হবে, এবং তারপর করা উপস্থিত RAM-র যে তাল সংখ্যা 0. এবং একটি সরাইয়া হিসাবে, কিভাবে বড় হয় সাধারণত কোন int অন্তত ভিতর, এর প্রয়োগ? AUDIENCE: 32 বিট. ডেভিড জে MALAN: 32 বিট. সুতরাং যে আমার 32 বিট, বাইট হিসাবে 4 অন্যথায় পরিচিত দিতে অর্থ, এবং এটা মান 0, যা পরিষ্কার - পরিচ্ছন্ন করা সহজ কারণ এটা সমস্ত 0 বিট সেট হয় না. সুতরাং এখন, এখানে দ্বিতীয় ভাগে শর্ত. এবং শর্ত, নামের প্রস্তাবক হিসাবে, কি চেক করা হয় আবার এবং আবার এবং আবার হিসাবে কিনা এটা সত্য বা মিথ্যা. সুতরাং শুধু এই বলছে না কোড নিম্নলিখিত পংক্তিগুলি না - যথা লাইন 16, কারণ যে কেবল এক সংভৃত নীচে - তাই দীর্ঘ হিসাবে আমি 10 এর কম. এবং এই লুপের মাধ্যমে প্রতিটি পুনরাবৃত্তির পর, না incrementation, যা এই ক্ষেত্রে আমি +. এখন, এটা তোমার + হতে হবে তা নয়. - এটা তোমার হতে পারে. কিন্তু যদি আমি এই কি, কি আচরণ করছে এই প্রোগ্রাম করা? AUDIENCE: এটি একটি অসীম লুপ করা যাচ্ছে. ডেভিড জে MALAN: এটা অসীম লুপ কিছু হতে যাচ্ছে, যদি না আমরা নেতিবাচক 2 বিলিয়ন বা যাতে পরে পেতে ভাগ্যবান. হয়তো জিনিস চারপাশে শুধু সমাপিকা প্রকৃতি দ্বারা মোড়ানো, হবে বিট যে আমরা কোন int জন্য বরাদ্দ আছে নম্বর. কিন্তু এটা অবশ্যই যাও 10 তুলনায় অনেক বেশী পুনরুক্তি করা যাচ্ছে এবং অবশ্যই আরো তুলনায় 11 গুণ এখানে. এবং এখন, ঠিক যেমন একটি সরাইয়া, বুঝতে পারছি যে আমি + + ও আমি - সত্যিই ঠিক অন্বিত চিনি. শুধু কি একটু সাঁটে লেখার জন্য স্বরলিপি নিম্নরূপ স্পষ্টভাবে লিখিত: আমি = আমি + 1 টি. যে অভিন্ন আমি +. এটা কোন ধরনের দেখায় prettier বলতে আমি +. এটা আরো পরিবেষ্টিত, আরো পাঠযোগ্য. তাই অধিকাংশ মানুষ যে পরিবর্তে না. কিন্তু এই বৈশিষ্ট্যগুলি হল অভিন্ন কি কেবল আমরা দেখেছি. তাই সংক্ষিপ্ত, দ্রুত এখানে ফিক্স শুধু তোমার বারবার বলতে হয় 0 থেকে সমস্ত উপায় আপ কম 10. এবং তারপর আমরা প্রকৃতপক্ষে 10 বড় পাবেন. তাই আসুন এই চেষ্টা. আমাকে নীচে টার্মিনাল খুলুন আপ. সম্পর্কে ডিরেক্টরির মধ্যে যাওয়া যাক যে এই ইন এবং আমি এটা নিজে কম্পাইল এখন জন্য ঝনঝন সঙ্গে যাচ্ছি. এবং আমি buggy1.c হিসাবে এই, কম্পাইল লিখুন যাচ্ছি. এবং এখন buggy1, কেন হয় এরকম কোন ফাইল বা ডিরেক্টরির অস্তিত্ব নেই buggy1 বলা হয়? AUDIENCE: [শ্রবণাতীত]. ডেভিড জে MALAN: হ্যাঁ. তাই আসলে বলা এর a.out. সুতরাং আপনি যদি শুধুমাত্র ঝনঝন চালানো প্রত্যাহার, যেখানে ঝনঝন শব্দ হয় কম্পাইলার, এবং আপনি নামের আপনি চান উল্লেখ না আপনার প্রোগ্রাম দেবে, এটি যাও যাও a.out ডিফল্ট যাচ্ছে. তাই সত্যিই যদি আমি ls না - ওহো. এবং আমি didn't - কালো এবং সাদা কিছু সমস্যা আপনি সম্মুখীন হয়েছে. কিন্তু আমাকে এই কাজের জন্য. এখন পর্যন্ত আমরা বাঁদিকের আছে a.out দিকে আছে. তাই আমরা এর পরিবর্তে buggy1 a.out চালানো আছে. তাই আমাকে এগিয়ে যান এবং এই কাজের জন্য. . / A.out, লিখুন. এবং দৃশ্যত: আমি কি না? AUDIENCE:. সংরক্ষণ করুন ডেভিড জে MALAN: আমার ফাইল সংরক্ষণ করুন. যাতে সহজেই কন্ট্রোল S আঘাত, বা গিয়ে হয় মীমাংসিত ফাইল, অধিকাংশ প্রোগ্রামের মত, সংরক্ষণ করুন. আমাকে নিচে এখানে যান, পর্দা পরিষ্কার, এটি পুনরায় সঞ্চালন করা হয়. এবং এখনও সেখানে একটি বাগ. তাই কি হবে - AUDIENCE: আপনি না কম্পাইল করে থাকেন. ডেভিড জে MALAN: আহ, ভালো. আমি এটা কম্পাইল না. একজন গাধা ভালো লেগেছে, আমি কি ভুল কোড এ খুঁজছি. সুতরাং ঝনঝন buggy1.c, এখন a.out. এবং রাম রাম, সংরক্ষিত. তাই মনে একটু অসুন্দর কারণ কোন নতুন লাইন আছে কোথাও ইন প্রোগ্রাম. কিন্তু আবার, যে মাত্র একটি নান্দনিক বিস্তারিত. এবং অন্তত যদি আমরা যারা আউট গণনা, আমরা should এখন 10 যেমন বড় দেখুন. ওয়েল, এই দ্বিতীয় উষ্ণ আপ উদাহরণ সম্পর্কে কি? সুতরাং buggy2 মধ্যে, আমি দাবী করে যে এই সংস্করণ খুব,, মুদ্রণ করা 10 বড়, লাইন প্রতি একটি. এই সময়, তাই আমি একটি newline অক্ষর আছে, ঠিক না জিনিষ একটু prettier. কিন্তু এর পরিবর্তে কি আমি পেতে হয় এই. সুতরাং সম্পর্কে ঝনঝন buggy2.c না যাক, লিখুন. এখন আবার বলা এর a.out. লিখুন. আমি শুধুমাত্র এক নতুন লাইন, কেবল শেষ নতুন লাইন দেখতে যে পরের লাইন আমার প্রম্পট চলে আসে. এবং এখনো আমি স্পষ্ট হয়েছি * মুদ্রণ, তখন একটি নতুন লাইন, *, তখন একটি নতুন লাইন. কিন্তু এখানে কি বাগ? হাঁ? AUDIENCE: [শ্রবণাতীত]. ডেভিড জে MALAN: যথাযথভাবে. সুতরাং অসদৃশ কিছু পাইথন, যেখানে খাঁজ মত ভাষা, আসলে হয়েছে একটি কার্মিক অর্থ, C-এর মতো ভাষা - হিসাবে আমরা দেখতে পাবেন, পিএইচপি, জাভাস্ক্রিপ্ট - খাঁজ শুধু মানুষের 'সুবিধার জন্য সত্যিই হয়. সুতরাং যে আমি লাইন 16 এবং 17 সংভৃত করেছি দেখায় মহান, কিন্তু কোন কার্যকরী অর্থ রয়েছে. যদি আমি উভয় লাইনের জন্য অংশ হিসাবে নির্বাহ করতে ইচ্ছুক লুপ, তারপরে আমি কোঁকড়া ধনুর্বন্ধনী তাদের এই কাজ দ্বারা বেষ্টন করা আবশ্যক. আপনি কেবল যে কোণ কেটে কোঁকড়া ধনুর্বন্ধনী যদি বর্জন করতে পারেন কেস কি? AUDIENCE: শুধু এক লাইন. ডেভিড জে MALAN: মাত্র এক লাইন. যাতে এর একটি বাক্য গঠন বিস্তারিত চমৎকার ধরণের ঠিক সাজানোর যাতে আপনি তিন লাইন লেখা কি অপব্যয় সময় না, দুই যার মধ্যে উল্লেখযোগ্য হল কোঁকড়া ধনুর্বন্ধনী, মাত্র এক লাইন কোড লিখে যাও. তবে আপনি যদি দুই বা ততোধিক লাইন আছে, আমরা প্রকৃতপক্ষে এটি করতে হতে পারে. সুতরাং এখন আমাকে এই সংরক্ষণ করুন. আমাকে এগিয়ে যান এবং পুনরায় চালনা ঝনঝন. তারপর সম্পর্কে a.out পুন: প্রকাশ যাক, এবং এখন আমি তাদের প্রতি লাইনে একটি পেতে. এখন, আবার a.out একটি প্রোগ্রামের জন্য হাবা নামের মত. কিভাবে ঝনঝন আমি আসলে সম্পর্কে একটি ফাইল নাম দিতে বলতে পারেন যে buggy2 নিজেই একটা আরো ব্যবহারকারী বান্ধব,? একটু আরো পরিষ্কারভাবে? AUDIENCE: [শ্রবণাতীত]. ডেভিড জে MALAN: ঠিক আছে, তাই আমি খুব আসলে নিতে পারেন ব্যবহারকারী বান্ধব শর্টকাট এবং শুধুমাত্র লিখুন buggy2 করা. আমি এই ক্ষেত্রে না গ নির্দিষ্ট করে না., এবং আঘাত লিখুন. এবং কি করা আছে এটা দ্বারা প্রনয়ন সম্পর্কে জন্য buggy2.c ঝনঝন তা জিজ্ঞাসা. বিশেষ করে, এটি ঝনঝন আহ্বান, এটি ঝনঝন রান উপায় আরো ব্যবহার কমান্ড লাইন আর্গুমেন্ট বা সুইচ আসলে আমি বেশী প্রয়োজন. সময়, আমরা এইসব বিভিন্ন কি সব যাও ফিরে পাবেন রহস্যপূর্ণ hyphenated এক্সপ্রেশন মানে. কিন্তু এখন জন্য, শুধু যে সংরক্ষণ এর সমস্যা সম্পর্কে মনে হচ্ছে এবং ঐ সমস্ত টাইপ আউট হচ্ছে বিভিন্ন hyphenated এক্সপ্রেশন. এবং পরিণামে তা ন্যুব্জ হয় এখন আমি যে buggy2 আছে. যদি আমি এই কাজ নিজে করতে চান, যদিও, আমি এই পরিবর্তে করতে পারেন - ঝনঝন-o buggy2 এবং তারপর buggy2.c. এবং একইভাবে যে দিতে নামক কোনো ফাইল buggy2 সম্পর্কে হবে. তাই সংক্ষিপ্ত, ঝনঝন এর কম্পাইলার. হয় না, শুধুমাত্র একটি ব্যবহারকারীর বন্ধুত্বপূর্ণ টুল যা আমরা আরো ব্যবহার করা হবে এবং আরো, কারণ এটা আরম্ভ যাও আমাদের জন্য জিনিষ সহজ করে. এবং আমরা ফিরে 0 সর্বশেষে,. জন্য এখন মাত্র, কারণ, কিন্তু আমরা যে অংশ টিজিং শুরু করব এবং আজ বুধবার. এই যেকোন কোন প্রশ্ন? হাঁ? AUDIENCE: [শ্রবণাতীত] উদ্ধৃতি সেখানে ls? ডেভিড জে MALAN: ঠিক আছে. যখন আমি কোট টাইপ ls, যে সম্পর্কে কিছু ছিল জাদু করছেন পর্দার পিছনের একটি বাগ ফিক্স. আমি ভুলে গেছি, যেমন আমরা করছি আপনার অনেক কহন আলোচনা বোর্ডে, না - আমরা এখন এই দেব - উবুন্টু জন্য yum-y আপডেট appliance50. ওহো, যে যে সঠিক বানান এর. সুতরাং প্রয়োগ একটি অপারেটিং সিস্টেম ভালো হয়. এই অপারেটিং সিস্টেম বলা Fedora-এর চলমান. কারণ আমার ধীর গতির ইন্টারনেট সংযোগ এবং এখন, আমি করেছি সত্যিই এটি আঁটো পাজামা পরিহিত. তাই উবুন্টু yum-র সংস্করণ, হিসাবে আমরা কি করতে চান আপনি বলুন সমস্যা সেট মূলত, স্বয়ংক্রিয় আপডেট চলমান পছন্দ মধ্যে ম্যাক OS বা উইন্ডোজ. এবং খুব শুরু করার জন্য এই চলমান কারণ সমস্যা সেট কারণ যখন আমরা যন্ত্রপাতি তৈরি, আমি তছনছ আপ, এবং আমি ঘটনাক্রমে আপনার প্রোগ্রামের সব চেহারা একটি কালো পর্দায় কালো, যা আপনি কেন তাদের নিরীক্ষা করছি না ডিফল্ট. কিন্তু প্রয়োগ সর্বশেষ সংস্করণ এই সমস্যা সমাধান করা হয়েছে. এবং আমি বিরতির সময় যে একবার আমি ইন্টারনেট আছে ফিক্স করব সংযোগ. তাই ঠিক কোট আমার ভুল hides, খুব discreetly, দৃশ্যত. অন্য প্রশ্ন? হ্যাঁ? AUDIENCE: কোথা থেকে আসে না? [শ্রবণাতীত] ডেভিড জে MALAN: গুড প্রশ্ন. কোথা থেকে আসে না? এটি একটি লিনাক্স প্রোগ্রাম যে অনেক বছর অস্তিত্ত্বকে করেনি, দীর্ঘ আগে CS50. এবং এটি একটি Fedora-র মত অপারেটিং সিস্টেমের সাথে আসে. এটা CS50 লাইব্রেরি থেকে আসে না. আসলে, কেবল জিনিস CS50 লাইব্রেরি থেকে যে আসা দূর পর্যন্ত, যে আমরা দেখা করেছি, হয় GetString, GetInt, সব যারা ফাংশন, পান এবং শব্দ স্ট্রিং এবং কিছু ব্যাপ্তি, শব্দ bool. কিন্তু আমরা যে পৃথক্ যখন আমরা CS50 মধ্যে আকর্ষণীয় জ্বালাতন করা হবে যন্ত্র নিজেই. তাই হ্যাঁ, এখানে আরো একটি প্রশ্ন. AUDIENCE: আপনি যখন বলেন, এবং তারপর করতে বগী, কিভাবে আছে কম্পিউটার [শ্রবণাতীত] জানেন? ডেভিড জে MALAN: গুড প্রশ্ন. সুতরাং যখন আপনি রান buggy1 বা করতে buggy2 করা, কিভাবে না জানি না? সুতরাং ডিফল্টরূপে, যদি আপনি buggy1 টাইপ করা, একটি জন্য কেমন লাগে না ফাইল নামক buggy1.c. এবং তারপর এটি উপযুক্ত ঝনঝন কমান্ড করুন, যার ফলে ডিফল্ট আউটপুট ফাইল নামক a.out অগ্রাহ্য করা হবে. আসলে, যদি আমরা কি করতে তাকান, কি - আসুন এই ত্যাগ করুন. যদি আমরা কি করতে ছিল প্রকৃতপক্ষে করছেন তাকান, buggy2 করা, এটি ইতিমধ্যেই আপ টু ডেট. সুতরাং সম্পর্কে rm কমান্ড সরিয়ে দিন, প্রোগ্রাম আমি আগে লিখেছে. Y-ই-S আমি যে এটি সরাতে চান তা নিশ্চিত টাইপ. এখন যদি আমি না করতে, এই দীর্ঘ লাইনে যে বিজ্ঞপ্তি, এখানে আছে এই শেষ জিনিস,-o buggy2. সমস্ত করতে করছে যে যুক্তি হয় ক্ষণস্থায়ী, তাই কথা বলতে যাও, যাও ঝনঝন শব্দ, তাই আমি নিজেকে টাইপ করতে হবে না. সমস্ত অধিকার, তাই একটি প্রশাসনিক দ্রুত দম্পতি ঘোষণা. সুতরাং বিভাগে জন্য, আনুষ্ঠানিকভাবে শুরু হয় এই আসছে রবিবার, আপনি সবসময় আনতে চান, যদি করব আপনি এক, একটি ল্যাপটপ আছে. আপনি যদি একটি ল্যাপটপ না থাকে, আমার কাছে পৌঁছাতে দ্বারা ড্রপ করা একটি ইমেল সম্পর্কে. এবং আমরা একটি কর্মপ্রবাহ চিন্তা করব. সাধারণত আপনি কি বিভাগে পাবেন যে তারা অংশ ধারণাগত, অংশ হাত উপর. আমরা বিশেষভাবে প্রশ্নের অধ্যায়, অংশ ব্যবহার করব সপ্তাহ এর সমস্যা সেট, কিছু ভিতর দিয়ে হেটে যেতে বক্তৃতা থেকে ধারণাগত উপাদান. এবং যে বর্তমান সমস্যা সেটে সব. এবং আমরা কিছু হাত-কাজকর্মের মধ্যে, আকর্ষণীয় কখনও কখনও করব যা প্রয়োজন জমা করা হবে, মাঝে মাঝে মধ্যে যা না করবে না. উদাহরণস্বরূপ, এই প্রথম সপ্তাহে, তারা শুধু একটি হিসাবে বোঝানো করছি উষ্ণ আপ ব্যায়াম. এবং আপনি যে সমস্যার যারা সত্যিই শুধু যে খুঁজে পাবেন. তারা মোটামুটি ছোট হতে বোঝানো, কিন্তু করছি না অগত্যা তুচ্ছ প্রোগ্রাম লিখতে, যে অগত্যা না হয় উত্তেজনাপূর্ণ এবং নিজেদের মধ্যে কিন্তু ভাল সুযোগ নতুন ফাংশন অভ্যাস সিনট্যাক্স সঙ্গে, একটি অসুবিধা মধ্যে, অধ্যায় যেখানে আপনি আপনার সহপাঠীদের মধ্যে কয়েকটি আছে হিসাবে উপস্থাপন পাশাপাশি আপনার TF. আমরা কি সময়ের করব নামক একটি টুল CS50 স্পেস ব্যবহার হয়, তদ্দ্বারা পরিবর্তে শুধুমাত্র CS50 অ্যাপ্লায়েন্স ব্যবহার করে, আপনি পাবেন একটি ওয়েব পাতা পরিবর্তে একটি ব্রাউজার যান, যেখানে আপনি করতে পারবেন বিভাগের সময় একটি ব্রাউজার উইন্ডোতে এই কোড লিখুন. এবং তারপর যদি আপনার বেছে নেওয়ার মধ্যে, তারপর আপনি শিক্ষণ সহকর্মী দেখাতে পারেন যাই হোক না কেন এটা আপনি আপনার পর্দায় আপনার ব্রাউজারে টাইপ করছেন বর্গ সামনে এ আপ উইন্ডোতে, বেনামে কিনা বা প্রকাশ্যে, যাতে তিনি তারপর সঙ্গে ভিতর দিয়ে হেটে যেতে পারেন আপনার সহপাঠীদের কি ভাল কি কি, আপনি ভাল না না. এবং আবার, আশ্বস্ত এই সব সুন্দরভাবে অনামী করা যাবে. কিন্তু আরো অনেক জন্য একটা চমৎকার সুযোগ পাবেন বক্তৃতা ভালো কিছু তুলনায় ইন্ট্যার্যাক্টিভিটির করতে পারবেন. ইতিমধ্যে, আমরা এইসব জিনিস নামক সুপার করতে হবে অংশ, যা ঐচ্ছিক কিন্তু আছে সকলের জন্য খোলা আছে যাতে বর্গ, আপনি এই কাজের জন্য আরো সম্মিলিতভাবে করতে পারেন সমস্যা এক সেট. এখানে সময়সূচী. এই cs50.net এ হোমপেজে প্রকাশিত হয়েছে. উল্লেখ্য, একটি হ্যাকার নির্দিষ্ট সেখানে পাবেন এক আগামীকাল বিকেলে. এবং আমরা আজ এবং আগামীকাল এক চিত্রায়িত এবং যারা পোস্ট করতে হবে 24 ঘন্টার মধ্যে অনলাইন. তাই আপনি যদি এই সময়ের কোনো, না পারেন না চিন্তা. এবং আবার, সময়সূচী অনলাইন cs50.net এ এখন. নিজেই sectioning নিরিখে, আপনি একটি অর্জিত উচিত আপনি খুঁজে পাবেন অবশ্যই এর হোমপেজে যেতে অধ্যাপনা ইমেইল আপনার অধ্যায়. যদি জীবন এবং পরিবর্তিত আপনার অধ্যায় পরিবর্তন প্রয়োজন করেনি, . একটি সমস্যা না যে একই URL, cs50.net/section, একবচন ফিরে যান, এবং আপনি অনুরূপ ফর্ম পূরণ করতে পারেন যাতে আপনি পাবেন তারপর আমাদের আপনার অগ্রাধিকার দেবে. এবং আমরা সপ্তাহ এর শেষে অনুসরণ করতে আমরা কী করতে পারেন হিসাবে আপ করা মিটমাট করা. গত সপ্তাহে, প্রত্যাহার যে আমরা প্রস্তাবিত CS50 আলোচনা ব্যবহার করে, অবশ্যই এর বক্তৃতা আলোচনা হাতিয়ার,. তাই আমরা 40 যে প্রশ্নগুলি জিজ্ঞাসা করা হয়েছিল এবং বক্তৃতা সময় উত্তর. সুতরাং ভাল কাজ করলো, যাতে আমরা চালিয়ে যাব এটি করার চেষ্টা করছেন. বক্তৃতা করার সময় যদি,, আপনি শুধু আরামদায়ক বৃদ্ধিকারী বোধ না আপনার হাত, সমস্যা নয়. যাও cs50.net/discuss যান সেখানে, পোষ্ট, এবং আমাদের শিক্ষণের এক ফেলোগণ এটি বৈদ্যুতিন হয় উত্তর বাড়াতে হবে অথবা তাদের আপনার পক্ষে হাতের চাইতে হবে, তার উপর নির্ভর করে বেনামে প্রশ্ন প্রকৃতি. এবং প্রতিক্রিয়া শর্তাবলী, সাধারণত psets হবে এক সপ্তাহের মধ্যে ফিরে আসেন. কারণ এটা অল্প সময় নেয় জন্য বিভাগে অর্জন যাও সুস্থিতি, প্রথম pset, 0 এবং 1, সামান্য বিট হতে হবে বিলম্বিত হিসাবে জিনিষ খুঁটি গাড়া. কিন্তু যে জন্য খেয়াল রাখুন সপ্তাহের মধ্যে আসা. ঠিক আছে, তাই আমাকে আমার গুরুতর আরোপ করা শুধু একটা মুহূর্ত জন্য ভয়েস. তাই এই প্রকৃতপক্ষে একটি আকর্ষণীয় জলবায়ু করা এই আলোচনা হচ্ছে, কি সহ অন্যান্য জিনিসপত্র সব ক্যাম্পাস সম্পর্কিত তত্প্রতি নেভিগেশন এড়িয়ে যাওয়া. কিন্তু অবশ্যই CS50 করেনি এই বিশেষ করে ইতিহাস ছিল প্রতি বছর হিসাবে হিসাবে অনেক, এই কোর্সে বিষয়, অনেক জন্য, বছর, বিজ্ঞাপন বোর্ড বর্গ প্রায় 3%. এই সাম্প্রতিকতম বছর, 2011, CS50 35 ছাত্র Ad-Boarded. এই কারণে স্বচ্ছতার অভাব, আমি মনে করি, না. বুঝি যে কোর্স এর মধ্যে পাঠ্যক্রম, একটি পাতা আছে বিবৃতিতে ব্যাখ্যা করে যেখানে লাইনে. একই বিবৃতির প্রতি এক পুনরাবৃত্তি করা হয় পাতা এক সমস্যার সেট করে. তাই আমি সত্যিই শুধু না এই আজকের উল্লেখ লোকেরা এই সম্পর্কে সচেতন থাকুন. এবং আমরা বিভিন্ন জিনিষ চেষ্টা করেছি. এবং শুধু কি আমি চিন্তা আমরা আজ কি হয় একটি মুহূর্ত গ্রহণ অতীতের যে মামলাগুলি আপ এসে কয়েকটি আসলে চেহারা. বরং এই হিসাবে মলিন সামান্য গোপন, আসলে রাখা বাতলান কি ছাত্র পেরেছেন, এবং কিভাবে আমরা সনাক্ত করেছি এটি সত্যিই কি এবং সর্বোচ্চ প্রেরণা জন্য এমনকি এই কথোপকথন হচ্ছে. সুতরাং যে বলেন, মূলত এই লাইনটি - পাঠ্যসূচি অনুযায়ী, আপনি স্বাগত, করছি আপনি উত্সাহ, সহপাঠীদের সঙ্গে কথা বলুন. এটা এই সহযোগীতা ও থাকার সমগ্র উদ্দেশ্য Annenberg অফিস এবং ঘন্টার জন্য উত্সাহ মানুষ চূড়ান্ত প্রকল্প একত্রে কাজ. কিন্তু লাইন যখন আসে আসলে লিখতে সময় টানা হয় আপনার চূড়ান্ত সমাধান. ইংরেজি ভাষী, সম্পূর্ণই জরিমানা, সিউডো কোড বলতে, সম্পূর্ণই সূক্ষ্ম. আপনার ইমেল pset একটি সহপাঠী, লেট তাদের চেহারা উপর পর্দা হিসাবে হাত টাইপ চালিয়ে যেতে, উপর লাইন হিসাবে ভাল. বিশেষ লাইন জন্য পাঠ্যক্রম যাও তাকান না. কিন্তু ঠিক কিভাবে এই দূর্ভাগ্যবশত একটি একটি ছবি আঁকা বাস্তবে, বুঝতে পারি যে ওয়েবসাইটে আছে সেখানে যে আউট এই বর্গ এবং অনেক অন্যান্য ক্লাস থেকে সমাধান আছে. সত্য যে আপনি অথবা আপনি কিছু জানেন যে এই 3% বিদ্যমান মানে যে আমরা জানি যে, এই বিদ্যমান. আসলে যে ভালো আছে যেখানে আপনি ওয়েবসাইটের কেউ আসলে আপনার সমস্যা সেট করতে দিতে পারেন - এই ছিল একটি প্রকৃত ক্ষেত্রে যে এসেছেন গত বছর. এটি একটি ওয়েবসাইট নামক odesk.com. এবং টিম ছিল ব্যক্তির নাম এখানে যারা পোস্ট ছিল এই ওয়েবসাইট এবং তার pset 7 কি কাউকে জিজ্ঞাসা এই নির্দিষ্ট ক্ষেত্রে. ওয়েল, odesk.com খুবই Google-এর সক্ষম, এবং আমরা খুব বেশি হয় Googling খুব ভাল. এখানে খুব,, সাইট নেই - এবং এই এক বরং এর নৃশংস, অকপটে. [হাস্য] ডেভিড জে MALAN: এই সাইট সম্পর্কে মজার জিনিষ যদি আপনি আমার পড়া পাতা, তারা তাদের কর্পোরেট সম্পর্কে কথা বলা সংস্কৃতি এবং কিভাবে গ্রাহক সেবা তাদের এ এক নম্বর অগ্রাধিকার, নিশ্চিত করতে হবে যে আপনার দ্বারা প্রাপ্ত সময় মধ্যে প্রমাণিত. কিন্তু সব গম্ভীরতা, আবার যে, আসলে এই সাইটগুলি অস্তিত্ব আমরা বুঝতে খুব,, হয় জ্ঞাত র এই ধরনের সাইট. এবং আপনাকে কি একটা ধারনা দেবে এবং সাধারণত এই ফর্ম সময় লাগে, সাধারণত আমরা মহান কেলেঙ্কারিতে নেই যেখানে মানুষ প্রচুর পরিমাণে যে কোন ধরণের উপর, বরং সহযোগী হয় এটা এই দুর্বলতা ইদানীং রাত মুহুর্ত, যেখানে আপনি যাতে আছে না অনেক, এটা 4:00 AM না, আপনি ক্লান্ত এবং আপনি করছেন নিজের মনে হয়, ভাল, আমাকে শুধু আমার কটাক্ষপাত করা একই ঘরে বাসিন্দা এর বা আমার বন্ধু এর কোড বা ভালো. এবং দুর্ভাগ্যবশত এই প্রকাশ শিক্ষার্থী জড়িত করা এই ছাত্র এবং বি জমা জমা দেওয়ার মত কিছু একটি কম্পিউটারের মধ্যে কিছু ভালো, যা অবশ্যই, বিজ্ঞান বর্গ, কম্পিউটার বিজ্ঞানীদের জন্য সহজ সাতিশয় সফটওয়্যার সনাক্ত করা যাবে. এই একটি সাধারণ উদাহরণ, যেখানে আপনি ধরণের করেছি এর পাশাপাশি কেউ, কাজ হয়তো কথা বলা হয়েছে ইংরাজি, শুধুমাত্র জরিমানা, pseudocode. কিন্তু তারপর এটা আসলে জমা সময় আসে, এবং psets শুধু ইমেল বা ড্রপবক্স বা ভালো মাধ্যমে বিনিময় করা হয়. কিন্তু একটি প্রচেষ্টা এটি কম স্পষ্ট যে এটি করা কি ঘটেছে করেনি তারপর, এই কি জমা হচ্ছে. এটি খুব,, ট্রিপ ভাল লেখা টুকরা আপ না সফ্টওয়্যার মত আমরা আসলে সনাক্ত করা আছে এই ধরনের জিনিস. এবং নিশ্চয় আমরা কি করব তা হল যে সব সফ্টওয়্যার রান তুলনা অতীত বছরের সকল বিরুদ্ধে এই বছরের জমা সবকিছু বিরুদ্ধে জমা, আমরা খুঁজে পাওয়া প্রতি আছে পেশা ওয়েবসাইট বিরুদ্ধে ইন্টারনেট,. এটা খুব স্বয়ংক্রিয়. তাই আমরা কি মহান সততা মধ্যে সত্যিই এই 97% যারা সত্যিই এই কাজ করা হয় এবং অন্যান্য তাদের asses বন্ধ ক্লাস এবং যে প্রচেষ্টা সব নির্বাণ যাতে কাজ পরিণামে তারা তাদের নিজস্ব জমা দিন. এবং আমি বয়সের জন্য যেতে হতে পারে. এগুলো হল গত বছর এর ক্ষেত্রে একটি থাবা. কয়েক ছাত্র জমা pset 2 অভিন্নরুপে জন্য এই ফাইলগুলি, pset 3, 4 pset, pset 5, pset 6, pset 9. এই ক্ষেত্রে, এই ছিল ব্যঙ্গ 0 এবং, যেখানে দুটি গত বছরে ছাত্র জমা মধ্যে অভিন্নরুপে এই বাক্য অন্যদের, "ধরনের অনুরোধ -" বিন্দু, বিন্দু, বিন্দু. তাহলেও 600 একটি বর্গ আমরা এই কি সনাক্ত জমা quizzes. তাই সংক্ষিপ্ত, এই - উন্মুক্তভাবে, আমি এই ধরনের ঘৃণা হচ্ছে কথোপকথন - কিন্তু এই সত্যিই একটি ইচ্ছাকৃত প্রচেষ্টা এই বছরে যে নম্বর ও ড্রাইভ করার চেষ্টা যাও. কারণ যদিও আমরা বলতে জিনিষ এই ধরনের প্রতিটি এক বছর, আমি কয়েক জন্য এটি dwelled থাকার বাস্তবতা মনে স্বাভাবিকের তুলনায় আরো যাও এবং শুধু ইশারা যে কি, ভালো অঁ্যা, না, যেমন একটি বড় চুক্তি, অন্তত মনে হতে পারে এই বিশেষ মুহূর্ত ফিরে চিন্তা, উভয় ক্ষেত্রে সততা যাও নিজেকে এবং আপনার এখানে সহপাঠীদের. তাই কখনও যদি আপনার কোনো প্রশ্ন থাকে হিসাবে যেখানে লাইন হয়, ঠিক আমার আউট ব্যক্তিগতভাবে পৌঁছান. কিন্তু উত্তর সবসময় হয়, এ সম্পূর্ণরূপে জোর শেষ মিনিটে, শেষ দিকে দিনের নগদ. বা যদি কোনো দিন দেরী হচ্ছে না একটি ব্যাপার, সত্যি বলতে, ব্যক্তিগতভাবে আমাকে ইমেইল. আমরা কিছু চিত্র আউট করব. না দয়া করে হার্ভার্ড এ সময় আপনার করা না এখানে ঝুঁকি. এখন, আমি চিন্তা আমরা মেজাজ হালকা করা উচিত, তাই আমি পরবর্তী স্লাইড হিসাবে এই অন্তর্ভুক্ত. [হাস্য] ডেভিড জে MALAN: এই ওয়েবসাইটটি ছিল দুর্দান্ত. আমি আসলে একটু বিভ্রান্ত না. এই একটি আছে. এবং তারপর এই এক আশ্চর্যজনক ছিল. ঠিক আছে, যাতে বিড়ালছানা ইদানীং মনে রাতে যখন তৈরীর সেই সংকল্প. সমস্ত অধিকার, আরো মজা ফিরে যাতে এবং অপেক্ষাকৃত কম গুরুত্বপূর্ণ উপাদান, যেমন শর্ত. ঠিক আছে, তাই আমরা এই স্বপ্ন সংক্ষিপ্তভাবে. এইটি এমন কিছু বিষয় যা সম্ভবত এর থেকে বেশ পরিচিত ভূত বিশ্বের. এবং শয়তান বিশ্বের, আমরা এই প্রয়োজনীয়তা থাকে মাঝে মাঝে রোড কাটাচামচ করতে যান. হয় বা এই যে এখানে এই বা অন্যান্য জিনিস করে. এবং যখন আমরা এই কাজ করতে চান, আমরা, C-এখন, এই যদি ব্যবহার করতে পারেন অন্য গড়া. এবং তারপর এখানে আমরা বুলিয়ান এক্সপ্রেশন আছে. উদাহরণস্বরূপ, বুলিয়ান এখানে এক্সপ্রেশন, আমরা বা করতে পারেন তাদের একসঙ্গে, এ অর্থে যে আমরা এই শর্ত আছে বা যে অবস্থা. আমরা ও তাদের একসঙ্গে অর্থে যে আমরা চাই এ, করতে পারেন এই অবস্থা ও যে অবস্থা পরীক্ষা. এবং এখানে আমরা একটি বিবৃতি এখন সুইচ আছে, যা হল না অবস্থার ঐ ধরণের চিহ্নগুলি সিন্টেক্সের অনুরূপ, কিন্তু এটি আমাদের যদি সমতুল্য অন্যথায়, যদি, অন্যথায় যদি, অন্য করতে পারবেন যদি, কেবল enumerating ক্ষেত্রে দ্বারা ক্ষেত্রে তাদের দ্বারা এবং ভালো দ্বারা কেস দ্বারা কেস. তাই আমরা যারা শেষ সময় দেখেছি. এবং তারপর আমরা শুরু loops ভালো জিনিসের উপর স্পর্শ. আমরা এই এক দেখেছি শুধু একটা মুহূর্ত আগে. কিন্তু এইসব অন্যান্য looping নির্মান আছে. উদাহরণস্বরূপ, এই এক এখানে. সুতরাং (অবস্থা), এই ব্যাপার আবার এবং আবার কি. সুতরাং মৌলিকভাবে, কি এই মধ্যে আলাদা হবে বলে মনে হয় জন্য লুপ এবং এখানে এই সময় লুপ? লুপ এবং এই সময় এই লুপ জন্য. হাঁ? ওটা কি? AUDIENCE: [শ্রবণাতীত]. ডেভিড জে MALAN: গুড. তাই লুপ অবস্থার জন্য যেহেতু, এর পরিষ্কারভাবে আছে আরো সিনট্যাক্স. এই প্রারম্ভিক আছে, এই আপডেটে আছে. যখন একটি লুপ, ঠিক আছে এই অবস্থা. তাই মনে হয় যে এটা একটা সামান্য বনাম pared নিচে জন্য লুপ, যার মানে যদি আমরা ভেরিয়েবল আছে চাই এবং আমরা চাই যাও incrementation আছে, আসলে আমরা আছে আমরা নিজেরাই কি এই জিনিস. তাই আমাকে এগিয়ে যান এবং gedit খুলুন. আমাকে প্রয়োগ মাধ্যমে সুইচ. আর এর যাক একটি দ্রুত সামান্য উদাহরণ যে আলাদা অন্যান্য থেকে এই এক. এবং আমার মন এখানে পিঠ, আমি এক জিনিস বলতে হবে. আমি বিশেষভাবে নাম টিম উল্লেখ করেছে. টিম আসলে কেউ যে কোনো শিক্ষার্থী করবেন অনুসন্ধান করার তাদের জন্য তাদের বাড়ির কাজ. আমরা যে বিশেষ অধ্যায় কোন টিম ছিল. সুতরাং, বুঝতে পাছে আমি একজন ছাত্র প্রকাশ, এটি একটি ছাত্র ছিল না. এটা ছিল একটি ইন্টারনেট র্যান্ডম ব্যক্তির জিনিসগুলি দ্বারা প্রক্সি গত বছর. সুতরাং আমরা যে, খুব খুঁজতে. সুতরাং এখানে এই ক্ষেত্রে, সম্পর্কে এগিয়ে নিয়ে চলুন এবং একটি নতুন ফাইল খুলুন. ফাইল, গেম. এই দেয় একটি ট্যাব সম্পর্কে এখানে. আমাকে এগিয়ে যান এবং হিসাবে এটি সংরক্ষণ loop.c. আমাকে যেতে সংরক্ষণ করুন এবং ক্লিক করুন. এবং তারপর নিচে, এখানে আসুন এগিয়ে যান এবং লেখা শুরু # অন্তর্ভুক্ত . আমাকে জুম ইন এখন আমরা int প্রধান (অকার্যকর) করব. তোমার <; এখন (int i = 0 জন্য আমাকে এগিয়ে যান এবং না উহু, 10; i + +). এবং এখন আমি এগিয়ে যান এবং তারকা প্রিন্ট যাচ্ছি যে আমি কি আগে. এই প্রোগ্রাম শেষে এবং তারপর, আমরা চলুন যাও একটি নতুন লাইন, মুদ্রণ ঠিক যে আমার প্রম্পট সব মলিন চেহারা না. 0 ফিরে. চিহ্নগুলি সিন্টেক্সের ক্ষেত্রে সঠিক বলে মনে হচ্ছে? এ পর্যন্ত. সুতরাং আসুন দেখুন. সুতরাং সম্পর্কে জুম আউট যাক, আমার টার্মিনাল উইন্ডোর মধ্যে যান. সম্পর্কে এবং এগিয়ে যান এবং লুপ চালানো যাক, কারণ আমি এই নামে জিনিস loop.c. সুতরাং লুপ করা. কম্পাইল করার জন্য ঠিক মনে হচ্ছে. আমাকে লুপ, সঞ্চালন ও এখন লিখুন. এবং মনে হয় 10 বড় মুদ্রিত আছে. তাই আসুন শুধু একটি লুপ যখন এই রূপান্তর এবং কি দেখুন বিষয় আমরা ট্রিপ উপর ধরণের. সুতরাং পরিবর্তে এই, আমাকে এখানে যান এবং বলতে সময় হল 10 এর কম - আমাকে লুপ জন্য পরিত্রাণ পেতে. ঠিক আছে, তাই আমরা সমস্যার একটি দম্পতি আছে ইতিমধ্যে. সুতরাং শর্ত হচ্ছে একই, কিন্তু আমি অবশ্যই করছি অনুপস্থিত আরম্ভের. আমি incrementation am অনুপস্থিত. তাই সম্ভবত কি কম্পাইলার সম্পর্কে যখন আমি চেষ্টা যাও জানাবেন এই প্রোগ্রাম কম্পাইল? হাঁ? AUDIENCE: [শ্রবণাতীত]. ডেভিড জে MALAN: গুড. এই - সুতরাং অঘোষিত ভালো কিছু বলতে যাচ্ছে কেস, তোমার পরিবর্তনশীল. এবং প্রকৃতপক্ষে অঘোষিত শনাক্তকারী তোমার সারাংশ, ব্যবহার. তাই এই পিএইচপি মত ভাষা বিপরীতে হয় এবং যার সঙ্গে পাইথন এবং রুবি, আপনি কিছু পরিচিত হতে পারে, যেখানে আপনি শুরু ভেরিয়েবল ব্যবহার করে মাত্র ধরনের পারেন ভাল লাগুক আর নাই লাগুক না এবং তাদের প্রকাশক চিন্তা আছে স্পষ্টভাবে সবসময়. সি এবং জাভা এবং C + + ভাষায় ভালো, আপনি হবে সুপার স্পষ্ট. এবং যদি আপনি একটি পরিবর্তনশীল তোমার নামক চান, তাহলে সম্পর্কে জানাতে হবে পরিবর্তনশীল কি ধরনের হয়. তাই আমরা এই হিসাবে অনুসরণ করে ঠিক করা আছে চলুন. আমি আপ করতে এখানে যান এবং int আমি টাইপ আছে যাচ্ছি; সুতরাং, আমি একটি পরিবর্তনশীল তোমার নামক ঘোষিত. এখন, আমি এক ধাপ এড়ানো করেছি. আমি স্পষ্টত সক্রিয়া করেছি, এটি না কিন্তু এর যাক দেখতে হলে যে এ অন্তত তোলে ঝনঝন স্টপ অভিযোগকারী. তাই আমাকে এই প্রোগ্রাম পুনর্নির্মাণ. ঠিক এখন, এটা এর অভিযোগ ভিন্ন একটি কারণে. "পরিবর্তনশীল 'আমি' যখন এখানে uninitialized ব্যবহৃত হয়." সমস্ত অধিকার, তাই যে বেশ স্পষ্ট. সক্রিয়া করা ঠিক সেটিং মানে এটি একটি মান সমান. এবং আমরা যে তাই, সম্পর্কে জানাতে চেষ্টা 0 উল্লেখ করেছেন না. এখন আমি কি আবার এই চেষ্টা এবং পুনরায় চালনা ঝনঝন. এই সময় সংকলিত. এবং আমি এটি চালানো সম্পর্কে. কিন্তু বড় পুরানো অসীম লুপ, কারণ আমি সম্পন্ন করেছি আরম্ভের, আমি শর্ত সম্পন্ন করেছি, কিন্তু আমি কখনই সম্পন্ন করেছি incrementation যে কোন ধরণের. সুতরাং কিভাবে incrementation আমি কি করতে পারি? যখন একটি লুপ ভাল,, এটা মনে আছে ভালো আমি চলেছি যাও লুপ এর ভিতরে প্রথম কারণ অনেক ভালো না, looping নির্মান করছেন সপ্তাহে এর উদাহরণ সঙ্গে মত, স্ব - কাউন্টিং সঙ্গে মোজা এবং, আমরা কি ছিল খুব শেষে কিছু, আর পরের লাইনে ফিরে যান. এই আমি আমি যদি এগিয়ে যান এবং কি + এখানে? চলুন এমনকি এই কম্পাইল না. সম্পর্কে ইতিমধ্যে ক্যাচ. ভুল কি এখানে? AUDIENCE: [শ্রবণাতীত]. ডেভিড জে MALAN: এটা স্পষ্টভাবে int না. এটা তোমার. এবং তরঙ্গায়িত আগে ভালো ধনুর্বন্ধনী,, খাঁজ যথেষ্ট নয়. তাই এখন আমি এই উঠান আছে. সুতরাং আমি 10 এর কম, একটি তারকা মুদ্রণ, তারপর তোমার বাড়ায়. এবং যখন একটি উপায় লুপ কাজ যে যত তাড়াতাড়ি হয় আপনি আঘাত লুপ নীচে, যা লাইন 10 মত এই ক্ষেত্রে দেখায়, এটি ফিরে লাইন 6 যান যাচ্ছে, এর মধ্যে বিন্দু শর্ত আবার চেক করা হবে. এবং যদি আমি এখনও 10 এর কম, আমরা 8 লাইন এবং কি করব তারপর 9, তারপরে আমরা আঘাত 10, এবং 6 ফিরে যাবেন, এবং আবার আবার এবং আবার এবং আবার, তাই যতদিন আমি 10 এর কম. সুতরাং let এর এখানে পুনরায় চালনা করুন. ঠিক আছে, ঠিক আছে আমরা কম্পাইল করেছি. সম্পর্কে পুনরায় রান লুপ করা যাক. এবং এখন এটা আসলে কাজ মনে হয়. সুতরাং pluses এবং minuses এখানে? ভাল, যতক্ষণ পর্যন্ত আসলে আছে পিএলও একটি সম্পূর্ণ না - তাই বুদ্ধিমান. সমস্ত অধিকার, যে ছিল একটি - অই, যে ছিল একটি দুর্ঘটনা. সমস্ত অধিকার, তাই আসুন যাও লুপ জন্য ফিরে যেতে. সুতরাং loops জন্য চমৎকার কারণ তারা সুপার স্পষ্ট. এবং যদিও তারা একটু লিখতে clunky, এটা খুব শক্তিশালী এবং এটা আপনি করতে পারবেন একযোগে একাধিক জিনিষ. যদিও loops একটি মান বিপুল পরিমাণ আছে বলে মনে হচ্ছে না ঠিক এখনো, কারণ এটি মতানুযায়ী আমরা ঠিক মত আরো কাজ আছে. আমরা আরম্ভের কোষাবদ্ধ এখানে, আছে নিচে এখানে আপডেট, এবং আমরা যে সমস্ত কি মনে রাখা আছে. সুতরাং আমরা সময় যে আসলে যখন loops ধার দেখতে পাবেন নিজেরাই ঠিক বিভিন্ন প্রেক্ষিতে বিভিন্ন তথ্য তালিকাগুলি এবং হ্যাশ টেবিল মত কাঠামো, সে ব্যাপারে আমরা যাও পাবেন মধ্য সেমিস্টারে. কিন্তু এখন জন্য, জানি যে এই তৃতীয় শ্রেণী জানা হিসাবে আছে একটি Do- যখন লুপ. এবং আমরা এই সংক্ষিপ্তভাবে দেখা করেছি. এবং এই pset 1 সঙ্গে সুপার সহায়ক হতে পারে. কোন সময় আপনি কিছু করতে চান এবং তারপর চেক করুন ব্যবহারকারী cooperated, এবং যদি তারা না না, এটা আবার কি, একটি কার্যদক্ষ যখন যুক্তি যে ধরনের লুপ নিজেই ধার দেয়. কারণ হিসাবে শীর্ষ থেকে ক্রম এখানে নীচে দাড়ায়, না আক্ষরিক অর্থ এই না. এবং এই আবার এবং আবার কি, যে কি হতে পারে? হয়তো এটি কলিং GetInt বা GetString এবং তারপর অর্থ GetInt বা GetString মান পরীক্ষণের পরে এবং yelling ব্যবহারকারী হলে তারা জিজ্ঞাসা করে নি cooperated আবার এবং আবার এবং আবার. যেখানে আপনাকে কিছু করতে চান, তারপর কিছু শর্ত চেক. তাই আসুন এই চেষ্টা. আমাকে আসলে এই পরিবর্তন এখন একটি Do-যখন লুপ যাও. এবং আমি এগিয়ে যান এবং নিচের কাজগুলো যাচ্ছি. সুতরাং নিম্নলিখিত কাজগুলো. চলুন শুরু করা যাক না int i = GetInt (); কিন্তু এর প্রথম ব্যবহারকারী বলছি যাও কি না. তাই একটু ভিন্ন এই সময়. "সম্পর্কে কোন int দিন". তাই আমি যে জন্য printf ব্যবহার করব. এবং এখন আমি নিচে এখানে যান যাচ্ছে, এবং করছি আমি এই কাজ করতে যাচ্ছি সময় হল, এর বলে দিন, এর চেয়ে বড় - এর দেখতে দিন, তোমার হয়, এর কথা বলা যাক, কম 0, বা হল 10 চেয়ে বেশী. অন্য কথায়, আমি 1 থেকে 9 নম্বর একটি চান, ঠিক ইচ্ছামত. তাই আমি একটি সম্মিলিত বুলিয়ান এক্সপ্রেশন ব্যবহার করছি এখানে যাও নিশ্চিত করুন যে আমি কম 0 10 বছরের কম বা বেশী, না যা এই ক্ষেত্রে আমি এখানে লুপ কাজ পুনরায় হবে. তাই আবার, এই না - যখন আমি কম 0 বা 10 হল তার চেয়ে অনেক বেশী. তাই এখন আমি কি এগিয়ে যান এবং এই একবার আমরা যে কাজ করেছি না. চলুন শুরু করা যাক শুধু একটি দ্রুত বৈধতা চেক করবেন. printf ("ধন্যবাদ, তোমার হল% d", আমি). তাই এই সহজ প্রোগ্রাম কোন int জন্য ব্যবহারকারী জিজ্ঞেস করে, নিশ্চিত এটা কিছু পরিসর, 1 থেকে 9 সমেত মধ্যে, এবং তারপরে তাদের মনে করিয়ে কি তারা শুধুমাত্র ব্যবহারকারী দ্বারা সৌভাগ্য টাইপ অল্পমাত্র সদ্বিবেচনা চেক হিসাবে মধ্যে,. কিন্তু এখানে একটা কিছু যদি এই কাজ হিসাবে উদ্দীষ্ট দেখুন. আমাকে মাথা নিচে এখানে যান এবং পুনরায় চালনা লুপ করা. হুম. "অঘোষিত শনাক্তকারী 'আমি' ব্যবহার". এটা অদ্ভুত. আমি চিন্তা আমরা যে এই সমস্যাগুলি সমাধান করা. একই উপসর্গ কিন্তু বিভিন্ন কোড. হাঁ? AUDIENCE: [শ্রবণাতীত] ভিতর দুই, আমরা আছে [শ্রবণাতীত]. ডেভিড জে MALAN: যথাযথভাবে. তাই আসলে এই একটি বিষয় সুযোগ হিসাবে পরিচিত আমাদের বাড়ে. এটি সক্রিয় করে আবার সি,, এটি সত্যিই আপনি সময় আক্ষরিক. এবং যদি আপনি ভালো কিছু করতে যেখানে আপনি কোন int ঘোষণা এবং তারপর এটা কিছু মান নির্ধারণ, কিন্তু আপনি একটি যে ভিতরে কি কোঁকড়া ধনুর্বন্ধনী জোড়া, সি কি আছে এটা অনুমান করে যে আপনি শুধুমাত্র 32 মধ্যে পরিচিত হিসাবে তোমার অস্তিত্ব বিট করতে চান লাইন প্রসঙ্গে মধ্যে যারা কনটেক্সট কোঁকড়া ধনুর্বন্ধনী মধ্যে, 9 মাধ্যমে 6. সুতরাং আমি, ঘোষিত এবং এটা নির্ধারিত হয় একটি লাইন 8 মান, কিন্তু যত তাড়াতাড়ি আপনি বাইরে পেতে কোঁকড়া বক্রবন্ধনী নীচের লাইন 9, তোমার নেই সুযোগ রয়েছে, তাই কথা বলতে. S-C-O-চালিয়ে পি ই. এটা প্রেক্ষাপটে এখন আর. তাই এখন কোনো আছে তোমার, তাই হিসাবে যদিও এমনকি আমরা ছিল না এটি ঘোষিত এ সব. তাই একটা ভালো কিছু জন্য তারপর ফিক্স, যদি কারণ হতে পারে তোমার কোঁকড়া ধনুর্বন্ধনী মধ্যে ঘোষিত হয়, যা একটি দৃশ্যত: খারাপ? এখানে? AUDIENCE: [শ্রবণাতীত]. ডেভিড জে MALAN: হ্যাঁ. সুতরাং আমরা এটা আরম্ভ বাইরে পারেন. তাই আমাকে এগিয়ে যান এবং ঘোষণা অংশ যদ্দ্বারা মুছে দিন আমি টাইপ, নির্দিষ্ট সম্পর্কে এবং এটি আপ এখানে করতে দেওয়া. তাই লাইন 5, এখন তাদের মতে "সম্পর্কে কোন int দিন." এটি আমি কল করুন. লাইন 9 উল্লেখ্য, আমি এই কাজ করতে চান না, কারণ আমি ইতিমধ্যে 32 বিট আছে. আমি একটা কম্পিউটার জন্য জিজ্ঞাসা করতে না চান বিভিন্ন 32 বিট. আমি ঐ একই 32 বিট ব্যবহার করতে চান. এবং এখন কারণ তোমার লাইন 5 সালে ঘোষিত হয়, এটা এখনও legit যাও লাইন 11 12 লাইন এবং তা ব্যবহার করার জন্য. তাই আমাকে এই recompile চেষ্টা করুন এবং দেখুন যদি ঝনঝন স্টপ yelling. লুপ করা. সুতরাং এখন এটা "ফাংশন অন্তর্নিহিত ঘোষণা 'GetInt' হল C99 মধ্যে অবৈধ. "কি হল? হাঁ? AUDIENCE: [শ্রবণাতীত]. ডেভিড জে MALAN: হ্যাঁ. তাই এখন যে আসলে আমি GetInt ব্যবহার করছি, এই কিছু হয় না যে মাত্র আসে সঙ্গে সি এই CS50 থেকে আসে. সুতরাং আমরা এই এখানে প্রয়োজন. এবং আমাকে ফিরে প্রম্পট করে নিচে যান এখানে এবং পুনরায় চালনা করুন. ঠিক আছে, অবশেষে. এখন আমরা যে সমস্যাগুলি সমাধান করা হয়েছে এবং অন্যান্য ত্রুটি করেছি. আমাকে এখন লুপ চালানোর এবং দেখুন সেখানে কি ঘটছে. "সম্পর্কে কোন int দিন." আমি 11 এটি দেব. আমি -1 এটি দেব. আমি foo বিন্যাস এটি দেব. এটি আমি 5 দেব. এবং এখন প্রকৃতপক্ষে এটি কাজ করে. কিন্তু এখানে একটি প্রম্পট কারণে পরিবর্তিত. কেন এটা বলেছেন এই বার এক কিন্তু পুনরায় চেষ্টা সম্পর্কে একটি দিন অন্যান্য তিনবার int? কেন যে আচরণ ভিন্ন? AUDIENCE: দিয়েছিলেন একটি স্ট্রিং এটি. ডেভিড জে MALAN: দুঃখিত? AUDIENCE: আপনি দিয়েছেন এটি একটি পংক্তি. ডেভিড জে MALAN: হ্যাঁ. সুতরাং আমরা দিয়েছি এই তৃতীয় প্রচেষ্টায় এটি একটি পংক্তি, যখন আমি foo কমান্ডটি টাইপ. Foo একটি স্ট্রিং. এটা সম্ভবত কোন int না. এবং যে উপায় CS50 GetInt বাস্তবায়িত করা হয় যে আমরা না যদি কিছু না চেক কম 0 10 বছরের কম বা বেশী আপনার জন্য, কারণ আমরা কিভাবে অগ্রিম জানেন কি ধরনের int চান? কিন্তু আমরা আপনার জন্য ন্যূনতমরূপে, চেক ব্যবহারকারী পারেন কমপক্ষে একটি পূর্ণসংখ্যা টাইপ? এবং যদি তারা না না, ব্যবহারকারী আমরা টাইপ করে চিত্কার উপর "পুনরায় চেষ্টা করুন" পর্দা. সুতরাং এখন আমরা একটি প্রোগ্রাম যা looping থাকে. ঠিক আছে. এখন, এই যা ভাল নির্মানের সাজান? তাই এই হল যেখানে জিনিষ একটু মলিন পেতে শুরু, সত্য যে আপনি একটি পরিবর্তনশীল আপ এখানে ডিক্লেয়ার স্মরণে রাখতে হবে যদি আপনি কিছু ভিতর এটি ব্যবহার করতে চান কোঁকড়া ধনুর্বন্ধনী এবং বাইরে. এমনকি যদি এই প্রথম এ দেখায় একটু রহস্যপূর্ণ এক নজরে, ঠিক, আবার মনে রাখা সহজ যুক্তি. যাতে সি কিছু, ব্যবহার করার জন্য এটি একটি ফাংশন বা এটি একটি পরিবর্তনশীল, আপনি এটি যদি একটি ফাংশন অন্তর্ভুক্ত আছে কিছু লাইব্রেরি, অথবা আপনি এটা ডিক্লেয়ার করা প্রয়োজন. কিন্তু এখন আপনি আসলে অতিরিক্ত মনোযোগী হতে হবে যে আপনি সঠিক সুযোগ মধ্যে এটি ঘোষণা করছি. আপনি বন্ধনীর ভিতরে করছি এটি নির্বাণ না খুব শক্তভাবে. সুতরাং আমাকে ফিরে আসলে পাকানো. আমরা যদি আমাদের ফিরে যেতে উদাহরণ জন্য আগে থেকে, এবং আমি int জন্য ফিরে যাও, int i = 0; i <10; তোমার + +, ও আমি printf ভালো বড়,, এবং তারপর নিকট paren, এবং এখন না printf আমি এখন হয় - একই যুক্তি অনুযায়ী, যখন আমি চেষ্টা যাও ঘটবে এই প্রোগ্রাম কম্পাইল? AUDIENCE: অবৈধ আইডেন্টিফায়ার. ডেভিড জে MALAN: এটা অন্য অবৈধ আইডেন্টিফায়ার, অঘোষিত আইডেন্টিফায়ার. এখন, কারণ কিছুটা ভিন্ন. এখানে এখন পর্যন্ত কোন স্পষ্টত কোঁকড়া ধনুর্বন্ধনী, কিন্তু একই ধারণা, সুযোগ একই বিবরণ প্রযোজ্য. যদি আপনার একটি ভিতর তোমার মত একটি পরিবর্তনশীল আছে ঘোষিত লুপ জন্য, এমনকি আপনি যদি কোঁকড়া লিখিত স্পষ্টভাবে না ধনুর্বন্ধনী তাদের মানসিকভাবে, এখনও আছে মনে হচ্ছে, যা কেস হল শুধুমাত্র বৈধ লুপ জন্য ভিতরে. এটা হলে পরের লাইন পেতে, যা বৈধ না এই ক্ষেত্রে এখন 10. তাই শুধুমাত্র একটি সুযোগ এবং ভালো কয়েকটি বিষয়. সমস্ত অধিকার, কোন প্রশ্ন? সমস্ত অধিকার, তাই এই একটি তুচ্ছ সামান্য ধরনের প্রোগ্রাম, শুধু একটু বড় মুদ্রণ. কিন্তু এখানে একটা কিছু যদি আপনি এই গান এখানে মনে রাখা দেখুন. এটি একটি অবিশ্বাস্যভাবে বিরক্তিকর গান কিডস উপর sing হবে স্কুল বাস এবং ভালো. কিন্তু কি এটি সম্পর্কে চমৎকার হয় যে এটি এই cyclicity আছে, তদ্দ্বারা এটা "বিয়ার 99 দেয়ালে বোতল, বিয়ার 99 বোতল. এক ত্তলান, এটি প্রায় পাস, 98 এর উপর বোতল বিয়ার প্রাচীর. "তারপর গান 97 পুনরাবৃত্ত তারপর, 96, তারপর 95, তারপর 94, সমস্ত পদ্ধতি নিচে 0 যদি আপনি এমন না যে দূরে উপর বাস. তাই এই কারণ হল একটা চমৎকার প্রোগ্রাম বাস্তবায়ন সম্পর্কে বাছাইয়ের জন্য, আমার ঈশ্বর, যদি আপনি মাত্র কয়েক সঙ্গে এই বাস্তবায়ন হতে পারে লাইনের কোড, আপনি এই গানের কথা সমগ্র থুতু আউট হতে পারে গান খুব দ্রুত. কিন্তু পথ ধরে, আমরা এখন কিছু আঁচড়ান সরাইয়া শুরু করতে পারেন এই মৌলিক looping নির্মান এবং এখন এছাড়াও ফাংশন যে আমরা নিজেদেরকে পরিচয় করিয়ে লিখুন, মান প্রত্যাবর্তন যে আমরা প্রায় পাস. কিন্তু প্রথম, এগিয়ে যান না কেন আমরা না এবং আমাদের পাঁচ মিনিট সময় লাগবে এখানে বিরতি? এবং যখন আমরা ফিরে পেতে, আমরা এই গান প্রচারিত করা হবে. ঠিক আছে, তাই আমরা ফিরে হয়. এবং যখন আমি বলতে আমরা এখন এই গান প্রচারিত করা হবে, আমি বলতে চাচ্ছি programmatically, না জবানি. তাই আমরা এখানে beer1.c, যা এই এক বাস্তবায়ন আছে নির্দিষ্ট গান. আর যাদের জন্য অপরিচিত হতে স্পষ্ট, কি এই জিনিস মনে হচ্ছে, সম্পর্কে এগিয়ে চলুন এবং beer1, লিখুন না. এখন সম্পর্কে beer1 চালানো যাক, আমরা কি দেখতে পাবেন - কতগুলি বোতল সেখানে বিয়ার হবে? আমি 99 সালে, ভালো গান বলে টাইপ করব. লিখুন. এবং এখন যদি আমরা মধ্যে স্ক্রোল - ওহো - যদি আমরা এই সব দিয়ে স্ক্রল, আমরা দেখতে পাবেন যে এই প্রকৃতপক্ষে কি পুরো গান গাত্তয়া. একটি মিনিট অপেক্ষা করুন. আমার স্ক্রল বার এর একটি সামান্য তছনছ আপ. চলুন বড় উইন্ডো ব্যবহার. Beer1, 99 তাই সেখানে, আমরা যান. তাই আমরা এখানে পুরো গান, দ্বারা গাওয়া অনেক দ্রুত আছে কম্পিউটার তুলনায় এটি আমাদের পারে হয়েছে. তাই, যদিও লক্ষ্য করা চক্রাকার প্রকৃতি, এখানে. এরা বলছে 99, তারপর 99 এর পরে, "এক ত্তলান, এটি পাস কাছাকাছি, "তারপর 98. এবং এখন এটি পুনরাবৃত্তি আবার এবং আবার. তাই এই প্রকৃতপক্ষে একটি ধরণের জন্য উপযুক্ত সুযোগ looping গড়া. উল্লেখ্য, আমি এখানে একটি কোণ কাটা ধরনের. যে আমি দেয়ালে বলছে 98 বোতল বিয়ার "লক্ষ্য করছি, বিয়ার 97 বোতল দেয়ালে, "এবং যে ছিল ঠিক তাই যে, যখন আমরা এক বোতল বিয়ার পান, আমি কাছে নেই ইংরেজি ব্যাকরণ সম্পর্কে উদ্বিগ্ন. কিন্তু আমরা যদি একটি অল্প সঙ্গে এই করতে পারবো শর্ত, সম্ভবত. যদি এই সংখ্যা হল একবচন, এগিয়ে যান এবং "বোতল" বলতে, অন্যথায় যদি বহুবচন, বলে "বোতল". কিন্তু এখন জন্য, সম্পূর্ণরূপে আমি যে কোণ কাটা করছি. সুতরাং আসুন আমরা কি এখানে দেখতে পেয়েছেন. সুতরাং আমরা উপরের কিছু মন্তব্য পেয়েছেন. আমি এই দুটি লাইব্রেরি সহ হিসাবে, করছি আমরা সাধারণত করছি. এবং এখন আমাকে প্রথম যাও স্ক্রোল ডাউন কোড প্রকৃত লাইন. লাইন 17 প্রধান বন্ধ kicks. লাইন 21 এবং 20 টি কিভাবে বিয়ার অনেক বোতল হতে হবে? এবং তারপর আমি GetInt কল. এবং এখন আমি একটি মানসিক সুস্থতা চেক একটি বিট আছে. সুতরাং এই একটি প্রচল যে এখন আমরা শুরু করব দত্তক যাও আরো অক্ষরে অক্ষরে ব্যবহারকারীর ইনপুট চেক. কখনও কখনও আপনি শুধু আবার তাদের অনুরোধ জানানো না চান এবং আবার এবং আবার. যদি ব্যবহারকারী screws আপ না এবং সহকর্মী আছে, সূক্ষ্ম. এবং প্রস্থান শুধু তাদের সঙ্গে মোকাবিলা করবেন না. এবং যাতে আমি এখানে কি করছি. যদি n হল 1 তুলনায় কম, শুধু আমি এ ব্যবহারকারী যাও চিত্কার করছি যাচ্ছে, "দুঃখিত, যে কোন অর্থে তোলে." এবং তারপর আমি যাচ্ছি ইচ্ছামত 1 ফিরে. তাই আবার, এই মাত্র একটি কনভেনশন করতে ব্যবহৃত. এখন জন্য, বিশ্বাসের উপর সময় লাগবে. কিন্তু এখন পর্যন্ত আপ, সবসময় আমরা করেছি 0 ফিরে হয়েছে কারণ, আমরা কি ফিরে 0 উল্লেখ করে বলেন করেছি? AUDIENCE: সাফল্য. ডেভিড জে MALAN: সাফল্য, যে সব. তাই এখন যে পরিশেষে আমরা মনে করছি শুরু অ সফলতা - অন্য কথায়, কোণ ক্ষেত্রে, ত্রুটি শর্ত - এখন আমি একটি অসীম সরবরাহ আছে, বা অন্তত চার বিলিয়ন সম্ভব যে আমার প্রোগ্রামে ভুল হতে পারে. এবং আমি তাদের সংখ্যা নির্ধারণের পৃথক শুরু করতে পারেন. এখন সাধারণভাবে, এটি শুধু ফিরে suffices 0 ছাড়া অন্য কিছু. তাই আমরা কেবল এখন জন্য 1 ফিরে চলুন. কিন্তু 1 ফেরত কারণ যে যত তাড়াতাড়ি প্রত্যাবর্তন করতে পারবেন 1, অনুমান প্রোগ্রাম বাকি কি? এটা স্টপ. এটা এটি. সুতরাং যে আমি 1 ফিরে করছি কার্যকরভাবে হয় এই প্রোগ্রাম এর মৃত্যুদন্ড স্বল্প circuiting যাতে লাইন 27 নীচের কিছুই নির্বাহ চলতে থাকবে. যত তাড়াতাড়ি প্রধান আয় হিসাবে, যে এটা. ঠিক তাই, যদি ব্যবহারকারী আছে এবং সহযোগিতা আমরা লাইন 30 পৌঁছানোর কারণ তারা একটি বৈধ নম্বর টাইপ এখানে, এই যে আমার এই গান বাস্তবায়ন. সুতরাং প্রথম আমি একটি newline অক্ষর প্রিন্ট আউট, শুধু জন্য নন্দনতত্ব. আমি এখন জন্য একটি লুপ আছে. এবং আমি কিছুক্ষনের মধ্যে করছি জিনিসগুলি বিজ্ঞপ্তি একটি ভিন্ন দিক. আমি কম না আছে, আমি + না আছে. আমি বলতে পরিবর্তে একটি পরিবর্তনশীল তোমার আরম্ভ সেট এটা সমান হতে পারে এন, নম্বর ব্যবহারকারী টাইপ করা, তারপরে নিম্নলিখিত, তাই না দীর্ঘ হিসাবে আমি মনে হয় 0 থেকে, তারপর তোমার - একবার আপনি এই লুপ এক পুনরাবৃত্তির সমাপ্ত করেছি. তাই আমরা নিচে লুপ জন্য একটি গণনা হিসাবে ভাল ব্যবহার করতে পারেন. এখন, এটা বেশ অনেক সপ্তাহে printf সঙ্গে এক স্টাফ এখন,. সুতরাং মুদ্রণ "% d বোতল বিয়ার দেয়ালে." প্রিন্ট করুন "% d বোতল বিয়ার. "" এক নিচে নিয়ে যান, এটা প্রায় পাস. "প্রিন্ট করুন "% D বোতল বিয়ার দেয়ালে." তাই এটি এখনও% d, কিন্তু নোটিশ printf আর্গ্যুমেন্টটি যাও পরিবর্তন. কমা পরে, আমি তোমার আছে, কারণ আমি বলতে চাই 99. এই কমা পরে, আমি তোমার আছে, কারণ আমি বলতে চাই 99. এই কমা পরে, আমি তোমার আছে - 1, কারণ আমি এ 98 বলতে চাই এই প্রথম পুনরাবৃত্তির, এবং তাই ঘোষণা. এবং নিচে এখন এখানে, আমি শুধু কিছু মূঢ় একটু লক্ষ্য আছে. এবং তারপর লাইন 42, আমি কনভেনশন দ্বারা 0 ফিরে, যার অর্থ হল সব ঠিক আছে. তাই যদি আমি goofed? হতে কি একটি সাধারণ এখানে ভুল হতে পারে? ভাল, কি বলেন যদি ঘটনাক্রমে আমি ভাল, আমি গণনা চান 0 নিচে, আমি বিয়ার 0 দেয়ালে বোতল চান? তাই বলে, আমি বড় কম বা তার সমান 0 যাও. যাচ্ছে কি উপসর্গ যে এখন আমি যদি আমি recompile দেখতে হবে এর beer1 এবং এটি চালানোর জন্য? AUDIENCE: নেতিবাচক. ডেভিড জে MALAN: হ্যাঁ, এটা করত নেতিবাচক যান. এটি একটি বন্ধ দ্বারা একটি ত্রুটি, একটি অবিশ্বাস্যভাবে সাধারণ ভুল না. চলুন শুরু করা যাক আসলে টার্মিনাল উইন্ডোতে ফিরে যান এবং এটা এখানে তাই, আমরা একটি সময়ে আরো দেখতে পারেন. বিয়ার 99 বোতল লিখুন,. এড়িয়ে যাও বন্ধ, কিন্তু আমরা কখনও গিয়েছিলাম সামান্য অতিদূরে. আমরা গান গেয়েছিলেন অতিদূরে ডাউন, যেমন যে এখন আমরা আঘাত ঋণাত্মক সংখ্যা. সেজন্য এটি কাজ করে না. ঠিক আছে, তাই আমরা সহজেই ঠিক করতে পারেন যে যাব ফিরে উপায় একবার এটি ছিল. কিন্তু কি জন্য এখন কিছু কিছু সুযোগ উন্নতি? ওয়েল, সম্পর্কে beer2.c খুলুন এবং নিচে স্ক্রল এখানে দেওয়া এবং একটি গ্রহণ এই সংস্করণ তাকান. প্রথম যে কাজটা আপনি বিভিন্ন সময়ে অনেক উঁচুতে লাফাতে হিসাবে আউট কি এই সংস্করণ এখানে? AUDIENCE: [শ্রবণাতীত]. ডেভিড জে MALAN: হ্যাঁ, তাই কোন না, কারণ এটা ঘটেছে সম্পর্কে আপনি কি জানেন যে, আমি n জন্য ব্যবহারকারীকে জিজ্ঞাসা করছি, তারপরে আমি সেটিং তোমার n সমান, এবং তারপর আমি তোমার পরিবর্তন করছি, কিন্তু আমি না স্পর্শ হবে আবার. তাই নরক ছিল আপনার অন্য পয়েন্ট 32 বণ্টন বিট বলা তোমার ঠিক যে আমি একটি ভিন্ন পরিবর্তনশীল থাকতে পারে? তাই এই ক্ষেত্রে, আমি ধরণের স্বীকৃত যে অপ্রয়োজনীয় নকশা বৈশিষ্ট্য. এবং এখন আমি বলতে চাই যখন চালু করা হয় 0 থেকে, যান এগিয়ে এবং একই গান, মুদ্রণ হিসাবে printf একটি n ক্ষণস্থায়ী দ্বিতীয় যুক্তি, এবং এন - 1 দ্বিতীয় যুক্তি হিসাবে ডাউন এখানে. এবং তারপর এই লুপ প্রতিটি পুনরাবৃত্তির উপর, এবং এগিয়ে যান n হ্রাস নিজেই. এখন, এই বৈশিষ্ট্যগুলি, এই প্রোগ্রাম যাও অভিন্ন হবে. যদি আমি 99 টাইপ, এন 99 আরম্ভ করা হয়. আমি হ্রাস, হ্রাস, হ্রাস, হ্রাস. আমি সব ভাবে পেতে "যাও বিয়ার এক বোতল নিচে নেভিগেশন এড়িয়ে চলেছি প্রাচীর, এক বোতল বিয়ার. এক ত্তলান, এটি প্রায় পাস. বিয়ার 0 বোতল দেয়ালে. "শেষ, কারণ আমি শর্ত সঠিক পেতে. এটা 0 চেয়ে বেশী. আমি এই ভুল কি না. সুতরাং যা ভাল, সংস্করণ এক বা দুটি সংস্করণ? তাই আমি দুই জন্য murmurings একটি গুচ্ছ শুনেছেন. দুটি কেন? ওটা কি? AUDIENCE: [শ্রবণাতীত]. ডেভিড জে MALAN: ওহ, ঠিক আছে. সুতরাং 0 নিচে যেতে হবে না, তবে মনে রাখবেন, সংস্করণ এক, মূল সঠিক সংস্করণ 0 হয় নীচের করা হয়নি. তাই মনে রাখবেন যে এটি সঠিক সংস্করণ. তাই চলুন শুরু করা যাক অন্তত দুটি সঠিক সংস্করণ তুলনা করা. সংস্করণ পক্ষে একটি যুক্তি কি দুটি হচ্ছে, mmm, ভাল? হাঁ? AUDIENCE: এটা কম স্পেস ব্যবহার করে. ডেভিড জে MALAN: ঠিক আছে, তাই এটি কম স্পেস ব্যবহার করে, ডান? যেহেতু এক সংস্করণ n জন্য 32 বিট, এবং তারপরে অন্য ব্যবহৃত তোমার জন্য 32 বিট. দুটি সংস্করণ শুধুমাত্র n এর জন্য 32 বিট ব্যবহার করে, যাতে একটি প্লাস মনে করা হয়. অন্য চিন্তা? কেউ কি এক পক্ষে তর্ক করতে চান? হাঁ? AUDIENCE: আপনি n জন্য কোড অতিরিক্ত লাইন ব্যবহার আছে -. ডেভিড জে MALAN: ঠিক আছে, নিশ্চিত. সুতরাং এটা পরিষ্কার. সুতরাং এই মাত্র অন্তত সম্পর্কে যাও, - আসলে আমি বলতে চাচ্ছি, আসলে এই সামান্য Messier মতানুযায়ী, যে আমি আমার যুক্তি সমস্ত encapsulate মধ্যে সাজাতে পারেন না সুন্দর লুপ জন্য লাইন, লুপ জন্য সম্ভব,. এখানে, এই আমি n উপর বন্ধনরজ্জু যাও ধরনের আছে - এ লুপ শেষ, কারণ এটা যুক্তি প্রয়োজন. কিন্তু এটা কোন ধরনের rubs কুপথ সম্পর্কে, কারণ শুধু এটা মনে আপ এখানে যুক্তিবিজ্ঞান থেকে পৃথক, যদিও, আবার, এটি এর প্রয়োজন. অন্য চিন্তা? হাঁ? AUDIENCE: [শ্রবণাতীত]. ডেভিড জে MALAN: হ্যাঁ. তাই গান শেষে যদি আপনি পরিবর্তে,, চেয়েছিল যাও প্রিন্ট আউট করে আবার গানের নাম? ভালো লেগেছে "বিয়ার 99 বোতল খেলার জন্য ধন্যবাদ", বা কিছু যে মত মূর্খ? কিন্তু বিন্দু, আপনি আসল মূল্য অ্যাক্সেস চেয়েছিলেন. আসলে আপনি যে ভাবে পরিবর্তিত বা প্রত্যেক উপর n পরিবর্তন পুনরাবৃত্তির এবং সেইজন্য তার মূল মূল্য ধ্বংস মানে হল আপনি শেষে যে করতে পারবেন না. এখন যুক্তি দিয়ে বোঝানো যায় বা দেখানো বা বলা যায়, আমরা কি স্পষ্ট না চান যে এই প্রোগ্রাম. সুতরাং যারা বজায় রাখে? কিন্তু এর একটা খুব বৈধ বিন্দু. এবং সৎ হবে, আসলে কোন এক ঠিক উত্তর. ঐগুলি উভয় সমানভাবে সঠিক. আমি হয় পথ প্রতীত হতে পারে. আমি যে, সাধারণভাবে, এটি একটি ভালো নীতি বলতে হবে যদি আপনি কিছু মান জন্য ব্যবহারকারীকে জিজ্ঞাসা এবং আপনি একটি ভেরিয়েবল এ সংরক্ষিত n মত, শুধু ধরণের নীতিগতভাবে, এটা সম্ভবত ভাল যে আশেপাশে রাখা. এবং কোন তথ্য আবার এবং আবার পরিবর্তন ঘটান আপনি চান, নিজেকে যে ভেরিয়েবলের একটি কপি দেবে, ঠিক তাই যে আপনি মূল অ্যাক্সেস আছে. আপনি আরো 32 বিট খরচ হয়, কিন্তু বাস্তবতা হল এই কম্পিউটার, করেনি দুই গিগাবাইট RAM-র এই দিন চাই,, এবং আমরা 32 বিট উপর quibbling করছেন? সত্যিই. যেমন একটি বড় চুক্তি না এবং এমনকি এই একটি অর্ধ একটি কোঁচ অথবা একটি সঙ্গে এখানে ডিভাইস, গিগাবাইট, 64 বিট বনাম 32 বিট উপস্থিত RAM-র, . যেমন একটি বড় চুক্তি না অবশ্যই আজ, এটা কিভাবে আকার দ্বারা আবিষ্ট হতে যাচ্ছে নিজেই প্রোগ্রাম, যা কয়েক শত হতে যাচ্ছে কিলোবাইট, যদি কয়েক মেগাবাইটের একটি নয়, এই দিন. সুতরাং যুক্তিসঙ্গত উদ্বেগ, কোন এক অধিকার উত্তর. কিন্তু অন্তত যারা চিন্তা হয় যে শুরু করা উচিত আপনার মন মধ্য দিয়ে যেতে হবে? কারণ pset 0 মধ্যে, যদিও আমরা সত্যিই শুধুমাত্র প্রত্যাশিত শুদ্ধি, বা অন্তত বিভিন্ন বাগ disclaiming আপনি সম্মুখীন হয়েছে, হতে পারে হিসাবে আমরা অগ্রসর, নকশা করা হয় অন্য একটি গুরুত্বপূর্ণ দিক হতে যাচ্ছে, উভয় কোড লেখা এবং আমাদের কোড নির্ণয়. তাই অন্তত চিন্তা ভালো জিনিষ দিতে. এবং যেহেতু কিছু কাজ এটা ভালো না মানে, কিন্তু এটা সু - পরিকল্পিত নয়. এবং যে জিনিষ শিক্ষণ ফেলোগণ এক এবং সমস্যা সেট আমাদের সময়ের অংশ আঁচড়ান সাহায্য করবে. মানে কি আমার,, আসুন বলতে, এই সংস্করণ এখানে? আমাকে কিছু একটা সামান্য এক মুহূর্ত এখানে ছবি না. প্রথম আমাকে এই পরিত্রাণ পেতে. এবং এখন আসুন এই ব্যাকরণগত সমস্যা সমাধানের জন্য. তাই এই সংস্করণে, আমি ব্যাকরণ ঠিক করতে চান যাতে, বরং সেটা ভালো "বোতল" বন্ধনীসমন্বিত গুলি, বা "বোতল" - আমি যে কোণ কাটা না চান - আমি পরিবর্তনশীলরূপে শব্দ "বোতল" প্রিন্ট আউট করতে চান বা "বোতল", যার ফলে এই% s-স্থানধারক ব্যবহার করে আজ. আমি শর্তসাপেক্ষে কি তোমার মান পরীক্ষা প্রয়োজন. এবং যদি 1, আমি "বোতল" বলতে চাই, এবং যদি এর কিছু অন্যথায়, আমি "বোতল" বলতে চাই. তাই আসুন এই কাজ করতে চেষ্টা করুন. সুতরাং যদি আমি == 1 তারপর, আমাকে এগিয়ে যান এবং ঘোষণা - আমি একটি স্ট্রিং প্রয়োজন, তাই সম্পর্কে স্ট্রিং s1 যাক না, কারণ এটা প্রথম পংক্তি আমি যত্নশীল অধিকার এখন. আমি "বোতল" বলতে যাচ্ছি. এবং তারপর, এর দেখতে দিন, স্ট্রিং S2 - এবং আমি যেখানে আমি এক মুহূর্ত চলেছি ব্যাখ্যা করব - "বোতল." তাই প্রত্যাহার যে, এই গান, আমরা যাও সক্ষম হতে হবে সম্ভাব্য জিনিষ, দুটি ভিন্ন শব্দ মুদ্রণ. তাই আপনি যদি আমরা ফিরে তাকান, এখানে যে, যখন আমরা পেতে বিজ্ঞপ্তি এই এখানে যেমন, "বিয়ার দুটি দেয়ালে বোতল, দুই বোতল বিয়ার, এক ত্তলান, এটি প্রায় পাস ", আমি চাই এই চতুর্থ লাইন এখন উপর বলতে এক বোতল বিয়ার " প্রাচীর বোতল "অথবা". আমি স্থির করা প্রয়োজন, আমি বলতে চাই না " "বোতল"? আমি বলতে যাচ্ছি ইচ্ছামত সব অধিকার, করছি, আমি এখন একটি পরিবর্তনশীল নামক s1, স্ট্রিং ঘোষণা করা যাচ্ছে না এক, যে এখানে এবং এখানে প্লাগ ইন করবে, কারণ ঐ শব্দের সবসময় এক ও অভিন্ন, শুধুমাত্র কারণ গান প্রকৃতি. এবং আমি S2 যাই হোক না কেন শব্দ আমি চাই কল চলেছি অবশেষে নিচে এখানে উপস্থিত হবে. এখন আক্ষরিক,, 100 আউট 99 বার, তা হতে যাচ্ছে যারা একই ক্ষেত্রে উভয় মধ্যে, কারণ সেটি বহুবচন 3, 2 বহুবচন, 4 সেটি বহুবচন. কিন্তু এই কোণার ক্ষেত্রে, যেখানে আমরা 2 পেতে এবং তারপর 1, অথবা এমনকি 1 এবং 0 তারপর, আমি এই যুক্তি প্রয়োজন. আমি আমার কোড সঠিকভাবে কিছু সময় খরচ করতে হয়. সুতরাং যদি আমি এই না, যদি তোমার == 1, তারপরে সেট s1 সমান "বোতল" যাও এবং S2 সমান "বোতল", কারণ এই 1 জন্য হতে হবে বোতল, এবং এই 0 বোতল জন্য হতে হবে. এবং এই এখানে কি, এই প্রতিনিধিত্ব না? শুধু পরিষ্কার করা. এটি একটি মন্তব্য. সুতরাং যে আপনি একক লাইন মন্তব্য করতে পারেন, মানে ভালো আপনার কোড, মন্তব্য করতে পারেন, কিন্তু অন্য সাধারণ দৃষ্টান্ত খুব, যে যদি আপনি একটি অতি - সংক্ষিপ্ত ফ্রেজ আছে যা আপনি নিজেকে লাগাতে চাই এবং এটা ঠিক অধিক পাঠযোগ্য প্রয়োগ করা কোড লাইন শেষে ডান এটা, আপনি যা করতে পারেন একেবারে ভালো কিছু করতে. সুতরাং এখন যদি আমি কি এই না? অন্যথায় যদি তোমার 1 সমান হয় না. সুতরাং ঠুং সমান - বিস্ময়বোধক বিন্দু "ঠুং ঠুং শব্দ" হিসাবে পরিচিত হয়. সুতরাং ঠুং = 1. সুতরাং যদি আমি 1 সমান হয় না, পরিবর্তে কি আমাকে কাজ করতে চান? আচ্ছা, প্রথম শব্দ আমি কি হতে চান? তাই স্ট্রিং 1 বহুবচন বোতল জন্য "বোতল" হওয়া উচিত, এবং তারপর এই বহুবচন "বোতল" হতে এখন জন্য ভাল হবে. এবং আমরা যদি আসলে এই আমাদের পায় দেখতে পাবেন যেখানে আমরা যেতে চান. সুতরাং এখন যদি আমি নিচে স্ক্রোল করুন এখানে, বিজ্ঞপ্তি যে আমি প্লাগিং করছি শুধু আমি না, কিন্তু s1. আমি তোমার এবং s1 মধ্যে প্লাগিং করছি. এবং তারপর নিচে এখানে, আমি 1 বিয়োগ, যা হিসাবে একই আগে, কিন্তু S2. অন্য কথায়, আমি ভিত্তি করে পরিবর্তন ইংরেজী শব্দ করতে চান এই লজিক. এখন, ইতিমধ্যে সেখানে এই কোড মধ্যে কিছু সমস্যা. গেট দিয়ে কি ইতিমধ্যে ভেঙে দিতে হয় এখানে? হাঁ? AUDIENCE: [শ্রবণাতীত]. ডেভিড জে MALAN: যথাযথভাবে. তাই আগে থেকেই আমি সুযোগ সারাংশ পাঠ করেছি লঙ্ঘন করেছে. তাই আমি s1 এবং S2 ঘোষণা করেছি, কিন্তু আমি ভেতরে করেছি এটি সম্পন্ন কোঁকড়া ধনুর্বন্ধনী, যার মানে হাঁ, এই কোড আপ কাজ করা লাইন 42 পর্যন্ত, কিন্তু যত তাড়াতাড়ি আমি লাইন 43 আঘাত, তা মনে নেই আর বিদ্যমান? ওয়েল, তা মনে আছে সুযোগ নেই - ত্ত s1 বা S2. তাই আমরা এই স্থির করা আছে. তাই আমাকে ঘোষণা মুছে দিন. এবং আমি ভেরিয়েবলের নাম রাখতে এবং এখানে এই মুছে ফেলব এবং এখানে এই মুছে দিন. এবং সত্যিই কি লাইন আমি এইসব জিনিস ডিক্লেয়ার করা উচিত? AUDIENCE: [শ্রবণাতীত]. ডেভিড জে MALAN: হ্যাঁ, তাই সম্ভবত এখানে ডান আপ, 33 পর. তাই স্ট্রিং s1 এবং তারপর স্ট্রিং S2. এবং এটি সক্রিয় আউট, আমি এটা করতে পারেন. আপনি যদি একই ধরনের দুটি ভেরিয়েবল ঘোষণা করছি, আপনি শুধু একটি কমা এবং ব্যবহার করতে পারেন না যে সমস্ত সি ডান, তাই এখন আমি দুটি ভেরিয়েবল আছে - s1 এবং S2. আমি এই ক্ষেত্রে মান নির্ধারণের তাদের করছি শর্ত এখানে, অথবা এখানে. এবং তারপর আমি তাদের ব্যবহার করছি নীচের ডাউন. কিভাবে ভাল হয় এখন এই কাজ করতে যাচ্ছি? ওয়েল, এটা এখনও একটু বগী, কিন্তু আসুন অন্তত দেখুন কতদূর আমরা অর্জিত করেছি. তাই আমাকে এগিয়ে যান এবং beer3 করা. এই beer3? হাঁ, এই beer3. এবং এখন আমাকে এগিয়ে যান এবং beer3 চালানো. 399 99. আমরা সম্ভবত তাদের অধিকাংশই থামিয়া যাবে. এবং নিচে এখানে যে, চেহারা. "বিয়ার এক দেয়ালে বোতল, এক বোতল বিয়ার, গ্রহণ এক ডাউন, এটা প্রায় পাস দেয়ালে, বিয়ার 0 বোতল. " কিন্তু আমি সমাধান কেবলমাত্র অর্ধেক আপনার মনোযোগ অঙ্কন করছি. যে ধরনের মাতাল এখানে আপ. তাই মনে হয় যে কোণ ক্ষেত্রে উঠা আমি কি সমান দুটি মান? AUDIENCE: 2, 1. ডেভিড জে MALAN: 2 এবং 1. এটি 1 এবং না 1. এটা সত্যিই শুধু এই শেষ এই গান দুটি stanzas. তাই এর পরিবর্তে আমি কি চাই? তাই আমি মনে ক্ষেত্রে যেখানে যদি হল == 1 ধরা আছে, তারপর প্রথম শব্দটি হল "বোতল", কিন্তু দ্বিতীয় শব্দ হয় "বোতল". কিন্তু এখানে, আমি এই == 2 করা পরিবর্তন করতে চান. এবং যদি এই ক্ষেত্রে কি, আমি চাই না প্রথম শব্দ হবে? AUDIENCE: "বোতল". ডেভিড জে MALAN: "বোতল" তাই দুই বোতল জন্য,. এবং তারপর এই শব্দ এখানে করা উচিত - AUDIENCE: "রহমান". ডেভিড জে MALAN: "রহমান", একবচন. সমস্ত অধিকার, এর জুম আউট, এখানে আবার চলুন, করতে পুনরায় চালানোর জন্য, পুনরায় রান beer3, টাইপ 99 আবার. ঠিক আছে, "সেগমেন্টেশন ফল্ট (কোর ডাম্প)." আমি কি ভুল হয়ে গেছে? AUDIENCE: আপনি কোন মূল্য নেই [শ্রবণাতীত]. ডেভিড জে MALAN: আহ, চমৎকার বিন্দু. সমস্ত অধিকার, তাই কি এখানে ভুল? সুতরাং সেগমেন্টেশন ফল্ট, এবং আসলে আমরা দেখতে করছি যাচ্ছে এই বেশ ভবিষ্যতে কয়েক বার, ইচ্ছাকৃতভাবে. কিন্তু এখন কি জন্য, আসলে এর মানে কি? একটি সেগমেন্টেশন ফল্ট প্রায় সবসময় মানে আছে একরকম আপনার কম্পিউটার মেমরি, উপস্থিত RAM-র অ্যাক্সেস করতে চেষ্টা করলাম, যে আপনি নিজের না, যে আপনাকে আসলে আছে না জন্য অপারেটিং সিস্টেম. তাই এই ক্ষেত্রে, আমি কি করেছেন বিজ্ঞপ্তি, যা আমার যুক্তিবিজ্ঞান মধ্যে ত্রুটিপূর্ণ. আমি s1 এবং S2 একটি মান নির্ধারিত আছে, যদি তোমার 1 সমান. আমি যে কাজ করেছি যদি তোমার 2 সমান. কিন্তু আমি এটা করতে পেরেছেন, অন্যান্য অসীম সংখ্যা না সম্ভাবনার - বিশেষত, 3 বা 4 বা বিন্দু, বিন্দু, বিন্দু, 99. সুতরাং শুধুমাত্র এই জন্য এক ফিক্স করা যাক এর যায়নি অন্য একটি শর্ত আছে. জানাতে এখানে সম্পর্কে যান এবং s1 সমান বলে - হতে কি এখানে করা উচিত? AUDIENCE: [শ্রবণাতীত]. ডেভিড জে MALAN: "বোতল" কারণ সাধারণ ক্ষেত্রে, এটি শুধু একই জিনিস. তাই সমান মূল্যউদ্ধৃতি, উদ্ধতি, "বোতল." তাই জন্য বহুবচন বোতল, এবং তারপর এখানে, বহুবচন জন্য বোতল. ঠিক আছে, তাই এখন আমাকে আমার টার্মিনাল উইন্ডোতে ফিরে যান, recompile, এটি পুনরায় সঞ্চালন করা হয়. 99. Whew. এবং এর একটি চেক দ্রুত বৈধতা না দেওয়া. টেকনিক্যালি, আমরা এই সব নিশ্চিত করতে চান পড়তে চাই তারা সঠিক, কিন্তু এর তাকান যাক অন্তত পরিচিত culprits. 3 বোতল, 2 বোতল, বোতল 2, 1 বোতল, 1 বোতল, 0 বোতল. আমরা মনে অন্তত এখন জন্য এটি সংশোধন করা আছে. কিন্তু এখানে ধরা হয় যে কি ভগবান ভয়াবহ এই জগাখিচুড়ি হয় শুধুমাত্র একটি মূঢ় যাও সমাধান এক অক্ষর ব্যাকরণগত বিস্তারিত. সুতরাং একটি কারন হতে পারে যে আমি এই ধরনের কোণ কাটা আছে তার আগে, কারণ এটি সম্পূর্ণরূপে বিরক্তিকর এর ঠিক আছে যাও এই অনেক কোড লিখুন. কিন্তু এটি সক্রিয় যে সামান্য আরো মার্জিত উপায় আছে সঠিক একই জিনিস প্রকাশ. এবং আমরা অনুসরণ হিসাবে এটা করতে পারেন. সম্পর্কে একটি মুহূর্ত জন্য পর্দায় এই চলে যাক এবং কিছু একটি তিন অপারেটর হিসাবে পরিচিত পরিচয় করিয়ে দিতে. এটি একটি এক অধি ধরনের যে এর জন্য আমাদের অভিপ্রেত একটু sexier, প্রতিশ্রুত হিসাবে বসবাস. এবং আমি এই হিসাবে অনুসরণ করতে যাচ্ছি. সম্পর্কে একটি স্ট্রিং নামক s1 দিন, এবং আমার দেওয়া এটি অনুসরণ হিসাবে নির্ধারণ করুন. (ঝ == 1)? "বোতল" অন্যথায়, "বোতল". স্ট্রিং S2 পায় (তোমার == 2)? "বোতল" অন্যথায়, "বোতল". তাই কি হয় তারপর এখানে পার্থক্য? এই কোড দু 'টি ​​পংক্তি, আমি তর্ক করতে পারেন এই পুরো জগাখিচুড়ি প্রতিস্থাপন করুন. তাই আমি এটি একটি জগাখিচুড়ি কল, যেহেতু এটি ধরনের সম্পর্কে rubs কুপথ যে এটা কোড অনেক লাইন. ভুল নেই. এটা খারাপ নকশা না. , এই আমাকে পুরোপুরি সঠিক এবং পুরোপুরি সূক্ষ্ম. কিন্তু কোডিং পায় ক্লান্তিকর যদি আপনি যাতে নিজেকে প্রকাশ আছে আবার এবং আবার এবং আবার একটি সহজ সঙ্গে বিশেষভাবে অভিশাপ ভালো দৃশ্যকল্প. তাই সি আছে ভালো কিছু শর্টকাট,. তাই মূলত এই একটি স্ট্রিং নামক s1 ডিক্লেয়ার বলছে এবং না এটা হয় এই মান অথবা এই মান যদি তোমার দায়িত্ব অর্পণ করা হয় == - দুঃখিত, আমি এই বলে আরও স্পষ্ট করা উচিত. একটি পরিবর্তনশীল s1, এটা ডিক্লেয়ার এই মান নির্ধারণ যদি এটি সত্য হয়. অন্যথা, এটি এই মান নির্ধারণ করুন. তাই অন্য কথায়, এই একটি এক লাইন ভাবে সাজানোর বলছে যদি অন্যথায় কিন্তু উপায় বরাবর একটি নিয়োগ করছেন. তাই যদি না হয় তাহলে 1, এগিয়ে যান এবং এই "বোতল" কল. এবং তারপর এই অন্যথায়, কল করার জন্য এটি "বোতল". এদিকে, S2, দ্বিতীয় শব্দ যে আমরা উল্লেখ করা প্রয়োজন, যদি তোমার 2 সমান, আমরা করব S2 "বোতল" তে সেট করা. অন্যথা, "বোতল" তে সেট করি. এবং কি এখন এই মানে হল আমি এই মাধ্যমে এবং সব মুছে যেতে পারেন কোড যারা লাইন. এবং যখন আমি বলতে, কিছুটা ridiculously, এই যে এখন হয় sexier, এটা রচনাশৈলীসংক্রান্ত ধারণা সাজানোর মধ্যে sexier. যে বৈশিষ্ট্যগুলি, এই কোড আসলে যাচ্ছে সঠিক একই জিনিস করে. এবং যদিও এটি প্রথম দিকে একটু তাকান রহস্যপূর্ণ পারে এক নজরে, কারণ আগে আমরা দেখা এই কনস্ট্রাক্ট না করেছি, আমি চাই যুক্তি দেন যে শেষ পর্যন্ত সেটা আরো অনেক কিছু হতে যাচ্ছে পাঠযোগ্য এবং এত সহজ এর জন্য আমরা মানুষের বাছাইয়ের , বুঝতে কারণ এখন শুধু আপনি পড়তে পারেন এক লাইনে সব কোড. এটা এখনও যদি একটি, যেখানে এই হল আত্মা একই শর্ত এবং তারপর এই যদি হয় ভিতরে কি এবং এই অন্যথায় হয় ভিতরে কি. কিন্তু আমরা এই ঠিক elegantly আরো অনেক কিছু করতে পারেন. এবং এখন যদি আমি আমার টার্মিনাল ফিরে যান, সব মুছে ফেলা হচ্ছে যারা লাইন এবং শুধু ঐ দুটি সঙ্গে তাদের প্রতিস্থাপন করা, recompile, বিয়ার পুনরায় রান 99 সঙ্গে বোতল, যে আমার বিজ্ঞপ্তি আসলে ব্যাকরণ হল, এখনও, সঠিক. তাই আবার, কিছু শুরু. বিয়ার 2 বোতল, 1 বোতল বিয়ার. দেখে. হাঁ. তাই সেখানে আমরা অনেক সংক্ষিপ্ত সমাধান আছে. তাই খুব,, হিসাবে আপনি পেতে সি সঙ্গে আরো আরামদায়ক, না অগত্যা প্রথম pset বা এমনকি দ্বিতীয় সঙ্গে, কিন্তু বুঝি যে এই নির্মানের আমাদের জিনিস কখনও অনুমতি পারেন আরো elegantly. এখন এর এক অন্য জিনিস এখানে করতে দেওয়া. আমাকে এগিয়ে যান এবং return1.c খুলুন. এখন যাক এর একটি উপায় যে অন্য সমস্যা সমাধানে শুরু আমাদের আরো পরিশীলিত কোড লিখতে পারবেন. তাই এখানে একটি সহজ সামান্য প্রোগ্রাম জীবনে যার উদ্দেশ্য যাও মান বাড়াতে হয়. এবং প্রকৃতপক্ষে, ফিরে আসুন একটি পদক্ষেপ গ্রহণ করা. আমাকে এই ম্যানুয়ালি না. আমাকে এবং অন্তর্ভুক্ত প্রধান (অকার্যকর) int না. এবং আমাকে এই increment.c কল. আমি কি এবং কি করতে চান? আমি এগিয়ে যান এবং ভালো কিছু বলতে যাচ্ছি - আমরা একই সংখ্যা হবে - int-x. সুতরাং int x 2 পায়; printf x হল% d, নতুন লাইন, এক্স. তাই আমি দ্রুত, কিন্তু পরিচিত সাজানোর উপাদান এখন টাইপ করছি. তারপর আমি x + করতে যাচ্ছি. তারপর আমি আবার সেই একই বাক্য মুদ্রণ যাচ্ছি. এবং তারপর আমি ঠিক 0 প্রোগ্রাম ছেড়ে ফিরে যাচ্ছি. সমস্ত অধিকার, তাই এই একটি প্রোগ্রাম যা বাড়তি একটি নম্বর. এটা প্রথম এর 2 কিছু আরম্ভ করা হচ্ছে, এবং তারপর এটা তা বাড়ায় এবং এটি পুনরায় মুদ্রণ যাচ্ছে. সুতরাং let এর বৃদ্ধি, অবিশ্বাস্য রূপে সঞ্চালন সহজ প্রোগ্রাম. কিন্তু এখন যে আমি অনুমান করতে চান, মান ঘনক্ষেত্র, তাই না কিছু কিছুটা নির্বিচারে. এবং আমি আসলে x তা ঘনক্ষেত্র পায় কাজ করতে চান. সুতরাং আমি কি pow এর ফাংশন বলা হয়, কিন্তু আমি ব্যবহার করতে না পারে সত্যিই যেখানে এখনো জানা. আমি সেকেলে উপায় কি এই চলেছি. এই বার x এর সমান x বার বার এক্স এক্স. তাই আমি মান cubing করছি, নিজেই দ্বারা এটি পুনরায় গুণকারক এবং আবার এবং আবার, যাতে আমরা পেতে ক্ষমতা এই ক্ষেত্রে 3. তাই এখন আমি মুদ্রণ সংখ্যা উচিত, হিসাবে আমরা দেখতে পাবেন হওয়া উচিত এখানে - বৃদ্ধি করা, তাই এটা আসলে সত্যিই বাড়ায় না আর, কিন্তু আমরা নামের ঘাঁটান করব - 2 পরে এবং 8. এখন, আমরা পরিশোধন জন্য একটি সুযোগের সূত্রপাত আছে এখানে, যেখানে এই একটি সংখ্যা বেড়েই এর cubing জিনিস ভালো নিজে নিজে নিজে ঠিক মনে হতে পারে দরকারী একটি ফাংশন হিসাবে, আছে অনেক ভালো কাউকে করার সিদ্ধান্ত নিয়েছে বছর আগে - আমাদের একজন আপনি কি জানেন, দরকারী ধরনের মধ্যে যদি অস্ত নিচে লিখেছেন printf যাতে বিশ্বের বাকি এটি ব্যবহার করতে পারেন, কেন নিচে না বসতে না এবং আমরা একটি ফাংশন বলা ঘনক্ষেত্র লিখুন যা আমাদের জন্য এই cubing আছে তাই আমরা ম্যানুয়ালি না মান এখানে cubing ধারণা বাস্তবায়ন? তাই একটি সহজ উদাহরণ, কিন্তু এর এগিয়ে যান এবং ব্যবহার করতে দিতে হয় এই হিসাবে একটি সুযোগ আমাদের নিজস্ব ফাংশন লিখুন. সুতরাং এ পর্যন্ত, কেবল আমরা ব্যবহার করেছি প্রধান, এবং অন্যান্য আমরা ব্যবহার করেছি মানুষ এর ফাংশন, কিন্তু আমরা আমাদের নিজস্ব করেন না. তাই আমরা এখানে. আমি এগিয়ে যান এবং একটি ফাংশন বলা ঘনক্ষেত্র লিখতে যাচ্ছি. এবং আমি এটি একটি ইনপুট নিতে যাচ্ছি. তাই ইনপুট একটি পূর্ণসংখ্যা হবে. এবং কি করতে হবে? এটি int-আউটপুট ডিক্লেয়ার যাচ্ছে = ইনপুট বার ইনপুট বার ইনপুট. এবং তারপর এটা যে আউটপুট ফিরে যাচ্ছে. এবং তারপর আমি এখন নির্দিষ্ট করা আছে. ফাংশন কোন int ফিরে যাচ্ছে. সুতরাং এখানে এরপর আপনি কীভাবে নিজের ফাংশন লিখতে চাই. আপনিই প্রথম সিদ্ধান্ত নেয় কি আপনার নাম ফাংশন হবে. এবং সাধারণত, কিছু ব্যাখ্যামূলক ভাল, তাই আমি করব এটি ঘনক্ষেত্র কল. তারপর আপনি কি এটি ফিরে যাচ্ছে উল্লেখ আছে, কি এর আউটপুট হবে. এবং আমরা এখনো আছে যে অনেক অপশন না. Int, গৃহস্থালির কাজ, float, bool, স্ট্রিং. এখন জন্য, আমি কোন int সঙ্গে বিদ্ধ করা যাচ্ছে, কারণ আমি এটা চাই না একটি পূর্ণসংখ্যা ফিরে. তারপর আপনি কি তার ইনপুট, যদি থাকে, তা নির্দিশ্ট আছে. এবং যদি একটি ঘনক যুক্তি লাগে, কিছু লাগে মধ্যে প্রথম বন্ধনী, আপনি একটি নাম দিন যে যুক্তি আছে, যাতে আপনি কি এটি কল হিসাবে আপনি বা রূপায়ণকারী লেখার করতে পারেন এই ফাংশন, এবং আপনি এটি একটি ধরন, দিন আছে যা এই মামলা int হবে. তাই সংক্ষিপ্ত, ঘনক একটি ফাংশন যে একটি পূর্ণসংখ্যা লাগে ইনপুট এবং আউটপুট হিসাবে আয় হিসাবে একটি পূর্ণসংখ্যা. এটা কি যে ইনপুট সঙ্গে আছে কি? লাইন 14 ওয়েল, আমি একটি পরিবর্তনশীল নামক আউটপুট, ঘোষণা এবং আমি এটা মান, ইনপুট বার বার ইনপুট ইনপুট নির্ধারণ করুন. এবং তারপর আমি ফিরে আউটপুট. সুতরাং কিভাবে আমি এই তারপর ব্যবহার করবেন? কি আমি এই লাইনে হাইলাইট অক্ষর পরিবর্তন 7, যাও না করা হবে আপনি কি মনে করেন? AUDIENCE: [শ্রবণাতীত]. ডেভিড জে MALAN: হ্যাঁ, x তাই ঘনক. তাই x এর একটি পরিবর্তনশীল, যার মানে হচ্ছে এটা কিছু মান ঝুলিতে. সৌভাগ্যবসত, এটি টাইপ পূর্ণসংখ্যা এর মধ্যে. এবং x এর কারণ হল কোন int, মানে আমি ঘনক্ষেত্র মধ্যে পাস করতে পারেন. এবং যদিও আমি মান x এর মান অগ্রাহ্য করা হবে ঘনক্ষেত্র x এর হিসাবে, এ পর্যন্ত মামলা হয়েছে, কোনো সময় আপনি সমান চিহ্ন এবং কোড একটি লাইন, ডানদিকে উপাদান আছে এবং তারপর মৃত্যুদন্ড কার্যকর করা হয় পরার পরার বাম মান. তাই অপারেশনের অর্ডার হিসাবে আমরা আশা. তাই কাজ করে? আচ্ছা, আমাকে নিচে এখানে যান. আমাকে আমার টার্মিনাল উইন্ডোতে খুলুন. আমাকে বৃদ্ধি না, করতে লিখুন. "ফাংশন 'ঘন' এর অন্তর্নিহিত ঘোষণা অবৈধ মধ্যে C99 একটি সরাইয়া হিসেবে. ", C99 ভাষা সি বোঝায় হিসাবে এটি ছিল 1999 সালে সংজ্ঞায়িত করা হয়, যা ছিল সংস্করণের উপর থেকে একটি আপডেট 1989, যা মূল উপর একটি আপডেট. তাই যে সমস্ত যে উপায়. এটি কি তাই যে "অন্তর্নিহিত ঘোষণার মানে ফাংশন 'ঘন' অবৈধ? "এটা ঠিক এখানে. এটি লাইন 12 ঠিক আছে. AUDIENCE: [শ্রবণাতীত]. ডেভিড জে MALAN: কি যে? AUDIENCE: এটা আগে না. ডেভিড জে MALAN: এটা আগে না. তাই এই জিনিস. C হল ধরনের মূঢ়, বা C কম্পাইলার হয় মূঢ় ধরনের. তারা শুধুমাত্র সত্যিই কি আপনি তাদের কি বলবেন. এবং বিশেষত তারা, শুধুমাত্র, আপনার কোড উপর থেকে নীচে পড়া, বাম থেকে ডাইনে যাও. তাই আপনি যদি কম্পাইলার, ঝনঝন, আপনার কোড পড়া হয়, লাইন 1, এটি পরিসংখ্যান আউট কিভাবে এই যাও না. ওহ, এখানে আসে প্রধান. ঠিক আছে, আমাকে এগিয়ে যান এবং একটি পরিবর্তনশীল x ডিক্লেয়ার. আমাকে কিছু মুদ্রণ. লাইন 7, গ্রাহ্য হয় ঘনক্ষেত্র? এটা stdio.h ঘোষণা না. এটা সি সাথে আমার কোন ধারণা আছে কি না আসে না. এবং সে জন্য ঝনঝন bails এবং যে ত্রুটির বার্তা সঙ্গে তুল্যমূল্য বস্তু. সুতরাং আমরা উপায় কয়েক মধ্যে এই স্থির করা যাবে. আমরা ঝনঝন শব্দ শেখানো যাবে কি ঠিক চলন্ত যেখানে দ্বারা ঘনক হল ঘোষণা হয়. তাই আমি কাটা এবং প্রধান উপরে এটি আটকানো. এখন বুঝতে পারি যে শুধুমাত্র প্রধান কারণ নেই প্রথম, এটা ডিফল্টরূপে এখনও মৃত্যুদন্ড কার্যকর. মুখ্য হল প্রধান. এটা ডিফল্ট ফাংশন নাম. এটা যেখানে এটি একটি ফাইল হয় না ব্যাপার. কিন্তু অন্তত এখন ঝনঝন ঘনক্ষেত্র দেখা করেনি আগে আমি এটি ব্যবহার করার জন্য. সুতরাং আসুন যদি ঝনঝন শব্দ হয় এখন সুখী দেখতে. বৃদ্ধি না, এটা এই সঙ্কলন সময় পাইনি. আমাকে বৃদ্ধি করুন. এবং প্রকৃতপক্ষে, মনে হয় কাজ করা হবে. এখন, আপনি পরিস্থিতিতে সঙ্গে আসা অবশেষে যেখানে আপ করতে পারেন এটি প্রতি ফাংশন এর করা সম্ভবপর না উপরোক্ত প্রত্যেক অন্যান্য ফাংশন. আপনি এই বাস্তবতা অসীম লুপ শুরু করব আটকে, যেখানে এই লোক এখানে কিন্তু এই হতে চায় লোক সেখানে প্রয়োজন. তাই সবসময় যে কাজ করে না. সুতরাং সৌভাগ্যক্রমে, সি রয়েছে আরো একটি মার্জিত সমাধান. আমি এই ফেরৎ যাচ্ছি যেখানে এটি ঠিক ছিল না, কারণ আমি নীতির একটি বিষয় হিসাবে পছন্দ করে,, সবসময় যে প্রধান করা শীর্ষে, কারণ এটি শুধু সুন্দর দেখতে কি এই প্রোগ্রাম ডিফল্ট অবস্থায় আছে. এবং কি আমি পর্যন্ত এখানে করতে যাচ্ছি কি নামে পরিচিত এর ঘোষণা করা হয় একটি প্রোটোটাইপ. আমি আক্ষরিক দ্বারা আমার ঘনক্ষেত্র ফাংশন পুনরায় ঘোষণা করা যাচ্ছে না কপি এবং পেস্ট. বাস্তবিক, যে আক্ষরিক না. তাই আক্ষরিক কপি এবং পেস্ট লাইন 15 আপ উপরোক্ত পংক্তিটি থেকে 6. এটা কি এই লাইন শেষ পর্যন্ত না ব্যাপার. এটি লাইন 4 করা হবে. কিন্তু এটি করার আগে প্রধান করা আছে. কিন্তু পার্থক্য লক্ষ্য করা. একটি সেমিকোলন দিয়ে শেষ 4 লাইন, যার মানে অঁ্যা, ঝনঝন, এটা আমার জন্য শব্দ নিতে যে একটা ফাংশন অস্তিত্ব আছে ঘনক্ষেত্র যে কোন int নেয় এবং কোন int উত্পন্ন হয়. কিন্তু আমি আপনি না বলতে কি এটা এখনও করত না. শুধু জানি যে আমি আপনাকে অবশেষে বলতে অঙ্গীকার. এবং প্রকৃতপক্ষে এখন, এটা ঠিক যে এই হল নীচের ডাউন. তাই এই সাধারণত ভাল শীর্ষে, কারণ তারপর আপনার ফাইল, আপনার খনখন শব্দ বন্ধ দ্রুত ছুঁড়াত্তয়ালা, এক লাইন, করতে পারেন প্রতিটি, ফাংশন কি আপনার নাম আছে, তাদের কি ইনপুট করা হয়, তাদের কি আউটপুট হয়. এবং আরো পরিষ্কার হবে, সাধারণত ইনপুট বা যুক্তি মানে পরামিতি, সমার্থক. আউটপুট ফিরতি মূল্য মানে, এটি কী জন্য প্রয়োজন হাত ফিরে যাও সম্পর্কে. তাই এখানে এই ক্ষেত্রে, উপরের ঘনক্ষেত্র, করেনি ঘোষিত হয়েছে কিন্তু সংজ্ঞায়িত অন্যথায়, পরিচিত নীচে হিসাবে প্রয়োগ,. তাই এখন আমি কি এখানে ফিরে যান এবং এই পুনরায় সঞ্চালন করা হয়. তাই এখন আমার এগিয়ে যান এবং পুনরায় চালনা করার সুযোগ, পুনরায় চালনা বৃদ্ধি. এবং এখন মনে হয় কাজ করা ঠিক জরিমানা. তাই এখন আমরা এগিয়ে মত আউট যান এবং বিবেচনার পারেন এই চতুর্থ সংস্করণ মধ্যে উদাহরণ বিয়ার. তাই আমাকে এখানে স্ক্রল ডাউন. এবং লক্ষ্য করা যে আমি ধরনের হার্ট এই পাঠ নেন ঠিক এখন. যে আমি একই কবিতার স্তবক গাইছে আবার ছিল এবং আবার এবং আবার, একই গান মধ্যে ধুয়া লাইন, অনুভূত কেন আমি কি ফ্যাক্টর যে আউট একটি ফাংশন মধ্যে মত না? এবং প্রকৃতপক্ষে, এই প্রেরণার কোনো একটি হওয়া আবশ্যক. এছাড়া যে বিশ্বের অন্য কেউ করতে পারেন একটি ঘনক ফাংশান ব্যবহার - যে একটা ভাল কারণ কিছু আউট বিবেচনার এবং আপনার লিখুন নিজের কাস্টম ফাংশন - যদি আপনার প্রোগ্রাম যে ঠিক করে সেখানে কোড একটি খণ্ড ধারণাগত ইন্দ্রিয়, আপনি যে ধরনের এটি একটি দিতে চান নাম - যেমন এই ক্ষেত্রে, কোরাস - তারপর আপনি অনুরূপ একটি পৃথক ফাংশন হিসাবে যে লিখতে পারেন. আপনি প্রধান সবকিছুই লিখুন না যদি এটা মতানুযায়ী ক্লিনার এটি পৃথক এবং এটি একটি নাম দিন. সুতরাং এখানে এই ক্ষেত্রে, বিজ্ঞপ্তি যে আমি উপরে একটি মন্তব্য আছে এই ফাংশন যে শুধু সম্পর্কে sings বোতল নির্দিষ্ট সংখ্যার. এখানে উল্লেখ্য যে আমি এইসব কল করার প্রয়োজন হবে না জিনিষ ইনপুট এবং আউটপুট. বস্তুত, এই সময় আমি বোতল জন্য আমার ইনপুট বো বলা. এবং এখানে লক্ষ্য করা, অকার্যকর সুপারিশ কি? যে ধুয়া - AUDIENCE: এটা কি ফেরত দেয় না. ডেভিড জে MALAN: একটি মান ফেরত দেয় না. এবং প্রকৃতপক্ষে, কার্যকারিতা ও মান প্রত্যাবর্তন করতে হবে না. তারা কিছু ঠিক করতে পারেন. তারা কি পার্শ্ব প্রতিক্রিয়া বলা হয়, যার মধ্যে থাকতে পারে এই কেস শুধুমাত্র একটি পর্দায় মুদ্রণ আভা. তাই এখানে লক্ষ্য করা যে এই কোড, আক্ষরিক থেকে আমি ঠিক চুরি পূর্ববর্তী উদাহরণে. শুধু পার্থক্য পরিবর্তে হিসাবে আমি আমার ব্যবহার করা হয় পরিবর্তনশীল, এখন আমি আমার পরিবর্তনশীল হিসাবে ব্যবহার করছি বো. তাই আমি নিচে বো আছে এখানে, আমি বো নিচে আছে এখানে, আমি বো আছে 1 বিয়োগ এখানে নিচে. কিন্তু ঠিক একই কোড. তবে এখন আপনি কিভাবে আমরা এই ব্যবহার করতে পারেন, আমাকে যেতে এগিয়ে যাও এবং প্রকৃতপক্ষে এই লুপ জন্য একটি পরিবর্তন করা. জন্য (int i = n; i> এ এন; তোমার -). তাই আমি যে আমাদের পূর্ববর্তী উদাহরণ থেকে চুরি করেছি. পূর্বে, এটি লাইন 37 এর মধ্যে যে আমি শুরু করবে এই বিরক্তিকর গান গাওয়া. কিন্তু পরিবর্তে, শুধু আমি এখন আমি এর ধুয়া কল করা যাচ্ছে. সম্পন্ন হয়েছে. সুতরাং এখন এই লুপ প্রতি পুনরাবৃত্তিতে, আমি এই কল অন্যান্য ফাংশন, কোরাস, যে আমি লিখতে ঘটেছে. এটা কারোর বছর আগে লেখা হয় নি. কিন্তু ধুয়া এদিকে,, ব্যবহার printf মুদ্রণের আউট এই চারটি লাইন. কিন্তু এটা সত্য যে আমি ধুয়া কলিং একটি মধ্যে আবার এবং আবার করছি লুপ এর মানে হল যে আমি খুব শেষে, পেতে, চলেছি সঠিক একই গান হিসাবে আমি আছে দূর পর্যন্ত. তাই সংক্ষেপে, এমনকি এখন যদি আমি আমার কোড ফিরে, যদিও এই বৈশিষ্ট্যগুলি সমতূল্য, নোটিশ এটা এমনকি আরো পাঠযোগ্য পেতে শুরু. আমি ঠিক জানি না কিভাবে GetInt বাস্তবায়িত করা. সত্যি, আমি কিভাবে ধুয়া বাস্তবায়িত হয় না জানি. কিন্তু এটা আমার ব্যাপার না. আমি একজন মানুষ হিসাবে না যত্ন কারণ এখন আমি বাছাই করতে পারেন,, পড়া এই আদ্যোপান্ত. কারণ কর্ম এবং তারা কী অনুযায়ী নামকরণ করা হয় , কি আমার কোড হল ক্রমবর্ধমান পাঠযোগ্য. এবং হিসাবে আমাদের প্রোগ্রাম পেতে আরো অনেক জটিল - সেমিস্টারে এর শেষে, আপনি লাইন শত শত লেখা হবে এর পিএইচপি এবং জাভাস্ক্রিপ্ট এবং ভালো ভালো ভাষায় কোড - আপনি যে এটা এত সহজ ট্র্যাকের মধ্যে রাখা পাবেন আপনি কি কাজ করেছি. এবং বন্ধুদের সাথে যখন আপনি শুরু সহযোগী বা অংশীদার বা সহকর্মীদের, আপনি আরো অনেক কিছু লিখতে সমর্থ হবেন এইসব মৌলিক ব্যায়াম শুরু দ্বারা বৃহদায়তন প্রোগ্রাম বিল্ডিং ব্লক. সুতরাং যে বলেন, কেন এটি একটা দিন কল করবেন না আমরা? এবং আমরা বুধবার আপনাকে দেখতে হবে. [সাধুবাদ]