Programming in Modern C++ Week 8 Solutions

ABOUT THE COURSE :

Programming in Modern C++ Week 6 Solutions

Disclaimer: The answers to these questions are provided for educational and informational purposes only. This website does not claim any surety of 100% correct answers. So, this website urges you to complete your assignment yourself.

There has been a continual debate on which programming language/s to learn, to use. As the latest TIOBE Programming Community Index for August 2021 indicates – C (13%), Python (12%), C++ (7%), Java (10%), and C#(5%) together control nearly half the programming activities worldwide. Further, C Programming Language Family (C, C++, C#, Objective C etc.) dominate more than 25% of activities. Hence, learning C++ is important as one learns about the entire family, about Object-Oriented Programming and gets a solid foundation to also migrate to Java and Python as needed. C++ is the mother of most general purpose of languages. It is multi-paradigm encompassing procedural, object-oriented, generic, and even functional programming. C++ has primarily been the systems language till C++03 which punches efficiency of the code with the efficacy of OOP. Then, why should I learn it if my primary focus is on applications? This is where the recent updates of C++, namely, C++11 and several later offer excellent depths and flexibility for C++ that no language can match. These extensions attempt to alleviate some of the long-standing shortcomings for C++ including porous resource management, error-prone pointer handling, expression semantics, and better readability. The present course builds up on the knowledge of C programming and basic data structure (array, list, stack, queue etc.) to create a strong familiarity with C++98 / C++03. Besides the constructs, syntax and semantics of C++ (over C), we also focus on various idioms of C++ and attempt to go to depth with every C++ feature justifying and illustrating them with several examples and assignment problems. On the way, we illustrate various OOP concepts. The course also covers important advances in C++11 and later released features.

Summary
Course Type Elective
Duration 12 weeks
Category Computer Science and Engineering
Start Date 22 Jan 2024
End Date 12 Apr 2024
Exam Registration Ends 16 Feb 2024
Exam Date 28 Apr 2024 IST

Assignment Solutions : Programming Assignment :

W8_Programming_Qs-1 :

Consider the program below.
• Fill in the blank at LINE-1 to specify the fourth argument of the function call, which accepts correct type of function pointer to each member function of class Computation.
• Fill in the blank at LINE-2 with appropriate return statement.

int call(Computation *obj, int x, int y, int(Computation::*fp)(int, int)){    //LINE-1
 
    return  (obj->*fp)(x,y);    //LINE-2
}

W8_Programming_Qs-2 :
#include<iostream>
#include<algorithm>
#include<vector>

struct max {    
    max(int cnt=0, int ss=0) : cnt_(cnt), ss_(ss)  {}    //LINE-1
 
    void operator() (int x ) { ss_ += x*x; ++cnt_; }    //LINE-2
 
    int cnt_;    //count of element
    int ss_;     //sum of square of emements
};
W8_Programming_Qs-3 :

Consider the following program, which define a type plist that stores N elements. Fill in the blanks as per the instructions given below::
•Fill in the blank at LINE-1 with appropriate template definition,
• At LINE-2 implement void insert (int i, T val) function, which inserts a value at specified index; however, if the input index is > N, it throws OutOfArray exception,
• At LINE-3 implement void T peek (int i) function, which returns value of a speci- fied index. However, if the element at the specified position is negative then it thorws InvalidElement exception.

template<typename T, int N>    //LINE-1
 
class plist{
    public:
        plist(){
            for(int i = 0; i < N; i++)
                arr_[i] = -1;
        }
        //LINE-2: impelement insert() function
        void insert(int i, T val)
        {
          if ( i >= N )
            throw OutOfArray();
          else 
            arr_[i] = val;
        }
          
        //LINE-3: impelement peek() function
        T peek(int i )
        {
          if ( arr_[i] < 0 )
            throw InvalidElement();
          else 
            return arr_[i];
        }
        
    private:
        T arr_[N];
};

CRITERIA TO GET A CERTIFICATE :
  1. Average assignment score = 25% of average of best 8 assignments out of the total 12 assignments given in the course.
  2. Exam score = 75% of the proctored certification exam score out of 100
  3. Final score = Average assignment score + Exam score
YOU WILL BE ELIGIBLE FOR A CERTIFICATE ONLY IF AVERAGE ASSIGNMENT SCORE >=10/25 AND EXAM SCORE >= 30/75. If one of the 2 criteria is not met,you will not get the certificate even if the Final score >= 40/100.

Join With Us On :

Join Now


Previous Year Questions Now to Boost Your Exam Performance

LOADS OF LOGIC