Как найти площадь фигуры в паскале

Перейти к содержанию

Вычисление площадей и периметров фигур

Просмотров 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 math

print("Введите длины сторон треугольника: ")
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
# прямоугольник
print "ПРЯМОУГОЛЬНИК"
input " ширина: ", a
input " высота: ", b
print "Периметр: " + ((a + b) * 2)
print "Площадь: " + (a * b)
print
# круг
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)

.

Напишем программу:

Screenshot_1.png

С помощью данной программы мы найдем площадь и периметр прямоугольника. 

В окне вывода увидим следующее:

Screenshot_12.png

Данная программа не универсальна для некоторого класса задач, а это противоречит свойствам алгоритма. Программа работает только для одного конкретного прямоугольника со сторонами (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 выполняет округление до
копейки.

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

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Добавить комментарий