Создать объект треугольник который содержит длины сторон треугольника c
Перейти к содержимому

Создать объект треугольник который содержит длины сторон треугольника c

  • автор:

Создание массив объектов класса и проверить их

Задание : «Треугольник» Необходимо следить за непротиворечивостью состояния объекта (Проверять треугольник на существование). Данные класса: длины сторон треугольника. Функции класса: сравнение двух треугольников, вычисление площади и периметра треугольника, проверка, есть ли треугольник прямоугольным, равнобедренным, равносторонним. Создать массив объектов, вывести информацию обо всех равносторонних треугольников. Не могу понять, как правильно создать массив объектов.

 #include #include using namespace std; class treygol < public: double a; double b; double c; double s; void Print() < cout void proverka() < if ((a + b >c) && (b + c > a) && (c + a > b)) < cout else < cout > void square() < double p; p = (a + b + c) / 2; s = sqrt(p * (p - a) * (p - b) * (p - c)); cout void perimetr() < double P; P = a + b + c; cout void proverka2() < if ((a == b) || (a == c) || (b == c)) < cout else < cout if (a * a == b * b + c * c) < cout else < cout if (a==b&&b==c) < cout else < cout > >; int main() < setlocale(LC_ALL, "Rus"); treygol treygolnic; cout > treygolnic.a; cout > treygolnic.b; cout > treygolnic.c; treygolnic.proverka(); treygolnic.Print(); treygolnic.square(); treygolnic.perimetr(); treygolnic.proverka2(); treygol treygolnic2; cout > treygolnic2.a; cout > treygolnic2.b; cout > treygolnic2.c; treygolnic2.proverka(); treygolnic2.Print(); treygolnic2.square(); treygolnic2.perimetr(); treygolnic2.proverka2(); if (treygolnic.s == treygolnic2.s) < cout > 

Отслеживать

задан 19 мар 2021 в 16:49

13 4 4 бронзовых знака

Пишите функцию с двумя аргументами типа treygol , а дальше вам нужно выбрать, как передавать эти параметры. По значению, по ссылке ( & ), по указателю ( * ).

Площадь и периметр треугольника в классе

Author24 — интернет-сервис помощи студентам

Создать объект треугольник, который содержит длины сторон треугольника. Длины сторон определяются в момент конструирования объекта. Объект вычисляет периметр и площадь треугольника. Написать программу, которая создаёт объект «треугольник» и выводит периметр и площадь.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Меню. Функции: площадь круга, длина окружности, площадь треугольника, площадь квадрата, периметр квадрата
Меню. Функции: площадь круга, длина окружности, площадь треугольника, площадь квадрата, периметр.

Периметр и площадь треугольника
Привет всем. Я в который раз обращаюсь к вам за помощью:D Вот мой код: #include <stdio.h>.

Вычислить периметр и площадь треугольника
Гипотенуза треугольника равна 1,8 м, один из углов α = 52°40′. Вычислить периметр и площадь .

Найти площадь и периметр треугольника
Условие такое: Заданы три точки на плоскости: М с координатами (x1,y1), L с координатами.

170 / 122 / 61
Регистрация: 06.02.2015
Сообщений: 300

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
#include #include class Triangle { private: int a=0,b=0,c=0; public: Triangle(int v1,int v2,int v3){ a=v1; b=v2; c=v3; }; ~Triangle(){ a=0; b=0; c=0; }; void perimetr(){ int p=0; p=a+b+c; std::cout  "P=" p  std::endl; } void square(){ int p=(a+b+c)/2; int S=sqrt(p*(p-a)*(p-b)*(p-c)); std::cout  "S="  S  std::endl; } }; int main(){ Triangle obj(4,3,5); obj.perimetr(); obj.square(); return 0; }

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Найти периметр и площадь треугольника
в C ++. 10. Треугольник задан координатами (x1, y1), (x2, y2), (x3, y3) своих вершин. Найти.

Вычислить периметр и площадь треугольника
Определить подпрограммы для подсчета длины и площади треугольника

Определить периметр и площадь треугольника
Помогите решить задачку, в треугольнике (рис.1) заданы углы А, В и радиус описанной окружности R.

Периметр и площадь прямоугольного треугольника
Длина ног а и б прямоугольного треугольника даны. Найти его периметр и площадь Формат входных.

