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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 18.12.2012, 19:03   #1
Аделинкка
Пользователь
 
Аватар для Аделинкка
 
Регистрация: 24.03.2012
Сообщений: 68
По умолчанию Не работает корень!

Привет!У меня большая проблема...Не могу понять как научиться извлекать корень(((Я вроде то -то неправильно делаю,на корне у меня возникает ошибка(программа ругается..помогите немного..
Код:
program Project8;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
  per=class
  a,b,res:integer;
  constructor Create;
  destructor Destroy; override;
  procedure perimetr;
end;

constructor per.Create;
begin
  inherited Create;
  writeln('vvedite "1 katet"');
  readln(a);
  writeln('vvedite "2 katet"');
  readln(b);
end;

destructor per.Destroy;
begin
  inherited Destroy;
end;

procedure per.perimetr;
var c:Integer;
begin
  c:=sqrt(a*a+b*b);//воот в этом месте
  res:=a+b+c;
  writeln('perimetr = ',res);
end;  

var ri1,ri2,ri3:per;
sum_per , n,f,l :integer;
begin
  ri1:=per.Create;
  ri2:=per.Create;
  ri3:=per.Create;

  n:= ri2.perimetr ;//и в этом,я знаю,что так нельзя ,но как записать //правильно эту мысль??
  f:=ri1.perimetr;
  l:=ri3.perimetr ;

  sum_per:=n + f +l ;
  writeln('Summa perimetrov pryamoygolnuh treygolnikov=', sum_per);
  readln;
  readln;


  ri1.Destroy;
  ri2.Destroy;
  ri3.Destroy;
      { TODO -oUser -cConsole Main : Insert code here }
end.
Нет,не блондинка!!
Аделинкка вне форума
Старый 18.12.2012, 19:20   #2
misher
Участник клуба
 
Аватар для misher
 
Регистрация: 26.05.2010
Сообщений: 1,648
По умолчанию

Цитата:
procedure per.perimetr;
var c:Integer;
begin
c:=sqrt(a*a+b*b);//воот в этом месте
res:=a+b+c;
writeln('perimetr = ',res);
end;
возможно из-за того, что c: integer; Вдруг корень будет вещественного типа...
и переменную res тоже нужно править...
This world will never be What I expected (c)
misher вне форума
Старый 18.12.2012, 19:47   #3
Аделинкка
Пользователь
 
Аватар для Аделинкка
 
Регистрация: 24.03.2012
Сообщений: 68
По умолчанию

ААААААААААаа)спасибо и вправду))
Нет,не блондинка!!
Аделинкка вне форума
Старый 18.12.2012, 19:50   #4
Аделинкка
Пользователь
 
Аватар для Аделинкка
 
Регистрация: 24.03.2012
Сообщений: 68
По умолчанию

Моя программа должна три раза посчитать ,как потом эти ответы сложить???я попыталась
Код:
Код:
begin
  ri1:=per.Create;
  ri2:=per.Create;
  ri3:=per.Create;

  n:= ri2.perimetr ;//и в этом,я знаю,что так нельзя ,но как записать //правильно эту мысль??
  f:=ri1.perimetr;
  l:=ri3.perimetr ;

  sum_per:=n + f +l ;
  writeln('Summa perimetrov pryamoygolnuh treygolnikov=', sum_per);
  readln;
  readln;
Но это неправильно,так не считают(
Нет,не блондинка!!
Аделинкка вне форума
Старый 18.12.2012, 20:34   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

нет, так не получится. чтобы это стало возможным, написать надо не процедуру perimetr, а ФУНКЦИЮ:
Код:
type
  per=class
  a,b,res:integer;
  constructor Create;
  destructor Destroy; override;
  function perimetr : real;
end;

...

function per.perimetr : real;
var c:real;
begin
  c:=sqrt(a*a+b*b);//воот в этом месте
  result := a+b+c;
  // writeln('perimetr = ',result);
end;
Serge_Bliznykov вне форума
Старый 18.12.2012, 21:09   #6
Аделинкка
Пользователь
 
Аватар для Аделинкка
 
Регистрация: 24.03.2012
Сообщений: 68
По умолчанию

res и result это одно и тоже?)
Нет,не блондинка!!
Аделинкка вне форума
Старый 18.12.2012, 21:25   #7
Аделинкка
Пользователь
 
Аватар для Аделинкка
 
Регистрация: 24.03.2012
Сообщений: 68
По умолчанию

ладно,это мелочи,с вызовом функции все равно не разобралась..............я знаю,что функция возвращает значение,но блин....(((((((((((((как это сделать?????подскажите ,пожалуйста)))))))))))))прога почти готова_)
Нет,не блондинка!!
Аделинкка вне форума
Старый 18.12.2012, 21:37   #8
Аделинкка
Пользователь
 
Аватар для Аделинкка
 
Регистрация: 24.03.2012
Сообщений: 68
По умолчанию

У меня sum_per и ri1 разных типов(((((((((((((((((((((((((как исправить??????7
Код:
program Project8;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
  per=class
  a,b:integer;
  constructor Create;
  destructor Destroy; override;
  function perimetr : real;
end;


constructor per.Create;
begin
  inherited Create;
  writeln('vvedite "1 katet"');
  readln(a);
  writeln('vvedite "2 katet"');
  readln(b);
end;

destructor per.Destroy;
begin
  inherited Destroy;
end;

function per.perimetr : real;
var c:real;
begin
  c:=sqrt(a*a+b*b);//воот в этом месте
  result := a+b+c;
  // writeln('perimetr = ',result);
end;
    

var ri1,ri2,ri3:per;
sum_per , n,f,l :integer;
begin
  ri1:=per.Create;
  ri2:=per.Create;
  ri3:=per.Create;

  n:= ri2.perimetr ;//и в этом,я знаю,что так нельзя ,но как записать //правильно эту мысль??
  f:=ri1.perimetr;
  l:=ri3.perimetr ;

  sum_per:=n + f +l ;
  writeln('Summa perimetrov pryamoygolnuh treygolnikov=', sum_per);
  readln;
  readln;
Нет,не блондинка!!
Аделинкка вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
возвести в корень zenid Паскаль, Turbo Pascal, PascalABC.NET 2 17.11.2012 15:05
корень кубический Небесный Общие вопросы Delphi 6 30.05.2010 12:50
Корень из числа pitonmc Общие вопросы Delphi 4 26.12.2009 12:39
C# - корень 3 степени TaTT DoGG Общие вопросы .NET 4 26.09.2008 21:53
Корень квадратный BETONOMESHALKA Общие вопросы Delphi 2 01.11.2007 10:06