Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2010, 21:44   #1
pashqa
Пользователь
 
Регистрация: 09.12.2010
Сообщений: 37
По умолчанию задача на паскале про треугольники

1)Пусть даны координаты трех точек на плоскости.Если они могут быть вершинами разностороннего тупоугольного треугольника,вычислите его площадь.

Помогите решить пожалуйста!!!
pashqa вне форума Ответить с цитированием
Старый 10.12.2010, 21:55   #2
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Цитата:
Сообщение от pashqa Посмотреть сообщение
1)Пусть даны координаты трех точек на плоскости.Если они могут быть вершинами разностороннего тупоугольного треугольника,вычислите его площадь.

Помогите решить пожалуйста!!!
Пусть даны !!! А ты можешь разместить тот код , который ты уже написал и на каком языке ?
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 10.12.2010, 22:26   #3
pashqa
Пользователь
 
Регистрация: 09.12.2010
Сообщений: 37
По умолчанию

в том то и дело что я ничего не написал.....я не понимаю как делать ее) новичек еще)ну а язык паскаля...
pashqa вне форума Ответить с цитированием
Старый 10.12.2010, 22:41   #4
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Цитата:
Сообщение от pashqa Посмотреть сообщение
в том то и дело что я ничего не написал.....я не понимаю как делать ее) новичек еще)ну а язык паскаля...
А как ты будешь учиться программированию , если ты сам не хочешь писать ничего ? Не думаю , что тебе дали задачу , до этого не научив как ее написать !
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 10.12.2010, 22:53   #5
IvaniuS
Форумчанин
 
Аватар для IvaniuS
 
Регистрация: 16.04.2007
Сообщений: 225
По умолчанию

Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils,math;
Var
 x1,y1,x2,y2,x3,y3:real;
  Vec1,Vec2,Vec3,ac1,ac2,ac3:real;
   S:real;

begin
 readln(x1,x2,x3,y1,y2,y3);
   vec1:=SQRT(sqr(x2-x1)+sqr(y2-y1));
  vec2:=SQRT(sqr(x3-x2)+sqr(y3-y2));
  vec3:=SQRT(sqr(x1-x3)+sqr(y1-y3));
  ac1:=arccos((vec1*vec1+vec2*vec2-vec3*vec3)/vec1*2*vec2);
  ac2:=arccos((vec3*vec3+vec2*vec2-vec1*vec1)/vec3*2*vec2);
  ac3:=arccos((vec1*vec1+vec3*vec3-vec2*vec2)/vec1*2*vec3);
   if (vec1<>vec2) or (vec2<>vec3) or (vec3<>vec1) then
     if (ac1>90)or(ac2>90)or(ac3>90) then begin
      S:=(vec1*vec2*sin(ac2))/2;
      writeln(S);
     end else writeln('ne raznostoronniy ili ne tupoy');
end.
я сделал с проверкой на тупоугольность и на разносторонность, если не надо то ифы убереш и не забудь спасибо
IvaniuS вне форума Ответить с цитированием
Старый 11.12.2010, 00:05   #6
I-Gor
 
Регистрация: 08.11.2010
Сообщений: 6
По умолчанию

Можно сделать проще.
Достаточно воспользоваться тем фактом, что в тупоугольном треугольнике всегда найдется сторона, квадрат которой будет больше суммы квадратов двух других сторон (в прямоугольном он будет равен, в остроугольном - меньше) - это следствие теоремы косинусов. Площадь вычисляется по формуле Герона. И то, и другое - это школьная геометрия, 8 класс. Итак:

var x1, y1, x2, y2, x3, y3: real;
var a, b, c, p: real;
begin

write ('x1='); readln (x1);
write ('y1='); readln (y1);
write ('x2='); readln (x2);
write ('y2='); readln (y2);
write ('x3='); readln (x3);
write ('y3='); readln (y3);

a:=sqrt(sqr(x2-x1)+sqr(y2-y1));
b:=sqrt(sqr(x3-x2)+sqr(y3-y2));
c:=sqrt(sqr(x3-x1)+sqrt(y3-y1));

if (a<>b) and (a<>c) and (b<>c) then
begin
if (a*a+b*b<c*c) or (b*b+c*c<a*a) or (a*a+c*c<b*b) then
begin
p:=(a+b+c)/2;
writeln ('s=',sqrt(p*(p-a)*(p-b)*(p-c)));
end
end
end.

Так, что здесь незнание не только программирования, но и элементарного школьного курса математики. В следующий раз для таких целей могу рекомендовать учебник Погорелова, например.

Последний раз редактировалось I-Gor; 11.12.2010 в 00:36.
I-Gor вне форума Ответить с цитированием
Старый 11.12.2010, 15:47   #7
pashqa
Пользователь
 
Регистрация: 09.12.2010
Сообщений: 37
По умолчанию

Спасибо всем кто помог!
pashqa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на паскале про треугольники pashqa Помощь студентам 2 09.12.2010 21:03
Про треугольники Артём555 Паскаль, Turbo Pascal, PascalABC.NET 7 28.04.2010 13:41
Задача на паскале про матрицу Olga O. Помощь студентам 7 18.02.2009 20:45