Задача.

Создать модуль, который бы по формуле высчитывал объем параллелепипеда, ядра , конуса, пирамиды, цилиндра.
Объём параллелепипеда: V = * h; где а — сторона параллелепипеда, h — высота.
Объём ядра: V = 4*Pi*()/3; где R — радиус, Pi — 3.14.
Объём конуса: V = 1/3*Q*H; Q=Pi*();
Объём цилиндра: V = Pi*()*h;
Объём пирамиды: V = 1/3 * S * H; S= */4.

Код модуля выглядит так:

unit obem;

interface {интерфейсная часть}
const Pi = 3.14;
function parall (a, h : real) : real; {Объём параллелепипеда}
function jadro (r : real) : real; {Объём сферы}
function piramida (a, h : real) : real; {Объём пирамиды}
function konus (r, h : real) : real; {Объём конуса}
function cilindr (r, h : real) : real; {Объём цилиндра}

implementation {Исполнительная часть}

function parall (a, h : real) : real;
begin
parall := sqr(a) * h;
end;

function jadro (r : real) : real;
begin
jadro := 4 * pi * sqr(r)/3;
end;

function piramida (a, h : real) : real;
var
s : real;
begin
s := sqr(a) * sqrt(3) / 4;
piramida := (1/3) * s * h;
end;

function konus (r, h : real) : real;
var
g : real;
begin
g := pi * sqr(r);
konus := (1/3) * g * h;
end;

function cilindr (r, h : real) : real;
begin
cilindr := pi * sqr(r) * h;
end;

end.



Код задачи:

program geometrija;

uses obem;
var
w : integer; {переменная выбора, что считать}
a, h, r : real;
begin
writeln('Данная задача считает объёмы геометрических фигур.');
writeln('Параллелепипеда, ядря, конуса, пирамиды, цилиндра.');
writeln('Задача решена с помощью модуля.');

repeat

writeln('Введите что считать : ');
writeln(' 1 : объём параллелепипеда');
writeln(' 2 : объём ядра');
writeln(' 3 : объём конуса');
writeln(' 4 : объём пирамиды');
writeln(' 5 : объём цилиндра');
readln(w);

case w of
1 : begin
writeln('Вычисляем объём параллелепипеда.');
writeln('Введите длинну стороны.');
readln(a);
writeln('Введите высоту.');
readln(h);
writeln('Объём параллелепипеда = ', parall(a, h) : 2 : 2);
end;
2 : begin
writeln('Вычисляем объём ядра.');
writeln('Введите радиус.');
readln(r);
writeln('Объём ядра = ', jadro(r) : 2 : 2);
end;
3 : begin
writeln('Вычисляем объём конуса.');
writeln('Введите радиус основания.');
readln(r);
writeln('Введите высоту.');
readln(h);
writeln('Объём конуса = ', konus(r, h) : 2 : 2);
end;
4 : begin
writeln('Считаем объём пирамиды.');
writeln('Введите сторону.');
readln(a);
writeln('Введите высоту.');
readln(h);
writeln('объём пирамиды = ', piramida(a, h) : 2 : 2);
end;
5 : begin
writeln('Считаем объём цилиндра.');
writeln('Введите радиус основания.');
readln(r);
writeln('Введите высоту.');
readln(h);
writeln('Объём цилиндра = ', cilindr(r, h) : 2 : 2);
end;
else writeln('Нет такого варианта.');
end;

writeln('Чтобы повторить расчёт введите 6. Иначе 1.');
readln(w);

until not (w = 6);

writeln('Нажмите enter чтобы выйти.');
readln;
end.



Цикл используется, чтобы не перезапускать каждый раз задачу, а выбирать, что считать на месте.

Скачать решение.

Hosted by uCoz