Breadth-first search (BFS) ले queue प्रयोग गरेर दूरीको क्रममा कोठा हेर्छ, त्यसैले यसको बाटो सधैँ सबैभन्दा छोटो हुन्छ; depth-first search (DFS) ले stack प्रयोग गरेर एउटै बाटो जतिसक्दो टाढासम्म पछ्याउँछ, त्यसैले यसको बाटो लामो हुन सक्छ
एक-एक कोठा गर्दै भूलभुलैयामा खोज पठाउनुहोस्। Breadth-first search ले queue सँग घेरा-घेरा फैलिँदै सबैभन्दा छोटो बाटो भेट्छ; depth-first search ले stack सँग एउटै गल्लीमा गहिरो पस्छ। तिनले भेटेका बाटो र हरेकले हेरेका कोठाको सङ्ख्या दाँज्नुहोस्।
Bubble sort ले छिमेकी सङ्ख्याका हरेक जोडी तुलना गर्छ र क्रम मिलेन भने swap गर्छ; हरेक pass ले बाँकीमध्ये सबैभन्दा ठूलो सङ्ख्यालाई अन्तिममा पुर्याउँछ, र कुनै swap नभएको pass ले सूची मिलिसकेको जनाउँछ
Bubble sort ले सङ्ख्याको सूचीलाई एक-एक तुलना गर्दै कसरी क्रममा मिलाउँछ, हेर्नुहोस्। तुलना र swap गन्नुहोस्, हरेक pass पछि सबैभन्दा ठूलो सङ्ख्या अन्तिममा पुगेको हेर्नुहोस्, र मिसिएको, मिलेको र उल्टो सूचीको तुलना गर्नुहोस्।
साथीहरूको network एउटा graph हो; हरेक link लाई 1 गन्दा shortest path भनेको सबैभन्दा कम link हो, जुन मान्छेहरूलाई कति link टाढा छन् त्यस क्रममा, नजिकको पहिले, पक्का गर्दै भेटिन्छ
साथीहरूको सानो network मा दुई जनाबीच कति link छन् पत्ता लगाउनुहोस्: साथी 1 link टाढा, साथीको साथी 2। Shortest path खोजले एक जनाबाट सुरु गरेर पहिले नजिकका साथी हेर्दै सबैभन्दा कम link भेट्छ, वा कोही पुग्नै नसकिने देखाउँछ।
Linear search ले खोजेको सङ्ख्यालाई हरेक वस्तुसँग क्रमैसँग तुलना गर्छ; राम्रो अवस्थामा 1 पटक र नराम्रो अवस्थामा वा सङ्ख्या नभएमा जति वस्तु छन् त्यति पटक तुलना चाहिन्छ
परीक्षाका अङ्क वा पसलका मूल्यको सूचीमा कुनै सङ्ख्या एक-एक गरेर खोज्नुहोस्। सङ्ख्या पहिलो, बीचमा, अन्तिम वा सूचीमै नहुँदा कति पटक तुलना हुन्छ गन्नुहोस्।
Greedy algorithm ले हरेक चरणमा अहिलेलाई सबैभन्दा राम्रो देखिने छनोट गर्छ: खुद्राका लागि, केही बाँकी नरहेसम्म अझै अटाउने सबैभन्दा ठूलो नोट बारम्बार दिन्छ
पसलेको प्रोग्रामले नेपाली नोट र सिक्कामा खुद्रा फिर्ता दिन्छ। फरक-फरक रकममा चलाएर greedy नियम हेर्नुहोस्: अटाउने सबैभन्दा ठूलो नोट सधैँ पहिले दिने। नोट गन्नुहोस्, र greedy तरिका कहिले सबैभन्दा राम्रो हुँदैन, पत्ता लगाउनुहोस्।
Insertion sort ले बायाँ मिलेको भाग राख्छ र अर्को सङ्ख्यालाई हरेक ठूलो सङ्ख्या नाघ्दै सारेर त्यसभित्र राख्छ; लगभग मिलेको सूचीमा यसले धेरै कम काम गर्छ
Insertion sort ले हरेक सङ्ख्या पालैपालो लिएर बायाँका मिलिसकेका सङ्ख्यामाझ यसको ठाउँमा कसरी सार्छ, हातमा तास मिलाएजस्तै, हेर्नुहोस्। यसका तुलना र swap गन्नुहोस्, र मिसिएको, मिलेको र उल्टो सूचीमा यसलाई bubble sort र selection sort सँग दाँज्नुहोस्।
1 र आफैँले मात्र भाग जाने सङ्ख्या रूढ हुन्छ; प्रोग्रामले % ले भाजक जाँच्छ, भाग जाने पहिलोमा रोकिन्छ, र वर्गमूलसम्मका भाजक मात्र जाँचे पुग्छ, किनकि कुनै ठूलो गुणनखण्डसँग सानो जोडी पनि हुन्छ
एउटा सङ्ख्या छानेर प्रोग्रामले शेष प्रयोग गर्दै भाजक 2, 3, 4 … जाँचेको हेर्नुहोस्। पहिलो भाजक भेटिनेबित्तिकै, वा भाजकलाई आफैँले गुणा गर्दा सङ्ख्याभन्दा ठूलो हुनेबित्तिकै यो रोकिन्छ। प्रयास गन्नुहोस् र यसलाई किन अगाडि जानुपर्दैन, पत्ता लगाउनुहोस्।
Binary search ले खोजेको सङ्ख्यालाई मिलाइएको सूचीको बीचको वस्तुसँग तुलना गरेर, त्यो हुन नसक्ने आधा भाग फाल्छ, त्यसैले 16 वटा वस्तुमा 16 पटकको सट्टा बढीमा 5 पटक तुलना चाहिन्छ; यो मिलाइएको input मा मात्र चल्छ
16 वटा सङ्ख्यामा दुई तरिकाले खोज्नुहोस्: एक-एक गरेर, र हरेक चरणमा सूचीलाई आधा गरेर। हरेकलाई कति पटक तुलना चाहिन्छ दाँज्नुहोस्, अनि नमिलाइएको सूचीमा binary search चलाएर त्यहाँ भएको सङ्ख्या पनि नभेटेको हेर्नुहोस्।
Merge sort ले हरेक भागमा एउटा सङ्ख्या नबचेसम्म सूचीलाई आधा गर्छ, अनि सधैँ अगाडिको सानो सङ्ख्या लिँदै मिलेका भाग जोड्छ; यसको तुलना n log n जस्तो बढ्छ, bubble sort को n² भन्दा धेरै ढिलो
आठवटा सङ्ख्याको सूचीलाई हरेक भागमा एउटा मात्र सङ्ख्या नबचेसम्म बारम्बार आधा गर्नुहोस्, अनि सधैँ अगाडिको सानो सङ्ख्या लिँदै भागहरू फेरि जोड्नुहोस्। तुलना गन्नुहोस्, र मिसिएको, मिलेको र उल्टो सूचीमा bubble sort र insertion sort सँग दाँज्नुहोस्।
Selection sort ले नमिलेको भागमा सबैभन्दा सानो सङ्ख्या खोज्छ र अगाडिको अर्को ठाउँमा swap गर्छ; यसले सधैँ उत्तिकै तुलना गर्छ, तर हरेक pass मा बढीमा एउटा मात्र swap गर्छ
Selection sort ले बाँकीमध्ये सबैभन्दा सानो सङ्ख्या खोजेर अगाडि swap गर्दै, pass पछि pass सूची कसरी मिलाउँछ, हेर्नुहोस्। यसका तुलना र swap गन्नुहोस्, र मिसिएको, मिलेको र उल्टो सूचीमा यसलाई bubble sort सँग दाँज्नुहोस्।
Dijkstra को algorithm ले शहरहरूलाई सुरुबाटको दूरीको क्रममा पक्का गर्छ; पक्का भएको हरेक शहरको दूरी अन्तिम हो, र त्यहाँबाट जाने सडकले अरू शहरको दूरी छोटो मात्र बनाउन सक्छन्
काठमाडौँ वा पोखराबाट अर्को शहरसम्म सडकबाट सबैभन्दा छोटो बाटो खोज्नुहोस्। Dijkstra को algorithm ले सबैभन्दा नजिकको शहर पहिले पक्का गरेको, त्यहाँबाट जाने सडक प्रयास गरेको, र हरेक शहरसम्म भेटेको सबैभन्दा छोटो दूरी राखेको हेर्नुहोस्।
Dynamic programming ले ठूलो समस्या साना समस्याका उत्तरबाट हल गर्छ र ती उत्तर सम्झेर राख्छ: n खुड्किला चढ्ने तरिका, n − 1 का तरिका र n − 2 का तरिकाको योग हो
तपाईं सिँढी एक वा दुई खुड्किला गरी चढ्नुहुन्छ। माथिसम्म कति फरक तरिकाले पुग्न सकिन्छ? अघिल्ला उत्तरबाट एक-एक खुड्किला गरी उत्तर बनाउनुहोस्, र उत्तर बारम्बार निकाल्नुभन्दा सम्झेर राख्नु किन राम्रो हो, हेर्नुहोस्।
हरेक पटक दायरा आधा गर्दा 1 देखि 100 सम्मको जुनसुकै सङ्ख्या बढीमा 7 अनुमानमा भेटिन्छ, किनकि 7 पटक आधा गर्दा 100 वटा सङ्ख्या 1 मा झर्छन् (2⁷ = 128): binary search को आधार यही हो
1 देखि 100 सम्मको एउटा सङ्ख्या सोच्नुहोस् र कम्प्युटरलाई अनुमान गर्न दिनुहोस्। यसले सधैँ बाँकी रहेकाको बीचको सङ्ख्या भन्छ, र हरेक “धेरै ठूलो” वा “धेरै सानो” ले आधा सङ्ख्या फ्याँकिदिन्छ। यसका अनुमान गन्नुहोस् र यसलाई सबैभन्दा धेरै मेहनत गराउने सङ्ख्या खोज्नुहोस्।
प्रोग्रामले गर्ने काम input अनुसार बढ्छ: n वटा वस्तुमा एउटा loop ले करिब n चरण लिन्छ, loop भित्रको loop ले n × n, र हरेक पटक n आधा गर्दा करिब log₂ n मात्र; Big O ले यो बढोत्तरीलाई नाम दिन्छ
एउटै n का लागि तीनवटा साना प्रोग्रामले लिने चरण गन्नुहोस्: एउटा loop, loop भित्र अर्को loop, र n लाई आधा गर्दै जाने loop। n दोब्बर गर्नुहोस् र एउटा count दोब्बर, एउटा चार गुणा, र एउटा खासै नबढेको हेर्नुहोस्: Big O को पहिलो झलक।
Big O ले input को आकार n अनुसार algorithm का चरण कसरी बढ्छन् भन्छ: n दोब्बर हुँदा O(1) उस्तै रहन्छ, O(log n) एकले बढ्छ, O(n) दोब्बर हुन्छ, O(n log n) दोब्बरभन्दा अलि बढी, र O(n²) चार गुणा
वस्तुको सङ्ख्या 8 देखि 1024 सम्म बढ्दा hash lookup, binary search, linear search, merge sort र bubble sort लाई दौडाउनुहोस्। केही रेखा मुस्किलले माथि जान्छन् तर bubble sort पाँच लाख चरणभन्दा माथि पुग्छ, हेर्नुहोस्, र हरेकको बढाइका Big O नाम सिक्नुहोस्।
Linked list ले हरेक वस्तुलाई अर्को node को link सहितको node मा राख्छ; अगाडि थप्न तुरुन्तै हुन्छ, तर node i मा पुग्न head बाट i वटा link पछ्याउनुपर्छ
हरेक डिब्बा अर्कोसँग जोडिएको रेल बनाउनुहोस्। अगाडि वा कुनै डिब्बापछि डिब्बा थप्नुहोस्, एउटा निकाल्नुहोस्, र एउटा खोज्नुहोस्, अनि हरेक पटक कति link पछ्याउनुपर्छ गन्नुहोस्, किनकि linked list मा सिधै जान मिल्ने index हुँदैन।
Stack ले वस्तुहरूलाई थाकमा राख्छ: push ले वस्तुलाई माथि राख्छ, pop ले माथिको वस्तु झिक्छ र peek ले मात्र हेर्छ, त्यसैले अन्तिममा राखेको वस्तु नै पहिले निस्कन्छ (LIFO)
Stack मा प्लेट push गर्नुहोस्, pop गरेर झिक्नुहोस् र माथि peek गर्नुहोस्। पछिल्लो पटक राखेको प्लेट नै सधैँ पहिले किन निस्कन्छ, र खाली stack बाट pop गर्न खोज्दा के हुन्छ, हेर्नुहोस्।
Queue ले वस्तुहरूलाई लाइनमा राख्छ: enqueue ले वस्तु पछाडि थप्छ, dequeue ले अगाडिको वस्तु निकाल्छ र front ले मात्र हेर्छ, त्यसैले पहिले आएको वस्तु नै पहिले निस्कन्छ (FIFO)
Queue प्रयोग गरेर टिकट काउन्टरमा ग्राहकलाई सेवा दिनुहोस्: नयाँ मान्छे पछाडि थपिन्छन्, अगाडिको मान्छेलाई पहिले सेवा दिइन्छ, र front ले अब कसको पालो हो देखाउँछ। Queue किन निष्पक्ष हुन्छ, र सेवा दिनुपर्ने कोही नबाँकी हुँदा के हुन्छ, हेर्नुहोस्।
Binary search tree मा हरेक node को बायाँका सबै सङ्ख्या साना र दायाँका सबै ठूला हुन्छन्, त्यसैले खोजले हरेक चरणमा आधा tree फाल्छ, तर tree झ्याम्म र होचो रहुन्जेल मात्र
सातवटा सङ्ख्या binary search tree मा राख्नुहोस्: सानालाई बायाँ, ठूलालाई दायाँ। निकै कम तुलनामा खोज्नुहोस्, क्रमैसँग print गर्नुहोस्, र पहिले नै मिलेर आएका सङ्ख्याले tree लाई कसरी लामो सिक्री बनाउँछन् हेर्नुहोस्।
Bracket जाँच्न हरेक खुल्ने bracket लाई stack मा push गर्ने; बन्द गर्ने bracket माथिको bracket सँग मिल्नुपर्छ, जुन pop गरिन्छ; अन्तिममा stack खाली हुनुपर्छ
हरेक ( लाई ) चाहिन्छ, हरेक [ लाई ] र हरेक { लाई }, सही क्रममा बन्द गरिएका। प्रोग्रामले stack ले expression जाँचेको हेर्नुहोस्: हरेक खुल्ने bracket push गर्ने, मिल्ने bracket ले बन्द गर्दा pop गर्ने, र नमिल्ने पहिलो bracket मा रोकिने।
Hash table ले hash function ले हरेक key लाई bucket नम्बरमा बदल्छ; key थप्दा र खोज्दा त्यही एउटा bucket हेरिन्छ, त्यसैले collision थोरै भएसम्म जति धेरै key भए पनि यी छिटो रहन्छन्
Bucket हरूको table मा नाम थप्नुहोस्, जहाँ hash function ले हरेक नामको bucket यसका अक्षरबाट निकाल्छ। दुईवटा नाम एउटै bucket मा परेको (collision) हेर्नुहोस्, एउटा bucket मात्र हेरेर नाम भेट्टाउनुहोस्, र नामहरू छरिऊन् भनेर bucket को सङ्ख्या बदल्नुहोस्।
सूची (array) ले वस्तुलाई क्रममा राख्छ; हरेक वस्तुको 0 बाट गनिने index हुन्छ, त्यसैले n वटा वस्तु भएको सूचीका index 0 देखि n − 1 सम्म हुन्छन्
प्रोग्राममा किनमेलको सूची राख्नुहोस्। Index ले वस्तु पढ्नुहोस्, एउटा बदल्नुहोस्, वस्तु थप्नुहोस् र हटाउनुहोस्, र सूचीको अन्त्यभन्दा परको index माग्दा के हुन्छ पत्ता लगाउनुहोस्।
Two-dimensional array लहरहरूको सूची हो, हरेक लहर मानहरूको सूची; grid[row][col] ले एउटा मान छान्छ, लहरभरि वा स्तम्भभरि चल्ने loop ले तिनलाई जोड्छ, र दुईवटा nested loop ले हरेक कोठा हेर्छन्
हरेक विद्यार्थीका लागि एउटा लहर र हरेक विषयका लागि एउटा स्तम्भ भएको तालिकामा कक्षाका अङ्क राख्नुहोस्। grid[row][col] ले एउटा अङ्क पढ्नुहोस्, एउटा विद्यार्थीको लहर वा एउटा विषयको स्तम्भ जोड्नुहोस्, र loop भित्रको loop ले सबैभन्दा धेरै अङ्क पत्ता लगाउनुहोस्।
Traversal ले tree को हरेक node एक पटक हेर्छ; pre-order ले node लाई यसका छोराछोरीअघि, in-order ले बायाँ र दायाँ छोराछोरीबीच, post-order ले तिनपछि, र level order ले queue सँग लहरै-लहर हेर्छ
सातवटा सङ्ख्याको binary search tree बनाएर यसलाई चार तरिकाले हिँडाउनुहोस्: in-order, pre-order, post-order र तहैपिच्छे। उही सङ्ख्याका चारवटा फरक क्रम, in-order किन मिलेर आउँछ, र queue ले tree लाई लहरै-लहर कसरी हिँडाउँछ, हेर्नुहोस्।
Function ले नियमलाई एकै ठाउँमा राख्छ: to_fahrenheit(c) ले c × 9 ÷ 5 + 32 फर्काउँछ, र हरेक call ले यसको parameter c लाई नयाँ argument दिन्छ
to_fahrenheit(c) एक पटक लेखेर काठमाडौँ, जुम्ला र विराटनगरका लागि प्रयोग गर्नुहोस्। हरेक सहरको तापक्रम बदल्नुहोस्, हरेक call ले आफ्नै c पाएको हेर्नुहोस्, र एउटै नियमले तीनवटा उत्तर दिएको हेर्नुहोस्।
युक्लिडको नियम gcd(a, b) = gcd(b, a % b) ले हरेक call मा सङ्ख्या सानो बनाउँछ, त्यसैले recursive function आफ्नो base case, b = 0, मा पुग्छ, जहाँ उत्तर a हो
आफैँलाई call गर्ने function ले दुई सङ्ख्याको सबैभन्दा ठूलो साझा भाजक (GCD, म.स.) निकाल्नुहोस्: gcd(a, b) ले gcd(b, a % b) लाई call गर्छ, र शेष 0 नभएसम्म सङ्ख्याहरू सानो हुँदै जान्छन्। Call stack हेर्नुहोस्, call गन्नुहोस्, र कुन जोडीको 1 बाहेक साझा भाजक छैन पत्ता लगाउनुहोस्।
fib(n) = fib(n − 1) + fib(n − 2), fib(0) = 0 र fib(1) = 1 सहित; हरेक call ले थप दुईवटा call गर्ने भएकाले call को सङ्ख्या निकै छिटो बढ्छ, र उही उत्तर धेरै पटक निकालिन्छ
आफैँलाई दुई पटक call गर्ने function ले Fibonacci सङ्ख्या निकाल्नुहोस्। n बढ्दै जाँदा call गन्नुहोस्, call stack मा उही साना call बारम्बार भएको हेर्नुहोस्, र उत्तर सम्झिराख्नु किन धेरै छिटो हुन्छ, बुझ्नुहोस्।
Function भनेको एक पटक लेखेर धेरै पटक प्रयोग गरिने नाम दिइएको चरणहरूको समूह हो: यसका parameter ले हरेक call का argument पाउँछन्, र return ले उत्तरलाई call गरेको ठाउँमा फर्काउँछ
area(length, breadth) भन्ने function एक पटक बनाएर भान्सा, बैठक र सुत्ने कोठाका लागि call गर्नुहोस्। हरेक call ले आफ्नै parameter सहित नयाँ frame खोलेको हेर्नुहोस्, यसले फर्काउने मान हेर्नुहोस्, र तोकिएको क्षेत्रफल पुर्याउन सुत्ने कोठाको नाप बदल्नुहोस्।
Recursive function ले समस्याको सानो रूपमा आफैँलाई call गरेर समस्या हल गर्छ; base case ले सबैभन्दा सानो रूपको उत्तर सिधै दिन्छ, त्यसैले call रोकिन्छन् र उत्तरहरू call stack हुँदै फर्कन्छन्
आफैँलाई call गर्ने function ले factorial निकाल्नुहोस्। Base case सम्मको हरेक call मा call stack एक frame ले बढेको, अनि हरेक call ले उत्तर फर्काउँदा घटेको हेर्नुहोस्, र recursive function लाई किन base case चाहिन्छ, बुझ्नुहोस्।
n वटा disk सार्न, माथिका n − 1 वटा पन्छाउने, सबैभन्दा ठूलो सार्ने, अनि n − 1 वटा फेरि माथि राख्ने; उही योजनाले साना थुप्रा हल गर्छ, त्यसैले हरेक पटक चाल दोब्बर भएर एक थपिन्छ: 2ⁿ − 1
Disk को थुप्रोलाई peg A बाट peg C मा सार्नुहोस्, एक पटकमा एउटा disk, सानोमाथि ठूलो कहिल्यै होइन। Recursive योजनाले जतिसुकै disk भए पनि हल गर्छ: call र चाल हेर्नुहोस्, र 2ⁿ − 1 भन्ने ढाँचा पत्ता लगाउनुहोस्।
Nested loop मा बाहिरी loop को हरेक पटकका लागि भित्री loop सुरुदेखि अन्त्यसम्म चल्छ, त्यसैले r लहर र c स्तम्भको तालिकामा r × c गुणनफल हुन्छन्
एउटा भित्र अर्को गरी दुईवटा loop ले गुणन तालिका print गर्नुहोस्: बाहिरी loop ले लहर छान्छ, भित्री loop त्यसमा अगाडि बढ्छ। तालिकाको आकार बदल्नुहोस्, गुणनफल गन्नुहोस्, र हरेक लहरमा भित्री loop फेरि सुरु भएको हेर्नुहोस्।
n % 10 भनेको n को अन्तिम अङ्क हो र floor(n / 10) भनेको त्यो अङ्कबिनाको n, त्यसैले n, 0 नभएसम्म दुवै दोहोर्याउने while loop ले हरेक अङ्क एक पटक हेर्छ
एउटा सङ्ख्या छानेर while loop ले यसलाई कसरी टुक्र्याउँछ हेर्नुहोस्: % 10 ले अन्तिम अङ्क दिन्छ, 10 ले भाग गर्दा त्यो हट्छ, र सङ्ख्या 0 नभएसम्म loop ले हरेक अङ्क जोड्दै जान्छ। साथै अङ्क गन्नुहोस्।
Loop ले हरेक पटक निर्णय गर्न सक्छ: 3 ले i लाई ठ्याक्कै भाग जाँदा i % 3 == 0 सत्य हुन्छ, र ELSE IF को लहरमा पहिलो सत्य जाँचले जित्छ, त्यसैले सबैभन्दा विशेष अवस्था पहिले आउनुपर्छ
1 देखि n सम्म गन्नुहोस्, तर 3 का अपवर्त्यमा Fizz, 5 का अपवर्त्यमा Buzz र दुवैका अपवर्त्यमा FizzBuzz भन्नुहोस्। शेषले हरेक सङ्ख्याको निर्णय गरेको हेर्नुहोस्, र जाँचको क्रम किन महत्त्वपूर्ण छ, पत्ता लगाउनुहोस्।
Loop ले उही लाइनहरू दोहोर्याउँछ: for loop आफ्नो counter को हरेक मानका लागि एक पटक चल्छ, accumulator ले हरेक पटक केही जोड्छ, र while loop आफ्नो condition असत्य नभएसम्म दोहोरिन्छ
Loop कति पटक दोहोरिने हो छान्नुहोस्, अनि चलाउनुहोस् वा एक-एक चरण हेर्नुहोस्: counter बढेको, हरेक दोहोर्याइ बलेको र चलिरहेको total बढेको हेर्नुहोस्, अनि while loop कहिले रोकिन्छ, र कहिले कहिल्यै रोकिँदैन, सिक्नुहोस्।
While loop ले आफ्नो condition सत्य भएसम्म भित्रको भाग दोहोर्याउँछ, त्यसैले भित्रको भागले कुनै दिन condition असत्य बनाउने कुरा बदल्नैपर्छ, नत्र loop कहिल्यै रोकिँदैन
चाहेको कुरा किन्न पुग्ने नभएसम्म हरेक हप्ता उत्रै खर्चपैसा जम्मा गर्नुहोस्। जम्मा भएको पैसा मूल्यभन्दा कम भएसम्म while loop ले थप्दै जान्छ: हप्ता गन्नुहोस्, loop रोकिएको हेर्नुहोस्, र loop कहिल्यै नसकिने कसरी हुन्छ पत्ता लगाउनुहोस्।
Nested loop मा बाहिरी loop को हरेक फन्कोमा भित्री loop पूरै चल्छ; भित्री loop 1 देखि row सम्म जाँदा लहर r मा r वटा तारा र n लहरमा n(n + 1)/2 वटा तारा print हुन्छन्
एउटा loop भित्र अर्को loop चलाएर ताराको त्रिभुज print गर्नुहोस्। लहरको सङ्ख्या बदल्नुहोस्, भित्री loop कति पटक चल्छ गन्नुहोस्, र त्रिभुजलाई वर्ग कसरी बनाउने पत्ता लगाउनुहोस्।
Algorithm भनेको क्रमैसँग गरिने ठ्याक्कै चरणहरूको सूची हो; क्रम वा एउटा चरण बदल्दा नतिजा बदलिन्छ, र योजना बिग्रिएको चरण खोज्नुलाई debugging भनिन्छ
5 × 5 को grid पार गरेर रोबोट आफ्नो ब्याट्रीसम्म पुगोस् भनेर अगाडि जाने र घुम्ने block हरू क्रमैसँग राख्नुहोस्। बिग्रिएको योजना चलाएर रोबोट पर्खालमा ठोक्किने block पत्ता लगाउनुहोस्, सच्याउनुहोस्, अनि सबैभन्दा छोटो योजना खोज्नुहोस्।
Caesar cipher ले हरेक अक्षरलाई वर्णमालामा निश्चित ठाउँ (shift) अगाडिको अक्षरले बदल्छ, Z बाट फेरि A मा घुम्दै; उत्तिकै सङ्ख्या पछाडि सार्दा यो खुल्छ
सन्देशका हरेक अक्षरलाई वर्णमालामा उत्तिकै ठाउँ अगाडि सारेर लुकाउनुहोस्, अनि उल्टोतिर सारेर फेरि पढ्नुहोस्। प्रोग्रामले शब्दलाई अक्षर-अक्षर गरेर code बनाएको हेर्नुहोस्, Z पछि के हुन्छ हेर्नुहोस्, र एउटा code बनाइएको शब्द खोल्नुहोस्।
State machine सधैँ केही state मध्ये एउटामा हुन्छ र नियमअनुसार अर्को state मा सर्छ; traffic light ले आफ्नो state एउटा variable मा राख्छ र (state + 1) % 3 ले रातो, हरियो, पहेँलो हुँदै घुम्छ
केही tick सम्म traffic light चलाउनुहोस्। एउटा loop ले यसलाई रातोबाट हरियो, हरियोबाट पहेँलो र फेरि रातोमा लैजान्छ, state का लागि एउटा variable र फेरि घुम्न % प्रयोग गरेर। हरेक रङ कति पटक आयो गन्नुहोस् र कुनै पनि tick मा कुन बत्ती बल्छ अनुमान गर्नुहोस्।
ठूलो समस्यालाई साना भागमा टुक्र्याउँदा (decomposition) सजिलो हुन्छ; हरेक भाग केही चरण बन्छ, र एउटा भागको गल्ती, जस्तै एक चाल बढी, ले पूरै योजना बिगार्छ
7 × 7 को भूलभुलैयाबाट रोबोटलाई ब्याट्रीसम्म पुर्याउनुहोस्। लामो बाटोलाई छोटा भागमा टुक्र्याउनुहोस्, गन्तीको गल्ती भएको योजना कुन block मा बिग्रिन्छ पत्ता लगाउनुहोस्, र सबैभन्दा छोटो योजना बनाउनुहोस्।
if / else ले एउटा condition जाँच्छ: त्यो सत्य भए प्रोग्रामले then भाग चलाउँछ, नत्र else भाग, दुवै कहिल्यै होइन
पानी पर्ने सम्भावना बदल्दै छाता लैजाने कि नलैजाने भनेर निर्णय गर्ने सानो प्रोग्राम चलाउनुहोस्। Condition सत्य वा असत्य भएको हेर्नुहोस्, कुन branch चल्छ हेर्नुहोस्, र गलत उत्तर दिने condition सच्याउनुहोस्।
NOT ले सत्यलाई असत्य बनाउँछ; AND दुवै भाग सत्य हुँदा मात्र सत्य हुन्छ; OR कम्तीमा एउटा भाग सत्य हुँदा सत्य हुन्छ, त्यसैले लामो condition लाई एक-एक भाग गरेर निकाल्न सकिन्छ
पानी परिरहेको छ कि छैन, गृहकार्य सकियो कि सकिएन र बिदा हो कि होइन प्रोग्रामलाई भन्नुहोस्, अनि बाहिर खेल्न पाइन्छ कि पाइँदैन भन्ने निर्णय गर्नुअघि यसले NOT, AND र OR ले नियमको हरेक भाग कसरी निकाल्छ हेर्नुहोस्।
Condition हरूलाई AND (सबै सत्य हुनुपर्ने) र OR (एउटा भए पुग्ने) ले जोड्न सकिन्छ, र एउटा if / else अर्कोभित्र बस्न सक्छ, त्यसैले प्रोग्रामले एउटा सत्य नभेटेसम्म एकपछि अर्को प्रश्न सोध्छ
गणित, विज्ञान र अङ्ग्रेजीका अङ्क राखेर नतिजा निकाल्ने प्रोग्राम चलाउनुहोस्: यसले total र प्रतिशत निकाल्छ, AND ले हरेक विषयमा पास भएको जाँच्छ, अनि nested if / else ले श्रेणी दिन्छ। हरेक branch मा पुर्याउने अङ्क पत्ता लगाउनुहोस्।
कुनै वर्ष 4 ले भाग जान्छ र 100 ले जाँदैन भने, वा 400 ले भाग जान्छ भने leap year हुन्छ; remainder % ले भाग जान्छ कि जाँच्छ र AND / OR ले नियमहरूलाई एउटै condition मा जोड्छ
एउटा वर्ष छानेर फेब्रुअरीमा 29 दिन हुन्छ कि हुँदैन भनेर निर्णय गर्ने प्रोग्राम चलाउनुहोस्। Remainder operator % ले भाग जान्छ कि जाँदैन कसरी जाँच्छ, र AND र OR ले तीनवटा नियमलाई एउटै condition मा जोडेर 1900 र 2000 लाई कसरी सही उत्तर दिन्छ, हेर्नुहोस्।
AND ले जोडिएको loop condition कुनै एक भाग असत्य हुनेबित्तिकै रोकिन्छ: यहाँ PIN सही हुँदा वा तीन प्रयास सकिँदा
ATM ले PIN टाइप गर्न तीन पटक मौका दिन्छ। हरेक प्रयासमा टाइप गरिने PIN छानेर प्रोग्राम चलाउनुहोस्: card बन्द रहेसम्म AND तीनभन्दा कम प्रयास भएसम्म while loop ले सोधिरहन्छ, अनि स्वागत गर्छ वा card block गर्छ।
Variable भनेको एउटा मान राख्ने नाम भएको बाकस हो; assignment ले दायाँपट्टिको हिसाब गरेर उत्तर बाकसमा राख्छ, पहिले भएको मान हटाउँछ, र प्रोग्रामले पछिल्लो मान प्रयोग गर्छ
सानो प्रोग्राम चलाएर पसलमा कापी किन्नुहोस्: मूल्य, कति वटा र तिर्ने पैसा राख्नुहोस्, अनि एक-एक लाइन चलाउँदै हरेक variable को बाकस भरिँदै र बदलिँदै गएको, कुल रकम र फिर्ता पैसा print भएसम्म हेर्नुहोस्।
कुनै सङ्ख्यालाई बारम्बार 2 ले भाग गर्दा आउने शेषहरू यसका binary अङ्क हुन्, अन्तिम bit देखि पहिलोसम्म; हरेक शेष एक स्थान बायाँ राखिन्छ
एउटा सङ्ख्या छानेर यसलाई binary मा बदल्ने algorithm चलाउनुहोस्: 2 ले भाग गर्ने, शेषलाई अर्को bit का रूपमा राख्ने, र केही बाँकी नरहुन्जेल दोहोर्याउने। Bit हरू दायाँबाट जोडिँदै गएको हेर्नुहोस् र एउटा सङ्ख्यालाई कतिवटा bit चाहिन्छन्, गन्नुहोस्।
String भनेको 0 बाट सुरु हुने index भएका character को सूची हो; loop ले हरेकलाई पालैपालो हेर्न सक्छ, र दुवै छेउबाट भित्र सर्ने दुई pointer ले आधा तुलनामा मात्र palindrome जाँच्छन्
शब्दलाई एक-एक अक्षर गर्दै हेर्नुहोस्: यसका अक्षर र स्वर (vowel) गन्नुहोस्, यसलाई उल्टो लेख्नुहोस्, र दुवै छेउबाट एकैपटक अक्षर तुलना गरेर यो palindrome हो कि होइन जाँच्नुहोस्।