Консультация № 196633
10.10.2019, 10:52
0.00 руб.
1 9 1
Здравствуйте, уважаемые эксперты!
Помогите пожалуйста:




Приложение:
PascalABC
Прикрепленные файлы:
466c1b04bc8647526f97c8f5448ac106979d09c9.jpg

Обсуждение

давно
Посетитель
403280
15
10.10.2019, 10:54
общий
Нужно чтобы в ответе получилось t=0.564849
давно
Старший Модератор
31795
6196
11.10.2019, 17:26
общий
Адресаты:
задание проверьте
Прикрепленные файлы:
c45ffa9973c09de20776eca0c2824fb3.jpg
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
403280
15
12.10.2019, 11:17
общий
Цитата: Зенченко Константин Николаевич
а что не так?
давно
Старший Модератор
31795
6196
12.10.2019, 15:59
общий
Адресаты:
Цитата: Satana666
а что не так?


t=0.564849 <> t=0.564846

формула дает второй результат.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
12.10.2019, 19:19
общий
это ответ
Здравствуйте, Satana666!

Смотрите приложение:
[code lang=pascal h=400]uses vcl;
//$VCLDESIGN+
var
Form1: Form;
TextLabel1: TextLabel;
TextLabel2: TextLabel;
TextLabel3: TextLabel;
TextLabel4: TextLabel;
Edit1: Edit;
Edit2: Edit;
Edit3: Edit;
Button1: Button;
//$VCLDESIGN-
procedure CalcForm;
var
t,x,y,z:real;
begin
Button1.visible:=false;
x:=StrToFloat(Edit1.Text);
y:=StrToFloat(Edit2.Text);
z:=StrToFloat(Edit3.Text);
TextLabel4.Caption:='T:= '+FloatToStr((2*cos(x-pi/6)*(1+z*z/(3-z*z/5)))/(0.5+sin(y)*sin(y)));
end;
procedure InitControls;
begin
Form1:= Form.Create(0,0,200,181);
Form1.InitControl(True,False,alNone,crDefault,clBtnFace,'Enter value','');
TextLabel1:= TextLabel.Create(Form1,10,15,150,30);
TextLabel1.InitControl(True,True,alNone,crDefault,clBtnFace,'X:=','');
TextLabel2:= TextLabel.Create(Form1,10,45,150,30);
TextLabel2.InitControl(True,True,alNone,crDefault,clBtnFace,'Y:=','');
TextLabel3:= TextLabel.Create(Form1,10,75,150,30);
TextLabel3.InitControl(True,True,alNone,crDefault,clBtnFace,'Z:=','');
TextLabel4:= TextLabel.Create(Form1,10,105,150,30);
TextLabel4.InitControl(True,True,alNone,crDefault,clBtnFace,'T:=','');
Edit1:= Edit.Create(Form1,30,10,150,30);
Edit1.InitControl(True,True,alNone,crDefault,clWindow,'','');
Edit2:= Edit.Create(Form1,30,40,150,30);
Edit2.InitControl(True,True,alNone,crDefault,clWindow,'','');
Edit3:= Edit.Create(Form1,30,70,150,30);
Edit3.InitControl(True,True,alNone,crDefault,clWindow,'','');
Button1:= Button.Create(Form1,30,100,150,30);
Button1.InitControl(True,True,alNone,crDefault,0,'Calc?','');
Button1.OnClick:=CalcForm;
Form1.Position:= poScreenCenter;
Form1.Show;
end;
begin
InitControls;
end.[/code]

Получается так:

Но это не совпадает с:
Цитата: Satana666
Нужно чтобы в ответе получилось t=0.564849

Удачи!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
403280
15
16.10.2019, 08:15
общий
16.10.2019, 08:23
Цитата: Зенченко Константин Николаевич
а можете код программы скинуть? Я попробую разобраться и убедиться!
только в паскале abc!
Vcl неработает!
Пожалуйста.
давно
Старший Модератор
31795
6196
16.10.2019, 12:35
общий
Адресаты:
Цитата: Satana666
а можете код программы скинуть? Я попробую разобраться и убедиться!
только в паскале abc! Vcl неработает!

Так это и есть АВС, код в ответе.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
403280
15
23.10.2019, 08:40
общий
23.10.2019, 08:50
Адресаты:
Цитата: Зенченко Константин Николаевич
Константин, vcl у меня не работает в pascal, могли бы вы мне немного по другому помочь? Вот программа которая получилась у меня, могли бы вы исправить мои ошибки?

var
// t = 0.564849
x, y, z, t, vdrob, ndrob, vdrob2, ndrob2, drob1, drob2: real;
Begin
x:= 14.26; y:= -1.22; z:= 3.5e-2;
vdrob:= 2*cos(x-Pi/6);
ndrob:= 0.5 + sin(y) * sin(y);
vdrob2:= sqr(2);
ndrob2:=3 - exp((2/5) * ln(z));
drob1:= vdrob/ndrob;
drob2:=1 + (vdrob2/ndrob2);
t:= drob1 * drob2;
writeln(t);

end.


нужно что бы ответ получился t=0.564846, а у меня другой выводит, t=1.3893523713532

Заранее спасибо!
давно
Старший Модератор
31795
6196
23.10.2019, 12:19
общий
Адресаты:
[code lang=pascal]var
// t = 0.564849
x, y, z, t, vdrob, ndrob, vdrob2, ndrob2, drob1, drob2: real;
Begin
x:= 14.26; y:= -1.22; z:= 3.5e-2;
vdrob:= 2*cos(x-Pi/6); //+
ndrob:= 0.5 + sin(y) * sin(y);//+
t:=vdrob/ndrob;

vdrob2:= z*z;
ndrob2:=3 - z*z/5;

drob2:=1 + (vdrob2/ndrob2);
t:= t * drob2;
writeln(t);

end.[/code]
У Вас ошибку вводит exp((2/5) * ln(z)) по формуле Вы считаете (zz/(zzzzz)) , и ещё один момент: z может быть и отрицательной, по этому использовать в формуле логарифм не допустимо, т.к. он определен только для положительных чисел.


Цитата: Satana666
vcl у меня не работает в pascal,

Номер сборки, у меня 3.0.1.35(от 17.04.2007), у Вас какая?
Проверьте у Вас есть в меню сервис создать форму:
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа