- •3.Написати процедуру метода Гауса по блок-схемі.
- •2.Розкладання періодичної функції в ряд Фур'є (теорія)
- •3.Написати программу методу половинного ділення за блок-схемою:
- •4.Програма множення матриці на вектор.
- •3.Програма табулювання функції із записом результатів у масив і виведення на текстовий екран
- •4.Знаходження визначеного інтеграла методом Сімпсона
- •3.Програма табулювання функції із записом результатів у масив і виведення на текстовий екран.
- •1.Оператори циклів з відомою кількістю повторень. Ітераційні цикли. Процедури дострокового завершення циклу.
- •3.Запрограмувати метод крамера
- •4.Написати функцію побудови і табулювання ряду Фур’є(за блок схемою)
- •4. Інтеграли з заданою точністю.
- •Функції
- •3.Програма розв’язання квадратного рів-ня (консольна)
- •4.Програма Методу половинного ділення
- •3.Програма Методу половинного ділення
- •4 Метод Ньютона (Консольний)
- •1.Масив (Array) – це обмежена, впорядкована сукупність однотипних пронумерованих
- •4.Програма переглядач графічних файлів
- •1.Метод Ньютона для розвязання нелінійних рівнянь.
- •4. Програма розв’язання квадратного рівняння.
- •1.Компонента tChart та приклад.
- •2.Вказівники
- •3. Програма множення матриці на вектор.
- •4.Метод Ньютона(вік)
- •3.Програма трикутник
- •3.Програма знаходження мінімального і максимального елемента матриці!!!!
- •4.«Елементи_управління»
- •3.Метод Ньютона
- •4.Метод Монте Карло
- •1.Алгоритми
- •3.Фурьє Фурьє
- •3.Запрограмувати метод Крамера (Delphi).
- •2.Функції вводу/виводу мови с
- •4.Метод прямокутників(вкладений файл)
- •4.Табулювання функції із виведенням результатів на екран
- •3.Множення матриці на вектор Делфі
- •3.Трикутник
- •4.Функція методу гАуса
- •1 Метод Крамера та його недоліки
- •3 Програма знаходження мінімального максимального елемента матриці
- •4 Метод половинного ділення
3.Фурьє Фурьє
float T = 0.001;
float w = 2.0 * 3.14 / T;
float kg = 7;
//int n = 200;
float a[100], b[100];
float t;
int i,k;
float x[201], y[201];
float f(float t)
{if ((t>=0)&&(t<=0.6*T))
{ float f=8;
return f;}
if ((t>=0.6*T)&&(t<=T))
{ float f=(-8*(t-0.6*T))/(0.4*T)+8;
return f;}
}
float F(float t)
{
float sum = 0.0;
for (int k = 1; k <= kg; k++) {
sum += a[k] * cos((float)k * w * t) + b[k] * sin((float)k * w * t);}
return sum += a[0] / 2.0;}
void __fastcall TForm1::Button1Click(TObject *Sender)
{hell.n=200;
hell.h = T / hell.n;
for (i=1; i <= hell.n; i++)
{x[i]= (float)(i-1) * hell.h;
y[i]= f((float)(i-1) * hell.h);}
for (i=1; i<=hell.n; i++)
{Memo1->Lines->Add(x[i]);
Memo2->Lines->Add(y[i]);}}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{ hell.n=200;
Image1->Canvas->MoveTo(x[0]*100000,y[0]*10-200);
for (i=1; i <= hell.n; i++)
{Image1->Canvas->LineTo(x[i]*100000,-y[i]*10+200);}
Image1->Canvas->MoveTo(0,0);
Image1->Canvas->LineTo(0,400);
Image1->Canvas->MoveTo(0,200);
Image1->Canvas->LineTo(500,200);}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{ hell.n=200;
float sum = 0.0;
for (i = 1; i <= hell.n; i++) {
sum += y[i];}
a[0] = sum * 2.0 * hell.h / T;
Edit1->Text=a[0];
b[0] = 0.0;
for (k = 1; k <= kg; k++) {
a[k] = 0.0;
for (i = 1; i <= hell.n; i++) {
a[k] += y[i] * cos((float)k * x[i] * w);}
a[k] = a[k] * 2.0 * hell.h / T;
b[k] = 0.0;
for (i = 1; i <= hell.n; i++) {
b[k] += y[i] * sin((float)k * x[i] * w);}
b[k] *= 2.0 * hell.h / T;}
Image1->Canvas->Pen->Color=clRed;
Image1->Canvas->MoveTo(x[0]*100000,-F(x[0])*10+200);
for (i=1; i <= hell.n; i++)
{Image1->Canvas->LineTo(x[i]*100000,-F(x[i])*10+200);}}
//---------------------------------------------------------------------------
4.МПД
Білет17 1.Описати елементи віконного інтерфейсу Delphi
Delphi призначене для розробки прикладних програм під Windows на базі мови Object Pascal. Його середовище складається з чотирьох вікон, якими можна керувати як багато віконною прикладною програмою з інтерфейсом одного документа (single document interface- SDI). Це означає, що розмірами та розташуванням кожного вікна можна керувати незалежно. Також Delphi дає стартову базу (вікно та відповідну програму) для правильної роботи в операціїній системі Windows, наділяючи базу стандартно прийнятими в Windows елементами керування та поведінки.
Основні частини інтерфейсу віконного проекту Delphi:
1. Головне вікно розташоване зверху і є центром елементом керування під час роботи Delphi. Воно складається з трьох виділених елементів: рядка меню, панелі швидкого доступу, палітри компонентів.
2. Вікно інспектора об’єктів розміщене ліворуч знизу екрану. Інспектор об’єктів складається з двох сторінок – властивості(Properties) та події(Events). За допомогою інспектора об’єктів задають параметри та поведінку окремих елементів (компонент), з яких будуть програму.
3. Вікно форми (праворуч під головним вікном) є робочою ділянкою для розташування елементів керування програмою під час її майбутнього виконання. Складніші програми потребують декількох різних форм.
4. Вікно редактора коду дає змогу вводити та редагувати тексти програм мовою Object Pascal. Воно розташоване праворуч знизу, однак часто доводиться збільшувати його розміри, щоб одночасно бачити значну частину програми. Вікно редактора коду є багато сторінковим, і на кожній сторінці можна редагувати інший текстовий файл (модуль) програми. Перехід між сторінками виконують за допомогою етикеток внизу вікна або закладок зверху над вікном.
Повний опис основних частин інтерфейсу віконного проекту Delphi:
Редактор коду
Редактор коду розташований в окремому вікні, яке можна закрити та відкривати незалежно від головного та інших вікон. У цьому вікні відображають та редагують тексти програм.
Праворуч та знизу від тесту є стандартні смуги його перегляду. Зверху над текстом зображені закладки для позначення файлів. Кожна закладка містить ім’я відповідного модуля. Для перемикання вікна на потрібний модуль достатньо клацнути мишкою на його закладці.
У нижній частині вікна є рядок стану. Він містить інформацію про місце курсора на активній сторінці (перше поле ліворуч), друге поле відображає, чи був зміщений текст у цьому вікні з моменту останнього запам’ятовування, третє поле повідомляє про режим набору символів на клавіатурі: Insert – уставлення, Overwrite – зміна, Real Only – текст не можна змінювати. Перемикання між режимами Insert та Overwrite виконують клавішею Ins.
Крім того, рядок стану призначений для виведення повідомлень компілятора про помилки в програмі, а також для введення тексту під час виконання команди Search -> Incremental Search.
Смугу ліворуч від тексту використовують для відокремлення рядків, на яких будуть розташовані місця зупинки програми. Для цього достатньо клацнути мишкою на смузі навпроти потрібного рядка. Повторне клацання мишкою змінює місце зупинки.
Редактор коду може працювати спільно з налагоджувачем Delphi. Налагоджування дає змогу трасувати програму безпосередньо у вікні редактора і відображати в ньому всю поточну інформацію.
Редактор коду Delphi виконує значну частину роботи програміста. Зокрема, під час перенесення у вікно форми нових компонентів у клас форми автоматично додає відповідні поля, а в проекті – відповідні модулі. У випадку, коли до компоненти додають програму опрацьовування події, у вікні редактора коду з являється на місці майбутнього першого оператора.
Зауважимо, що редактор коду можна використовувати для редагування будь-яких текстових файлів, наприклад, файлів вхідних даних програми, і навіть файлів, не пов’язаних з цією програмою.
Вікно форми
Форма це вікно Windows, побудоване одним із допустимих стилів. Зверху над вікном є смуга з заголовком і стандартними кнопками керування вікном. Решта простору вікна форми є робочою ділянкою, що є ознакою середовища. Сітка призначена для вирівнювання компонент під час їх розміщування на площині форми.
Розглянемо головні етапи роботи з компонентами в робочій ділянці вікна форми. Активна в конкретний момент компоненту (та, що має фокус) виділена контурною рамкою з маленьких чорних квадратиків по периметру. Фокус між компонентами переміщують мишкою або клавішею Tab. Декілька компонентів, розташованих на формі, можна об’єднати в групу. Для цього треба натиснути на ЛКМ і пересунути її так, щоб ділянка, обмежена штриховою лінією, що тягнеться за мишкою, захопила потрібні компоненти. Після відпускання клавіші мишки всі об’єднані в групу компоненти будуть виділені контурною рамкою, однак сірого кольору, сама рамка зафіксована лише по кутках кожного компоненту. Щоб відмінити об’єднання компоненту, досить клацнути мишкою в будь-якому вільному від компоненту місці робочої ділянки вікна форм.
Для вилучення компоненти з форми потрібно перевести на неї фокус і натиснути на клавішу Del або вибрати з головного меню команду Edit -> Delete. Вилучену компонентну або групу відновлюють командою Edit -> Undelete.
У межах робочої ділянки вікна пересування компоненту найзручніше мишкою на ліву клавішу. Для точного розташування компоненту у вікні використовують комбінацію клавіш керування курсором та клавіші Ctrl. Змінити розташування компоненти можна також шляхом задання відповідних координат її лівого верхнього кута в інспекторі об’єктів (властивості Left, Top).
Розмір компоненту найзручніше змінювати також мишкою. Для цього спершу компоненту роблять активнішою. Далі пересувають мишкою на один з маркерних чорних квадратів, розташованих по периметру. Курсор набуває вигляду двонапрямленої стрілки. Зафіксувавши ЛКМ, пересувають мишкою в потрібному напрямі і відпускають клавішу. Точну зміну розмірів виконують комбінацією клавіш керування курсором та клавіші Shift. Крім того, розміри можна визначити відповідними властивостями (Height, Width) в інспекторі об’єктів.
Розміри та розташування всіх компонентів у вікні можна одночасно і пропорційно змінити. Для цього використовують команду головного меню Edit -> Scale, зазначивши зміну масштабу у відсотках.
Якщо у вікні форми вже розташовані декілька компонентів, то їх можна вирівнювати як щодо одної. Для цього застосовують команду головного меню Edit -> Align або палітру вирівнювання, яку викликають командою View -> Alignment Palette. Ця палітра є окремим вікном, яке можна розташувати на екрані в зручному місці на тривалий час. Вирівнювання виконують для окремих компонентів, а також для груп. Компоненти в групі вирівнюються стосовно того компоненту, яка потрапила в групу першою.
Інспектор об’єктів
Інспектор об’єктів є інструментом середовища розробки Delphi, який дає змогу повністю визначити вигляд та поведінку компоненту, що розташовані на формах проекту, а також самої форми. За його допомогою можна задавати потрібні значення властивостей компоненту (об’єктів), а також реакцією на стандартні події. Інспектор об’єктів розташований в окремому вікні, яке створюється автоматично під час завантаження Delphi.
Вікно інспектора об’єктів має список компонентів поточної форми, а також дві сторінки: властивостей Properties та подій Events.
Дані з’являються на сторінках інспектора об’єктів лише за наявності відкритого файлу з текстом хоча б одного модуля в редакторі коду.
У верхній частині інспектора розміщений список компонентів в алфавітному порядку, які розташовані на активній формі, включаючи саму форму. Побачити список можна, натиснувши на кнопку списку компонентів. Якщо вибрати який-небудь компонент із списку мишкою, то компонент стає активним, а обидві сторінки інспектора об’єктів заповняться значеннями її опублікованих властивостей та іменами процедур опрацювання подій, у вікні форми відповідно компонент буде виокремлена контурною рамкою. Якщо в списку нема імені, то це означає, що сторінки інспектора об’єктів містять властивості та методи опрацювання подій групи об’єднаних компонентів.
Видиме ім’я активного компоненту побудоване з двох частин: власне імені компоненту та імені типу (класу), до якого вона належить.
Сторінка властивостей складається з двох стовпців: лівий з назвами імен властивостей компоненту, а правий з їхніми значеннями. Для поточної властивості в правому стовпці стає активним поле редактора, вигляд якого залежить від конкретної властивості. Якщо поле редактора не містить ніяких позначок, то це властивість, значення якої треба ввести з клавіатури. Якщо ж поле має кнопку значень переліченого типу (зі стрілкою вниз), то значення можна вибрати зі списку допустимих наперед визначених значень. Побачити список можна, якщо натиснути на цю кнопку. Деякі властивості (наприклад, Font або Icon) для вибору значень мають діалогове вікно. В полі редактора властивостей у цьому випадку видно кнопку з трьома крапками. Після натискання на неї з’явиться діалогове вікно, в якому треба задати по черзі декілька різних значень, що стосується тієї властивості, а потім його закрити.
Властивості можуть бути простими та комплексними.
Комплексні – це властивості, які складаються з набору інших властивостей, для кожної з яких задано свое значення. Їх позначають знаком <<+>>. Набір властивостей відповідно може складатися як з простих, так і з комплексних. Для перегляду набору властивостей потрібно двічі клацнути мишкою на імені комплексної властивості, після чого в стовпці імен властивостей закрити додатковий список, а знак перед іменем зміниться на << - >>. Щоб закрити додатковий список, треба двічі клацнути мишкою на імені комплекції властивості.
Сторінка подій також має два стовпці. Лівий – з іменами стандартних подій, на які може реагувати компоненту, а правий – з іменами процедур (методів) опрацювання подій, які реалізують реакцію компоненту.
Стандартні події виникають під час створення та знищення компоненту, зміни її видимості, натискання на клавіші клавіатури, клацання мишкою тощо.
Багато компонентів можуть реагувати на специфічні, характерні лише для цих подій. Кожній стандартній події відповідає фіксоване ім’я методу (процедури) опрацювання.
Початково правий стовбець є порожній, тобто компоненту не реагує на жодні події. Для визначення реакції компоненту на подію потрібно перевисти курсор на поле редактора події в правому стовпці та двічі клацнути ЛКМ. Після цього в стовпці імен з’явиться ім’я методу опрацювання, а до вікна відповідного модуля в редакторі коду автоматично додасться базовий (початковий) текст цієї програми, і курсор розташується на місці майбутнього першого оператора. Відповідні заголовки методів так само додають до опису класу форми, на якій розташована компоненти. Початковий текст програми не дає жодного оператора, отже, фактичної реакції компоненту на дію не буде доти, доки не будуть записані в тексті потрібні оператори.
Допустимих імен методів опрацювання тієї ж подій може бути і декілька, тоді потрібне ім’я можна вибрати зі списку, який відкривають за допомогою кнопки. Методам опрацювання подій можна давати і власні імена, однак без належного досвіду цього робити не варто.
Якщо декілька різних компонентів можуть реагувати на одноімунну подію, то можна задати для всіх них подібну реакцію створенням лише одного методу опрацювання. Це особливо актуально, якщо компоненти однотипні, наприклад, група кнопок або група позначок. Для цього такі компоненти треба спочатку об’єднати в групу (див. вище). У списку компонентів у верхній частині вікна після цього не буде жодного імені. Тепер визначення реакції подію буде стосуватися відразу всіх компонентів групи.
Реагування на події
Важливими є правильний набір подій, пов’язаних з програмною системою, тобто задачею, та правильна взаємодія програм реагування на події. Зазначимо, що опрацювання подій у загальному випадку може відбуватися паралельно, що продовжує проблему синхронною чи асинхронного виконання програм.
У Delphi стандартно визначено список подій які може використовувати програміст, вибираючи їх через сторінку подій інспектора об’єктів. Нижче наведено коротку характеристику можливих подій. Описано лише ті з них, які виникають частіше від інших, і є характерними для багатьох компонентів. Назви всіх подій починаються префіксом ON, після якого є кородка назва події. Назви зафіксовані і змінювати їх неможна. З погляду мови Паскаль подія – це властивість (property) процедурного типу. Дано також формальне означення потрібних процедурних типів.
Параметр Sender у заголовках процедурних типів визначає той об’єкт чи елемент програми, який є джерелом події, тобто місце, де подія виникла. Якщо потрібно, параметр Sender можна використати для уточненя об’єкта – джерело події, або параметрів і поточного стану об’єкта.
sOnActivate – подія виникає для форми програми кожного разу в момент, коли форма стає активною й отримує фокус уведення.
TNotifyEvent = procedure ( Sender: TObject ) of object;
property OnActivage: TNotifeEvent;
sOnCreate– подія виникає тоді, коли форму створюють уперше на початку виконання програми. Використовують для виконання підготовчих операцій: перевірки наявності файлів, створення в пам’яті робочих структур даних тощо. Якщо властивість видимості форми є ввімкненою (property Visible -> true), то події виникають у такому порядку: OnCreate -> OnShow -> OnAktivage -> OnPaint.
property OnCreate: TNotifyEvent;
sOnClick – подія виникає для будь-якого видимого елемента на формі (кнопки, панелі, списки, таблиці тощо) в момент, коли вказівник мишки є над елементом і ми клацаємо ЛКМ. Однак треба пам’ятати, що ця подія може виникти і за інших умов, наприклад, під час натискання на клавішу Enter, клавішу пропуску, відокремлення якогось елемента списку чи таблиці клавішами зі стрілками тощо.
У вигляді схеми показано загальні процеси, які відбувається під час опрацювання події. Ліворуч – частина програми, яку формує Delphi автоматично для зв’язку з операційною системою Windows. Через цю частину Windows надсилає повідомлення про виникнення певних подій, і, якщо визначені процедури (методи) їх опрацювання, то їм передає керування. Після виконання процедури опрацювання подій керування наступних подій переходить назад у Windows, точніше – на цикл виявлення наступних подій. У разі багаторазової появи деякої події відповідну кількість разів буде викликана та ж процедура опрацювання. Робота всієї програми закінчується з появою подій, яка веде до закриття головної форми, наприклад, у випадку клацання мишкою на кнопці закриття форми.
2.Умовні оператори мови С++ та їх відмінності від подібних операторів ВР
Умовні оператори С++, синтаксис:
Операто if
if (<Вираз>)
<1-й набір операторів>;
else
<2-й набір операторів >;
<Тут обов’язково виконується один із двох наборів операторів>
Операто swich
swich (вираз)
{
case <мітка 1> : <1-й набір операторів>; break;
case <мітка 2> : <2-й набір операторів>; break;
………………………
case <мітка n> : <n-й набір операторів>; break;
[default : <Оператори>] //необов’язкова частина
}
Умовні оператори Delphi, синтаксис:
Операто if
if (умова) then begin
{блок з одного чи більше операторів}
end else begin
{блок з одного чи більше операторів}
end;
Операто case
case <перемикач> of
<діапазон вибору 1> : <Набір операаторів 1> ;
<діапазон вибору 2> : <Набір операаторів 2> ;
……….
<діапазон вибору n> : <Набір операаторів n> ;
else
{оператори}
end;
Відмінності між умовними операторами С++ та Delphi: 1. В С++ умову обов’язково потрібно брати в душки.
2. В Делфі рівність двох елементів позначається «=», а в С++ «==». Або – в делфі «or» в С++ « || », і в делфі «and» в С++ «&&» . Не в delphi – «not» , С++ - «!» .
3. В С++ немає операторів Then, Begin, End. Замість цього там виступають фігурні душки { }
Програма табулювання функції із записом результатів у масив і виведення на текстовий екран.
Табуляція функції означає створити таблицю, в якій для кожного значення аргументу обчислено відповідне значення функції.
program Project1;
{$APPTYPE CONSOLE}
Uses
SysUtils;
Type Vector = array[0..640] of Real;
VAR Xe, Ye:Vector;
a1, b1, h : Real;
i,Ne : Integer;
function f(x:real):real;
begin
f:=x*x
end;
BEGIN
writeln('Nе=');
readln(Ne);
writeln('a1,b1=');
readln(a1,b1);
h := (b1-a1)/(Ne-1);
Xe[0]:=a1;
FOR i:=1 TO Ne-1 DO begin
Ye[i] := f(Xe[i]);
Xe[i+1] := Xe[i] + h;
Writeln(Ye[i]:6:3, Xe[i]:6:3);
end;
Readln
END.
Програма табулює функцію f=x^2.Під час введення даних ми отримаємо два стовпчика чисел правий стовпчик це X а лівий стовпчик це Y. Якщо кожне число правого стовпчика піднімемо до квадрату то отримаємо відповідне число лівого стовпчика. a1 I b1 це область визначення функції(b1>a1-завжди).Ne-Кількість точок які ми хочемо протабулювати.
4.Метод_трапецій //---------------------------------------------------------------------------
#pragma hdrstop
//---------------------------------------------------------------------------
#include <stdio.h>
#pragma hdrstop
#include <tchar.h>
#include <math.h>
#include<conio.h>
#include <iostream>
#include <clocale>
//---------------------------------------------------------------------------
#pragma argsused
double f(double x)
{ double y;
y=1/(1+x+x*x);
return y;
}
double sum(int m, double x, double w)
{ double s;
int i;
s=0;
for (i=1; i<=m; i++)
{s=s+f(x);
x=x+w;
}
return s;
}
using namespace std;
void main()
{ double a,b,h,integr,eps;
int i, n = 100;
printf("vvedit a (Vvedit 0-> )");
cin >> a;
printf("vvedit b (Vvedit 1-> )");
cin >> b;
printf("vvedit eps (Vvedit 0.0000001-> )");
cin >> eps;
h = (b-a) / n;
integr = h*(f(a)+f(b)+2*sum(n-1,a+h,h))/2;
printf("integral= %f\n",integr);
getch(); }
Білет18 1.Компілятори,де багери,інтерпретатори.Що таке Ассемблер Програма - формалізований опис процесів обробки данних.Програму записують на зручній для людини формалізованій мові програмування з якої вона автоматично перекладається на мову відповідного комп’ютера за допомогою ін. програми транслятора.
Транслятори бувають Компілюючого та Транслюючого типу.
Компілятор - обробляє програму всю зразу виконуючи 4 кроки:
1.лексичний аналіз – пошук і виокремлення в тексті лексичних одиниць: ключових слів, числових значень. Імен змінних і т.д.
2.синтаксичний аналіз – поділ програми на окремі синтаксичні конструкції та видачу повідомлень щодо наявності синтаксичних помилок
3.генерування об’єкту коду згідно з синтаксичними конструкціями
4.оптимізування цього коду за швидкодією та за об’ємом необхідної для його роботи оперативної пам’яті
Інтерпретатор – обробляє програму пооператорно.
Лінкування(Linking)– це процес об’єднання окремих частин програми, які компілювалися незалежно, та приєднання до них загально системних процедур, таких як процедури введення/виведення,обробки сигналів від зовн. Пристроїв комп’ютера та ін.
Завантаження(Loading)– настроювання коду програми перед її виконанням на адреси тієї ділянки ОП. В яку її завантажують
окрім компілятора,лінкера і лоадера мусять бути засоби пошуку логічних помилок - Debugger'и
Кодування програм на перших машинах робила на так званому автокоді - кодували код операції і адреси(операнди).Наступним кроком ввели Асемблер.Тут кодували код операції і операнди символами - скороченням назв.
Асемблер - спосіб кодування процесорних команд символьними іменами.З іншого боку,Асемблер - це програма,що перекодовує один до одного команду із символьного представлення до кодового,тому є помилковим твердження,що Асемблер є мовою.
2.Порівняйте особливості синтаксису Делфі і С++ 3.ТабулюванняДелфі Табуляція функції означає створити таблицю, в якій для кожного значення аргументу обчислено відповідне значення функції.
program Project1;
{$APPTYPE CONSOLE}
Uses
SysUtils;
Type Vector = array[0..640] of Real;
VAR Xe, Ye:Vector;
a1, b1, h : Real;
i,Ne : Integer;
function f(x:real):real;
begin
f:=x*x
end;
BEGIN
writeln('Nе=');
readln(Ne);
writeln('a1,b1=');
readln(a1,b1);
h := (b1-a1)/(Ne-1);
Xe[0]:=a1;
FOR i:=1 TO Ne-1 DO begin
Ye[i] := f(Xe[i]);
Xe[i+1] := Xe[i] + h;
Writeln(Ye[i]:6:3, Xe[i]:6:3);
end;
Readln
END.
4.Метод_центральних_прямокутників #include<math.h>
#include<conio.h>
long double f (long double x)
{return (x);}
long double sum (long double n,long double x,long double h)
{long double s=0;long i;
for (i=0;i<n;i++)
{s=s+f(x);
x=x+h;}
return (s);}
void main ()
{long n=640000;clrscr();
long double a=0,b=10,h=(b-a)/n;
double ip=h*sum(n,a+h/2,h),
it=h*0.5*(f(a)+f(b)+2*sum(n-1,a+h,h)),
is=h*(f(a)+f(b)+2*sum(n-1,a+h,h)+4*sum(n,a+h/2,h))/6;
cprintf("Rectangle method : s=%f",ip);
getch();}
Білет19 1.Метод половинного ділення для розв’язання нелінійного рівняння (Теорія).
Метод половинного ділення – це універсальний метод чисельного розв’язання нелінійних рівнянь. Розв’язати нелінійне рівняння виду f(x)=0 означає знайти усі значення змінної x при яких рівняння перетворюється у правильну тотожність. МПД є хоч і повільним але завжди приводить до шуканого результату. Для використаня цього методу потрібно задати точність з якою ми будемо шукати корені та інтервал на осі Ох якому точно існує один корінь. Щоб на заданому інтервалі корінь існував потрібно, щоб функція f(x) на межах інтервалу мала різний знак, тобто щоб виконувалась нерівність f(a)*f(b)<0; це означає що функція дійсно перетинає вісь Ox.
Ідея методу полягає в поділі нашого інтервалу на дві рівні частини, після чого перевірити на якому з двох утворених відрізків знаходиться корінь знову використавши нерівність f(a)*f(с)<0 або f(с)*f(b)<0. Той інтервал на якому коренів немає ми відкидаємо і тепер розглядаємо той інтервал на якому корінь існує. Ми знову ділимо його навпіл і так далі поки наш інтервал не буде меншим від заданої точності eps. Тоді приблизним коренем буде середина нашого остаточного інтервалу. Проте бувають випадки, коли коренем є одна з меж інтервалу, або його середина є коренем рівняння, тому щоб не загубити корінь рівняння потрібно додаткові перевірки f(a)<eps? f(c)<eps? f(b)<eps?
Також бувають особливі випадки коли наприклад процесор ЕОМ забезпечує точність обчислень до 3 знаків після коми, а результат поділу буде мати чотири знаки. Тоді машина заокруглить це число і ми втратимо точність. Наближення до кореня у МПД відбувається лінійно.
2.Робота у графіці в середовищі Borland C++.
Графічний інтерфейс у середовищі Borland C++ співпадає з інтерфейсом у Delphi. За допомогою графічного інтерфейсу можна малювати графічні примітиви, працювати з зображеннями шрифтами і графічними файлами. Принцип роботи з графічними зображеннями в B. C++ основані на загальних принципах створення графічних об’єктів у опер. cистемі Windows. Саме Windows надає програмістові засоби інтерфейсу графічних пристроїв (Graphics Device Interface) GDI.
До основних графічних об’єктів (графічні об’єкти – це об’єкти з допомогою яких ми здійснюємо вивід зображення на екрані) належать – перо, кисть, растрові зображення і шрифти. Одним з головних об’єктів є перо. Перед використанням створюється функція:
HPEN Create Pen
(int PenStyle // стиль пера
int nWidth // товщина пера
COLOREF crColor // колір пера
Для малювання пером використовуються функції:
- bool MoveToEx (int x1, int y1) - переніс курсора у задану точку.
- bool LineTo (int x2, int y2) - малює лінію з початкового положення курсора у точку.
- bool Rectangle (int x1,int y1, int x2, int y2) - будує прямокутник
і тд.
