1 семестр / Лабароторная работа №2 прога
.docxФГБОУ ВО
«Уфимский государственный авиационный технический университет»
Кафедра ТК
ОТЧЕТ
по лабораторной работе № 2
по дисциплине «Программирование»
Вариант № 26
Выполнил: студент гр. ИВТ-127Б
Проверил: доцент каф. ТК
Федорова Н.И.
Уфа 2021
Тема работы: Простейшие программы на языке C++
Цель работы: Получение навыков составления и отладки простейших программ на языке С++.
Задачи работы:
составить блок-схему алгоритма работы программы;
написать программу на языке С++ для простейших математических расчетов;
протестировать работоспособность программы для различных исходных данных.
Вариант № 26
Задание:
Даны три положительных числа. Определить, можно ли построить треугольник со сторонами, длины которых равны этим числам. Если возможно, то определить, будет ли он остроугольным.
Выполнение задания:
Задание № 1:
Решение задачи:
Введем переменные:
a, b, c – стороны треугольника;
max – величина большой стороны треугольника;
powsum – сумма квадратов двух меньших сторон треугольника.
Проверяем точно ли пользователь ввел положительные числа.
Если п2 выполнился, проверяем существует ли треугольник с данными сторонами. Для этого должны быть верны следующие неравенства:
Если п3 выполнился, присваиваем переменной max значение большей стороны, а переменной powsum сумму квадратов двух других меньших сторон треугольника:
ИЛИ
ИЛИ
Определяем вид треугольника:
Если выполняется неравенство:
, то треугольник остроугольный.
Если выполняется неравенство:
, то треугольник прямоугольный.
Если не выполнилось ни 1 неравенство, ни 2-ое то треугольник тупоугольный.
Схема алгоритма работы программы:
Текст программы:
#include <iostream>
#include <math.h>
using namespace std;
int main() {
setlocale(0, "");
int a, b, c, max, powsum;
cout << "Проверка существования треугольника по длинам его сторон. Определение вида треугольника "<< endl ;
cout << endl << "Введите три положительных числа" << endl;
cout << "a= ";
cin >> a;
cout << "b= ";
cin >> b;
cout << "c= ";
cin >> c;
if (a>0 && b>0 && c>0)
{
if (a + b > c && a + c > b && b + c > a) {
cout << endl << "Треугольник с данными сторонами существует" << endl;
if (a > b && a > c) {
max = a;
powsum = pow(b, 2) + pow(c, 2);
}
else if (b > a && b > c) {
max = b;
powsum = pow(a, 2) + pow(c, 2);
}
else { max = c;
powsum = pow(b, 2) + pow(a, 2);
}
if (pow(max, 2) < powsum) {
cout << endl << "Вид треугольника - остроугольный " ;
}
else if (pow(max, 2) == powsum) {
cout <<endl << "Вид треугольника - прямоугольный " ;
}
else {
cout << endl << "Вид треугольника - тупоугольный " ;
}
}
else { cout << endl << "Треугольник с данными сторонами не существует"; }
}
else { cout << endl << "Ошибка ввода"; }
return 0;
}
Тестовый пример:
Возьмем треугольник со сторонами 8,9,5.
Проверим верно ли ввел пользователь числа:
8>0, 9>0, 5>0.
Проверим существует ли треугольник с данными сторонами:
8+9>5 17>5
8+5>9 13>9
9+5>8 14>8
Определим максимальную сторону и присвоим powsum сумму квадратов двух других сторон:
max=9
Проверяем какое из неравенств выполняется и определяем вид треугольника:
81<89
81=89
81>89
Выполнилось 1-ое неравенство — значит треугольник остроугольный.
Ответ: Треугольник со сторонами 8,9,5 существует. Вид треугольника – остроугольный.
Вывод: В ходе выполнения работы были получены навыки использования условных операторов, составления и отладки простейших программ на языке С++.