| imho.ws |
![]() |
|
|
|
# 1 |
|
Guest
Сообщения: n/a
|
вопрос ао с++
Люди вот не могли бы вы объяснить ламеру что не так Задание написать в Bilder е программу “Составить таблицу значений заданной функции y=x^2-A*sin(x). Найти максимальное и минимальное значение функции соответствующие им значения аргументов.
Дано y=x^2-A*sin(x) 0.5<=x<=2 Определить у, при 1<=A<=3 и 0.5<=x<=2 Ymax; ymin” Ну так вот я написал вот эту прогу но она у меня что то не работает не как не могу понять в чём дело. void __fastcall TForm1::Button1Click(TObject *Sender) { float F (float x,float A); float A,x,y; float ymin,ymax,xmin,xmax; for (A=1;A<=3;A++) { ymax=-1e10, ymin=1e10; ListBox1->Items->Add("A="+intostr(A)); for (x=0.5;x<=2;x=x+0.1); { y=F(x,A); if(y>ymax) { ymax=y; xmax=x; } if(y<ymin) { ymin=y; xmin=x; } } ListBox2->Items->Add("Xmax="+floattostr(xmax)+" Ymax="+floattostr(ymax)); ListBox3->Items->Add("Xmin="+floattostr(xmin)+" Ymin="+floattostr(ymin)); } float F (float x,float A) { return x*x-A*sin(x); } Он мне вот эти ошибки вываливает [C++ Error] Unit1.cpp(2: E2268 Call to undefined function 'intostr' [C++ Error] Unit1.cpp(43): E2268 Call to undefined function 'floattostr' [C++ Error] Unit1.cpp(43): E2085 Invalid pointer addition [C++ Error] Unit1.cpp(44): E2085 Invalid pointer addition [C++ Error] Unit1.cpp(49): E2141 Declaration syntax error [C++ Error] Unit1.cpp(63): E2139 Declaration missing ; [C++ Error] Unit1.cpp(63): E2134 Compound statement missing } [C++ Warning] Unit1.cpp(63): W8004 'xmax' is assigned a value that is never used [C++ Warning] Unit1.cpp(63): W8004 'xmin' is assigned a value that is never used |
|
|
# 2 |
|
Guest
Сообщения: n/a
|
1)ymax=-1e10, ymin=1e10;
ymax=-1e10; ymin=1e10; 2) C чувствителен к регистру букв IntToStr, FloatToStr (вообще смотри хелп по F1, там есть поиск, он тебе поможет) 3) W8004 'xmax' is assigned a value that is never used W8004 'xmin' is assigned a value that is never used Переменная объявлена, но не используется 4) void __fastcall TForm1::Button1Click(TObject *Sender) { float F (float x,float A); //??!!! Эта что за дурь у тебя ?! Убрать нах ![]() float A,x,y; float ymin,ymax,xmin,xmax; Сделать так float F (float x,float A);// Обычно объявляют в начале файла void __fastcall TForm1::Button1Click(TObject *Sender) { float A,x,y; float ymin,ymax,xmin,xmax; Вроде все, особо не всматривался
|
|
|
# 3 |
|
Guest
Сообщения: n/a
|
Не что то не помогло вернее помогло но ошибки всё равно вылезают вы не могли бы подсказать где проблема просто в билдере я только на этой недели писать начал вот от этого такие вопросы.
void __fastcall TForm1::Button1Click(TObject *Sender) { float F (float x,float A); float A,x,y; float ymin,ymax,xmin,xmax; for (A=1;A<=3;A++) { ymax=-1e10; ymin=1e10; ListBox1->Items->Add("A="+FloatToStr(A)); for (x=0.5;x<=2;x=x+0.1); { y=F(x,A); if(y>ymax) { ymax=y; xmax=x; } if(y<ymin) { ymin=y; xmin=x; } } ListBox2->Items->Add("Xmax="+FloatToStr(xmax)+" Ymax="+FloatToStr(ymax)); ListBox3->Items->Add("Xmin="+FloatToStr(xmin)+" Ymin="+FloatToStr(ymin)); } float F (float x,float A) { return x*x-A*sin(x); } [C++ Error] Unit1.cpp(50): E2141 Declaration syntax error [C++ Error] Unit1.cpp(68): E2139 Declaration missing ; [C++ Error] Unit1.cpp(68): E2134 Compound statement missing } Нет а вот float F (float x,float A); где именно объявлять надо //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <math.h> #include <stdio.h> #include <conio.h> #include "Unit1.h" float F (float x,float A);//здесь что ли или где сори за ламерский вопрос только учюсь //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- |
|
|
# 4 |
|
Guest
Сообщения: n/a
|
float F (float x,float A); - да здесь. теперь ты ее сможешь использовать в любой функции идущей после объявления . Некоторые компиляторы пускают и без объявления, но это не так.
void __fastcall TForm1::Button1Click(TObject *Sender) { float A,x,y; float ymin,ymax,xmin,xmax; for (A=1;A<=3;A++) { ymax=-1e10; ymin=1e10; ListBox1->Items->Add("A="+FloatToStr(A)); for (x=0.5;x<=2;x=x+0.1) // здесь ; тебе не нужна. это будет просто нулевой for { y=F(x,A); if(y>ymax) { ymax=y; xmax=x; } if(y<ymin) { ymin=y; xmin=x; } } ListBox2->Items->Add("Xmax="+FloatToStr(xmax)+" Ymax="+FloatToStr(ymax)); ListBox3->Items->Add("Xmin="+FloatToStr(xmin)+" Ymin="+FloatToStr(ymin)); } } // вот этой скобки у тебя нехватало Пробуй
|
|
|
# 5 |
|
Guest
Сообщения: n/a
|
Спасибо всё работает но я думал что она у меня будет выдавать такое
X=0.5 Y=0.3 X=0.6 y= 1.4 А он у меня выдаёт только X=0.5 Y=0.3 а как вывести остальные. И так далее до 2 у мне просто задание составить таблицу значений заданной функции x*x-A*sin(x) Найти максимальное и минимальное значение функции соответствующие им значение аргументов. Если не трудно подскажите а то я не пойму почему не получается. void __fastcall TForm1::Button1Click(TObject *Sender) { float A,x,y; float ymin,ymax,xmin,xmax; for (A=1;A<=1;A++) { ymax=-1e10; ymin=1e10; ListBox1->Items->Add("A="+FloatToStr(A)); for (x=0.5;x<=2;x=x+0.1) // çäåñü ; òåáå íå íóæíà. ýòî áóäåò ïðîñòî íóëåâîé for { y=F(x,A); if(y>ymax) { ymax=y; xmax=x; } if(y<ymin) { ymin=y; xmin=x; } } ListBox2->Items->Add("Xmax="+FloatToStr(xmax)+" Ymax="+FloatToStr(ymax)); ListBox3->Items->Add("Xmin="+FloatToStr(xmin)+" Ymin="+FloatToStr(ymin)); ListBox4->Items->Add("X="+FloatToStr(x)+" Y="+FloatToStr(y)); } } // âîò ýòîé ñêîáêè ó òåáÿ íåõâàòàëî float F (float x,float A) { return x*x-A*sin(x); } |
|
|
# 6 | |
|
Guest
Сообщения: n/a
|
Цитата:
{ float A,x,y; float ymin,ymax,xmin,xmax; for (A=1;A<=1;A++) { ymax=-1e10; ymin=1e10; ListBox1->Items->Add("A="+FloatToStr(A)); for (x=0.5;x<=2;x=x+0.1) // çäåñü ; òåáå íå íóæíà. ýòî áóäåò ïðîñòî íóëåâîé for { y=F(x,A); if(y>ymax) { ymax=y; xmax=x; } if(y<ymin) { ymin=y; xmin=x; } ListBox2->Items->Add("Xmax="+FloatToStr(xmax)+" Ymax="+FloatToStr(ymax)); ListBox3->Items->Add("Xmin="+FloatToStr(xmin)+" Ymin="+FloatToStr(ymin)); ListBox4->Items->Add("X="+FloatToStr(x)+" Y="+FloatToStr(y)); } } } // âîò ýòîé ñêîáêè ó òåáÿ íåõâàòàëî float F (float x,float A) { return x*x-A*sin(x); } |
|