Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.87 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. class ArrayHelperBase //базовый класс
  4. {
  5. protected: //protected вместо private для того, чтобы можно было получить доступ наследнику
  6. float *arr; //массив
  7. int count; //размер массива
  8. public:
  9. ArrayHelperBase() { }
  10. ~ArrayHelperBase() { }
  11. ArrayHelperBase(int _count) { //конструктор класса
  12. count = _count; //инициализируем переменную, в котроой размер массива
  13. arr = new float[_count]; //указываем размер массива
  14. }
  15.  
  16. virtual void checkValue(float min) { //функция может быть переопределена в наследнике
  17. std::cout << "Base class\n";
  18. };
  19.  
  20. virtual void arrayFill() { //функция может быть переопределена в наследнике
  21. std::cout << "Info from arrayFill from Base class\n\n";
  22. };
  23. };
  24. class ArrayHelper : public ArrayHelperBase //инициализация класса-наследника
  25. {
  26. public:
  27. ArrayHelper(int count) : ArrayHelperBase(count) {} //переопределение конструктора базового класса
  28.  
  29. void arrayFill() {
  30. for (int i = 0; i < count; i++) //Заполняем массив значениями
  31. {
  32. std::cin >> arr[i]; //считываем значения в массив
  33. }
  34. std::cout << "complete\n";
  35. }
  36.  
  37. void checkValue(float min) //принимаем на вход сравниваемое значение, используется для сравнения далее
  38. {
  39. bool flag = 0;
  40.  
  41. if (count == 15) { //если массив A(15)
  42. for (int i = 0; i < count; i++) { //цикл по элементам массива A
  43. if (arr[i] < min) {//если массив A(15) содержит значение меньше 0
  44. std::cout << "array A contains negative values\n";
  45. flag = 1; //флаг, показывающий, что нужные значения присутствуют
  46. break; //прервать цикл, условие выполнено
  47. }
  48. }
  49. }
  50. else if (count == 10) { //если массив B(10)
  51. for (int i = 0; i < count; i++) { //цикл по элементам массива B
  52. if (arr[i] < min) {//если массив B(10) содержит значение меньше 2.7
  53. std::cout << "array B contains values lower 2.7\n";
  54. flag = 1; //флаг, показывающий, что нужные значения присутствуют
  55. break; //прервать цикл, условие выполнено
  56. }
  57. }
  58. }
  59. else
  60. std::cout << "incorrect data\n"; // если проверяется массив не из условий задания
  61. if (flag == 0)
  62. std::cout << "array not contains values of task\n"; // в случае, если в массиве нет подходящих значений
  63. }
  64. };
  65.  
  66.  
  67. int main()
  68. {
  69. std::cout << "Begin!\n\n";
  70. ArrayHelper A(15), B(10);//инициализация массива A и B
  71. std::cout << "Enter values in Array A:\n";
  72. A.arrayFill();
  73. std::cout << "Enter values in Array B:\n";
  74. B.arrayFill();
  75. std::cout << "Check values of array A:\n"; //Вывод текста на экран, далее - вызов функции проверки на отрицательные значения
  76. A.checkValue(0);
  77. std::cout << "Check values of array B:\n"; //Вывод текста на экран, далее - вызов функции проверки на отрицательные значения
  78. B.checkValue(2.7);
  79. std::cout << "\n";
  80. ArrayHelperBase C(15);
  81. C.arrayFill(); //пример использования функции из основного класса, которая выводит текст
  82.  
  83. std::cout << "End!\n";
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement