Страница 1 из 2

Задача С++

Добавлено: 29 янв 2008, 19:43
patrick87
Добрый вечер. Помогите плз с задачей, вопрос допуска на экзамен завтра утром =(
**
Верно ли, что точки пересечения параболы y=ax^2 и прямой px+qy+2=0 лежат в квадрате со сторонами паралельными осям координат, с центром (0;0) и длинной равной 26?
**
я алгоритм понимаю, а реализовать не могу (

Re: Задача С++

Добавлено: 29 янв 2008, 20:06
patrick87
серьезно, у кого есть возможность - помогите, задачка простая...заплачу
icq 218741219

Re: Задача С++

Добавлено: 29 янв 2008, 20:08
PaaQ
они могут вообше не пересекатся при a равной отрицательному числу .
могу подсказать как множество точек задать(правда не знаю как прицепить к длине 26 ) ,а вот потом нужно из этого множества решить систему не равенств из 2 уравнений я думаю так решается,но так как я не профи ,а так только учусь лучше еще у кавонибудь спроси или в инете полазий .Если кто подскажет как множество создать(квадрат) тогда может я и смогу сделать .

Re: Задача С++

Добавлено: 29 янв 2008, 20:12
patrick87
я пришел к такому алгоритму:
в первой задаче сначала диалог с пользователем, введите а, р, q
затем, выражаем уравнение прямой через у, затем, ищщем точки общие (х и у), затем проверяем если оба условия удовлетворяют равенству х<=26, у<=26, если не удовлетворяют, то выводим сообщение что не удовлетворяет...
но вот тут проблемы: как выразить...как решить...как найти х...и как это все на с++ написать =(

Re: Задача С++

Добавлено: 29 янв 2008, 20:13
PaaQ
равенству х<=26, у<=26 вот это брет наресуй на листке систему координат и просто подставляй значения

Re: Задача С++

Добавлено: 29 янв 2008, 20:35
patrick87
ну тогда я вообще ничего не понимаю =)

Re: Задача С++

Добавлено: 29 янв 2008, 20:55
PaaQ
Что то типа того :
#include <iostream.h>
#include <conio.h>
main()
{
double r,t;
float q,w,e;
cout<<"Vvedite 1 element ";
cin>>q;
cout<<"Vvedite 2 element ";
cin>>w;
cout<<"Vvedite 3 element ";
cin>>e;
for ( float x=0;x<26;x=x+0,1)
r=-(w*x+2)/e*q*x*x;

for (float y=0;y<26;y=y+0,1);
t=q*((e*y+2)/w)*((e*y+2)/w)/y;
if(t == 0 && r == 0)
cout<<"Perese4enie v kvadrate" ;
else
cout<<"perese4eni9 net ili za ramkami kvadrata "<<endl;
getch();
return 0;
}
Может чемто и поможет не уверен что все верно ,но компилятор пропускает .

Re: Задача С++

Добавлено: 29 янв 2008, 20:57
patrick87
ааа, пардон, [13;-13] интервал с ним и сравнивать? если центр в (0,0) тогда квадрат пополам же делится...проверять будем этот интервал

Re: Задача С++

Добавлено: 29 янв 2008, 21:10
PaaQ
#include <iostream.h>
#include <conio.h>
main()
{
double r,t;
float q,w,e;
cout<<"Vvedite 1 element ";
cin>>q;
cout<<"Vvedite 2 element ";
cin>>w;
cout<<"Vvedite 3 element ";
cin>>e;
for ( float x=-13;x<13;x=x+0,1)
r=-(w*x+2)/e*q*x*x;

for (float y=-13;y<13;y=y+0,1);
t=q*((e*y+2)/w)*((e*y+2)/w)/y;
if(t == 0 && r == 0)
cout<<"Perese4enie v kvadrate" ;
else
cout<<"perese4eni9 net ili za ramkami kvadrata "<<endl;
getch();
return 0;
}
поидее все правелно не знаю у меня может с компилятором чтото или где то я туплю вторая задачка на сегодня и он основное условие почемуто не выполняет

Re: Задача С++

Добавлено: 29 янв 2008, 21:13
patrick87
и на том спасибо огромное, дальше уже разберусь как-нить...тем более решил задачу на бумаге...думаю разберусь..=) спасибки