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

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

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

Сообщение kazmund » 15.03.2012 20:30:18

Проверить условие суще-ствования треугольника и вы-числить его площадь по формуле Герона:
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.

Помогите преобразовать программу в Лазарус , я нашел её вид в паскале , необходимо перевести в лазарус
kazmund
незнакомец
 
Сообщения: 5
Зарегистрирован: 19.10.2011 20:28:05

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

Сообщение iskander » 15.03.2012 21:20:19

Например так?
Код: Выделить всё
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 в зависимости проекта.
iskander
энтузиаст
 
Сообщения: 606
Зарегистрирован: 08.01.2012 18:43:34

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

Сообщение Little_Roo » 15.03.2012 22:08:08

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


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

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

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

Сообщение zub » 15.03.2012 22:42:11

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

одно и тоже, такчто всё верно
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

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

Сообщение Little_Roo » 15.03.2012 23:05:10

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

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

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

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


Предлагаю переместить топик в Помощь за .... (....)
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 639
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

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

Сообщение Ask » 16.03.2012 07:29:59

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

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

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


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

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

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

В каком смысле "кирдык"?
Ask
постоялец
 
Сообщения: 163
Зарегистрирован: 25.12.2008 03:51:37

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

Сообщение Little_Roo » 16.03.2012 18:40:49

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


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

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

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

Сообщение Protopopulus » 16.03.2012 22:03:00

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

Не?
Аватара пользователя
Protopopulus
новенький
 
Сообщения: 24
Зарегистрирован: 25.11.2010 09:58:07

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

Сообщение Little_Roo » 16.03.2012 22:47:34

Protopopulus писал(а):(a <> 0) and (b <> 0) and (c <> 0))

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

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

To: Модератор - убейте тему :shock:
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 639
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

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

Сообщение zub » 17.03.2012 00:24:41

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

>>за списывание таких элементарных вещей надо сразу выгонять из учебного заведения
Всё давно написано до нас, так что в "списывании" ниче страшного нет. Главное чтоб понимание было
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26


Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Рейтинг@Mail.ru