Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Объявление и определение функций
Функция – это именованная последовательность описаний и операторов, выполняющая законченное действие, например, формирование массива, печать массива и т. д. Функция, во-первых, является одним из производных типов СИ++, а,во-вторых, минимальным исполняемым модулем программы.
Любая функция должна быть объявлена и определена. Объявление функции (прототип, заголовок) задает имя функции, тип возвращаемого значения и список передаваемых параметров. Определение функции содержит, кроме объявления, тело функции, которое представляет собой последовательность описаний и операторов. тип имя_функции([список_формальных_параметров]) { тело_функции}
Тело_функции – это блок или составной оператор. Внутри функции нельзя определить другую функцию. В теле функции должен быть оператор, который возвращает полученное значение функции в точку вызова. Он может иметь 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)); } Date: 2015-08-15; view: 426; Нарушение авторских прав |