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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2012, 19:24   #1
reprain
Пользователь
 
Регистрация: 07.10.2012
Сообщений: 16
По умолчанию Построить треугольник (не знаю как закончить, Paskal))

Дано натуральное трехзначное число. Определить цифры этого числа (k, l, m) и выяснить, можно ли построить произвольный треугольник со сторонами k, l, m


Код:
program lava5nom20;
Var n:integer;
des,sot,ed:real;
Procedure FUUUUUUUUU;
 begin
  detectgraph(grdr,grm);
  initgraph(grdr,grm,path);
  SetBkColor(0);
  ClearDevice;
  setColor(15);
  MoveTo(a1,a2);
  LineTo(b1,b2);
  LineTo(c1,c2);
  LineTo(a1,a2);
  readln;
  closegraph;
Begin
readln(n);
sot:=n div 100;
des:=n mod 100 div 10;
ed:=n mod 100 mod 10;
write('координаты  A =>');
    
    write('координаты  B =>');
  
    write('координаты C =>');
  
FUUUUUUUUU
End.

не знаю как подставить в координаты ед,дес и сот.
Не подскажете?

Последний раз редактировалось reprain; 07.10.2012 в 19:31.
reprain вне форума Ответить с цитированием
Старый 09.10.2012, 14:52   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

думаю, что ожидается что-то вроде такого:
Код:
uses Graph;
const
  mashtab = 30;
var
  N, a,b,c, tmp : integer;
  cosC, sinc : Extended;
  x0, y0 : integer;
  grDriver: Integer;
  grMode: Integer;

begin
  WriteLn;
  repeat
    Write('Введите трёхзначное целое число: ');
    readln(N);
    if (N>999) or (N<100) then WriteLn('Ошибка! Должно быть строго трёхзначное!');
  until (N>=100) and  (N<=999);
  a := N div 100;
  b := N mod 100 div 10;
  c := N mod 10;

  WriteLn('a = ', a, ' b = ',b, ' c = ', c );

  if  (a>0) and (b>0) and (c>0) and (a+b>c) and (b+c>a) and (a+c>b)   {условие существования треугольника}
  then
    begin
      { отсортируем a, b, c так, чтобы a равнялось наибольшей стороне, с - наименьшей}
      if c>b then begin tmp := c; c := b; b := tmp end;
      if b>a then begin tmp := a; a := b; b := tmp end;
      if c>b then begin tmp := c; c := b; b := tmp end;

      cosC := (b*b+a*a-c*c)/(2*a*b);
      sinc := sqrt( 1 - sqr(cosC));


      grDriver := Detect;
      InitGraph(grDriver, grMode,'');{}
      SetBkColor(0);
      ClearDevice;
      setColor(15);

      { нарисуем треугольник }
      x0 := 50;
      y0 := 50;

      MoveTo( x0, y0);
      LineTo( x0 + round(a*mashtab), y0);
      MoveTo( x0, y0);

      LineTo( round(x0 + (b*mashtab)*cosC), round(y0 + (b*mashtab) * sinc ));
      LineTo( x0 + round(a*mashtab), y0);

      readln;
      closegraph;

   end
   else
     WriteLn('Треугольник построить невозможно');
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны длины отрезков a,b,c,d,e.Выяснить,можно ли построить треугольник со сторонами {a,b,c},{b,c,d},{c,d,e}?Если да,то найдите пло kazbek1 Паскаль, Turbo Pascal, PascalABC.NET 6 18.05.2012 21:15
Как закончить БД? valenina БД в Delphi 17 15.06.2010 10:14
возможно ли построить треугольник (С++) innaa639 Помощь студентам 3 24.02.2010 21:40
Построить треугольник по координатам его вершин и описать около него окружность. Lion Помощь студентам 22 01.04.2008 23:37