1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Bess [88]
3 years ago
8

Write a C++ program that overloads a function named LinearSearch that searches an array of data of either integer data type, flo

at, or double for a specific data. Test it in main by creating and assigning values to an array of integers, float, and double and searching each of them for some specific data.Please circle the part that is doing function/operator overloading and explain the advantages of using function/operator overloading in your code.
Computers and Technology
1 answer:
frutty [35]3 years ago
3 0

Explanation:

#include <iostream>

#include <vector>

#include <iomanip>

using namespace std;

/*

Overloading means equal function name with different call prototype each.

It's a useful tool that lets you think once and write similar role code twice or more times keeping equal function name.

Please look at lines 12-14: they are overloaded call prototype versions of LinearSearch with identical mission (to know if a value is present in a set)

*/

//#define GENERICS

#ifndef GENERICS                                                                // Conditional compilation statement

bool LinearSearch(vector<int>   ,int);

bool LinearSearch(vector<float> ,float);

bool LinearSearch(vector<double>,double);

#else                                                                           // Conditional compilation statement (uncomment line 10 statement)

template <typename genType>

bool LinearSearch(vector<genType> v, genType value);                            // LinearSearch (generic type parameters version)

#endif

int main(int argc, char *argv[]) {                                              // Test code follows:    

vector<int> vInt    {1,                     -2,     3,          -4,     5};     // Test data (int)

vector<float> vFlo  {1.23456f,              -2.35f, 3.1416f,    -4.7f,  5.55f}; // Test data (float)

vector<double> vDou {1.234567890123456789,  -2.35,  3.1415927,  -4.7,   5.55};  // Test data (double)

cout <<3 << "        is " << (LinearSearch(vInt,3)      ?"":"not ") << "in: {";for(auto x:vInt) cout << setw(11) << x;cout << "}\n";

cout <<3.1416f<< "   is " << (LinearSearch(vFlo,3.1416f)?"":"not ") << "in: {";for(auto x:vFlo) cout << setw(11) << x;cout << "}\n";

cout <<3.14   << " is " << (LinearSearch(vDou,3.1416) ?"":"not ") << "in: {";for(auto x:vDou) cout << /*setprecision(9)<<*/setw(11) << x;cout << "}\n";

return 0;

}

#ifndef GENERICS

// Overloaded function code follows:

bool LinearSearch(vector<int> v, int value) {                                   // LinearSearch (integer parameters version)

bool found = false;                                                             // Until now we haven't found the value we are searching for,

for(auto x:v) found = found || x == value;                                      // but if it is here found becomes true.

return(found);

}

bool LinearSearch(vector<float> v, float value) {                               // LinearSearch (float parameters version)

bool found = false;

for(auto x:v) found = found || x == value;

return(found);

}

bool LinearSearch(vector<double> v, double value) {                             // LinearSearch (double float parameters version)

bool found = false;

for(auto x:v) found = found || x == value;

return(found);

}

/*

So far, so good. It works! But, despite there was little effort involved, redundant code remains.

Is there any solution? Yes! It's called generic programming.

*/

#else

/*

Consider the following code:

   - Template statement at first accepts a generic type as a parameter (genType)

   - genType is used for both parameters (array and value to search)

   - Template statements located after generic version of LinearSearch instructs compiler to generate each type version

Conclusions:    

   - Compared with overloaded versions generic code is more elegant and avoids completely redundancy

   - It enhances overloading while keeping its advantages

*/

template <typename genType>

bool LinearSearch(vector<genType> v, genType value) {   // LinearSearch (generic type parameters version)

bool found = false;                                     // Until now we haven't found the value we are searching for,

for(auto x:v) found = found || x == value;              // but if it is here found becomes true.

return(found);

}

template bool LinearSearch(vector<int>   ,int);

template bool LinearSearch(vector<float> ,float);

template bool LinearSearch(vector<double>,double);

#endif

Download cpp
You might be interested in
MULTIPLE CHOICE!!!
kolbaska11 [484]
The answer is a) you
8 0
4 years ago
Read 2 more answers
Unlike the _____ presentations of the other students in class, Calum's presentation demonstrated a thorough and mature grasp of
finlep [7]

Answer:

immature

Explanation:

3 0
4 years ago
Employers hiring for entry-level positions in Hospitality and Tourism expect workers to learn the required skills after they sta
vovikov84 [41]
<h2>have basic skills required to do the job</h2>

Explanation:

expect workers to learn the required skills after they start:  

The must have basic skills then only they can employ to upgrade further skill

have the required skills before they start:  

We cannot expect all the skills. Skill will develop through experience too.

acquire the necessary skills through education: only if they have necessary education for performing the job, then only the company will short-list. So, this is an entry criterion.

have basic skills required to do the job: This is the right answer. This aspect is enough for an entry-level position.

8 0
3 years ago
Read 2 more answers
Employees of ABC company uploaded files on a shared server with unique file naming conventions. However, they faced problems whi
sesenic [268]

WHAT ARE THE ANSWERS OMG WHY DO PEOPLE DO THIS

5 0
3 years ago
Read 2 more answers
(Count positive and negative numbers and compute the average of numbers) Write a program that reads an unspecified number of int
Papessa [141]

Answer:

Explanation:

Sorry it  is in Java, though you can covert it using converter

public class Exercise {

public static void main(String[] args) {

 Scanner input = new Scanner(System.in);

 int positives = 0;  // Count the number of positive numbers

 int negatives = 0;  // Count the number of negative numbers

 int count = 0;   // Count all numbers

 double total = 0;  // Accumulate a totol

 // Promopt the user to enter an integer or 0 to exit

 System.out.print("Enter an integer, the input ends if it is 0: ");

 int number = input.nextInt();

 if (number == 0) { // Test for sentinel value

  System.out.println("No numbers are entered except 0");

  System.exit(1);

 }

 while (number != 0) {// Test for sentinel value

  if (number > 0)

   positives++; // Increase positives

  else

   negatives++; // Increase negatives

  total += number; // Accumulate total

  count++;    // Increase the count

  number = input.nextInt();

 }

 // Calculate the average

 double average = total / count;

 // Display results

 System.out.println(

  "The number of positive is " + positives +

  "\nThe number of negatives is " + negatives +

  "\nThe total is total " + total +

  "\nThe average is " + average);

}

}

7 0
3 years ago
Other questions:
  • Editing and sorting the data file are steps performed during the ________ stage in the data processing cycle
    5·1 answer
  • In order for two computers to communicate via the internet, they must first locate one another. How do computers locate one anot
    12·1 answer
  • With ______________, the cloud provider manages the hardware including servers, storage, and networking components. The organiza
    6·1 answer
  • What computing platform was designed to help a beginner create interactive objects that receive input from sensors and use that
    11·1 answer
  • What are the two main objectives associated with data mining? uncovering competitors and market advantages uncovering tactics an
    15·1 answer
  • On the server side, the database environment must be properly configured to respond to clients' requests in the fastest way poss
    12·1 answer
  • A Windows user right-clicks on his desktop. What is he planning to do?
    10·1 answer
  • What does the revolver do?
    10·1 answer
  • Question #4
    9·1 answer
  • What is the importance of using Onedrive in Windows 10 and how knowledge of it will have an impact in today's workplace?
    7·2 answers
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!