Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
laby.doc
Скачиваний:
2
Добавлен:
26.11.2018
Размер:
598.53 Кб
Скачать

Текст программы

program Lab2;

{$APPTYPE CONSOLE}

uses SysUtils;

var

a,b,c,p:Real;

begin

Write('Введите стороны треугольника: ');

ReadLn(a,b,c);

if (a<=0) or (b<=0) or (c<=0) then

WriteLn('Некорректный ввод')

else

if (a+b<=c) or (a+c<=b) or (b+c<=a) then

WriteLn('Вычисление невозможно')

else

begin

p:=(a+b+c)/2;

WriteLn('Площадь треугольника равна ', Sqrt(p*(p-a)*(p-b)*(p-c)));

end;

ReadLn; { Задержка для консольных приложений }

end.

Тест

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

a

b

c

Расчетная площадь

Результат работы программы

3

4

5

6

5

12

13

30

28

45

53

630

16

17

17

120

14

25

25

168

7

15

20

42

10

17

21

84

    1. Экранные меню и циклы Постановка задачи

Основная задача.

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

Дополнительные задачи.

1. Добавить в меню четвертый пункт – «Выход» – и организовать внешний цикл WHILE для выполнения программы, пока не будет выбран соответствующий пункт меню.

2. Добавить в каждое вычисление площади вопрос «Продолжить вычисление (Y/N) ?» и цикл REPEAT, который должен выполняться, пока не будет введено «N».

Математическая модель

, где p – полупериметр, .

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

Алгоритм Lab3.

А. Начать исполнение.

1. Присвоить переменной Loop значение "истина".

2. Пока Loop имеет значение "истина", повторять:

А. Вывести на экран меню: "1 – Расчет площади прямоугольника 2 – Расчет площади треугольника 3 – Расчет площади круга".

Б. Вывести сообщение "Выберите пункт меню".

В. Ввести n.

Г. Исследовать n:

1. Если n=1, то:

А. Повторять:

1. Вывести сообщение "Введите стороны прямоугольника".

2. Ввести a,b.

3. Если a≤0, или b≤0,

А. то вывести сообщение "Некорректный ввод".

Б. иначе вывести "Площадь прямоугольника равна ", ab.

4. Вывести сообщение "Продолжить вычисления (Y/N) ?".

5. Ввести символ ot.

Б. Конец цикла при условии ot='N'.

2. Если n=2, то:

А. Повторять:

1. Вывести сообщение "Введите стороны треугольника".

2. Ввести a,b,c.

3. Если a≤0, или b≤0, или с≤0,

А. то вывести "Некорректный ввод".

Б. иначе:

1. Если a+bc, или a+cb, или b+ca,

А. то вывести "Некорректный ввод".

Б. иначе:

1. Рассчитать полупериметр .

2. Вывести "Площадь треугольника равна ", .

4. Вывести сообщение "Продолжить вычисления (Y/N) ?".

5. Ввести символ ot.

Б. Конец цикла при условии ot='N'.

3. Если n=3, то:

А. Повторять:

1. Вывести сообщение "Введите радиус круга".

2. Ввести r.

3. Если r≤0,

А. то вывести сообщение "Некорректный ввод".

Б. иначе вывести "Площадь круга равна ", πr2.

4. Вывести сообщение "Продолжить вычисления (Y/N) ?".

5. Ввести символ ot.

Б. Конец цикла при условии ot='N'.

4. Если n=4, то присвоить переменной Loop значение "ложь".

3. Конец цикла.

Б. Закончить исполнение.

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