Или воспользуйтесь поиском по форуму:

Часть 2: Тестирование простого приложения (Тестирование ПО)

Записная книжка рассеянного [в пространстве и времени] программиста

Часть 2: Тестирование простого приложения (Тестирование ПО)

Оглавление

Первое приложение

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

Напишем, функцию, которая принимает на вход три стороны треугольника, которые заданы целыми числами и возвращает тип треугольника. Сохраним написанный код в файле triangle.php.

/** * Не треугольник */ define('TRIANGLE_BAD', 0); /** * Равносторонний треугольник */ define('TRIANGLE_EQUILATERAL', 1); /** * Прямоугольный треугольник */ define('TRIANGLE_RIGHT', 2); /** * Равнобедренный треугольник */ define('TRIANGLE_ISOSCELES', 3); /** * Разносторонний треугольник */ define('TRIANGLE_SIDED', 4); /** * По длинам сторон $a, $b и $c возвращает тип треугольника. * Если стороны не являются целочисленными, то выбрасывает исключение. * * @param $a * @param $b * @param $c * @return int * @throws Exception */ function triangle_type($a, $b, $c)  // Вполне ожидаемо, // что нецелочисленные значения должны приводить к исключительной ситуации. if (!is_int($a) or !is_int($b) or !is_int($c))  throw new \Exception('Invalid triangle definition'); > $max = null; $min1 = null; $min2 = null; if (($a+$b)>$c and ($a+$c)>$b and ($b+$c)>$a)  if (($a>$b) and ($a>$c))  $max = $a; $min1 = $b; $min2 = $c; > else if (($b>$c) and ($b>$a))  $max = $b; $min1 = $a; $min2 = $c; > else  $max = $c; $min1 = $a; $min2 = $b; > if (pow($max, 2) == pow($min1, 2) + pow($min2, 2))  return TRIANGLE_RIGHT; > else if (($max==$min1) and ($max==$min2))  return TRIANGLE_EQUILATERAL; > else if (($max==$min1) or ($max==$min2) or ($min1==$min2))  return TRIANGLE_ISOSCELES; > else  return TRIANGLE_SIDED; > > else  return TRIANGLE_BAD; > > 

Функция достаточно тривиальна, поэтому мы не будем останавливаться на ее реализации. Нас будет интересовать, как найти в ней ошибки.

Для начала потребуется реализовать механизм, который позволит вводить данные с консоли и получать результат. Сохраним следующий код в файле main.php. Чуть позже вы поймете, почему мы используем разные файлы для самой функции и для кода, который обрабатывает пользовательский ввод.

// здесь мы подключим ранее написанную функцию для определения типа треугольника require __DIR__ . DIRECTORY_SEPARATOR . 'triangle.php'; function main()  // проинициализируем переменные $a = $b = $c = 0; // получим длины сторон со стандартного ввода $num = fscanf(STDIN, "%d %d %d\n", $a, $b, $c); // если мы смогли считать длины трех сторон, // то вызовем нашу функцию и покажем результат if ($num == 3)  switch (triangle_type($a, $b, $c))  case TRIANGLE_BAD: echo "Это не треугольник\n"; break; case TRIANGLE_EQUILATERAL: echo "Это равносторонний треугольник\n"; break; case TRIANGLE_ISOSCELES: echo "Это равнобедренный треугольник\n"; break; case TRIANGLE_RIGHT: echo "Это прямоугольный треугольник\n"; break; case TRIANGLE_SIDED: echo "Это разносторонний треугольник\n"; break; > > > main(); 

Код также достаточно тривиален. Теперь мы можем запустить полученное приложение (да, это именно приложение — последовательность инструкций, определяющих процедуру решения конкретной задачи компьютером).

Откроем терминал, перейдем в каталог, с проектом и выполним следующую команду (для того, чтобы все сработало у вас должен быть установлен интерпретатор php в системе).

$ php main.php 

Программа будет ожидать ввод трех чисел, разделенных пробелами.

И вот что мы можем увидеть на экране.

null

Поэкспериментируйте немного с программой вводя разные наборы чисел.

