• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Процедуры и функции

Xelboi19

Ученик
Регистрация
23 Дек 2010
Сообщения
4
Реакции
0
Баллы
0
Процедуры и функции

Помогите написать программу!
Задан треугольник АВС длинами своих сторон. Определить его медианы (медиана,проведенная к стороне А равна 0.5(2в2+2с2-а2).
Код:
Program forth;
uses crt;
Var
 k1,k2,b,c:byte; p1,p2,n,v1,v2,a:real;
function fact(x:real):real;
begin
 if x=0 then fact:=1
     else fact:=fact(x-1)*x;
     end;
begin clrscr;
a:=1/2;
k1:=b; k2:=c;
 v1:=fact(k1);   p1:=2*2*a+2*2*c+2*b;
   v2:=fact(k2);   p2:=2*2*a+2*2*b+2*c;
writeln('Мидиана к стороне b =',p1);
  writeln('Мидиана к стороне =',p2);
readln;
end.
получается что такое но эта полная ерись=)))
 
получается что такое но эта полная ерись=)))

Еще бы не ерИсь! Конечно - ерИсь и есть! Если Вы исходите из неверной формулы, потом, вместо того, чтобы сесть и написать свой код, берете чью-то программу, не имеющую ни малейшего отношения к задаче, в которой вычисляются факториалы неких целых чисел, впихиваете кое-как свои мИдианы - так чего же Вы ожидаете в итоге, кроме полной ерИси?

Прежде всего - правильная
формула вычисления медианы:
Med.gif
Теперь, собственно, эта простейшая программка:
Код:
VAR
 a,b,c,Ma,Mb,Mc:Real;
BEGIN
 Write('a= ');
 ReadLn(a);
 Write('b= ');
 ReadLn(b);
 Write('c= ');
 ReadLn(c);
 Ma:=0.5*SQRT(2*SQR(b)+2*SQR(c)-SQR(a));
 Mb:=0.5*SQRT(2*SQR(a)+2*SQR(c)-SQR(b));
 Mc:=0.5*SQRT(2*SQR(a)+2*SQR(b)-SQR(c));
 WriteLn('Ma=',Ma:10:5);
 WriteLn('Mb=',Mb:10:5);
 WriteLn('Mc=',Mc:10:5);
 ReadLn;
END.
И никакой ереси!
 

Еще бы не ерИсь! Конечно - ерИсь и есть! Если Вы исходите из неверной формулы, потом, вместо того, чтобы сесть и написать свой код, берете чью-то программу, не имеющую ни малейшего отношения к задаче, в которой вычисляются факториалы неких целых чисел, впихиваете кое-как свои мИдианы - так чего же Вы ожидаете в итоге, кроме полной ерИси?

Прежде всего - правильная
формула вычисления медианы:
Посмотреть вложение 26880
Теперь, собственно, эта простейшая программка:
Код:
VAR
 a,b,c,Ma,Mb,Mc:Real;
BEGIN
 Write('a= ');
 ReadLn(a);
 Write('b= ');
 ReadLn(b);
 Write('c= ');
 ReadLn(c);
 Ma:=0.5*SQRT(2*SQR(b)+2*SQR(c)-SQR(a));
 Mb:=0.5*SQRT(2*SQR(a)+2*SQR(c)-SQR(b));
 Mc:=0.5*SQRT(2*SQR(a)+2*SQR(b)-SQR(c));
 WriteLn('Ma=',Ma:10:5);
 WriteLn('Mb=',Mb:10:5);
 WriteLn('Mc=',Mc:10:5);
 ReadLn;
END.
И никакой ереси!
Эт конечно хорошо ну мне надо написать процедуру/функцию реализующую выполнение задания
 
Эт конечно хорошо ну мне надо написать процедуру/функцию реализующую выполнение задания
Ну так кто ж Вам мешает сделать это на базе приведенного выше кода?
 
Ну так кто ж Вам мешает сделать это на базе приведенного выше кода?
procedure имя процедуры (формальные параметры);
раздел описаний процедуры
begin

Я не поиму че сдесь писать, если просто формулу как потом вызвать процедуру и чтоб она щитала 3медианы?

end;
 
Вот так:
Код:
VAR
 a,b,c,Ma,Mb,Mc:Real;

Procedure Med_Length(Aml,Bml,Cml:Real;
                     var MAml:Real; var MBml:Real; var MCml:Real);
 begin
  MAml:=0.5*SQRT(2*SQR(Bml)+2*SQR(Cml)-SQR(Aml));
  MBml:=0.5*SQRT(2*SQR(Aml)+2*SQR(Cml)-SQR(Bml));
  MCml:=0.5*SQRT(2*SQR(Aml)+2*SQR(Bml)-SQR(Cml));
 end;

BEGIN
 Write('a= ');
 ReadLn(a);
 Write('b= ');
 ReadLn(b);
 Write('c= ');
 ReadLn(c);
 Med_Length(a,b,c,Ma,Mb,Mc);
 WriteLn('Ma=',Ma:10:5);
 WriteLn('Mb=',Mb:10:5);
 WriteLn('Mc=',Mc:10:5);
 ReadLn;
END.
 
Назад
Сверху