RBSE Class 12th 2018 -II (Supp.)-SS-03-2018 Previous Year Papers

You opened the RBSE Class 12th 2018 -II (Supp.)-SS-03-2018 Previous Year Papers page — a focused place to read the real previous year question paper for that subject and year. RBSE Solution keeps exam-year sets together so you can practise the same cycle your seniors faced.

Previous year papers reward patience: read instructions, note mark distribution, then attempt questions before peeking at solutions elsewhere on the site. This URL always loads the same free previous year papers content for -II (Supp.)-SS-03-2018 (2018).

Use the details table to confirm class and year, then scroll to the paper images or PDF below. More subjects from 2018 are linked later on this page.

Paper details

Quick reference for this previous year papers page — confirm board, class, and year & subject before you study.

Board RBSE
Class Class 12th
Exam year 2018
Subject -II (Supp.)-SS-03-2018
Resource type Previous Year Papers
Category RBSE Previous Year Question Papers
Website RBSE Solution

The table summarises this Previous Year Papers resource. Confirm RBSE, Class 12th, year 2018, and subject -II (Supp.)-SS-03-2018 before studying.

RBSE Solution organises previous year papers so each URL carries chapter-specific guidance — better for students and for search engines than one generic paragraph for the whole class.

Turning 2018 papers into insight

One -II (Supp.)-SS-03-2018 paper reveals style; several from the same year reveal pattern. After this page, open sibling subjects listed below to see whether marks cluster in certain units.

Keep rough work dated in your notebook. Examiners in Class 12th expect clear numbering even in practice sessions.

RBSE Class 12th 2018 -II (Supp.)-SS-03-2018

Scroll through the Previous Year Papers pages for -II (Supp.)-SS-03-2018 (2018).

RBSE Class 12th 2018 -II (Supp.)-SS-03-2018 Previous Year Papers 0
https://rbsesolution.com
RBSE Class 12th 2018 -II (Supp.)-SS-03-2018 Previous Year Papers 1
https://rbsesolution.com
RBSE Class 12th 2018 -II (Supp.)-SS-03-2018 Previous Year Papers 2
https://rbsesolution.com
RBSE Class 12th 2018 -II (Supp.)-SS-03-2018 Previous Year Papers 3
https://rbsesolution.com
RBSE Class 12th 2018 -II (Supp.)-SS-03-2018 Previous Year Papers 4
https://rbsesolution.com
RBSE Class 12th 2018 -II (Supp.)-SS-03-2018 Previous Year Papers 5
https://rbsesolution.com
RBSE Class 12th 2018 -II (Supp.)-SS-03-2018 Previous Year Papers 6
https://rbsesolution.com

Rajasthan Board Class 12th -II (Supp.)-SS-03-2018 2018 solved Previous Year Question Papers

उच्च माध्यमिक पूरक परीक्षा, 2018

SENIOR SECONDARY SUPPLEMENTARY EXAMINATION, 2018

सूचना प्रौद्योगिकी और प्रोग्रामिंग - II

INFORMATION TECHNOLOGY AND PROGRAMMING - II (Optional)

समय : 3¾ घण्टे   |   पूर्णांक : 56


परीक्षार्थियों के लिए सामान्य निर्देश :

GENERAL INSTRUCTIONS TO THE EXAMINEES :

  1. परीक्षार्थी सर्वप्रथम अपने प्रश्न पत्र पर नामांक अनिवार्यत: लिखें।
    Candidate must write first his / her Roll No. on the question paper compulsorily.
  2. सभी प्रश्न करने अनिवार्य हैं।
    All the questions are compulsory.
  3. प्रत्येक प्रश्न का उत्तर दी गई उत्तर-पुस्तिका में ही लिखें।
    Write the answer to each question in the given answer-book only.
  4. जिन प्रश्नों में आन्तरिक खण्ड हैं, उन सभी के उत्तर एक साथ ही लिखें।
    For questions having more than one part the answers to those parts are to be written together in continuity.

प्रश्न पत्र को खोलने के लिए यहाँ फाड़ें
TEAR HERE TO OPEN THE QUESTION PAPER