А теперь рассмотрим эту программу с точки зрения разработчика, которому досталось ее тестировать. Какие наборы тестов он должен разработать, чтобы отыскать все возможные баги? Прежде чем читать дальше подумайте и попробуйте посчитать то количество, которое придумали вы.

Итак. Ниже приведен набор тестовых сценариев, которые должны быть написаны для нашей функции.

  1. тест для проверки действительно неравностороннего треугольника (наборы [1, 2, 3], [2, 5, 10] треугольниками не являются).
  2. проверка на действительно равносторонний треугольник
  3. проверка на равнобедренный треугольник (наборы вида [2, 2, 4] треугольником не являются)
  4. как минимум три теста для проверки равнобедренного треугольника, которые представляют собой перестановки одного и того же набора чисел ([3, 3, 4], [3, 4, 3], [4, 3, 3])
  5. тест на нулевую длину одной из сторон
  6. тест на сторону, имеющую длину меньше нуля
  7. проверка набора чисел, в котором сумма длин двух сторон равна третьей
  8. тест перестановок для троек чисел из теста 7
  9. проверка набора чисел, в котором сумма длин двух сторон меньше третьей ([12, 15, 30])
  10. тест перестановок для троек чисел из теста 9
  11. проверка на нулевую длину всех трех сторон
  12. проверка на передачу нецелочисленных значений
  13. проверка на передачу неполного набора значений
  14. проверка не только входных данных, но и ожидаемого выходного значения в каждом из тестов 1-13

Если вы не смогли назвать все кейсы, то не пугайтесь. Среднее число тестов, которые называли в разное время опытные разработчики составило 7,8.

Конечно нет никаких гарантий того, что набор тестов, удовлетворяющих перечисленным условиям, обнаружит все возможные ошибки. Но поскольку случаи 1-13 представляют ошибки, реально встречающиеся в различных версиях данной программы, адекватное тестирование должно обнаружить хотя бы их.

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

Однако, какой бы устрашающей ни казалась задача, адекватное (достаточно полное) тестирование программ является ключевой и, как вы убедитесь далее, вполне реализуемой частью процесса разработки программного обеспечения.

Тестируем

Конечно же самым простым решением будет просто закодировать все тестовые случаи для нашего проекта и написать нечто вроде следующего кода (файл triangle_test_simple.php).

require __DIR__ . DIRECTORY_SEPARATOR . 'triangle.php'; function testForIsoscelesTriangle()  echo "Test for [3, 4, 4]: "; if (triangle_type(3, 4, 4) == TRIANGLE_ISOSCELES)  echo "ok\n"; > else  echo "fail\n"; > > function main()  testForIsoscelesTriangle(); > main(); 

И такое часто практикуется. Особенно в среде разработчиков на C\C++. На каждый логически связанный набор тестовых случаев создается свой файл. Который содержит множество функций обрабатывающих по одному сценарию каждая.

В этом нет ничего плохого. Единственный минус такого подхода — отсутствие готового инструментария, который реализует все необходимые операции по обслуживанию и запуску тестов. Весь инструментарий приходится для каждого проекта реализовывать заново. Либо изготавливать свою собственную обвязку, которая будет кочевать из проекта в проект.

Один из вариантов создания инструмента для работы с подобными тестами вы можете увидеть в файле triangle_test.php. Запустите его и увидите на экране подробный лог тестирования проекта.

null

Литература

  • “Искусство тестирования программ” Гленфорд Майерс, Том Баджетт, Кори Сандлер, ISBN: 978-5-8459-1974-8
  • “PHP 7” Дмитрий Котеров, Игорь Симдянов, ISBN 978-5-9775-3725-4

Исходные тексты программ

Оглавление

RSS feed This page was generated by GitHub Pages.

у треугольника длины сторон которого целые числа длина одной стороны равна 5 а другой 1 чему равна 3 сторона

Здесь можно вычислить по теореме Пифагора-сумма квадратов катетов равна квадрату гипотенузы. 5 в квадрате плюс 1 в квадрате=26.Ответ: третья сторона равна корень из 26.Это примерно 5,1.

В условии не сказано про прямоугольный треугольник, Теорема Пифагора отпадает.
Нужен циркуль:


Радиус окружности, которая пересечётся с первой окружностью и есть искомая сторона треугольника. По мне так, та сторона равна 5, а треугольник равнобедренный

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *