Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
laby.doc
Скачиваний:
162
Добавлен:
22.02.2015
Размер:
565.25 Кб
Скачать
    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. Конец цикла.

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

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

programLab3;

{$APPTYPE CONSOLE}

uses SysUtils;

var

Loop:Boolean;

n:Integer;

a,b,c,p,r:Real;

ch:Char;

begin

Loop:=True;

while Loop do

begin

Writeln(' Меню:');

Writeln('1. Расчет площади прямоугольника');

Writeln('2. Расчет площади треугольника');

Writeln('3. Расчет площади круга');

Writeln('4. Выход из программы');

Write('Выберите пункт меню: ');

Readln(n);

case n of

1:begin

repeat

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

Readln(a,b);

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

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

else

Writeln('Площадь прямоугольника равна ',a*b);

Write('Продолжить вычисления (Y/N) ?');

Readln(ch);

until UpCase(ch)='N';

end;

2:begin

repeat

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;

Write('Продолжить вычисления (Y/N) ?');

Readln(ch);

until UpCase(ch)='N';

end;

3:begin

repeat

Write('Введите радиус круга: ');

Readln(r);

if r<=0 then

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

else

Writeln('Площадь круга равна ',Pi*Sqr(r));

Write('Продолжить вычисления (Y/N) ?');

Readln(ch);

until UpCase(ch)='N';

end;

4:Loop:=False;

end;

end;

end.

Тест

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

Пункт 1 – «Площадь прямоугольника»

a

b

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

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

-3

5

Некорректный ввод

5

8

40

Пункт 2 – «Площадь треугольника»

a

b

c

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

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

-1

2

3

Некорректный ввод

2

5

10

Вычисление невозможно

3

4

5

6

5

12

13

30

Пункт 3 – «Площадь круга»

r

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

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

-2

Некорректный ввод

10

314.1592653

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