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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 18.07.2012, 22:00   #1
Draurign
Пользователь
 
Регистрация: 18.07.2012
Сообщений: 10
По умолчанию Укажите на ошибку в программе

Впервые решил накодить что-то самостоятельно, и вот, хрень вышла. Оно-то запускается, но результата в положенном месте не выводит.
Картина такая:
Код:
unit Unit1;

interface

uses
  Windows, Math, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  f : real;
  x : real;
  y : real;
  q : Real;
  str: string;
implementation

{$R *.dfm}

procedure
TForm1.Button1Click(Sender:TObject);
begin
x:=StrToFloat(Edit1.Text);
y:=StrToFloat(Edit2.Text);
f:=(Power(x,2)+2*x+7-y)*(Power(y,2)+4*y-2+x);
q:=cos(x)*sqrt(tan(2*pi/3));
Label7.Caption:=FloatToStr(f);
Label8.Caption:=FloatToStr(q*180/pi);
Label9.Caption:=FloatToStr(q*pi/180);

end;

end.
Помогите дураку ((

Последний раз редактировалось Stilet; 18.07.2012 в 22:24.
Draurign вне форума
Старый 18.07.2012, 22:20   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Button1Click населен на OnClick кнопки? Выделить кнопку, F11, закладка Events и смотреть, что в свойстве OnClick кнопки
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума
Старый 18.07.2012, 22:34   #3
tmtm
Пользователь
 
Регистрация: 12.05.2012
Сообщений: 20
По умолчанию

Скорее всего, попытка вычислить корень отрицательного числа. Потом, надо бы всем переменным присвоить тип Extended.
tmtm вне форума
Старый 18.07.2012, 22:42   #4
Draurign
Пользователь
 
Регистрация: 18.07.2012
Сообщений: 10
По умолчанию

Аватар,
спасибо, это действительно сдвинуло дело с мертвой точки.
Но теперь при запуске и кликании на кнопку запуска выдает ошибку вида

и выделяет строку
q:=cos(x)*sqrt(tan(2*pi/3));
Где я снова нагадил?
Draurign вне форума
Старый 18.07.2012, 22:45   #5
Djleito
Пользователь
 
Аватар для Djleito
 
Регистрация: 19.06.2012
Сообщений: 26
По умолчанию

скинь проект, тогда можно будет исправить ошибку
Продаю исходник на программу-тестовик по биологии, обращаться по icq: 613-206-971 или в личку
Djleito вне форума
Старый 18.07.2012, 22:56   #6
Draurign
Пользователь
 
Регистрация: 18.07.2012
Сообщений: 10
По умолчанию

Djleito, прошу
1.zip
Draurign вне форума
Старый 18.07.2012, 23:10   #7
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

А Вы не пробовали посчитать тангенс от 2пи/3 самостоятельно? С действительными числами не проходит трюк извлечения корня из отрицательного числа, потому и ругается
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума
Старый 18.07.2012, 23:25   #8
Draurign
Пользователь
 
Регистрация: 18.07.2012
Сообщений: 10
По умолчанию

Zer0,
пробовал менять строку на
q:=cos(x)*sqrt(x);
и на
q:=cos(x)*tan(2*pi/3);
то есть убирать либо тангенс, либо корень - оба варианта работают, а вот на сложную функцию хоть убей.
А если заранее проверить число на отрицательность?
Вручную можно посчитать, но тут вопрос не результата, а процесса.
Draurign вне форума
Старый 18.07.2012, 23:34   #9
tmtm
Пользователь
 
Регистрация: 12.05.2012
Сообщений: 20
По умолчанию

Если процесс важнее результата, то возьмите подкоренное выражение в abs
tmtm вне форума
Старый 18.07.2012, 23:37   #10
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Draurign, я вовсе не предлагал подставлять значение ручных подсчетов Я просто хотел показать, что Вы пытаетесь взять корень из отрицательного числа. Либо формула некорректна, либо одно из двух (т.е. решать нужно в комплексных числах)
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Укажите ошибку bad9 Помощь студентам 3 11.06.2012 03:23
укажите на ошибку маГГ85 JavaScript, Ajax 2 23.02.2012 13:15
Укажите на ошибку. Wh15per Общие вопросы C/C++ 2 27.12.2011 20:02
Укажите ошибки в программе не давно пишу на си++ zloymag Общие вопросы C/C++ 5 19.12.2009 15:59
Укажите ошибку kerbeross PHP 7 25.08.2009 21:47