КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Объявление и определение функций
Функция – это именованная последовательность описаний и операторов, выполняющая законченное действие, например, формирование массива, печать массива и т. д. Функция, во-первых, является одним из производных типов СИ++, а,во-вторых, минимальным исполняемым модулем программы.
Любая функция должна быть объявлена и определена. Объявление функции (прототип, заголовок) задает имя функции, тип возвращаемого значения и список передаваемых параметров. Определение функции содержит, кроме объявления, тело функции, которое представляет собой последовательность описаний и операторов. тип имя_функции([список_формальных_параметров]) { тело_функции}
Тело_функции – это блок или составной оператор. Внутри функции нельзя определить другую функцию. В теле функции должен быть оператор, который возвращает полученное значение функции в точку вызова. Он может иметь 2 формы: 1) return выражение; 2) return; Первая форма используется для возврата результата, поэтому выражение должно иметь тот же тип, что и тип функции в определении. Вторая форма используется, если функция не возвращает значения, т. е. имеет тип void. Программист может не использовать этот оператор в теле функции явно, компилятор добавит его автоматически в конец функции перед }. Тип возвращаемого значения может быть любым, кроме массива и функции, но может быть указателем на массив или функцию. Список формальных параметров – это те величины, которые требуется передать в функцию. Элементы списка разделяются запятыми. Для каждого параметра указывается тип и имя. В объявлении имена можно не указывать. Для того, чтобы выполнялись операторы, записанные в теле функции, функцию необходимо вызвать. При вызове указываются: имя функции и фактические параметры. Фактические параметры заменяют формальные параметры при выполнении операторов тела функции. Фактические и формальные параметры должны совпадать по количеству и типу.
Объявление функции должно находиться в тексте раньше вызова функции, чтобы компилятор мог осуществить проверку правильности вызова. Если функция имеет тип не void, то ее вызов может быть операндом выражения. Пример: Заданы координаты сторон треугольника. Если такой треугольник существует, то найти его площадь. 1. Математическая модель: 1) l=sqrt(pow(x1-x2,2)+pow(y1-y2,2));//длина стороны треугольника 2) p=(a+b+c)/2; 3) проверка существования треугольника 2. Алгоритм: 1) Ввести координаты сторон треугольника (х1,у1),(х2,у2),(х3,у3);
2) Вычислить длины сторон ab, bc, ca; 3) Проверить существует ли треугольник с такими сторонами. Если да, то вычислить площадь и вывести результат. 4) Если нет, то вывести сообщение. 5) Если все координаты равны 0, то конец, иначе возврат на п.1.
#include <iostream.h> #include <math.h>
double line(double x1,double y1,double x2,double y2) { //функция возвращает длину отрезка, заданного координатами x1,y1 и x2,y2 return sqrt(pow(x1-x2,2)+pow(y1-y2,2)); } double square(double a, double b, double c) { //функция возвращает площадь треугольника, заданного длинами сторон а,b,c double s, p=(a+b+c)/2; return s=sqrt(p*(p-a)*(p-b)*(p-c));//формула Герона } bool triangle(double a, double b, double c) { //возвращает true, если треугольник существует if(a+b>c&&a+c>b&&c+b>a) return true; else return false; } void main() { double x1=1,y1,x2,y2,x3,y3; double point1_2,point1_3,point2_3; do { cout<<"\nEnter koordinats of triangle:"; cin>>x1>>y1>>x2>>y2>>x3>>y3; point1_2=line(x1,y1,x2,y2); point1_3=line(x1,y1,x3,y3); point2_3=line(x2,y2,x3,y3); if(triangle(point1_2,point1_3,point2_3)==true) cout<<"S="<<square(point1_2,point2_3,point1_3)<<"\n"; else cout<<"\nTriagle doesnt exist"; } while(!(x1==0&&y1==0&&x2==0&&y2==0&&x3==0&&y3==0)); }
Дата добавления: 2014-01-04; Просмотров: 288; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |