Перегрузка функций и указатель на функцию
В С++ допустимо использование нескольких функций с одинаковым именем, но различным числом или типами параметров. Такое свойство называется перегрузкой функций. Перегруженные функции различаются компилятором по типам и числу параметров.
Так как имя функции является указателем на начало функции в оперативной памяти, то можно объявлять указатели на функции для последующего их
использования в программе.
При объявлении указатель должен возвращать тот же тип и иметь такие же аргументы, как и функция, на которую он будет указывать. Например, указатель на функцию
Double y(double x, int n);
будет иметь вид:
double (*fun)(double, int);
Пример выполнения работы
Задача. Создать функцию sign для определения знака числа
#include<iostream>
#include<windows>
Using namespace std;
int sign(double x){
if(x>0) return 1;
if(x<0) return -1;
if(x==0) return 0;
}
main(){
Double x;
char rule='y';
system("chcp 1251");
do{
cout<<endl<<"x=";
cin>>x;
if(sign(x)==1) cout<<"x>0";
if(sign(x)==-1) cout<<"x<0";
if(sign(x)==0) cout<<"x=0";
cout<<endl<< "Еще раз?";
cin>>rule;
}while(rule=='Y'||rule=='y');
}
Задания для самостоятельной работы
Вариант 1
1. Дано натуральное число п. Выведите на экран число, которое получится после записи цифр числа п в обратном порядке. Для получения нового числа составьте функцию.
2. Напишите программу, в которой использовалась бы функция Volume,вычисляющая объем цилиндра. Параметрами функции должны быть радиус и высота цилиндра.
Вариант 2
1. Напишите программу, которая вычисляет количество сочетаний по формуле:
2.
Вычисление факториала оформить в виде функции.
2. Напишите программу, в которой использовалась бы функция Procent,возвращающая процент от заданного числа. В качестве аргументов функции передаются число и значение процента, который нужно вычислить.
Вариант 3
1. Напишите программу перевода двоичных цифр в эквивалентное целое десятичное число. Сам перевод числа оформите в виде функции.
2. Напишите программу, в которой использовалась бы функция Dohod,вычисляющая доход по вкладу. Исходными данными для функции являются: величина вклада, процентная ставка (годовых) и срок вклада (количество дней).
Вариант 4
1. Напишите программу перевода шестнадцатеричных цифр в эквивалентное целое десятичное число. Перевод числа оформите в виде функции.
2. Напишите программу, в которой будет использоваться функция Sogl.Эта функция должна возвращать 1, если символ, полученный функцией в качестве аргумента, является согласной буквой английского алфавита, и 0 в противном случае.
Вариант 5
1. Напишите программу для подсчета количества цифр в числе (не обязательно целом). Подсчет цифр оформите в виде функции.
2. Напишите программу, в которой использовалась бы функция преобразования Preobrбукв английского алфавита: из прописной буквы — в строчную и наоборот.
Вариант 6
1. Напишите программу для нахождения наибольшего числа из двух чисел. Программу оформите в виде функции
2. Напишите программу, в которой использовалась бы функция Output, выводящая на экран строку, состоящую из одинаковых символов. Длина строки и символ являются параметрами функции.
Вариант 7
1. Напишите программу для решения выражения:
Вычисление факториала оформите в виде функции.
3. Напишите программу, в которой производилось бы вычисление объема и площади поверхности параллелепипеда с помощью соответствующих функций Volume и Square.
Вариант 8
1. Напишите программу, которая по заданному натуральному числу определяет количество цифр в нем и их сумму. Определение количества цифр в числе и их сумму оформите в виде функции.
2. Напишите программу, в которой использовалась бы функция Days, выводящая на экран количество дней между двумя датами. В качестве параметров функции должны передаваться две даты.
Вариант 9
1. Напишите программу, определяющую наибольший общий делитель (НОД) двух заданных натуральных чисел. Нахождение НОД оформите в виде функции, используя алгоритм Евклида, известный из школьной программы.
2. Напишите программу, в которой использовалась бы функция Chislo, обеспечивающая ввод с клавиатуры символа без его отображения на экране. При нажатии клавиши Enter соответствующий символ должен появляться на экране только в том случае, если этот символ — цифра от 1 до 9.
Вариант 10
1. Напишите программу, которая по заданному натуральному числу определяет его первую и последнюю цифры. Определение и вывод цифр оформите в виде функции.
2. Напишите программу с использованием функции Perim. В эту функцию из программы передаются координаты вершин треугольника А(х1, у1), В(х2, у2), С(х3, у3), а она возвращает периметр треугольника. Если такой треугольник не существует, то выдается соответствующее сообщение.
Вариант 11
1. Даны натуральные числа n и m. Напишите программу, вычисляющую результат операции сложения двух чисел, образованных k младшими цифрами числа n, и k старшими цифрами числа m.
2. Напишите программу с использованием функции Vistrel, которая, получая из программы координаты точки (х, у), определяла бы, попадает ли точка в заданную на следующем рисунке область.
Результат должен выводиться в виде текстового сообщения.
Вариант 12
1. Напишите программу для вычисления значения
для n от 12 до 24 с шагом 4. Вычисление факториала оформите в виде функции.
2. Напишите программу, которая выводила бы на экран в виде таблицы значения функции F на интервале от Хнач до Хкон с шагом dX и где использовалась бы функция Vichisl, которая вычисляла бы выражение:
Значения х, а, b, с передаются из программы в функцию.
Вариант 13
1. Даны натуральные числа n, m и k. Напишите программу, вычисляющую результат сложения двух чисел, образованных к младшими цифрами числа n, и k младшими цифрами числа m.
2. Напишите программу, в которой использовалась бы функция Glasn. Эта функция должна возвращать 1, если символ, полученный функцией в качестве аргумента, является гласной буквой английского алфавита, и 0 в противном случае.
Вариант 14
1. Напишите программу, вычисляющую количество простых чисел в заданном интервале. Программу оформите в виде функции.
2. Напишите программу, в которой использовалась бы функция Number. Эта функция должна определить сколько раз целое число m делится на целое n без остатка.
Дата добавления: 2015-07-30; просмотров: 1809;