Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TP_лабы_ЭМ.doc
Скачиваний:
13
Добавлен:
17.11.2018
Размер:
802.3 Кб
Скачать

Задание 1.2

1. Постановка задачи

Дано: треугольник ABC, A(2,3;3,7), B(5,8;6,2), C(4,5;8,3). Найти:P-?, S-?.

Написать программу для вычисления периметра и площади треугольника, у которого известны координаты его вершин.

Ответ: P=11,869, S=5,297.

2. Теоретическое введение

Искомые значения периметра и площади треугольника зависят от заданных координат точек – вершин треугольника: A=(xA, yA), B=(xB, yB), C=(xC, yC).

Для ввода значений переменных xA, yAxB, yB, xC, yC необходимо использовать стандартные процедуры: Read и ReadLn, для вывода Write или WriteLn.

Вычисление периметра и площади треугольника – по следующим формулам:

Периметр , где – длины сторон треугольника, например ;

Площадь , где – полупериметр треугольника.

Вычисление длины стороны треугольника удобнее организовать в виде функции.

3. Описание программы

Программа написана на алгоритмическом языке ПАСКАЛЬ и реализована в среде Borland Pascal-7.0 Windows XP/MS DOS, на платформе х86.

3.1. Описание логической структуры программы.

Для получения результата необходимо:

Ввести значения переменных xA, yAxB, yB, xC, yC с клавиатуры.

Описать функцию Dlin вычисления длины стороны треугольника.

Вычислить значения длин сторон , используя функцию Dlin.

Вычислить значение P, используя значения .

Вычислить значение S, используя значения и P.

Вывести на экран значение P и S, используя форматный вывод.

3.2. Блок-схема программы.

3.3 Описание входных данных

xA, yA, xB, yB, xC, yC – переменные типа Real;

3.4. Описание выходных данных

P, S переменные типа Real.

3.5. Описание программы (листинг)

Program ZAD_1_2;

var

xA,yA, xB, yB, xC,yC : real;

AB,BC,AC, P, S : real;

{функция для вычисления стороны треугольника как

расстояние м/у двумя точкам (x1,y1) и (x2,y2)}

Function Dlin(x1,y1,x2,y2:real):real;

begin

Dlin := sqrt( sqr(x2-x1) + sqr(y2-y1) );

end;

Begin

Writeln('Введите координаты точки A(x,y) ');

Readln(xA, yA);

Writeln('Введите координаты точки B(x,y) ');

Readln(xB, yB);

Writeln('Введите координаты точки C(x,y) ');

Readln(xC, yC);

{ Вычислим длины сторон, как расстояние между точками}

AB := Dlin(xA,yA, xB,yB);

BC := Dlin(xB,yB, xC,yC);

AC := Dlin(xA,yA, xC,yC);

P := AB + BC + AC;

{ по формуле Герона}

{S := sqrt(P/2 * (P/2 - AB) * (P/2 - BC) * (P/2 - AC));}

writeln('Периметр = ', P:5:3);

writeln('Площадь = ', S:5:3);

Readln;

End.

3.6. Тестовые примеры

Необходимо протестировать программу для различных тестовых примеров (подобрать самостоятельно).

3.7. Интерфейс программы в режиме выполнения

Результат работы программы выглядит следующим образом:

Задание 2

1. Постановка задачи

Вычислить заданное целочисленное выражение X для данных a, b с использованием операторов IF . Выражения для вычисления значения выражений оформить:

а) в виде процедуры;

б) в виде функции.

Сформировать тестовые примеры для демонстрации правильности работы программы.

2. Теоретическое введение

Значение искомого выражения зависит от данных a, b и в зависимости от условий состоит из арифметических операций, для которых необходимо учитывать приоритет их выполнения. Необходимый приоритет определяется как и в первом задании.

Для ввода значений переменных необходимо использовать стандартные процедуры: Read и ReadLn, для вывода Write или WriteLn.

Составные части выражения нужно определить в виде подпрограммы (функции и процедуры). Подпрограмма вызывается на выполнение путем ввода в теле основной программы имени подпрограммы и указанных в скобках фактических параметров. Перед вызовом подпрограммы ее нужно описать. Описание подпрограмм производится перед телом основной программы – Begin End. .

Общий вид заголовка процедуры выглядит следующим образом:

Procedure <Имя>(<список входных парам-ов>; var <сп.выходных пар-ов>);

Процедура – это подпрограмма, которая как и программа должна иметь "тело", заключенное в составной оператор – операторные скобки begin end;. Описание процедуры выглядит следующим образом:

Procedure <Имя>(p1:<тип1>; p2:<тип2>; var rez:<тип>);

begin

{тело процедуры}

end;

где p1, p2, rez – некоторые формальные параметры, используемые в теле процедуры, причем p1, p2 – входные данные, rez – выходной результат.

Функция отличается от процедуры только тем, что должна возвращать в основную программу результат своего выполнения, тип которого указывается в заголовке функции:

Function <Имя>(<список формальных парам-ов>):<тип результата>;

begin

{тело функции}

<Имя> := {выражение из формальных параметров}

end;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]