SS—03—Info.Tech. (Opt.)—253  |  [ Turn Over

खण्ड - A / PART - A

1) डेटा संरचना को परिभाषित कीजिए। [1]

Define the data structure.

उत्तर / Answer: डेटा संरचना डेटा को व्यवस्थित करने, संग्रहीत करने और प्रबंधित करने का एक तरीका है ताकि डेटा का कुशलतापूर्वक उपयोग किया जा सके। / A data structure is a way of organizing, storing, and managing data so that it can be used efficiently.

2) रिकर्शन को परिभाषित कीजिए। [1]

Define the recursion.

उत्तर / Answer: रिकर्शन एक प्रोग्रामिंग तकनीक है जिसमें कोई फंक्शन स्वयं को कॉल करता है। / Recursion is a programming technique in which a function calls itself.

3) सॉर्टिंग को परिभाषित कीजिए। [1]

Define the sorting.

उत्तर / Answer: सॉर्टिंग डेटा को एक निश्चित क्रम (जैसे आरोही या अवरोही) में व्यवस्थित करने की प्रक्रिया है। / Sorting is the process of arranging data in a specific order (such as ascending or descending).


नोट / Note: प्रश्न क्रमांक 28, 29 व 30 में आन्तरिक विकल्प हैं। / Question Nos. 28, 29 and 30 have internal choices.

प्रश्न (Questions)

  1. स्टैक क्या है? [1]

    What is stack?

    उत्तर: स्टैक एक रैखिक डेटा संरचना है जो LIFO (Last In First Out) सिद्धांत पर कार्य करती है, जिसमें डेटा का सम्मिलन और निष्कासन केवल एक सिरे (टॉप) से होता है।

    Answer: Stack is a linear data structure that works on the LIFO (Last In First Out) principle, where insertion and deletion of data occur only at one end (top).

  2. लिंक्ड-लिस्ट को परिभाषित कीजिए। [1]

    Define the linked list.

    उत्तर: लिंक्ड-लिस्ट एक रैखिक डेटा संरचना है जिसमें तत्व (नोड) एक श्रृंखला में जुड़े होते हैं, जहाँ प्रत्येक नोड में डेटा और अगले नोड का पता (लिंक) होता है।

    Answer: A linked list is a linear data structure in which elements (nodes) are connected in a chain, where each node contains data and the address (link) of the next node.

  3. सारणी क्या है? [1]

    What is an array?

    उत्तर: सारणी (एरे) एक डेटा संरचना है जो समान डेटा प्रकार के तत्वों को एक सन्निकट मेमोरी स्थानों में संग्रहीत करती है, जहाँ प्रत्येक तत्व को इंडेक्स द्वारा एक्सेस किया जाता है।

    Answer: An array is a data structure that stores elements of the same data type in contiguous memory locations, where each element is accessed by an index.

  4. आइडेंटिफायर को परिभाषित कीजिए। [1]

    Define the identifier.

    उत्तर: आइडेंटिफायर एक नाम है जो प्रोग्रामिंग में वेरिएबल, फंक्शन, क्लास या अन्य उपयोगकर्ता-परिभाषित इकाई को पहचानने के लिए दिया जाता है।

    Answer: An identifier is a name given to a variable, function, class, or other user-defined entity in programming to identify it.

  5. क्लास क्या है? [1]

    What is a class?

    उत्तर: क्लास एक ब्लूप्रिंट या टेम्पलेट है जो ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में ऑब्जेक्ट बनाने के लिए उपयोग किया जाता है, जिसमें डेटा सदस्य और सदस्य फंक्शन शामिल होते हैं।

    Answer: A class is a blueprint or template used to create objects in object-oriented programming, containing data members and member functions.

  6. एंटिटी से आप क्या समझते हो? [1]

    What do you understand by entity?

    उत्तर: एंटिटी एक वास्तविक दुनिया की वस्तु या अवधारणा है जिसे डेटाबेस में संग्रहीत किया जा सकता है, जैसे कि व्यक्ति, स्थान, या वस्तु।

    Answer: An entity is a real-world object or concept that can be stored in a database, such as a person, place, or thing.

  7. क्वेरी को परिभाषित कीजिए। [1]

    Define the Query.

    उत्तर: क्वेरी एक डेटाबेस से विशिष्ट डेटा प्राप्त करने के लिए लिखा गया एक प्रश्न या निर्देश है, जो आमतौर पर SQL जैसी भाषा में होता है।

    Answer: A query is a question or instruction written to retrieve specific data from a database, usually in a language like SQL.

खण्ड - अ (Part - A)

अति लघुत्तरात्मक प्रश्न (Very Short Answer Type Questions)

प्रश्न 11: कमिट क्या है?
What is commit?

उत्तर: कमिट (COMMIT) एक SQL कमांड है जो डेटाबेस में किए गए सभी परिवर्तनों को स्थायी रूप से सेव कर देता है। यह ट्रांजेक्शन को समाप्त करता है और पिछली स्थिति में वापस नहीं जा सकते।

Answer: COMMIT is an SQL command that permanently saves all changes made in a database transaction. It ends the transaction and cannot be rolled back.

प्रश्न 12: कार्यात्मक निर्भरता (FD) को परिभाषित कीजिए।
Define the Functional Dependency.

उत्तर: कार्यात्मक निर्भरता (Functional Dependency - FD) एक संबंध है जो डेटाबेस में दो एट्रीब्यूट सेट के बीच होता है। यदि X और Y एट्रीब्यूट हैं, तो X → Y का अर्थ है कि X का मान Y के मान को विशिष्ट रूप से निर्धारित करता है। अर्थात, समान X मान के लिए Y का मान हमेशा समान होगा।

Answer: Functional Dependency (FD) is a relationship between two sets of attributes in a database. If X and Y are attributes, then X → Y means that the value of X uniquely determines the value of Y. That is, for the same X value, the Y value will always be the same.

प्रश्न 13: PL/SQL में for loop का सिन्टेक्स लिखिए?
Write the syntax of for loop used in PL/SQL?

उत्तर: PL/SQL में for loop का सिन्टेक्स निम्नलिखित है:

FOR counter IN [REVERSE] lower_bound..upper_bound LOOP
    -- statements
END LOOP;

Answer: The syntax of for loop in PL/SQL is:

FOR counter IN [REVERSE] lower_bound..upper_bound LOOP
    -- statements
END LOOP;

खण्ड - ब (Part - B)

प्रश्न 4: स्टैटिक एवं डायनेमिक स्मृति आवंटन में अन्तर स्पष्ट कीजिए।
Differentiate between static and dynamic memory allocation.

क्रम स्टैटिक मेमोरी आवंटन डायनेमिक मेमोरी आवंटन
1. मेमोरी कंपाइल टाइम पर आवंटित होती है। मेमोरी रन टाइम पर आवंटित होती है।
2. मेमोरी का आकार पहले से निश्चित होता है। मेमोरी का आकार रन टाइम पर तय होता है।
3. मेमोरी को मुक्त करने की आवश्यकता नहीं होती। मेमोरी को मैन्युअली मुक्त करना पड़ता है (free())।
4. उदाहरण: स्टैक में वेरिएबल, ऐरे। उदाहरण: malloc(), calloc(), realloc() द्वारा आवंटित मेमोरी।

प्रश्न 5: स्मृति आवंटन फंक्शन : calloc और realloc को परिभाषित कीजिए।
Define the memory allocation functions : calloc and realloc.

calloc (Contiguous Allocation): यह फंक्शन एक साथ कई ब्लॉकों के लिए मेमोरी आवंटित करता है और प्रत्येक बाइट को 0 से इनिशियलाइज़ करता है। इसका सिन्टेक्स है: void *calloc(size_t num, size_t size); जहाँ num ब्लॉकों की संख्या और size प्रत्येक ब्लॉक का आकार है।

realloc (Reallocation): यह फंक्शन पहले से आवंटित मेमोरी ब्लॉक के आकार को बदलने के लिए उपयोग होता है। इसका सिन्टेक्स है: void *realloc(void *ptr, size_t new_size); जहाँ ptr पुराना पॉइंटर और new_size नया आकार है। यह मौजूदा डेटा को नए ब्लॉक में कॉपी करता है।

प्रश्न 6: अनुक्रमिक और बाइनरी सर्च के बीच तुलना कीजिए।
Compare between sequential and binary search.

