Лабораторная работа № 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Р,где...
|
Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...
|
|
Реформы П.А.Столыпина Сегодня уже никто не сомневается в том, что экономическая политика П...
Виды нарушений опорно-двигательного аппарата у детей В общеупотребительном значении нарушение опорно-двигательного аппарата (ОДА) идентифицируется с нарушениями двигательных функций и определенными органическими поражениями (дефектами)...
Особенности массовой коммуникации Развитие средств связи и информации привело к возникновению явления массовой коммуникации...
|
|
Сосудистый шов (ручной Карреля, механический шов). Операции при ранениях крупных сосудов 1912 г., Каррель – впервые предложил методику сосудистого шва.
Сосудистый шов применяется для восстановления магистрального кровотока при лечении...
Трамадол (Маброн, Плазадол, Трамал, Трамалин) Групповая принадлежность
· Наркотический анальгетик со смешанным механизмом действия, агонист опиоидных рецепторов...
Мелоксикам (Мовалис) Групповая принадлежность
· Нестероидное противовоспалительное средство, преимущественно селективный обратимый ингибитор циклооксигеназы (ЦОГ-2)...
|
|