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] Табулировать – составить таблицу значений функции.