क्रम अनुक्रमिक सर्च (Sequential Search) बाइनरी सर्च (Binary Search)
1. डेटा को सॉर्ट होना आवश्यक नहीं है। डेटा को सॉर्ट होना आवश्यक है।
2. समय जटिलता: O(n) समय जटिलता: O(log n)
3. छोटे डेटा सेट के लिए उपयुक्त। बड़े डेटा सेट के लिए उपयुक्त।
4. सभी एलिमेंट्स को एक-एक करके चेक करता है। डेटा को बीच से विभाजित करके सर्च करता है।

प्रश्न 7: लिंक्ड-लिस्ट को प्रयोग करने के फायदे और नुकसान समझायें।
Define the advantages and disadvantages of using Linked-list.

फायदे (Advantages):

  • डायनेमिक साइज - लिंक्ड लिस्ट का आकार रन टाइम पर बढ़ाया या घटाया जा सकता है।
  • इन्सर्शन और डिलीशन आसान - बीच में एलिमेंट जोड़ने या हटाने में O(1) समय लगता है (यदि पॉइंटर उपलब्ध हो)।
  • मेमोरी का कुशल उपयोग - जितनी आवश्यकता हो उतनी ही मेमोरी आवंटित होती है।

नुकसान (Disadvantages):

  • रैंडम एक्सेस संभव नहीं - किसी विशेष इंडेक्स पर सीधे पहुँचने के लिए ट्रैवर्स करना पड़ता है (O(n))।
  • अतिरिक्त मेमोरी - प्रत्येक नोड में पॉइंटर के लिए अतिरिक्त मेमोरी की आवश्यकता होती है।
  • रिवर्स ट्रैवर्सल कठिन - सिंगली लिंक्ड लिस्ट में पीछे जाना संभव नहीं है (डबली लिंक्ड लिस्ट में यह समस्या हल हो जाती है)।

8) स्कोप रिजोल्यूशन ऑपरेटर के उपयोग समझायें। [2]

Discuss the applications of scope resolution operator.

स्कोप रिजोल्यूशन ऑपरेटर (::) के उपयोग:

  • किसी क्लास के बाहर उसके स्टैटिक या मेंबर फंक्शन को परिभाषित करने के लिए।
  • ग्लोबल वेरिएबल को एक्सेस करने के लिए जब लोकल वेरिएबल का नाम समान हो।
  • नेमस्पेस में परिभाषित सदस्यों को एक्सेस करने के लिए।
  • इनहेरिटेड क्लास के बेस क्लास के सदस्यों को एक्सेस करने के लिए।

9) इनलाइन फंक्शन क्‍या होते हैं? समझाइये। [2]

What are inline functions? Explain.

इनलाइन फंक्शन: ये ऐसे फंक्शन होते हैं जिन्हें कंपाइलर कॉल के स्थान पर उनके कोड को सीधे डाल देता है, जिससे फंक्शन कॉल का ओवरहेड कम होता है। इन्हें inline कीवर्ड से डिफाइन किया जाता है। ये छोटे और बार-बार कॉल किए जाने वाले फंक्शन के लिए उपयोगी होते हैं।

20) मल्टीपल इन्हेरिटेंस को संक्षेप में समझाइये। [2]

Discuss the multiple inheritance in brief.

मल्टीपल इन्हेरिटेंस: यह एक ऐसी सुविधा है जिसमें एक डिराइव्ड क्लास एक से अधिक बेस क्लास से गुण और विधियाँ प्राप्त कर सकता है। उदाहरण: class C : public A, public B { };। इससे कोड पुन: उपयोग बढ़ता है लेकिन डायमंड प्रॉब्लम जैसी समस्याएँ हो सकती हैं।

2) तृतीय नार्मल फार्म को परिभाषित कीजिए। [2]

Define the Third Normal Form.

तृतीय नार्मल फार्म (3NF): एक संबंध 3NF में होता है यदि वह द्वितीय नार्मल फार्म (2NF) में हो और उसमें कोई ट्रांजिटिव डिपेंडेंसी न हो। अर्थात, कोई नॉन-प्राइम एट्रीब्यूट किसी अन्य नॉन-प्राइम एट्रीब्यूट पर निर्भर नहीं होना चाहिए।

