Лабораторная работа № 15. Массивы и ссылки при работе с функциями
| Задание
| Краткие теоретические сведения
| | | 1. В правой части записана программа в двух вариантах: без использования указателей и с указателями.
| В функцию можно передавать массив, при этом массив не копируется.
Имя массива преобразуется в указатель, и копия указателя на начало массива передается в функцию по значению.
Пример. Пусть имеется массив В. С использованием функции надо определить минимальный элемент массива и в основной программе увеличить его значение на 1.
Программа в левой части выполниться не сможет. Использование указателя в правой части позволяет решить задачу.
| | 2. Изучить использование ссылок как формальных параметров и как результатов выполнения функций, выполнив программы, записанные в правой части.
Опробовать работу программы, содержащей функцию, с разными значениями массива А.
| Пример. Массив Асодержит набор значений. Надо определить минимальный элемент и заменить его на другое значение.
При передаче фактического параметра по ссылке передаётся адрес объекта и, соответственно, работа внутри функции происходит не с копией, а с оригиналом объекта. Чтобы параметр передавался по ссылке, достаточно в прототипе функции поставить знак & после типа параметра. Например:
void func1(int val, int& ref)
{ val++; ref++; }
...
int a = 10, b = 10;
func1(a, b);
cout < < a < < endl; // 10, значение будет увеличено, но внутри функции, как локальное
cout < < b < < endl; // 11, будет увеличено значение внешней переменной b.
| | 3. Выполнить программу, содержащую функцию с переменным числом параметров.
Записать условие задачи.
|
При вызове функции с переменным числом параметров задается любое требуемое число аргументов.
В объявлении и определении такой функции переменное число аргументов задается многоточием в конце списка формальных параметров или списка типов аргументов. При этом должен быть указан как минимум один обычный параметр.
| | 4. Опробовать работу программы, содержащей функцию.
|
Пример программы, осуществляющей вывод букв в верхнем регистре.
Здесь функция toupper выполняет преобразование строчных букв в прописные.
| | 5. Выполнить программу, записанную справа, с различными значениями исходных данных.
|
Пример. Имеется массив целых чисел А. Нужно определить, содержит ли он число, которое вводится с клавиатуры.
Поиск числа осуществляет функция is_elem.
Результат, возвращаемый функцией, это логическая переменная, которая может принимать два значения - true(если искомый элемент есть в массиве) и false(если элемент отсутствует).
|
6. В соответствии с вариантом написать программу по условию задачи из таблицы ниже. Программа должна содержать вызывающую функцию main и функцию с переменным числом параметров, к которой должно быть не менее трех обращений с различным количеством параметров.
| № варианта
| Условие задачи
| |
| Написать функцию fmin с переменным числом параметров, которая находит минимальное из чисел типа int.
| |
| Написать функцию fsum с переменным числом параметров, которая находит сумму чисел типа int по формуле: S=a1*a2+a2*a3+a3*a4+....
| |
| Написать функцию fmax с переменным числом параметров, которая находит минимальное из чисел типа int или из чисел типа double, тип параметров определяется с помощью первого параметра функции.
| |
| Написать функцию days с переменным числом параметров, которая находит количество дней, прошедших между двумя датами (параметрами функции являются даты в формате «дд.мм.гг».
| |
| Написать функцию kvadr с переменным числом параметров, которая определяет количество чисел, являющихся точными квадратами (2, 4, 9, 16, …) типа int.
| |
| Написать функцию as с переменным числом параметров, которая находит сумму чисел типа int по формуле: S=a1*a2-a2*a3+a3*a4-.....
| |
| Написать функцию mn с переменным числом параметров, которая находит минимальное из чисел типа int или из чисел типа double, тип параметров определяется с помощью первого параметра функции.
| |
| Написать функцию prost с переменным числом параметров, которая находит все простые числа из нескольких интервалов. Интервалы задаются границами a и b.
| |
| Во введенном тексте подсчитать количество символов в слове максимальной длины (слова разделяются пробелами) с помощью функции с переменным числом параметров.
| |
| Написать функцию, которая находит в строке самое первое (по алфавиту) слово. С ее помощью реализовать размещение слов в выходной строке в алфавитном порядке.
| |
| Написать функцию mult с переменным числом параметров, которая находит произведение чисел типа float.
| |
| Написать функцию, проверяющую есть ли отрицательные элементы в заданном одномерном массиве размерностью n. Удалить из массива все отрицательные элементы, удаленный элемент заполняется нулем и переносится в конец массива.
| |
| Написать функцию для вычисления суммы элементов квадратной матрицы, которые расположены ниже главной диагонали. С ее помощью найти максимальное значение такой суммы в n матрицах.
| |
| Написать и протестировать функцию compr, которая «сжимает» строку, удаляя из нее все пробелы.
| |
| Написать функцию с переменным числом параметров для перевода чисел из десятичной системы счисления в двоичную.
| |
| Выяснить, есть ли во введенном тексте слова, начинающиеся с буквы А, и сколько таких слов.
|
В начало практикума
Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...
|
Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...
|
Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...
|
Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...
|
ФАКТОРЫ, ВЛИЯЮЩИЕ НА ИЗНОС ДЕТАЛЕЙ, И МЕТОДЫ СНИЖЕНИИ СКОРОСТИ ИЗНАШИВАНИЯ Кроме названных причин разрушений и износов, знание которых можно использовать в системе технического обслуживания и ремонта машин для повышения их долговечности, немаловажное значение имеют знания о причинах разрушения деталей в результате старения...
Различие эмпиризма и рационализма Родоначальником эмпиризма стал английский философ Ф. Бэкон. Основной тезис эмпиризма гласит: в разуме нет ничего такого...
Индекс гингивита (PMA) (Schour, Massler, 1948) Для оценки тяжести гингивита (а в последующем и регистрации динамики процесса) используют папиллярно-маргинально-альвеолярный индекс (РМА)...
|
Задержки и неисправности пистолета Макарова 1.Что может произойти при стрельбе из пистолета, если загрязнятся пазы на рамке...
Вопрос. Отличие деятельности человека от поведения животных главные отличия деятельности человека от активности животных сводятся к следующему: 1...
Расчет концентрации титрованных растворов с помощью поправочного коэффициента При выполнении серийных анализов ГОСТ или ведомственная инструкция обычно предусматривают применение раствора заданной концентрации или заданного титра...
|
|