Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ekzamen_KhIO_I_semestr_-_shpori.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2.07 Mб
Скачать

3.Програма Методу половинного ділення

//---------------------------------------------------------------------------

#include <stdio.h>

#pragma hdrstop

#include <tchar.h>

#include <math.h>

#include <conio.h>

#include <iostream>

#include <clocale>

//---------------------------------------------------------------------------

#pragma argsused

using namespace std;

float f( double x);

int main()

{

double a,b,eps,k,w ;

a=1;

b=3;

eps=0.0001;

k=(a+b)/2;

do

{ if (f(a)*f(k)<0)

b=k;

else

a=k;

k=(a+b)/2;

}

while(b-a>eps) ;

w=(a+b)/2;

cout<<"w="<<w<<endl;

cout<<"f(w)="<<f(w)<<endl;

system ("PAUSE");

return 0;

}

float f( double x)

{ double f=sin(log(x))-cos(log(x))+2*log(x);

return (f);}

4 Метод Ньютона (Консольний)

//---------------------------------------------------------------------------

#include <stdio.h>

#pragma hdrstop

#include <tchar.h>

#include <math.h>

#include <conio.h>

#include <iostream>

#include <clocale>

//---------------------------------------------------------------------------

#pragma argsused

using namespace std;

float f( double x);

float f1( double x);

int main()

{

double g,x,eps,dx ;

eps=0.0001;

x=3;

do

{

dx=f(x)/f1(x);

x=x-dx;

}

while (fabs(dx)>eps);

cout<<"x="<<x<<endl;

cout<<"f(x)="<<g;

system ("PAUSE");

return 0;

}

float f( double x)

{ double f=exp(x)+log(x)-10*x;

return (f);}

float f1( double x)

{ double fp=exp(x)+1/x-10;

return (fp);}

Білет 9

1.Масив (Array) – це обмежена, впорядкована сукупність однотипних пронумерованих

величин, кожну окрему величину цього масиву наз. компонентою (елементом) масиву.

Номери елементів наз. індексами. Тип компонентів наз. базовим типом(крім файлового).

Кожна компонента має свій індекс. Всі компоненти мають один і той самий тип. Всі

елементи є рівнодоступними. Завдяки індексам забезпеч.прямий доступ до кожного

елемента(ще буває послідовний доступ).

Змінна з індексом-для познач.окремих компонентів А[5,2]

Треба опанувати правила:опис масиву,заповнення його значеннями,використання масивів

в арифметичних виразах,використ масив в час пересилання їх значень у підпрограми

У двовимірному-[2,3]-перетин 2 рядка і 3 стовпця

Існує 2 способи опису масивів:

1. менш універсальний

var <ім’я масиву>:array[<діапазон> <вимірність>]

of < тип елементів масиву>;

2. універсальний

Type Vector=Array[0..640] of Real;

Matrix=array[0..4,1..3] of Integer;

Var Xe, Ye, Xg, Yg : Vector;

L, U: Matrix;

Заповнення елементів масиву значеннями можна зробити шляхом:

1.Ініціалізації або присвоєння початкових значень усім компонентам масиву на етапі виконання програми.

2.Присвоєння кожному елементу значення на етапі виконання програми.

3.Введення даних з клавіатури.

2.Обєднання в мові С++

Об‘єднання(Union)-варіант структури ,у якій компілятор повинен усі поля розташувати за

одною адресою .Синтаксис опису Union такий,як і в структури ,тільки struct змінюється на

union. У кожен момент роботи програми у змінній типу Union міститься значення тільки

якогось одного з її полів. Це значення може періодично змінюватись. Відповідальність за

коректність цього процесу лежить виключно на програмістові.

Об‘єднання часто використовують як поле структури . При цьому в структурі повинно бути

присутнє ще одне поле для визначення яке саме поле з union потрібно використати.

Наприклад :

#include <iostream.h>

int main()

{ enum paytype {CARD.CHECK}

struct

{ paytype ptype;

union {char card [25];

Long check};

};

switch (info.ptype)

{case CARD:cout <<‖Платити карткою:‖<<info.card;break;

case CHECK:cout <<‖Платити чеком:‖<<info.check;break;}

return 0;}

Об‘єднання виконується в разі потреби по-різному проінтерпретувати окремі біти цілопис.

Змінної.Обмеження у виконанні об‘єднання :

1. Ініціалізувати можна тільки змінні його першого елемента;

2.Об‘єднання не може містити віртуальні мет,конструктори,деструктури і присвоєння.

3.Об‘єднання не може містити так звані бітові поля.

3)Метод половинного ділення(віконка) С++

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include <math.h>

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

float f(float x)

{

return 3*sin(sqrt(x))+0.35*x-3.8;

}

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

float a,b,c,x,e;

a=2;

b=3;

c=(a+b)/2;

e=0.001;

while (fabs(f(c))>e)

{

if(f(a)*f(c)<0)

b=c;

else a=c;

c=(a+b)/2;

Edit1->Text=FloatToStr(c);

}

}

//---------------------------------------------------------------------------

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]