22) डेटा डेफिनेशन भाषा (DDL) से आप क्‍या समझते है? [2]

What do you understand by DDL (Data Definition Language)?

डेटा डेफिनेशन भाषा (DDL): यह SQL का एक उपसमूह है जिसका उपयोग डेटाबेस की संरचना को परिभाषित करने, बदलने या हटाने के लिए किया जाता है। इसमें CREATE, ALTER, DROP, TRUNCATE जैसे कमांड शामिल हैं।

23) PL/SQL में अपवाद संचालन से क्या तात्पर्य है? [2]

What do you mean by Exception Handling in PL/SQL?

PL/SQL में अपवाद संचालन: यह एक तंत्र है जो प्रोग्राम के निष्पादन के दौरान होने वाली त्रुटियों (जैसे डिवाइड बाय जीरो, डेटा नॉट फाउंड) को पकड़ने और संभालने की अनुमति देता है। इसे EXCEPTION ब्लॉक में WHEN क्लॉज का उपयोग करके कार्यान्वित किया जाता है, जिससे प्रोग्राम क्रैश नहीं होता।

24) डेटाबेस ट्रिगर को परिभाषित करें एवं सिन्टेक्स भी लिखिए। [2]

Define the database trigger and also write the syntax.

डेटाबेस ट्रिगर: यह एक संग्रहीत प्रोग्राम है जो किसी तालिका पर INSERT, UPDATE या DELETE जैसी घटना होने पर स्वचालित रूप से निष्पादित होता है।

सिन्टेक्स:

CREATE [OR REPLACE] TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON table_name
[FOR EACH ROW]
BEGIN
   -- trigger body
END;

खण्ड - स (Part - C)

  1. बबल सॉर्टिंग का C - भाषा में प्रोग्राम या एल्गोरिथ्म लिखिए। [3]

    Write the algorithm or program of Bubble sorting in C - language.

    एल्गोरिथ्म (Algorithm):

    1. आरंभ करें।
    2. एक सरणी (array) लें जिसमें n तत्व हों।
    3. i = 0 से i < n-1 तक के लिए बाहरी लूप चलाएँ।
    4. j = 0 से j < n-i-1 तक के लिए आंतरिक लूप चलाएँ।
    5. यदि arr[j] > arr[j+1] है, तो arr[j] और arr[j+1] को आपस में बदलें (swap)।
    6. आंतरिक लूप समाप्त होने पर सबसे बड़ा तत्व अंतिम स्थान पर पहुँच जाता है।
    7. बाहरी लूप समाप्त होने पर सरणी क्रमबद्ध (sorted) हो जाती है।
    8. समाप्त करें।

    C - भाषा में प्रोग्राम:

    #include <stdio.h>
    void bubbleSort(int arr[], int n) {
        int i, j, temp;
        for (i = 0; i < n-1; i++) {
            for (j = 0; j < n-i-1; j++) {
                if (arr[j] > arr[j+1]) {
                    temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
    }
    int main() {
        int arr[] = {64, 34, 25, 12, 22, 11, 90};
        int n = sizeof(arr)/sizeof(arr[0]);
        bubbleSort(arr, n);
        printf("Sorted array: ");
        for (int i=0; i < n; i++)
            printf("%d ", arr[i]);
        return 0;
    }
  2. एक क्लास में मल्टिपल कंस्ट्रक्टर के उपयोग को दर्शाने हेतु C++ भाषा में प्रोग्राम लिखिए। [3]

    Write a program in C++ language to show the use of multiple constructors in a class.

    #include <iostream>
    using namespace std;
    class Student {
        int roll;
        string name;
    public:
        // Default constructor
        Student() {
            roll = 0;
            name = "Unknown";
        }
        // Parameterized constructor
        Student(int r, string n) {
            roll = r;
            name = n;
        }
        // Copy constructor
        Student(const Student &s) {
            roll = s.roll;
            name = s.name;
        }
        void display() {
            cout << "Roll: " << roll << ", Name: " << name << endl;
        }
    };
    int main() {
        Student s1;                // default constructor
        Student s2(101, "Ravi");   // parameterized constructor
        Student s3(s2);            // copy constructor
        s1.display();
        s2.display();
        s3.display();
        return 0;
    }

    व्याख्या: इस प्रोग्राम में Student क्लास में तीन कंस्ट्रक्टर हैं – डिफ़ॉल्ट, पैरामीटराइज़्ड और कॉपी कंस्ट्रक्टर। यह मल्टिपल कंस्ट्रक्टर के उपयोग को दर्शाता है।

  3. PL/SQL में प्रोसीजर एवं फंक्शन को सिन्टेक्स सहित समझाइये। [3]

    Explain the procedure and function in PL/SQL with syntax.

    प्रोसीजर (Procedure): यह एक PL/SQL सबप्रोग्राम है जो एक या अधिक कार्यों को निष्पादित करता है। यह मान (value) वापस नहीं करता।

    CREATE OR REPLACE PROCEDURE procedure_name (parameter_list)
    IS
       -- declarations
    BEGIN
       -- executable statements
    END procedure_name;

    फंक्शन (Function): यह भी एक सबप्रोग्राम है, लेकिन यह एक मान (value) वापस करता है।

    CREATE OR REPLACE FUNCTION function_name (parameter_list)
    RETURN return_datatype
    IS
       -- declarations
    BEGIN
       -- executable statements
       RETURN value;
    END function_name;

    अंतर: प्रोसीजर मान वापस नहीं करता, जबकि फंक्शन RETURN के माध्यम से एक मान वापस करता है।

  4. फिबोनैकी सीरीज का प्रोग्राम रिकर्शन का उपयोग करते हुए C - भाषा में लिखिए। [4]

    Write a program in C - language for Fibonacci series using recursion.

    #include <stdio.h>
    int fib(int n) {
        if (n <= 1)
            return n;
        else
            return fib(n-1) + fib(n-2);
    }
    int main() {
        int n, i;
        printf("Enter number of terms: ");
        scanf("%d", &n);
        printf("Fibonacci Series: ");
        for (i = 0; i < n; i++)
            printf("%d ", fib(i));
        return 0;
    }

    व्याख्या: fib() फंक्शन रिकर्सिव रूप से फिबोनैकी संख्या निकालता है। आधार स्थिति (base case) n <= 1 है।

    अथवा

    स्टैक के बुनियादी ऑपरेशन Push() तथा Pop() की एल्गोरिथ्म या C - भाषा में प्रोग्राम लिखिए। [2+2=4]

    Write an algorithm or C - language program of Push() and Pop(), basic operations of stack.

    एल्गोरिथ्म (Algorithm):

    Push():

    1. जाँचें कि क्या स्टैक भरा है (top == MAX-1)। यदि हाँ, तो "Overflow" प्रदर्शित करें।
    2. अन्यथा, top को 1 बढ़ाएँ और नए तत्व को stack[top] पर रखें।

    Pop():

    1. जाँचें कि क्या स्टैक खाली है (top == -1)। यदि हाँ, तो "Underflow" प्रदर्शित करें।
    2. अन्यथा, stack[top] को हटाएँ और top को 1 घटाएँ।

    C - भाषा में प्रोग्राम:

    #include <stdio.h>
    #define MAX 5
    int stack[MAX], top = -1;
    void push(int val) {
        if (top == MAX-1)
            printf("Stack Overflow\n");
        else {
            top++;
            stack[top] = val;
        }
    }
    int pop() {
        if (top == -1) {
            printf("Stack Underflow\n");
            return -1;
        } else {
            int val = stack[top];
            top--;
            return val;
        }
    }
    int main() {
        push(10);
        push(20);
        printf("Popped: %d\n", pop());
        return 0;
    }
  5. ऑपरेटर ओवरलोडिंग क्या है? C++ भाषा में '++' ऑपरेटर को ओवरलोड करने का प्रोग्राम लिखिए। [1+3=4]

    What is operator overloading? Write a program to overload the '++' operator in C++ language?

    ऑपरेटर ओवरलोडिंग: यह C++ की एक विशेषता है जो मौजूदा ऑपरेटरों (जैसे +, -, ++) को उपयोगकर्ता-परिभाषित डेटा प्रकारों (classes) के लिए नया अर्थ देने की अनुमति देती है।

    प्रोग्राम:

    #include <iostream>
    using namespace std;
    class Counter {
        int count;
    public:
        Counter() : count(0) {}
        Counter(int c) : count(c) {}
        // Overload prefix ++ operator
        Counter operator++() {
            ++count;
            return Counter(count);
        }
        void display() {
            cout << "Count: " << count << endl;
        }
    };
    int main() {
        Counter c1(5);
        ++c1;  // calls operator++()
        c1.display();
        return 0;
    }

    व्याख्या: operator++() फंक्शन Counter क्लास के लिए प्रीफिक्स ++ ऑपरेटर को ओवरलोड करता है। यह count को बढ़ाता है और नई वैल्यू लौटाता है।

    अथवा

    (कोई वैकल्पिक प्रश्न नहीं दिया गया है।)

SS—03-Info.Tech. (Opt.) 253

प्रश्न 29 (Question 29)

फ्रेंड फंक्शन क्या है? फ्रेंड फंक्शन के उपयोग को दर्शाने हेतु C++ भाषा में प्रोग्राम बनाएँ?

What is friend function? Write a program for showing the use of friend function in C++ language?

[2+2=4]

उत्तर (Answer)

फ्रेंड फंक्शन (Friend Function): C++ में, एक फ्रेंड फंक्शन एक ऐसा फंक्शन होता है जो किसी क्लास का सदस्य नहीं है, लेकिन उसे उस क्लास के प्राइवेट (private) और प्रोटेक्टेड (protected) डेटा मेंबर्स तक पहुँचने की अनुमति होती है। इसे क्लास के अंदर friend कीवर्ड का उपयोग करके घोषित किया जाता है। फ्रेंड फंक्शन का उपयोग तब किया जाता है जब दो अलग-अलग क्लास के बीच डेटा साझा करना हो या किसी क्लास के प्राइवेट डेटा पर बाहर से कार्य करना हो।

फ्रेंड फंक्शन के उपयोग को दर्शाने हेतु C++ प्रोग्राम:

#include <iostream>
using namespace std;

class Box {
private:
    double width;

public:
    Box(double w) : width(w) {}

    // फ्रेंड फंक्शन की घोषणा
    friend void displayWidth(Box b);
};

// फ्रेंड फंक्शन की परिभाषा
void displayWidth(Box b) {
    // फ्रेंड फंक्शन प्राइवेट मेंबर तक पहुँच सकता है
    cout << "Box की चौड़ाई: " << b.width << " units" << endl;
}

int main() {
    Box box1(10.5);
    displayWidth(box1);  // फ्रेंड फंक्शन को कॉल करना
    return 0;
}

आउटपुट (Output):

Box की चौड़ाई: 10.5 units

व्याख्या (Explanation): इस प्रोग्राम में, displayWidth फंक्शन Box क्लास का फ्रेंड है। यह फंक्शन Box क्लास के प्राइवेट मेंबर width को सीधे एक्सेस कर सकता है, भले ही वह क्लास का सदस्य न हो।


प्रश्न 30 (Question 30)

PL/SQL में कर्सर क्या है? इम्प्लिसिट और एक्प्लिसिट कर्सर को उदाहरण देकर समझाइये।

What is cursor in PL/SQL? Explain implicit and explicit cursor with an example.

[1+3=4]

उत्तर (Answer)

कर्सर (Cursor): PL/SQL में, कर्सर एक डेटाबेस ऑब्जेक्ट है जो SQL क्वेरी के परिणामस्वरूप प्राप्त पंक्तियों को एक-एक करके प्रोसेस करने की अनुमति देता है। यह एक प्रकार का पॉइंटर है जो क्वेरी के रिजल्ट सेट को पॉइंट करता है और प्रत्येक पंक्ति को क्रमिक रूप से एक्सेस करने में मदद करता है।

इम्प्लिसिट कर्सर (Implicit Cursor): यह स्वचालित रूप से PL/SQL द्वारा तब बनाया जाता है जब कोई SQL स्टेटमेंट (जैसे INSERT, UPDATE, DELETE, SELECT INTO) निष्पादित किया जाता है। इसे प्रोग्रामर द्वारा नियंत्रित नहीं किया जा सकता। इसके गुणों को SQL%FOUND, SQL%NOTFOUND, SQL%ROWCOUNT आदि के माध्यम से एक्सेस किया जा सकता है।

उदाहरण (Example):

DECLARE
   v_emp_name employees.emp_name%TYPE;
BEGIN
   -- इम्प्लिसिट कर्सर का उपयोग
   SELECT emp_name INTO v_emp_name
   FROM employees
   WHERE emp_id = 101;

   DBMS_OUTPUT.PUT_LINE('कर्मचारी का नाम: ' || v_emp_name);

   -- इम्प्लिसिट कर्सर की स्थिति जाँचना
   IF SQL%FOUND THEN
      DBMS_OUTPUT.PUT_LINE('पंक्ति मिली।');
   END IF;
END;
/

एक्प्लिसिट कर्सर (Explicit Cursor): यह प्रोग्रामर द्वारा स्पष्ट रूप से घोषित किया जाता है जब क्वेरी एक से अधिक पंक्तियाँ लौटाती है। इसे चार चरणों में उपयोग किया जाता है: DECLARE (घोषणा), OPEN (खोलना), FETCH (पंक्ति प्राप्त करना), CLOSE (बंद करना)।

उदाहरण (Example):

DECLARE
   CURSOR emp_cursor IS
      SELECT emp_id, emp_name FROM employees;
   v_emp_id employees.emp_id%TYPE;
   v_emp_name employees.emp_name%TYPE;
BEGIN
   -- एक्प्लिसिट कर्सर खोलना
   OPEN emp_cursor;

   LOOP
      -- पंक्ति प्राप्त करना
      FETCH emp_cursor INTO v_emp_id, v_emp_name;
      EXIT WHEN emp_cursor%NOTFOUND;

      DBMS_OUTPUT.PUT_LINE('ID: ' || v_emp_id || ', नाम: ' || v_emp_name);
   END LOOP;

   -- कर्सर बंद करना
   CLOSE emp_cursor;
END;
/

व्याख्या (Explanation): इम्प्लिसिट कर्सर एकल पंक्ति वाली क्वेरी के लिए स्वचालित रूप से उपयोग होता है, जबकि एक्प्लिसिट कर्सर का उपयोग तब किया जाता है जब क्वेरी कई पंक्तियाँ लौटाती है और प्रत्येक पंक्ति पर अलग-अलग कार्य करना होता है।


अथवा (OR)

SQL Join से आप क्या समझते हैं? किसी एक प्रकार के Join को उदाहरण सहित समझाइये।

What do you understand by SQL Join? Explain any one Join type with an example.

[2+2=4]

उत्तर (Answer)

SQL Join: SQL में, JOIN एक क्लॉज है जिसका उपयोग दो या दो से अधिक टेबलों से संबंधित कॉलम के आधार पर डेटा को संयोजित करने के लिए किया जाता है। यह टेबलों के बीच एक सामान्य कॉलम (आमतौर पर प्राथमिक कुंजी और विदेशी कुंजी) का उपयोग करके डेटा को मर्ज करता है।

INNER JOIN का उदाहरण (Example of INNER JOIN):

मान लीजिए हमारे पास दो टेबल हैं: Students और Courses

Students टेबल:

StudentID StudentName
1 राम
2 श्याम
3 सीता

Courses टेबल:

CourseID StudentID CourseName
101 1 गणित
102 2 विज्ञान
103 1 अंग्रेजी

INNER JOIN क्वेरी:

SELECT Students.StudentName, Courses.CourseName
FROM Students
INNER JOIN Courses ON Students.StudentID = Courses.StudentID;

परिणाम (Result):

StudentName CourseName
राम गणित
श्याम विज्ञान
राम अंग्रेजी

व्याख्या (Explanation): INNER JOIN केवल उन पंक्तियों को लौटाता है जिनमें दोनों टेबलों में मेल खाने वाला मान होता है। यहाँ, केवल वे छात्र दिखाए गए हैं जिन्होंने कम से कम एक कोर्स लिया है। सीता (StudentID 3) को परिणाम में शामिल नहीं किया गया क्योंकि Courses टेबल में उसका कोई रिकॉर्ड नहीं है।