Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Pascal!

M@K$IMY$ Ученик (137), закрыт 16 лет назад
Кто умеет на нем работать решите задачу пожалуйста и напишите не ответ, а решение.
Задача:
Вычислите площаль прямоугольного треугольника по формуле Герона.
Стороны сами предумайте.
Формула Герона: S=p(a+b+c) где p=однавторая
Лучший ответ
Gennady Гений (60517) 16 лет назад
Хм.. . Начнем с того, что по формуле Герона вычисляется площадь _любого_ треугольника, так что информация о прямоугольности лишняя. Далее. В условии ошибка. То, что подается под видом формулы Герона есть просто полупериметр. А формула Герона имеет следующий вид: S=Sqrt(p*(p-a)*(p-b)*(p-c)), Sqrt - квадратный корень, р - полупериметр, а, b,с - стороны треугольника.

Теперь программка. Думаю, несколько комментариев скажут больше о решении, чем много слов. :-)
program S;
var
a,b,c,p,S : Real; {объявляем переменные}
begin
Write('Введите стороны треугольника, разделенные пробелом: '); {курсор останется в этой же строке}
ReadLn(a,b,c); {ввод исходных данных (курсор перейдет на следующую строку) }
p := (a+b+c)/2; {нашли полупериметр}
S := Sqrt(p*(p-a)*(p-b)*(p-c)); {вычислили площадь}
WriteLn('Площадь треугольника равна: ', S); {вывод результата}
ReadLn; {чтобы увидеть результат, если запускать будем из ТР}
end.

Как справедливо заметил KN KN, для каждого расчета эту программу нужно будет запускать по-новой. Ну что ж, ее несложно и зациклить. Для этого все, находящееся между begin и end надо поместить в цикл while do или repeat until (да-да, эти циклы так называются) и при каждом расчете проверять условие выхода из цикла. Естественно, в список переменных потребуется добавить упрвляющую переменную цикла. Разница в этих циклах в том, что цикл while do может ни разу не выполниться в зависимости от условия, а repeat until выполняется по-крайней мере один раз.

Удачи! :-)
ХейлХейлУченик (154) 9 лет назад
Почему после р: = пишется ошибка: ожидался оператор?
Gennady Гений (60517) Оператор присваивания помните? Пробел между двоеточием и равно уберите....
Остальные ответы
KN Гуру (4072) 16 лет назад
ну, смотрю, никто не отвечает. попробую черкануть.
Берёшь так, пэ - это у тебя константа, так ты её и объяви константой в разделе объявления констант.
Далее, тебе нужно получить стороны треугольника. здесь уже варианты, ты можешь выбрать удобный.
1й. Смотри, ты можешь за одно выполнение программы вычислить только одну площадь, тогда объявляй вещественными (точность - как хочешь, сингл, дабл, экстендед) тоько три переменные - а, бэ и цэ. тогда можно результат вычисления площади записать в одну из этих переменных - так ты даже и съекономишь, в стародавние времена были такие приёмчики. для начала прочти эти переменные через read или readln (как тебе больше нравится) , присвой значение результата порлусуммыодной из переменных и выводи write или writeln. ну вот и всё, программа завершена.
2й - мы предусматриваем за одно выполнение программы вычислить сколь угодное количество площадей для кучи треугольников. Ну чтоб юзер не запускал прогу каждый раз. Это удобней, согласись? тогда ты объяви ещё одну переменную в разделе var, скажем, q, типа char и всю последовательность действий, начиная с ввода цифирек с клавы и заканчивая выводом результата можно оформить в цикл while until но, в конец после вывода результата надо вывести ещё и вопрос "продолжить? (y)" или "для завершения нажать z " и прочитать эту переменную q. на выходе цикла условие until должно удовлетворить условию "не равно y" или равно z. если условие верно, выходим из проги, если нет - тогда продолжаем считать площади треугольников.
Надеюсь, хоть что-то понятно.
Удачи.
Похожие вопросы