Советы по программированию. При выполнении вариантов заданий придерживайтесь следующих ключевых моментов.

При выполнении вариантов заданий придерживайтесь следующих ключевых моментов.

1. Шаблоны функций применяются для записи идентичных действий над данными различных типов.

2. Вызов шаблона – это создание шаблоном конкретного варианта функции.

3. Шаблоны можно перегружать как обычными функциями, так и другими шаблонами.

4. Перегрузкой функций называется использование нескольких функций с одним именем и различными типами параметров.

5. Перегрузка применяется, когда одно и то же по смыслу действие реализуется по-разному для различных типов или структур данных.

6. При написании перегруженных функций необходимо, чтобы в процессе поиска нужного варианта функции по ее вызову не возникало неоднозначности. Неоднозначность может возникнуть из-за преобразований типов, параметров по умолчанию и ссылок.

7. Перегруженные функции должны находиться в одной области видимости, иначе произойдет сокрытие аналогично одинаковым именам переменных во вложенных блоках.

8. Перегруженные функции могут иметь параметры по умолчанию, при этом значения одного и того же параметра в разных функциях должны совпадать. В различных вариантах перегруженных функций может быть различное ко­личество параметров по умолчанию.

9. Функции не могут быть перегружены, если описание их параметров отличается только модификатором const или использованием ссылки.

10. Многоточие в заголовке функции используется тогда, когда число аргументов неизвестно.

11. Многоточие в заголовке функции требует использования макрокоманд для доступа к параметрам таких функций.

12. Нарушать указанный порядок макрокоманд нельзя.

 

ЗАДАНИЕ 10. Перегрузка функций

Первый уровень сложности

Написать программу для работы с двумя одномерными динамическими массивами размером n. Для формирования массивов и вывода их на печать использовать стандартные потоки. Оформить решение задачи в виде шаблона функций. Глобальные данные в программе не допускаются. Все необходимые данные должны передаваться функциям через параметры (для параметров, соответствующих размерам массивов, используйте умалчиваемые значения). Программа должна демонстрировать использование умалчиваемых значений параметров, а также использование шаблона функций для типов данных int и double.

1. Первым на печать вывести массив, сумма значений которого окажется наименьшей.

2. Первым на печать вывести массив, произведение значений которого окажется наименьшим.

3. В каждом из массивов найти наименьшее значение и прибавить его ко всем элементам массивов. На печать вывести исходные и преобразованные массивы.

4. В каждом из массивов найти наибольшее значение и вычесть его из всех элементов массивов. На печать вывести исходные и преобразованные массивы.

5. В каждом из массивов найти среднее арифметическое всех элементов массивов. На печать вывести исходные массивы и найденные значения.

6. Первым на печать вывести массив, содержащий наименьшее значение. Напечатать также это значение и его порядковый номер.

7. Подсчитать в массивах количество отрицательных элементов и первым на печать вывести массив, имеющий наименьшее их количество.

8. Подсчитать в массивах количество положительных элементов и первым на печать вывести массив, имеющий наименьшее их количество.

9. Подсчитать в массивах количество отрицательных элементов и первым на печать вывести массив, имеющий наибольшее их количество.

10. Подсчитать в массивах количество положительных элементов и первым на печать вывести массив, имеющий наибольшее их количество.

11. Подсчитать в массивах количество элементов, больших значения t, и первым на печать вывести массив, имеющий наименьшее их количество.

12. Подсчитать в массивах количество элементов, меньших значения t, и первым на печать вывести массив, имеющий наименьшее их количество.

13. Подсчитать в массивах количество элементов, больших значения t, и первым на печать вывести массив, имеющий наибольшее их количество.

14. В каждом из массивов найти наименьшее значение и умножить на него все элементы массивов. На печать вывести исходные и преобразованные массивы.

15. В каждом из массивов найти наибольшее значение и умножить на него все элементы массивов. На печать вывести исходные и преобразованные массивы.

 

Второй уровень сложности

Написать программу для работы с двухмерным динамическим массивом размером n´m. Для формирования массива и вывода на печать использовать стандартные потоки. Оформить решение задачи в виде шаблона функций. Глобальные данные в программе не допускаются. Все необходимые данные должны передаваться функциям через параметры (для параметров, соответствующих размерам массивов, используйте умалчиваемые значения). Программа должна демонстрировать использование умалчиваемых значений параметров, а также использование шаблона функций для типов данных int и double.

1. В заданном двухмерном массиве определить максимальное из чисел, встречающихся в массиве более одного раза.

2. В заданном двухмерном массиве определить сумму элементов в тех строках, которые не содержат отрицательных элементов.

3. В заданном двухмерном массиве определить количество строк, содержащих хотя бы один нулевой элемент.

4. В заданном двухмерном массиве определить номер первой из строк, не содержащих ни одного положительного элемента.

5. В заданном двухмерном массиве определить номер первого из столбцов, не содержащих ни одного отрицательного элемента.

6. В заданном двухмерном массиве определить номер первого из столбцов, содержащих хотя бы один нулевой элемент.

7. В заданном двухмерном массиве определить номер первой из строк, содержащих хотя бы один положительный элемент.

8. В заданном двухмерном массиве определить количество строк, среднее арифметическое элементов которых меньше заданной величины.

9. В заданном двухмерном массиве определить сумму модулей его отрицательных нечетных элементов.

10. В заданном двухмерном массиве определить минимум среди сумм элементов диагоналей, параллельных главной диагонали.

11. В заданном двухмерном массиве определить количество элементов массива, лежащих в диапазоне от А до В.

12. В заданном двухмерном массиве определить произведение элементов массива, расположенных после максимального по модулю элемента.

13. В заданном двухмерном массиве определить сумму модулей элементов массива, расположенных после минимального по модулю элемента.

14. В заданном двухмерном массиве определить сумму положительных элементов массива, расположенных до максимального элемента.

15. В заданном двухмерном массиве определить сумму элементов массива, расположенных до минимального элемента.


 

 


 


Таблицы символов ASCII