imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 21.02.2004, 21:16     # 1
compaq
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
 
Старый 22.02.2004, 00:30     # 2
ppiitt
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;

Вроде все, особо не всматривался
 
Старый 22.02.2004, 01:35     # 3
compaq
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)
{
}
//---------------------------------------------------------------------------
 
Старый 22.02.2004, 12:21     # 4
ppiitt
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));
}
} // вот этой скобки у тебя нехватало

Пробуй
 
Старый 22.02.2004, 18:50     # 5
compaq
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);
}
 
Старый 22.02.2004, 19:58     # 6
ppiitt
Guest
 
Сообщения: n/a

Цитата:
compaq:
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);
}
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);
}
 
Старый 22.02.2004, 20:39     # 7
compaq
Guest
 
Сообщения: n/a

Господи какой же я ломак я не думал что скобочки имеют такое огромное значение. Огромное тебе спасибо ppiitt.
 
Старый 22.02.2004, 22:42     # 8
ppiitt
Guest
 
Сообщения: n/a

Не зачто
А вообще почитай какую-нить книжку по Си
 


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 19:00.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.