Перейти к содержанию
Вычисление площадей и периметров фигур
Просмотров 5.4к. Обновлено 26 октября 2021
Площади и периметры фигур можно найти по следующим формулам.
Периметр треугольника: P = a + b + c
Площадь треугольника: S = √(p(p-a)(p-b)(p-c)), где p = P/2
Периметр прямоугольника: P = 2(a + b)
Площадь прямоугольника: S = ab
Периметр круга: P = 2πr
Площадь круга: S = πr2
Pascal
вычислить площадь фигуры паскаль
var
a,b,c: word;
w,h: word;
r: word;
P,S: real;
begin
readln(a,b,c);
P := (a + b + c) / 2;
S := sqrt(P * (P - a) * (P - b) * (P - c));
writeln('P=',a+b+c,'; S=',S:5:2);readln(w,h);
writeln('P=',(w+h)*2,'; S=',w*h);readln(r);
P := 2 * pi * r;
S := pi * r * r;
writeln('P=',P:5:2,'; S=',S:5:2);
end.
5 3 5
P=13; S= 7.15
3 9
P=24; S=27
5
P=31.42; S=78.54
Язык Си
#include
#include#define PI 3.14159
main() {
int a,b,c;
float p,S;
printf("Длины сторон треугольника: ");
scanf("%d%d%d", &a,&b,&c);
p = (a+b+c)/2;
S = sqrt(p*(p-a)*(p-b)*(p-c));
printf("P = %d; S = %.2fnn", (a+b+c), S);
printf("Ширина и высота прямоугольника: ");
scanf("%d%d", &a,&b);
printf("P = %d; S = %dnn", (a+b)*2, a*b);
printf("Радиус круга: ");
scanf("%d", &a);
printf("P = %.2f; S = %.2fn", 2*PI*a, PI*pow(a,2));
}
Длины сторон треугольника: 4 4 6
P = 14; S = 7.94Ширина и высота прямоугольника: 2 5
P = 14; S = 10Радиус круга: 3
P = 18.85; S = 28.27
В библиотеке math.h нет константы числа π.
При компиляции с помощью gcc необходимо в конце команды указать ключ -lm (из-за math.h).
Python
вычислить площадь фигуры Python
import mathprint("Введите длины сторон треугольника: ")
a = int(input("a="))
b = int(input("b="))
c = int(input("c="))
p = (a+b+c)/2
s = math.sqrt(p*(p-a)*(p-b)*(p-c))
print("P=%d; S=%.2f" % (a+b+c, s))print("Введите длины сторон прямоугольника: ")
a = int(input("a="))
b = int(input("b="))
print("P=%d; S=%d" % ((a+b)*2, a*b))print("Введите радиус круга: ")
r = int(input("r="))
print("P=%.2f; S=%.2f" % (2*math.pi*r, math.pi*r**2))
Введите длины сторон треугольника:
a=2
b=4
c=3
P=9; S=2.90
Введите длины сторон прямоугольника:
a=6
b=7
P=26; S=42
Введите радиус круга:
r=3
P=18.85; S=28.27
КуМир
алг фигуры
нач
цел a,b,c
ввод a, b, c
вещ p, S
p := (a+b+c)/2
S := sqrt(p*(p-a)*(p-b)*(p-c))
вывод "P=", p*2, "; S=", S, нсцел w, h
ввод w, h
вывод "P=", (w+h)*2, "; S=", w*h, нсцел r
ввод r
p := 2 * 3.14 * r
S := 3.14 * r**2
вывод "P=", p, "; S=", S, нс
кон
5 7 9
P=21; S=17.41228
4 9
P=26; S=36
5
P=31.4; S=78.5
Не нашлось константы для числа π
Basic-256
# найти площади и периметры геометрических фигур
decimal 2
# треугольник
print "ТРЕУГОЛЬНИК"
input " первая сторона: ", a
input " вторая сторона: ", b
input " третья сторона: ", c
p = a + b + c
print "Периметр: " + p
p = p / 2
s = sqr(p*(p-a)*(p-b)*(p-c))
print "Площадь: " + s
# прямоугольник
print "ПРЯМОУГОЛЬНИК"
input " ширина: ", a
input " высота: ", b
print "Периметр: " + ((a + b) * 2)
print "Площадь: " + (a * b)
# круг
print "КРУГ"
input " радиус: ", r
print "Периметр: " + (2 * pi * r)
print "Площадь: " + (pi * r^2)
ТРЕУГОЛЬНИК
первая сторона: 5
вторая сторона: 5
третья сторона: 5
Периметр: 15
Площадь: 10.83ПРЯМОУГОЛЬНИК
ширина: 5
высота: 5
Периметр: 20
Площадь: 25КРУГ
радиус: 5
Периметр: 31.42
Площадь: 78.54
Площадь именно этой фигуры:
S = Площадь_Прямоугольника – 1/2 * Площадь_окружности
Если делать более универсально:
Делим нашу фигуру на N -частей вертикальными прямыми;
(чем больше N – тем будет точнее результат)
Находим точки пересечений наших прямых и контуров фигуры;
(используем методику изложенную в книге Ласло, “Вычислительная геометрия и компьютерная графика на С++”)
Сумма площадей всех прямоугольников образованных
нашими линиями и контуром будет площадью фигуры.
По теме :
Вычисление площадей плоских фигур с помощью определённого интеграла
https://interneturok.ru/lesson/algebra/11-klass/integralb/vychislenie-ploschadey-ploskih-figur-s-pomoschyu-opredelyonnogo-integrala
Определенный интеграл. Как вычислить площадь фигуры
http://www.mathprofi.ru/vychislenie_ploshadi_c_pomoshju_opredelennogo_integrala.html
Напишем программу, которая будет вычислять площадь и периметр прямоугольника со сторонами (5) см и (8) см.
Входные данные в задаче:
(a=5) см;
(b=8) см.
На выходе мы должны получить:
(S) — площадь прямоугольника;
(P) — периметр прямоугольника.
Для вычислений будем использовать формулы из курса математики:
S=a×b,P=2×(a+b)
.
Напишем программу:
С помощью данной программы мы найдем площадь и периметр прямоугольника.
В окне вывода увидим следующее:
Данная программа не универсальна для некоторого класса задач, а это противоречит свойствам алгоритма. Программа работает только для одного конкретного прямоугольника со сторонами (5) см и (8) см. Для того, чтобы программа могла находить площадь и периметр для любого прямоугольника, необходимо добавить в неё оператора ввода.
Процедуры и функции. Тексты программ
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Вычисление площади и периметра прямоугольника
procedure RectSP(a,b: real; var S,P:real); begin S := a * b; P := a + b; end; var x,y: real; // Стороны прямоугольника S: real; // Площадь прямоугольника P: real; // Периметр прямоугольника begin write('Введите стороны прямоугольника: '); readln(x,y); RectSP(x,y,S,P); writeln('Площадь равна ',S); writeln('Периметр равен ',P); end.
Табулирование функции
function f(x: real): real; begin Result := x*x - 2*x + 3; end; var a,b: real; // [a,b] - отрезок, на котором табулируется функция f(x) N: integer; // Количество частей, на которые разбивается [a,b] begin write('Введите a,b: '); readln(a,b); write('Введите N: '); readln(N); var h := (b-a)/N; var x := a; writeln('x f(x)'); for var i:=0 to N do begin writelnFormat('{0,3:f1} {1,6:f2} ',x,f(x)); x += h; end; end.
Функция вычисления an
function Power(a: real; n: integer): real; begin Result := 1; for var i:=1 to n do Result *= a; end; var a: real; n: integer; begin write('Введите a: '); readln(a); write('Введите n: '); readln(n); writelnFormat('{0} в степени {1} = {2}',a,n,Power(a,n)); end.
Функция вычисления n!
function Factorial(n: integer): integer; begin Result := 1; for var i:=2 to n do Result *= i; end; var n: integer; begin write('Введите n: '); readln(n); writelnFormat('{0}! = {1}',n,Factorial(n)); end.
Функция, преобразующая цифру к ее словесному наименованию
function DigitName(n: integer): string; begin case n of 0: Result := 'ноль'; 1: Result := 'один'; 2: Result := 'два'; 3: Result := 'три'; 4: Result := 'четыре'; 5: Result := 'пять'; 6: Result := 'шесть'; 7: Result := 'семь'; 8: Result := 'восемь'; 9: Result := 'девять'; end; end; begin writeln(DigitName(3)); writeln(DigitName(5)); writeln(DigitName(7)); end.
Функция проверки числа на четность
function Even(x: integer): boolean; begin Result := x mod 2 = 0 end; begin writeln(Even(3)); writeln(Even(4)); writeln(Even(7)); end.
Функция определения простоты числа
function IsSimple(N: integer): boolean; begin Result := True; for var i:=2 to round(sqrt(N)) do if N mod i = 0 then begin Result := False; exit; end; end; begin writeln(IsSimple(13)); writeln(IsSimple(4)); writeln(IsSimple(7)); end.
Функция вычисления n-того числа Фибоначчи
function Fib(N: integer): integer; begin if (N=1) or (n=2) then Result := 1 else begin var a := 1; var b := 1; for var i:=3 to N do begin Result := a + b; a := b; b := Result; end; end; end; begin writeln(Fib(5)); writeln(Fib(6)); writeln(Fib(7)); end.
Функция определения НОД числа
function NOD(a,b: integer): integer; begin while b<>0 do begin var c := a mod b; a := b; b := c; end; Result := a; end; var x,y: integer; begin x := 15; y := 12; writelnFormat('НОД чисел {0} и {1} равен {2}',x,y,NOD(x,y)); x := 144; y := 64; writelnFormat('НОД чисел {0} и {1} равен {2}',x,y,NOD(x,y)); x := 99; y := 54; writelnFormat('НОД чисел {0} и {1} равен {2}',x,y,NOD(x,y)); end.
Процедура вывода таблицы умножения
procedure Pifagor(n: integer); begin for var i:=1 to n do begin for var j:=1 to n do write(i*j:4); writeln; end; end; begin Pifagor(15); end.
Ссылки
- Программы для начинающих
- Сайт PascalABC.NET: Программы и алгоритмы для начинающих
Функции вычисления площади геометрических фигур
Алгоритм
решения задачи:
Паскаль
сам по себе не предоставляет функции,
вычисляющей площадь круга по фактическому
параметру – диаметру круга. Однако
такую функцию легко определить
самостоятельно. После этого функцию,
например, circle можно использовать в
программе точно так же, как ранее
использовались функции sqr или trunc.
В
первой строке определения функции
параметр d как
бы говорит «Делай то, что делается со
мной, но используй значение, которое
будет на моем месте». При вызове функции
на место d ставится
число, которое таким образом возводится
в квадрат, затем результат умножается
на 3.14159 и делится на 4.0. Параметр d –
это формальный параметр, тогда как
конкретное число – фактический параметр.
В основной программе, обращающейся к
функции circle,
можно использовать имя d как
имя переменной (или любого другого
объекта), не опасаясь помех со стороны
функции.
Также
приведены функции, вычисляющие площади
прямоугольника и треугольника; их
параметрами являются длины сторон.
Все
эти функции могут быть вызваны из
программы в любой последовательности
и любое количество раз.
Обратите
внимание на то, что функции вызываются
с фактическими параметрами x,
y, z, тогда как формальные параметры в их
определениях – a,
b, c, d. Переменная a в основной программе
никак не связана с формальным параметром
a в функциях. Точно так же отсутствует
связь переменной x в
основной программе и локальной
переменной x в
функции triangle.
Определенные
здесь функции различаются по числу
параметров. В функциях может быть любое
фиксированное число параметров;
определить функцию с переменным числом
параметров (например, как в случае read(a),
read(a, b), read(a, b, c))
нельзя – такой возможностью пользуется
только сам Pascal.
Программа
на языке Паскаль:
var
choice:
char;
a,
x,
y,
z:
real;
function
circle(d:
real):
real;
const
pi =
3.14159;
begin
circle
:=
pi *
sqr(d)
/
4.0;
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
repeat
read(choice);
case
choice of
‘c’:
begin
readln(x);
a
:=
circle(x)
end;
‘r’:
begin
readln(x,
y);
a
:=
rectangle(x,
y)
end;
‘t’:
begin
readln(x,
y,
z);
a
:=
triangle(x,
y,
z)
end
end;
writeln(‘Square:
‘,
a:8:2);
until
choice =
‘q’;
readln
end.
“Заем”. Арифметические выражения, возведение в степеньАлгоритм решения задачи:
Месячная
выплата m по
займу в s рублей
на n лет
под процент pвычисляется
по формуле:
m = (s * r * (1 + r)n)
/ (12 * ((1 + r)n –
1)), где r = p / 100.
Программа,
вычисляющая значение m (месячную
выплату) по известным s (сумме
займа), p (проценту)
и n (количеству
лет), может выглядеть так:
Программа
на языке Паскаль:
var
m,
s,
p,
n,
r,
a:
real;
begin
write(‘Величина
заема : ‘);
readln(s);
write(‘Процент:
‘);
readln(p);
write(‘Количество
лет: ‘);
readln(n);
r
:=
p /
100;
a
:=
exp(ln(1
+
r)
*
n);
m
:=
(s
*
r *
a)
/
(12
*
(a
–
1));
m
:=
trunc(100
*
m +
0.5)
/
100;
writeln;
writeln(‘Месячная
выплата: ‘,
m:5:2);
writeln(‘Прибыль
банка: ‘,
m *
12 *
n –
s:5:2);
readln
end.
Примечания:
Выражение
exp(ln(1 + r) * n) вычисляет (1 + r)n.
Выражение
trunc(100 * m + 0.5) / 100 выполняет округление до
копейки.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #