Task 1 Lab 13 and 14.cpp
Task 1 Lab 13 and 14.cpp
#include <fstream>
using namespace std;
// template 1
template <typename T>
void get_input( T* arr, int size )
{
cout << "\nEnter the data: \n";
for ( int i = 0; i < size; i++ )
{
cout << "\tData value " << i+1 << ": ";
cin >> arr[i];
}
cout << "\nThe values have been saved" << endl;
}
// template 2
template <typename T>
void print_smallest_and_second_smallest_values( T* arr, int size )
{
T max = arr[0], second_max = arr[0];
for (int i = 1; i < size; i++)
{
if (arr[i] > max)
{
second_max = max;
max = arr[i];
}
else if (arr[i] > second_max && arr[i] != max)
{
second_max = arr[i];
}
}
cout << "\nHighest value: " << max << ", second highest value: " << second_max
<< endl;
}
// template 3
template <typename T>
void sort( T* arr, int size )
{
T temp;
for ( int i = 0; i < size; i++ )
{
for ( int j = i+1; j < size; j++ )
{
if ( arr[i] < arr[j] )
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
cout << "\nArray has been sorted in descending order\nValues: \n\t";
for ( int i = 0; i < size; i++ )
{
cout << arr[i] << " ";
}
cout << endl;
}
// tempplate 4
template <typename T>
void save_data_to_file( T* arr, int size, const string& file_name )
{
ofstream out(file_name);
for ( int i = 0; i < size; i++ )
{
out << arr[i] << " ";
}
out.close();
}
// template no.5
template <typename T>
void retrieve_data_from_file( T* arr, int size, const string& file_name )
{
T* temp = new T[size];
ifstream in(file_name);
for ( int i = 0; i < size; i++ )
{
in >> temp[i];
}
cout << "\nSuccessfully retrieved data from file '" << file_name << "'\
nValues:\n\t";
for ( int i = 0; i < size; i++ )
{
cout << temp[i] << " ";
}
delete[] temp;
}
int main ()
{
int int_arr_size, double_arr_size, string_arr_size;
delete[] int_arr;
delete[] double_arr;
delete[] string_arr;