void tabular_for(float Xst, float Xen, float Step);
Float Fmodif(float x);
Void graphF(float Xst, float Xen, float Step, int color);
Void main()
{
Clrscr();
Float Xst, Xen, Step;
cout << "Табулирование функции F(x).\n";
cout << "Xstart = "; cin>>Xst;
cout << "Xend = "; cin>>Xen;
cout << "Step = "; cin>>Step;
Tabular_for(Xst, Xen, Step);
Getch();
cout<<"\n Построение графика функции F(x).\n";
cout<<"Xstart ="; cin>>Xst;
cout<<"Xend = "; cin>>Xen;
cout<<"Step = "; cin>>Step;
GraphF(Xst, Xen, Step, 1);
}
//Объявление функций:
Float F(float x)
{ if(x == 0) return 1; else return sin(x)/x; }
Void tabular_for(float Xst, float Xen, float Step)
{for(float x = Xst; x <= Xen; x += Step)
{ cout<<"\n x = " << setw(6)<<setprecision(2)<<x; //манипуляторы;
cout<<" F(x) = "<<setw(6)<<setprecision(3)<<F(x);
}
}
Float Fmodif(float x)
{ if(x != 0) return sin(x/6)/(x/6); else return 1; }
Void graphF(float Xst, float Xen, float Step, int color)
{int gd=DETECT, gm, err;
//инициализации модуляgraph:
initgraph(&gd, &gm, "d:\\bc5\\bgi");
//проверка результата инициализации:
err = graphresult();
if (err != grOk) //ошибка инициализации!
{cout<<"\n Ошибка графики: "<< grapherrormsg(err); //характер ошибки;
cout<<"Нажмите любую клавишу для завершения:";
Getch();
exit(1); //завершение программы с кодом ошибки 1;
}
setbkcolor(15); // цвет фона;
setcolor(color); // цвет линий;
//координаты середины графического экрана:
int cX= (int) getmaxx()/2, cY= (int) getmaxy()/2;
Float x, y;
line(0, cY, 2*cX, cY); //ось координат OX;
line(cX, 0, cX, 2*cY); //ось координат OY;
//строим график функции:
for(x = Xst; x <= Xen; x += Step)
{ y = Fmodif(x); putpixel( (int) x + cX, (int) -40*y + cY, color); }
Getch();
}
Примечание. Все сведения по графическим функциям языка C++ можно найти в Help-файле (\HELP\bcdos.hlp – Borland Graphic Interface (BGI)).
· Запуск проекта: Ctrl + F9, либо кнопкой Run.
· Компиляция проекта: Alt + F9, либо кнопкой Compile this file.
Результат работы проекта:
табулирование функции F(x) на отрезке [-1; 1] с шагом 0,4:
построение графика функцииF(x)на отрезке[-100; 100]с шагом0,01:
Варианты заданий к лабораторной работе №1
В каждом варианте требуется, используя указанный оператор цикла, табулировать заданную функцию F на отрезке [Хst; Хen] с шагом Step и построить её график; действительные числа Хst, Хen и Stepвводятся интерактивно.
Вариант 1.Оператор цикла с параметром,
Вариант 2.Оператор цикла с предусловием,
Вариант 3.Оператор цикла с постусловием,
Вариант 4.Оператор цикла с параметром,
Вариант 5.Оператор цикла с предусловием,
Вариант 6. Оператор цикла с постусловием,
Вариант 7.Оператор цикла с параметром,
Вариант 8.Оператор цикла с предусловием,
Вариант 9.Оператор цикла с постусловием,
Вариант 10.Оператор цикла с параметром,
Вариант 11.Оператор цикла с предусловием,
Вариант 12.Оператор цикла с постусловием,
Вариант 13.Оператор цикла с параметром,
Вариант 14.Оператор цикла с предусловием,
Вариант 15.Оператор цикла с постусловием,
[1] Идентификатор – последовательность латинских букв, цифр и знака"_", начинающаяся с буквы или знака "_".
[2] Функция есть один из двух видов вспомогательных алгоритмов.
[3] В полуквадратных скобках находятся необязательные части структур языка.
[4] “переменная выражение” означает запись в область памяти, поименованную идентификатором, значения выражения.
[5] Локальная переменная доступна (существует, видна) только внутри блока, в котором она объявлена, поэтому ошибочен следующий оператор:if(x < 0) {int r = 2;} else ++r; в котором после else делается попытка инкремента уже несуществующей (!) переменной r.
[6] cinотC Input.
[7] coutотC Output.
[8] Табулировать – составить таблицу значений функции.