Лабораторная работа № 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, которая «сжимает» строку, удаляя из нее все пробелы.
|
| Написать функцию с переменным числом параметров для перевода чисел из десятичной системы счисления в двоичную.
|
| Выяснить, есть ли во введенном тексте слова, начинающиеся с буквы А, и сколько таких слов.
|
В начало практикума
Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...
|
Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...
|
Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...
|
ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при которых тело находится под действием заданной системы сил...
|
|
Мотивационная сфера личности, ее структура. Потребности и мотивы. Потребности и мотивы, их роль в организации деятельности...
Классификация ИС по признаку структурированности задач Так как основное назначение ИС – автоматизировать информационные процессы для решения определенных задач, то одна из основных классификаций – это классификация ИС по степени структурированности задач...
Внешняя политика России 1894- 1917 гг. Внешнюю политику Николая II и первый период его царствования определяли, по меньшей мере три важных фактора...
|
|
Тема: Составление цепи питания Цель: расширить знания о биотических факторах среды. Оборудование:гербарные растения...
В эволюции растений и животных. Цель: выявить ароморфозы и идиоадаптации у растений Цель: выявить ароморфозы и идиоадаптации у растений. Оборудование: гербарные растения, чучела хордовых (рыб, земноводных, птиц, пресмыкающихся, млекопитающих), коллекции насекомых, влажные препараты паразитических червей, мох, хвощ, папоротник...
Типовые примеры и методы их решения. Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно. Какова должна быть годовая номинальная процентная ставка...
|
|