Лабораторная работа № 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 кг мяса...
|
Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...
|
|
Мотивационная сфера личности, ее структура. Потребности и мотивы. Потребности и мотивы, их роль в организации деятельности...
Классификация ИС по признаку структурированности задач Так как основное назначение ИС – автоматизировать информационные процессы для решения определенных задач, то одна из основных классификаций – это классификация ИС по степени структурированности задач...
Внешняя политика России 1894- 1917 гг. Внешнюю политику Николая II и первый период его царствования определяли, по меньшей мере три важных фактора...
|
|
Ученые, внесшие большой вклад в развитие науки биологии Краткая история развития биологии. Чарльз Дарвин (1809 -1882)- основной труд « О происхождении видов путем естественного отбора или Сохранение благоприятствующих пород в борьбе за жизнь»...
Этапы трансляции и их характеристика Трансляция (от лат. translatio — перевод) — процесс синтеза белка из аминокислот на матрице информационной (матричной) РНК (иРНК...
Условия, необходимые для появления жизни История жизни и история Земли неотделимы друг от друга, так как именно в процессах развития нашей планеты как космического тела закладывались определенные физические и химические условия, необходимые для появления и развития жизни...
|
|