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

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

Ответить
stasyn1985
незнакомец
Сообщения: 3
Зарегистрирован: 19.08.2012 06:44:44

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

Сообщение 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.
Аватара пользователя
vada
энтузиаст
Сообщения: 689
Зарегистрирован: 14.02.2006 12:43:17

Сообщение vada »

Программа будет выглядеть офигенно! Ни каких кнопок не нужно.

ЗЫ. Попробуйте как-то по другому сформулировать вопрос.
stasyn1985
незнакомец
Сообщения: 3
Зарегистрирован: 19.08.2012 06:44:44

Сообщение stasyn1985 »

vada спасибо что ответил!!!код готовой программы есть!что делать с этим кодом ума не приложу!нужно дописать прогу на лазаре!!!

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

Сообщение vada »

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

Сообщение stasyn1985 »

привет!!!Я в ОТЧАЯНИЕ нечего не получается!!! :cry: кстате TLabel для отображения результатов сравнения прямых график что ли???
Аватара пользователя
vada
энтузиаст
Сообщения: 689
Зарегистрирован: 14.02.2006 12:43:17

Сообщение vada »

Код: Выделить всё

кстате TLabel для отображения результатов сравнения прямых график что ли???

Нет. Для отображения текста. Где-то так

Код: Выделить всё

Label1.Caption := 'Пересечение с осями: с осью X=' + FloatToStr(peresechXin()) + ', с осью Y=' + FloatToStr(peresechYin());
Label2.Caption := perpendicular(Line2) ;
Label2.Caption := uravnenie();
Аватара пользователя
Little_Roo
энтузиаст
Сообщения: 639
Зарегистрирован: 27.02.2009 18:56:36
Откуда: Санкт-Петербург

Сообщение Little_Roo »

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

Сообщение Максим »

Little_Roo
От данного топика вытекают глаза, это да. :mrgreen:
Vadim
долгожитель
Сообщения: 4111
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Little_Roo
Мужайтесь, дружище! Теперь такой тип "образованности" узаконен государством и почти вся молодёжь, выходящая из подросткового возраста, будет изъясняться только так.
Аватара пользователя
vada
энтузиаст
Сообщения: 689
Зарегистрирован: 14.02.2006 12:43:17

Сообщение vada »

Да уж :( А что делать!
Я так очень терпимо отношусь к орфографическим ошибкам. У самого твердая двойка в школе по русскому была. Если бы математикой или физикой занимался столько сколько русским (каждый год репетитор, летняя школа и задание на лето), был бы сейчас академиком. :wink:
К сожалению, писать грамотно кому-то дано, а кому-то нет. :( От количества прочитанных книг не зависит.
Vadim
долгожитель
Сообщения: 4111
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

vada
Проблема не в орфографических ошибках, проблема в невозможности подобрать слова, чтобы объяснить свою ситуацию. А вот это то, как раз, зависит от количества прочитанных, а главное, обспоренных, книг. ;)
Аватара пользователя
vada
энтузиаст
Сообщения: 689
Зарегистрирован: 14.02.2006 12:43:17

Сообщение vada »

проблема в невозможности подобрать слова, чтобы объяснить свою ситуацию

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

Сообщение kosteek »

Тему нужно перенести в ветку "Помощь за вознаграждение", если только бедный студент сможет оплатить ;)
Ответить