Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में K मोस्ट रिसेंटली यूज्ड (MRU) ऐप्स के लिए प्रोग्राम


एक संख्या k और एक ऐरे arr[n] दिया गया है, जिसमें n पूर्णांक तत्व हैं जो सिस्टम में खोले गए ऐप्स की आईडी स्टोर कर रहे हैं; कार्य k संख्या के मोस्ट रिसेंटली यूज्ड ऐप्स दिखाना है, जैसे जब हम alt+tab दबाते हैं तो सभी हाल के ऐप्स दिखते हैं और सबसे हाल का सबसे कम हाल के पहले। प्रत्येक आईडी की स्थिति सिस्टम में अलग-अलग ऐप्स को दर्शाती है:

वे इस प्रकार हैं:

  • arr[0] में आईडी उस ऐप की आईडी है जो वर्तमान में उपयोग में है।
  • arr[1] में आईडी उस ऐप की आईडी है जो सबसे हाल ही में उपयोग किया गया था।
  • arr[n-1] में आईडी उस ऐप की आईडी है जो सबसे कम हाल ही में उपयोग किया गया था।

नोट - जब हम Alt+Tab कुंजी दबाते हैं तो एक पॉइंटर होता है, जो इंडेक्स 0 से शुरू होकर सभी खुले ऐप्स के माध्यम से चलता है, वह ऐप जो वर्तमान में उपयोग में है।

उदाहरण

Input: arr[] = {1, 2, 3, 4, 5}, k=2
Output: 3 1 2 4 5
Explanation: हम ऐप आईडी 3 पर स्विच करना चाहते थे, तो यह वर्तमान में सक्रिय ऐप बन जाएगा और अन्य सक्रिय ऐप्स अब सबसे हाल ही में उपयोग किए गए होंगे

Input: arr[] = {6, 1, 9, 5, 3}, k=3
Output: 5 6 1 9 3

उपरोक्त समस्या को हल करने के लिए हम जिस दृष्टिकोण का उपयोग करेंगे:

  • एक ऐरे arr[n] और k को इनपुट के रूप में लें।
  • इंडेक्स प्राप्त करें यानी k उस ऐप का जिसे उपयोगकर्ता स्विच करना चाहता है।
  • इंडेक्स k पर आईडी को वर्तमान बनाएं और फिर उन्हें व्यवस्थित करें जैसे वे क्रम में हैं।
  • परिणाम प्रिंट करें।

एल्गोरिदम

Start
Step 1-> k मोस्ट रिसेंटली यूज्ड ऐप्स ढूंढने के लिए फंक्शन घोषित करें
    void recently(int* arr, int size, int elem)
    Declare int index = 0
    Set index = (elem % size)
    Declare and set int temp = index, id = arr[index]
    Loop While temp > 0
        Set arr[temp] = arr[--temp]
    End
    Set arr[0] = id
Step 2-> ऐरे तत्व प्रिंट करने के लिए फंक्शन घोषित करें
    void print(int* arr, int size)
    Loop For i = 0 and i < size and i++
        Print arr[i]
    End
Step 3-> In main()
    Declare and set for elements as int elem = 3
    Declare array as int arr[] = { 6, 1, 9, 5, 3 }
    Calculate size as int size = sizeof(arr) / sizeof(arr[0])
    Call recently(arr, size, elem)
    Call print(arr, size)
Stop

उदाहरण

#include <bits/stdc++.h>
using namespace std;

// मोस्ट रिसेंटली यूज्ड फैशन में ऐरे अपडेट करने का फंक्शन
void recently(int* arr, int size, int elem) {
    int index = 0;
    index = (elem % size);
    int temp = index, id = arr[index];
    while (temp > 0) {
        arr[temp] = arr[--temp];
    }
    arr[0] = id;
}

// ऐरे तत्व प्रिंट करना
void print(int* arr, int size) {
    for (int i = 0; i < size; i++)
        cout << arr[i] << " ";
}

int main() {
    int elem = 3;
    int arr[] = { 6, 1, 9, 5, 3 };
    int size = sizeof(arr) / sizeof(arr[0]);
    recently(arr, size, elem);
    cout << "array in most recently used fashion: ";
    print(arr, size);
    return 0;
}

आउटपुट

array in most recently used fashion: 5 6 1 9 3
  1. C++ प्रोग्राम बाईसेक्शन मेथड के लिए C++ प्रोग्राम बाईसेक्शन मेथड के लिए

    फंक्शन f(x) दिया गया है जिसमें संख्या a और b हैं जहां, f(a) * f(b) > 0 और फंक्शन f(x) a और b के बीच होना चाहिए यानी f(x) = [a, b]। कार्य बाईसेक्शन मेथड का उपयोग करके फंक्शन f(x) में अंतराल a और b के बीच स्थित रूट का मान खोजना है।बाईसेक्शन मेथड क्या है?बाईसेक्शन मेथड का उपयोग फंक्शन f(x) में दिए ग

  1. C++ में सरणी के एलिमेंट्स का गुणनफल C++ में सरणी के एलिमेंट्स का गुणनफल

    पूर्णांक एलिमेंट्स की एक सरणी दी गई है और कार्य सरणी के एलिमेंट्स को गुणा करना और प्रदर्शित करना है। उदाहरण इनपुट-: arr[]={1,2,3,4,5,6,7} आउटपुट-: 1 x 2 x 3 x 4 x 5 x 6 x 7 = 5040 इनपुट-: arr[]={3, 4,6, 2, 7, 8, 4} आउटपुट-: 3 x 4 x 6 x 2 x 7 x 8 x 4 = 32256 नीचे दिए गए प्रोग्राम में उपयोग किया गया द

  1. C++ में ऑक्टल से डेसिमल रूपांतरण C++ में ऑक्टल से डेसिमल रूपांतरण

    एक ऑक्टल संख्या इनपुट के रूप में दी गई है, कार्य दी गई ऑक्टल संख्या को डेसिमल संख्या में बदलना है। कंप्यूटर में डेसिमल संख्याओं को आधार 10 के साथ दर्शाया जाता है और ऑक्टल संख्या को आधार 8 के साथ दर्शाया जाता है जो अंक 0 से 7 तक होती है जबकि डेसिमल संख्याएं 0-9 से शुरू होने वाला कोई भी संख्यात्मक अंक