- •Основные определения
- •Операции над массивами
- •Массивы и указатели
- •Варианты обращения к элементам массива
- •Примеры вывода элементов массива через указатель
- •Передача одномерного массива в функцию в качестве параметра
- •Способы передачи одномерного массива в качестве параметра
- •Массив указателей на функцию
- •Динамические одномерные массивы
- •Способы определения динамических одномерных массивов
- •Пример нахождения среднего значения элементов динамического массива
- •Перегрузка функций при работе с массивами
- •Шаблоны функций при работе с массивами
- •Поиск в массиве
- •Сортировка массивов
- •Сортировка обменом («пузырьковая» сортировка)
- •Сортировка одномерного массива по некоторому признаку
- •Сортировка вставкой
- •Сортировка выбором
- •Примеры
- •Нахождение номера первого вхождения числа y в массив Х
- •Поиск в массиве максимального элемента и его номера
- •Проверка элементов массива на некоторую закономерность
- •Построение элементов массива в соответствии с некоторой закономерностью.
- •Нахождение количества положительных элементов между максимальным и минимальным элементами целочисленного массива
- •Нахождение суммы элементов вещественного массива, расположенных правее последнего отрицательного элемента
int main()
{
const unsigned n1=7; const unsigned n2=5;
static int iarray[n1] = {5, 1, 6, 20, 15, 0, 12};
int isum = add(iarray); //или int isum = add(iarray, n1); cout << "isum=" << isum << endl;
static double darray[n2] = {6.1, 20.2, 15.3, 0.4, 12.5}; double dsum = add(darray); //или int isum = add(iarray, n2);
cout << "dsum=" << dsum << endl; _getch();
return 0;
}
Массив указателей на функцию
Как и обычные переменные, в массивы могут объединяться и указатели на функции. Рассмотрим пример:
int |
dif (int, int); |
//прототипы функций |
int |
sum(int, int); |
|
int main() {int a,b;
char upr;
int (*func [])(int, int) = {dif, sum};
cout <<"Input a |
b:"<< endl; |
|
|
cin >> a >> |
b; |
priznak function"<< endl; |
|
cout << "Input |
|||
do |
|
|
|
{switch (upr = getche()) //функция getche() «берет» символ, |
|||
{case 'd': |
//не ожидая нажатия <enter> |
||
|
|
||
cout << |
endl; |
// вызов функции dif (a,b); |
|
cout |
<< |
(*(*func))(a, b); |
|
cout |
<<endl; |
//вызов функции dif (a,b); |
|
cout |
<< |
(*func[0])(a, b); |
|
cout |
<< |
endl; |
|
break; |
|
|
|
case 's': |
<< |
endl; |
|
cout |
//вызов функции sum (a,b); |
||
cout |
<< |
(*func[1])(a, b); |
|
cout |
<< |
endl; |
|
cout |
<< |
(*(*(func+1)))(a, b); //вызов функции sum (a,b); |
|
cout |
<< |
endl; |
|
break;
default: cout << "\n input char\n" << endl;
}
}while (upr !='d' && upr !='s'); _getch();
return 0;
}
int dif(int a, int b) {return a-b;}
int sum(int a, int b)
Программирование – лекция 12 (лекции Стрикелевой Л.В.) |
14 |