Вопрос по С++

NaBlA

Сын Амбера
Метод Эйлера состоит в определении производной как приращения функции на приращение аргумента, и все. Дерзай, не так уж и сложно:)
 

NaBlA

Сын Амбера
dx/dt = A;
Решение:
(x2-x1)/dt = A;
x2-x1 = A*dt;
x2 = x1 + A*dt;

При следующем шаге x1 заменяется на x2.
У тебя совсем не так.
 

NaBlA

Сын Амбера
Я когда-то класс для этого писал, выкладываю масштабирование и рисование графика. Это точно рабочее :)
//4
void grap :: maxmin(void)
{
while(!feof(f1))
{
fscanf(f1,"%lf %lf\n",&x,&y);
if( (fabs(x)>M) ||(fabs(y)>M) ) break;
if(fabs(x)>xmax) xmax=fabs(x);
if(fabs(y)>ymax) ymax=fabs(y);
if(kbhit()) break;
}
mattaby = 240/ymax;
mattabx = 320/xmax;
if(ymax==0) return;
if(xmax == 0) return;
fclose(f1);
};
//5
void grap :: GRAPHER(char*adress,char*Xcl,char*Ycl)
{
opengr(adress);
osi(Xcl,Ycl);
maxmin();
setcolor(WHITE);
while(!feof(g1))
{
fscanf(g1,"%lf %lf\n",&x,&y);
if(fabs(x)>M ||(fabs(y)>M)) break;
x = x*mattabx + 320;
y = 240 - y*mattaby;
if(kbhit()) break;
if(i==0) {x1=x;y1=y;}
//line(x,y,x1,y1);
putpixel(x,y,WHITE);
i=1;
x1=x;y1=y;
}
fclose(g1);
i = 0;
};
 

MoGar

Member
Если хочеш заполнить floodfill(int x, int y, int border) - floodfill fills an enclosed area on bitmap devices, вообще можно рисовать заполненый круг fillellipse
 

Sober

______________
Firewall сказав(ла):
Описати клас ”домашня бібліотека”. Передбачити можливість роботи з довільним числом книг, пошуку книг за якою-небудь ознакою (наприклад, по автору або по року видання), додавання книг в бібліотеку, видалення книг з неї, сортування книг по різних полях. Написати програму, що демонструє роботу з цим класом.

Догадки, предложения, помощь?
Создаешь класс, в котором описываешь динамический список структур для книг, пишешь методы для добавлениея, удаления, поиска, сортировки и чего там еще надо... Собственно в чем вопрос?
 

MoGar

Member
На халяву уксус сладкий :). Плати деньги, напишем
 

Sober

______________
Если ты сумел написать добавление книги, удивительно что мешает тебе удалять ее. Напомню, динамические данные удаляются с помощью оператора delete. При этом не забудь связать предшествующий и последующий элементы списка.
Для сортировки даже есть готовая функция qsort(...), реализующая алгоритм быстрой сортировки, хотя я с ней не разбирался, может она и не подойдет, в любом случае лучше написать свое. Берешь шаблонную схему сортировки (например простейшую - вставкой) и подправляешь под свою задачу. Если ты не знаком с методом, в кратце - это то, что ты и сам интуитивно используешь для упорядочивания в повседневной жизни. Перебираешь по порядку все элементы списка, если элемент меньше предыдущего, сносишь его назад пока он не станет больше (подразумевается сотрировка по возрастанию, элементы сравниваются по полю сортировки). Короче это вам должны были б и вычитать, не могут же требовать от вас все самим выдумывать
 

Sober

______________
Мдам, ну что тебе сказать... Конечно не получается. Начать можно с того, что книги не в файл прямо кидать нужно, а все-таки создать динамический список.
Как это делается? Рекомендую не полениться и обратиться к литературе, у меня старые лабы не сохранились
 

MoGar

Member
Ты что пузырьком решил пользоватся? Самоубийца чтоли?? Хотябы сортировкой вставками пользуйся, алгоритм простой до безумия!
 

Sober

______________
Я так понял, тебе все-таки хочется все сразу в файле хранить, используя в качестве буфера массив, а на условие произвольного количества книг наплевать :) Ну ладно, можно и так. Тогда создавай массив структур, примерно такой:

struct Book
{
char author[N];
int year;
}Books[M];

Тогда сравнение производится по полям, например по году:

if(Books[X].year > Books[Y].year);
 
Зверху