Задача 1. Вычисление значения арифметического выражения
Условие задачи. Вычислить площадь треугольника по трём его сторонам.
Сначала необходимо определить исходные данные задачи и требуемые результаты. Исходными данными в этой задаче являются стороны треугольника a, b и c – это числа, которые могут быть как целыми, так и с дробной частью, поэтому будем считать, что в общем случае они должны быть вещественными. Результатом должна быть площадь треугольника s (вещественное данное).
Для решения задачи можно воспользоваться формулой Герона, в соответствии с которой площадь треугольника со сторонами a, b и c вычисляется следующим образом: , где (полупериметр треугольника). Алгоритм решения задачи прост и состоит в последовательном выполнении ввода исходных данных, вычисления сначала полупериметра p, а затем площади s и вывода результата s. Такой алгоритм является линейным, или последовательным.
Перед вводом данных обычно на экран выводят сообщение, поясняющее, какие данные должны быть введены. В данном примере перед вводом значений a, b и c целесообразно вывести на экран сообщение ‘Введите длины сторон треугольника a, b, c ’ (сообщение может быть и короче, и длиннее, важно, чтобы из него было понятно, какие данные требуется ввести). Вывод результата также сопровождают поясняющими надписями, в данном случае можно вывести сначала текст 's=' или 'площадь s=', а затем – значение переменной s. В данной задаче отразим это в описании алгоритма, в последующих примерах этого делать не будем, но будем считать, что ввод и вывод данных всегда должны сопровождаться выводом поясняющих надписей.
Приведём более формализованное описание данного алгоритма, облегчающее построение структурной схемы алгоритма и составление программы на языке высокого уровня.
Структурированная запись алгоритма 1
1. Вывести сообщение 'Введите длины сторон треугольника a, b, c’.
2. Ввести a, b, c.
3. Вычислить p=(a+b+c)/2.
4. Вычислить s=sqrt(p*(p-a)*(p-b)*(p-c)).
5. Вывести текст 's=' и значение s.
Схема алгоритма 1

Программа на языке Си
#include <stdio.h>
#include <math.h>
int main (void)
{
double a, b, c, p, s;
printf (״Введите длины сторон треугольника\n”);
scanf (״%lf%lf%lf”, &a, &b, &c);
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf (״Площадь S=%lf”, s);
return 0:
}
Программа на языке Паскаль
Program Pr_1;
var a, b, c, p,s: real;
begin
writeln ('Введите а, b и c');
read (a, b, c);
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
writeln ('Площадь s=',s:5:3)
end.
Программа на языке Фортран
Program Pr_1
Implicit none
real a, b, c, p,s
print *, 'Введите а, b и c'
read *, a, b, c
p=(a+b+c)/2
s=sqrt(p*(p-a)*(p-b)*(p-c))
print *, 'Площадь s=',s
end
Программа на языке Python
from math import sqrt
print("Введите длины сторон треугольника a, b, c")
a = float(input())
b = float(input())
c = float(input())
p = (a + b + c)/2
s = sqrt(p*(p-a)*(p-b)*(p-c))
print("Площадь S = ", s)
Программа в системе Матлаб
a=input('a=');
b=input('b=');
c=input('c=');
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
disp('Площадь s=');
disp(s);
|