В зависимости от выбора пользователя вычислить площадь круга, прямоугольника или треугольника. Для вычисления площади каждой фигуры должна быть написана отдельная функция.
Пусть программа может вычислять площади трех фигур: круга, прямоугольника и треугольника. Для вычисления каждой из них необходима отдельная функция. Пусть каждая из этих функций возвращает полученную площадь, а принимает параметры, необходимые для ее вычисления.
Для вычисления площади круга необходим радиус, для прямоугольника — длины двух сторон, для треугольника (если площадь вычисляется по формуле Герона) — длины трех сторон. Следовательно, функции будут различаться по количеству параметров.
Площадь круга вычисляется по формуле πr2.
Площадь прямоугольника является произведением двух его сторон.
Площадь треугольника по формуле Герона рассчитывается через полупериметр (p=(a+b+c)/2, где a, b и c — длины сторон треугольника) по формуле sqrt(p * (p-a) * (p-b) * (p-c)), где sqrt — квадратный корень.
В основной ветке программы должен происходить выбор, площадь какой фигуры необходимо вычислить. В зависимости от выбора будут запрашиваться необходимые данные (радиус или длины сторон) и передаваться в соответствующую функцию. Возвращаемое из функции значение будет выводиться на экран.
Pascal
паскаль площадь фигуры
var
choice: char;
a, x, y, z: real;
function circle(r: real): real;
begin
circle := pi * sqr(r);
end;
function rectangle(a, b: real): real;
begin
rectangle := a * b
end;
function triangle(a, b, c: real): real;
var x: real;
begin
x := (a + b + c) / 2;
triangle := sqrt(x * (x - a) * (x - b) * (x - c))
end;
begin
write('Круг(c), прямоугольник(r) или треугольник(t): ');
readln(choice);
case choice of
'c': begin
write('Радиус: ');
readln(x);
a := circle(x)
end;
'r': begin
write('Длина и ширина: ');
readln(x, y);
a := rectangle(x, y)
end;
't': begin
write('Стороны: ');
readln(x, y, z);
a := triangle(x, y, z)
end
end;
writeln('Площадь: ', a:4:2);
end.
Круг(c), прямоугольник(r) или треугольник(t): c
Радиус: 2
Площадь: 12.57
Круг(c), прямоугольник(r) или треугольник(t): r
Длина и ширина: 3.85 12.55
Площадь: 48.32
Круг(c), прямоугольник(r) или треугольник(t): t
Стороны: 3 4 6.5
Площадь: 4.17
В Паскале существует встроенная константа π (pi).
Язык Си
#include < stdio.h>
#include < math.h>
float circle(float);
float rectangle(float, float);
float triangle(float, float, float);
main() {
char ch;
float a,b,c;
printf("Круг(c), прямоугольник(r) или треугольник(t): ");
scanf("%c", &ch);
switch (ch) {
case 'c':
printf("Радиус: ");
scanf("%f", &a);
printf("Площадь круга %.2f\n", circle(a));
break;
case 'r':
printf("Длина и ширина: ");
scanf("%f%f", &a, &b);
printf("Площадь прямоугольника: %.2f\n", rectangle(a,b));
break;
case 't':
printf("Стороны: ");
scanf("%f%f%f", &a, &b, &c);
printf("Площадь треугольника: %.2f\n", triangle(a,b,c));
break;
}
}
float circle(float r) {
return 3.14159 * r * r;
}
float rectangle(float x, float y) {
return x * y;
}
float triangle(float x, float y, float z) {
float p;
p = (x+y+z) / 2;
return sqrt(p * (p-x) * (p-y) * (p-z));
}
Компилировать с ключом -lm.
Python
import math
def circle(r):
return math.pi * r**2
def rectangle(a, b):
return a*b
def triangle(a, b, c):
p = (a+b+c)/2
return math.sqrt(p * (p-a) * (p-b) * (p-c))
choice = input("Круг(к), прямоугольник(п) или треугольник(т): ")
if choice == 'к':
rad = float(input("Радиус: "))
print("Площадь круга: %.2f" % circle(rad))
elif choice == 'п':
l = float(input("Длина: "))
w = float(input("Ширина: "))
print("Площадь прямоугольника: %.2f" % rectangle(l,w))
elif choice == 'т':
AB = float(input("Первая сторона: "))
BC = float(input("Вторая сторона: "))
CA = float(input("Третья сторона: "))
print("Площадь треугольника: %.2f" % triangle(AB,BC,CA))
КуМир
алг площадь фигуры
нач
вещ а, б, в
сим фигура
вывод "Круг(к), прямоугольник(п), треугольник(т): "
ввод фигура
если фигура = "к" то
вывод "Радиус: "
ввод а
вывод "Площадь круга: ", круг(а)
иначе
если фигура = "п" то
вывод "Длина: "
ввод а
вывод "Ширина: "
ввод б
вывод "Площадь прямоугольника: ", прямоугольник(а,б)
иначе
если фигура = "т" то
вывод "Сторона 1: "
ввод а
вывод "Сторона 2: "
ввод б
вывод "Сторона 3: "
ввод в
вывод "Площадь треугольника: ", треугольник(а,б,в)
все
все
все
кон
алг вещ круг (вещ р)
нач
знач := 3.14 * р**2
кон
алг вещ прямоугольник (вещ д, вещ ш)
нач
знач := д * ш
кон
алг вещ треугольник (вещ ст1, вещ ст2, вещ ст3)
нач
вещ п
п := (ст1 + ст2 + ст3) / 2
знач := sqrt(п * (п - ст1) * (п - ст2) * (п - ст3))
кон
Basic-256
input "Круг (к), прямоугольник (п) или треугольник (т): ", ch$
if ch$ = "к" then
gosub circ
else
if ch$ = "п" then
gosub rectangle
else
if ch$ = "т" then
gosub triangle
endif
endif
endif
end
circ:
input "Радиус: ", r
print "Площадь круга: " + (pi * r^2)
return
rectangle:
input "Длина: ", a
input "Ширина: ", b
print "Площадь прямоугольника: " + (a*b)
return
triangle:
input "Первая сторона: ", a
input "Вторая сторона: ", b
input "Третья сторона: ", c
p = (a+b+c) / 2
s = sqrt(p * (p-a) * (p-b) * (p-c))
print "Площадь треугольника: " + s
return
В функции ничего не передается и ничего из них не возвращается.