1 семестр / Лабароторная работа №1 прога
.docxФГБОУ ВО
«Уфимский государственный авиационный технический университет»
Кафедра ТК
ОТЧЕТ
по лабораторной работе № 1
по дисциплине «Программирование»
Вариант № 26
Выполнил: студент гр. ИВТ-127Б
Проверил: доцент каф. ТК
Федорова Н.И.
Уфа 2021
Тема работы: Простейшие программы на языке C++
Цель работы: Получение навыков составления и отладки простейших программ на языке С++.
Задачи работы:
составить блок-схему алгоритма работы программы;
написать программу на языке С++ для простейших математических расчетов;
протестировать работоспособность программы для различных исходных данных.
Вариант № 26
Задание:
Треугольник задан координатами своих вершин на плоскости. Найти высоты треугольника.
Выполнение задания:
Задание № 1:
Решение задачи:
Введем переменные:
Ax, Ay – координаты вершины A;
Bx, By – координаты вершины B;
Cx, Cy – координаты вершины C;
AB, AC, BC – стороны треугольника;
p – полупериметр треугольника;
S – площадь треугольника;
Hab, Hac, Hbc – высоты треугольника.
Рассчитаем стороны треугольника по формуле:
Рассчитаем полупериметр по формуле:
Рассчитаем площадь по формуле Герона:
Рассчитаем высоты по формуле:
Округлим ответ до целых.
Схема алгоритма работы программы:
Текст программы:
#include <iostream>
#include <math.h>
using namespace std;
int main() {
setlocale(0, "");
int Ax, Ay, Bx, By, Cx, Cy;
cout << "Введите целочисленные координаты x,y вершины A ";
cin >> Ax >> Ay;
cout << "Введите целочисленные координаты x,y вершины B ";
cin >> Bx >> By;
cout << "Введите целочисленные координаты x,y вершины C ";
cin >> Cx >> Cy;
float AB, AC, BC;
//находим длину стороны AB
AB = sqrt(pow(Bx - Ax, 2) + pow(By - Ay, 2));
//находим длину стороны AC
AC = sqrt(pow(Cx - Ax, 2) + pow(Cy - Ay, 2));
//находим длину стороны BC
BC = sqrt(pow(Cx - Bx, 2) + pow(Cy - By, 2));
float p, S;
//находим по формуле Герона площадь
p = (AB + AC + BC) / 2;
S = sqrt(p * (p - AB) * (p - AC) * (p - BC));
//выражаем высоты треугольника
float Hab, Hac, Hbc;
Hab = round(2 * S / AB);
Hac = round(2 * S / AC);
Hbc = round(2 * S / BC);
cout << "Высота проведенная к стороне AB " << Hab << endl;
cout << "Высота проведенная к стороне AC " << Hac << endl;
cout << "Высота проведенная к стороне BC " << Hbc << endl;
}
Тестовый пример:
Возьмем треугольник с координатами вершин A (-2,4), B (-3,1), C (-1,1).
Вычислим стороны этого треугольника:
Вычислим полупериметр:
Вычислим площадь по формуле Герона:
.
Вычислим высоты треугольника:
Ответ: Высоты треугольника равны 2, 2, 3.
Вывод: В ходе выполнения работы были получены навыки составления и отладки простейших программ на языке С++.
Контрольные вопросы:
Что делает строка программы # include <iostream.h>?
Директива include используется для подключения внешнего файла <iostream.h> для поддержки системы вывода и ввода.
В чем особенность функции main ( )?
Выполнение программы начинается со специальной стартовой функции main. Функция main обязательно должна быть определена в программе, модуль с этой функцией обозначается главным.
Что обозначают имена cin, cout и для чего они используются? Тогда как cout выводит данные в консоль с помощью оператора вывода «, cin получает данные от пользователя с помощью оператора ввода ».
Каково назначение операций “>>” и “<<”?
"»" - "оператор сдвига влево"
" «" - "оператор сдвига вправо"
Что такое условие и как формируются сложные условия?
Условия – это некоторые логические функции принимающие значения ИСТИНА или ЛОЖЬ. Сложные условия образуются путем соединения простых с помощью операций: И, ИЛИ, НЕ.
Каково назначение оператора if? Каковы его формы?
Условный оператор if обеспечивает выполнение оператора или группы операторов в зависимости от заданных условий. Если условие выполнится, то начнется выполнение всех команд, которые находятся между фигурными скобками. Каждому оператору if соответствует только один оператор else. Совокупность этих операторов — else if означает, что если не выполнилось предыдущее условие, то проверить данное. Если ни одно из условий не верно, то выполняется тело оператора else.