Задачи на составление функций. Составление блок-схемі и разработка программ

Страницы работы

Содержание работы

Министерство образования и науки РФ

ГОУВПО «Комсомольский-на-Амуре государственный технический университет»

Кафедра МОП ЭВМ

Лабораторная работа №3

По дисциплине «Компьютерный практикум»

«Задачи на составление функций»

Вариант 20.

Выполнил: Шелестов И.А.

Группа: 4ВС-1

Проверил: Могильников Е.В.

Комсомольск-на-Амуре

2006

Задание.

Составить блок-схему и разработать программу, которая по данным длинам отрезков А, В, С, Е вычисляет площади всех треугольников, составленных из любой тройки этих отрезков (в том случае, если из тройки отрезков можно составить треугольник).

Описание алгоритма.

1.  Запрос длины отрезков.

2.  Проверка введённых значений. Если значения отрицательные или равны нулю, то программа выдаёт сообщение об ошибке и завершает работу.

3.  Для каждого из возможных, имеющих смысл, наборов отрезков проверяется возможность составления треугольника с помощью функции proverka(x,y,z). Проверка осуществляется исходя из правила, что сумма любых двух сторон треугольника должна быть меньше третьей.

4.   Если набор из трёх отрезков удовлетворяет условию составления треугольника, то вычисляется его площадь с помощью функции plosch(x,y,z) и результат выводится на экран. Площадь высчитывается по формуле Герона:

, где p – полупериметр, a,b,c – стороны треугольника. Для вычисления полупериметра используется функция poluperim(x,y,z).

5.  Если ни один отрезков не удовлетворяет условию составления треугольника, то выводится сообщение «Ни один из наборов отрезков не является треугольником».

начало

 
Блок-схема.

 


4

 
                                                  

 


 


Листинг программы.

#include<iostream.h>

#include<conio.h>

#include<math.h>

#include<stdlib.h>

double poluperim(double,double,double);

double plosch(double,double,double);

int proverka(double,double,double);

void main()

{

clrscr();

cout<<"Введите длины отрезков: "<<endl;

double a,b,c,e,k=0;

cout<<"a=";

cin>>a;

cout<<"b=";

cin>>b;

cout<<"c=";

cin>>c;

cout<<"e=";

cin>>e;

 //проверка введенных значений

if(a<=0||b<=0||c<=0||e<=0)

{

cout<<"Ошибка! Длины сторон заданы не верно!";

getch();

exit(1);

}

//Проверка наборов отрезков на возможность составления //треугольника

 //Вывод значения площади треугольников

if(proverka(a,b,c)==1)

cout<<"Площадь треугольника abc равна: "<<plosch(a,b,c)<<endl;

else k++;

if(proverka(a,b,e)==1)

cout<<"Площадь треугольника abe равна: "<<plosch(a,b,e)<<endl;

else k++;

if(proverka(e,b,c)==1)

cout<<"Площадь треугольника ebc равна: "<<plosch(e,b,c)<<endl;

else k++;

if(proverka(a,e,c)==1)

cout<<"Площадь треугольника aec равна: "<<plosch(a,e,c)<<endl;

else k++;

 //Если ни один набор не является треугольником

if(k==4)

cout<<"Ни один из наборов отрезков не является треугольником";

getch();

}

//Функция вычисления полупериметра

double poluperim(double x,double y,double z)

{

double p;

p=(x+y+z)/2;

return p;

}

//Функция вычисления площади по формуле Гирона

double plosch(double x, double y, double z)

{

double s,pp;

pp=poluperim(x,y,z);

s=sqrt(pp*(pp-x)*(pp-y)*(pp-z));

return s;

}

//Функция проверки набора отрезков на возможность составления треугольников

int proverka(double x, double y, double z)

{

if(((x+y)>z)&&((x+z)>y)&&((y+z)>x)) return 1;

else  return 0;

}

Экранные формы.

Список литературы.

Литература не использовалась.

Похожие материалы

Информация о работе

Тип:
Отчеты по лабораторным работам
Размер файла:
106 Kb
Скачали:
0