Страница 1 из 1

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

СообщениеДобавлено: 15.03.2012 20:30:18
kazmund
Проверить условие суще-ствования треугольника и вы-числить его площадь по формуле Герона:
uses crt;
var a,b,c,p,s:real;
ch:char;
begin clrscr;
write('Задайте сторону а: ');readln(a);
write('Задайте сторону b: ');readln(b);
write('Задайте сторону c: ');readln(c);
p:=(a+b+c)/2;
if (p<=a) or (p<=b) or (p<=c) then
write('Треугольник с такими сторонами не существует')
else
begin
p:=p*(p-a)*(p-b)*(p-c);s:=sqrt(p);writeln;
writeln('Площадь треугольника - ',s:0:3);
end;
ch:=readkey;
end.

Помогите преобразовать программу в Лазарус , я нашел её вид в паскале , необходимо перевести в лазарус

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

СообщениеДобавлено: 15.03.2012 21:20:19
iskander
Например так?
Код: Выделить всё
program Heron;

{$mode objfpc}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  { you can add units after this }FileUtil;

var a,b,c,p,s:Double;

begin
   writeln(UTF8ToConsole('Задайте сторону а: '));
   readln(a);
   writeln(UTF8ToConsole('Задайте сторону b: '));
   readln(b);
   writeln(UTF8ToConsole('Задайте сторону c: '));
   readln(c);
   p:=(a+b+c)/2;
   if (p<=a) or (p<=b) or (p<=c) then
     writeln(UTF8ToConsole('Треугольник с такими сторонами не существует'))
   else
     begin
       p:=p*(p-a)*(p-b)*(p-c);s:=sqrt(p);
       writeln;
       writeln(UTF8ToConsole('Площадь треугольника - '),s:0:3);
     end;
   readln;
end. 

Нужно ещё добавить LCL в зависимости проекта.

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

СообщениеДобавлено: 15.03.2012 22:08:08
Little_Roo
kazmund писал(а):p:=(a+b+c)/2;
if (p<=a) or (p<=b) or (p<=c) then
write('Треугольник с такими сторонами не существует')


А причем тут полупериметр?

Э :( , а класс-то какой? Приходская школа, или экономический-юридический-болтологический....класс ?
Вроде как партия :!: и правительство :!: , а также все СОЗНАТЕЛЬНЫЕ граждане верят ,тьфу, ЗНАЮТ - что главная ОДЗ для существования произвольного треугольника - это ПРЕВЫШЕНИЕ СУММЫ ДЛИН ДВУХ ЛЮБЫХ СТОРОН ТРЕУГОЛЬНИКА ДЛИНЕ ЕГО ТРЕТЬЕЙ СТОРОНЫ

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

СообщениеДобавлено: 15.03.2012 22:42:11
zub
>>ОДЗ для существования произвольного треугольника - это ПРЕВЫШЕНИЕ СУММЫ ДЛИН ДВУХ ЛЮБЫХ СТОРОН ТРЕУГОЛЬНИКА ДЛИНЕ ЕГО ТРЕТЬЕЙ СТОРОНЫ
и
Код: Выделить всё
if (p<=a) or (p<=b) or (p<=c) then

одно и тоже, такчто всё верно

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

СообщениеДобавлено: 15.03.2012 23:05:10
Little_Roo
zub писал(а):>>ОДЗ для существования произвольного треугольника - это ПРЕВЫШЕНИЕ СУММЫ ДЛИН ДВУХ ЛЮБЫХ СТОРОН ТРЕУГОЛЬНИКА ДЛИНЕ ЕГО ТРЕТЬЕЙ СТОРОНЫ
и
Код: Выделить всё
if (p<=a) or (p<=b) or (p<=c) then

одно и тоже, такчто всё верно

Ну, как учитель, ищем блох в коде :shock:
В поставленной задаче пионЭра было (вроде) условие проверки существования тр-ка

а при вводе (к примеру) а = -11111111111 и кирдык... :)


Предлагаю переместить топик в Помощь за .... (....)

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

СообщениеДобавлено: 16.03.2012 07:29:59
Ask
Little_Roo писал(а):
zub писал(а):>>ОДЗ для существования произвольного треугольника - это ПРЕВЫШЕНИЕ СУММЫ ДЛИН ДВУХ ЛЮБЫХ СТОРОН ТРЕУГОЛЬНИКА ДЛИНЕ ЕГО ТРЕТЬЕЙ СТОРОНЫ
и
Код: Выделить всё
if (p<=a) or (p<=b) or (p<=c) then

одно и тоже, такчто всё верно

Ну, как учитель, ищем блох в коде :shock:


Учителя, руководствующиеся принципом "так было написано в учебнике, поэтому все другие способы неверны" --
это одна из главных проблем современного обучения программированию.
(И, наверное, другим предметам, но в программировании встречаются особенно вопиющие примеры).

Проверка правильная, и даже немного более эффективная по сравнению с подходом "в лоб".
Код имеет стилистические недостатки, и вообще, за списывание таких элементарных вещей надо сразу
выгонять из учебного заведения, но с условием как раз всё в порядке.

Little_Roo писал(а): а при вводе (к примеру) а = -11111111111 и кирдык... :)

В каком смысле "кирдык"?

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

СообщениеДобавлено: 16.03.2012 18:40:49
Little_Roo
Ask писал(а):Код имеет стилистические недостатки, и вообще, за списывание таких элементарных вещей надо сразу
выгонять из учебного заведения, но с условием как раз всё в порядке.


Это уже флуд :cry:

Но -
НЕзнание основ школьной геометрии ...
ОДЗ (область допустимых значений) никто не отменял - и кирдык - длина стороны отрицательная (или нулевая), я уж не говорю, что она может быть и символьной.
Так что условие проверки существования надо пересмотреть - учебник геометрии 7-й класс (могу несколько ошибиться :( )

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

СообщениеДобавлено: 16.03.2012 22:03:00
Protopopulus
Код: Выделить всё
if ((a < b + c) and (b < a + c) and (c < a + b) and (a <> 0) and (b <> 0) and (c <> 0))
then
  считаем площадь
  выводим ответ
else
  треугольник невозможен

Не?

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

СообщениеДобавлено: 16.03.2012 22:47:34
Little_Roo
Protopopulus писал(а):(a <> 0) and (b <> 0) and (c <> 0))

Может, хватит ЭТО ворошить?? :oops:
Код: Выделить всё
...(a>0) and (b>0) and (c>0)...

И...Не дело здесь открывать коррекционный класс ...

To: Модератор - убейте тему :shock:

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

СообщениеДобавлено: 17.03.2012 00:24:41
zub
>>И...Не дело здесь открывать коррекционный класс ...
Автор правильно подглядел пример реализации, если по каждому поводу отправлять за учебники - из пионеров никогда комсомольцы не вырастут)). Вполне рабочий вариант. Начнет вводить нули, отрицательные числа или символьную билеберду - подумает\спросит и доработает при желании. Хотя думаю после первого ответа - зачет здан и фиг с ним))

>>за списывание таких элементарных вещей надо сразу выгонять из учебного заведения
Всё давно написано до нас, так что в "списывании" ниче страшного нет. Главное чтоб понимание было