Страница 1 из 1

помощь новечку

СообщениеДобавлено: 19.08.2012 06:52:12
stasyn1985
привет всем помогите разьяснить как будет выглядить программа какие кнопки нужны?
Код: Выделить всё
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs;

type
  TForm1 = class(TForm)
  private
    { private declarations }
  public
    { public declarations }
  end;

  { Tline }
  {$M+}
  Tline=class
  private
    Fa: integer;
    Fb: integer;
    procedure Seta(const AValue: integer);
    procedure Setb(const AValue: integer);
  published
             property a:integer read Fa write Seta;
             property b:integer read Fb write Setb;
             function uravnenie():string;
             function peresechYin():real;
             function peresechXin():real;
             function perpendicular(L1:TLine):boolean;
             function ugol(L1:TLine):real;
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ Tline }

procedure Tline.Seta(const AValue: integer);
begin
  if Fa=AValue then exit;
  Fa:=AValue;
end;

procedure Tline.Setb(const AValue: integer);
begin
  if Fb=AValue then exit;
  Fb:=AValue;
end;

function Tline.uravnenie(): string;
begin
  result:='y=x'+IntToStr(a)+'+'+IntToStr(b);
end;

function Tline.peresechYin():real;
begin
  result:=b/-a;
end;

function Tline.peresechXin(): real;
begin
  result:=b;
end;

function Tline.perpendicular(L1: TLine): boolean;
begin
  result:=false;
  if a*L1.a=-1 then result:=true;
end;

function Tline.ugol(L1: TLine): real;
begin
  result:=arctan((L1.a-a)/1+(L1.a*a));
end;

end.

Re: помощь новечку

СообщениеДобавлено: 20.08.2012 10:23:30
vada
Программа будет выглядеть офигенно! Ни каких кнопок не нужно.

ЗЫ. Попробуйте как-то по другому сформулировать вопрос.

Re: помощь новечку

СообщениеДобавлено: 20.08.2012 15:59:35
stasyn1985
vada спасибо что ответил!!!код готовой программы есть!что делать с этим кодом ума не приложу!нужно дописать прогу на лазаре!!!

Добавлено спустя 3 минуты 29 секунд:
вот задача!!! Создать класс прямая, поля класса — коэффициенты уравнения y=ax + b. Методы класса: вывод уравнения прямой, определение точек пересечения с осями. В классе предусмотреть методы перегрузки операций: проверка перпендикулярности двух прямых, определение угла между двумя прямыми.Как написать эту прогу :oops:

Re: помощь новечку

СообщениеДобавлено: 21.08.2012 10:18:49
vada
Для начала, зачем A и B объявлены как Integer? В уравнении прямой всяк должно быть действительное число. Ну да ладно. Это не ошибка. Так даже проще.
В целом в программе все более менее правильно. Надо еще форму нарисовать и обработать всяческие события формы.
Что нужно!
1) На форме нужны два поля ввода для A и B вашей базовой прямой (TEdit).
2) На форме нужны два поля ввода для A и B прямой которую вы сравниваете с базовой
3) Должна быть, например, кнопка "Сравнить"
4) Должны быть два, например, TLabel для отображения результатов сравнения прямых. В одной результат проверки на перпендикулярность, во второй угол между прямыми.
5) Вид уравнения прямой тоже надо отобразить на форме.
При нажатии на кнопку у вас должен отработать обработчик события OnClick.... который считает значения A и B для обоих прямых и выполонит проверки на перпендикулярность и вычислит угол между прямыми.
Формочка в лазарусе собирается мышкой :)
И еще. У вас там есть несколько операций деления... Проверяйте на ноль делитель.
PS Не совсем уверен в правильности ваших формул, но проверять охоты нет.

Re: помощь новечку

СообщениеДобавлено: 21.08.2012 17:05:25
stasyn1985
привет!!!Я в ОТЧАЯНИЕ нечего не получается!!! :cry: кстате TLabel для отображения результатов сравнения прямых график что ли???

Re: помощь новечку

СообщениеДобавлено: 21.08.2012 18:50:05
vada
Код: Выделить всё
кстате TLabel для отображения результатов сравнения прямых график что ли???

Нет. Для отображения текста. Где-то так
Код: Выделить всё
Label1.Caption := 'Пересечение с осями: с осью X=' + FloatToStr(peresechXin()) + ', с осью Y=' + FloatToStr(peresechYin());
Label2.Caption := perpendicular(Line2) ;
Label2.Caption := uravnenie();

Re: помощь новечку

СообщениеДобавлено: 21.08.2012 22:11:52
Little_Roo
Я, видимо, наступлю на горло велим гуру... :shock:
Может отстреливать СРАЗУ безграмотные (с точки зрения великого русского языка)????
Чтоб такие НОВЕЧКИ шли на пункт проверки ЕГЭ по родному языку и не причитали после, что я в ОТЧАЯНИЕ нечего не получается!!! и ... коту ректально... ну достали уже эти псевдообученные в монгольских юртах или кавказловских аулах... :( :( :(

Re: помощь новечку

СообщениеДобавлено: 22.08.2012 01:28:45
Максим
Little_Roo
От данного топика вытекают глаза, это да. :mrgreen:

Re: помощь новечку

СообщениеДобавлено: 22.08.2012 04:10:37
Vadim
Little_Roo
Мужайтесь, дружище! Теперь такой тип "образованности" узаконен государством и почти вся молодёжь, выходящая из подросткового возраста, будет изъясняться только так.

Re: помощь новечку

СообщениеДобавлено: 22.08.2012 10:30:32
vada
Да уж :( А что делать!
Я так очень терпимо отношусь к орфографическим ошибкам. У самого твердая двойка в школе по русскому была. Если бы математикой или физикой занимался столько сколько русским (каждый год репетитор, летняя школа и задание на лето), был бы сейчас академиком. :wink:
К сожалению, писать грамотно кому-то дано, а кому-то нет. :( От количества прочитанных книг не зависит.

Re: помощь новечку

СообщениеДобавлено: 22.08.2012 13:36:07
Vadim
vada
Проблема не в орфографических ошибках, проблема в невозможности подобрать слова, чтобы объяснить свою ситуацию. А вот это то, как раз, зависит от количества прочитанных, а главное, обспоренных, книг. ;)

Re: помощь новечку

СообщениеДобавлено: 22.08.2012 13:57:47
vada
проблема в невозможности подобрать слова, чтобы объяснить свою ситуацию

С этим полностью согласен. Есть правда одно НО. "Чтобы правильно задать вопрос, нужно знать, как минимум, половину ответа". Знакома такая цитата?
Судя по всему, у человека знания по программированию близки к нулю. От сюда и невозможность описать проблему.

Re: помощь новечку

СообщениеДобавлено: 22.08.2012 14:26:35
kosteek
Тему нужно перенести в ветку "Помощь за вознаграждение", если только бедный студент сможет оплатить ;)