- •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. Програма множення матриці на вектор.
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <windows.h>
int main()
{
int n,m,i,j,kol;
float A[100][100],c[100],d[100];
char buff[50];
cout<<"Vvedit kilkist r9dkiv: "; cin>>n;;
cout<<"Vvedit kilkist stovbciv: "; cin>>m;
cout<<"Vvedit kilkist koordunat vektora: "; cin>>kol;
cout<<endl<<endl;
cout<<("Vvedit elementu matruci: ");
cout<<buff<<endl;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{cin>>A[i][j]; }
cout<<endl;
cout<<("Vvedit koordunatu vektora: ");
cout<<buff<<endl;
for(j=0;j<kol;j++)
{cin>>c[j]; }
for(j=0;j<n;j++)
{
d[j]=0;
for(i=0;i<m;i++)
d[j]+=A[j][i]*c[i];
}
cout<<endl;
cout<<("Rezyltat: ");
cout<<buff<<endl;
for(i=0;i<n;i++)
cout<<d[i]<<endl;
getch();
return 0;
}
4.Метод Ньютона(вік)
#include <vcl.h> #include <math.h>
#include <iostream.h>
#include <stdio.h>
#pragma hdrstop
#include "Unit1.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
double f(double x);
double fp(double x);
double f2p(double x);
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
void __fastcall TForm1::Button2Click(TObject *Sender)
{Close();}
void __fastcall TForm1::Button1Click(TObject *Sender)
{double a,b,e,x,Dx; int i,Kmax,Linch;
e=StrToFloat(In_e->Text);
a=StrToFloat(In_a->Text);
b=StrToFloat(In_b->Text);
Kmax=StrToInt(In_k->Text);
Linch=0;
x=b;
if (f(x)*f2p(x)>0)
{while (Linch<Kmax)
{Dx=f(x)/fp(x);
x=x-Dx;
Linch++;
if (fabs(Dx)<e)
{Kmax=Linch;}
{L_x->Caption="x="+FloatToStr(x);
L_L->Caption="Linch="+FloatToStr(Linch);}}
if (fabs(Dx)>e)
{ShowMessage("а задану кількість операцій кореня не знайдено");}}
else
{Linch=0;
x=a;
if (f(x)*f2p(x)>0)
{while (Linch<Kmax)
{Dx=f(x)/fp(x);
x=x-Dx;
Linch++;
if (fabs(Dx)<e) {Kmax=Linch;}
{L_x->Caption="x="+FloatToStr(x);
L_L->Caption="Linch="+FloatToStr(Linch);return;}}
if (fabs(Dx)>e)
{ShowMessage("За задану кількість операцій кореня не знайдено");}}
else
ShowMessage("Метод Ньютона не гарантує");return;}}
double f(double x)
{double f; f=3*x-4*Ln(x)-5;
return f;}
double fp(double x)
{double Dx;
Dx=0.0000001;
double fp; fp=(f(x+Dx)-f(x))/Dx;
return fp;}
double f2p(double x)
{double Dx;
Dx=0.0000001;
double f2p; f2p=(fp(x+Dx)-fp(x))/Dx;
return f2p;}
Білет12 1.Графіка Delphi
Поверхні, на яку програма може виводити графіку, відповідає властивість Canvas. Наприклад, властивість Canvas мають компоненти Form і PaintBox. У свою чергу, властивість Сanvas – це об'єкт типу TCanvas. Методи цього типу
забезпечують виведення графічних примітивів (точок, ліній, кіл, прямокутників і т. д.), а властивості дозволяють задати характеристики графічних примітивів, що виводяться: колір, товщину і стиль ліній; колір і
вид заповнення областей; характеристики шрифту при виведенні текстової інформації. Методи виведення графічних примітивів розглядають властивість Canvas як деяке абстрактне полотно, на якому вони можуть малювати (canvas означає "полотно для малювання"). Канва складається з окремих крапок – пікселів.
Положення пікселя характеризується його горизонтальною (X) і вертикальною (y) координатами. Лівий верхній піксель має координати (0,0). Координати зростають зверху вниз і зліва направо. Тому вісь ОУ є перевернутою.
Значення координат правої нижньої точки полотна залежать від розміру полотна.
Розмір канви можна отримати, звернувшись до властивостей Height і Width області ілюстрації (image) або до властивостей форми: ClientHeight і Clientwidth.
Для малювання на Canvas геометричних фігур використовуються методи:
Вид графічних елементів, що виводяться на канву, визначається властивостями канви Pen (олівець) і Brush (пензель). Властивість Pen відповідає за зовнішній вигляд викреслюваних ліній і контурів, властивість Brush – за заливку областей, обмежених контурами. На канву можна також завантажити зображення з файлу або вивести на неї текст.
Канва має властивість Pixels. Цією властивістю є двовимірний масив, який відповідає за кольори канви.
Pen (олівець)
Олівець використовується для викреслювання крапок, ліній, контурів геометричних фігур. Вид лінії, яку залишає олівець на поверхні полотна, визначають властивості:
За значення Color сожн використовувати : clBlack, clMaroon, clGreen, clOlive, clNavy та інші.
Властивість Width задає товщину лінії (у пік селях) (Canvas.Pen.Width:=2)
Властивість Style визначає вид (стиль) лінії: psSolid(Суцільна лінія) psDash(Пунктирна лінія, довгі штрихи) psDot(Пунктирна лінія, короткі штрихи) psDashDot(Пунктирна лінія, чергування довгого і короткого штрихів) psDashDotDot(Пунктирна лінія, чергування одного довгого і двох коротких штрихів) psClear(Лінії не видно-використ.для «затирання»)
Властивість Mode визначає, як формуватиметься колір точок лінії залежно від кольору точок полотна, через які ця лінія прокреслюється.
Brush (пензель)
Пензель використовується методами, що забезпечують викреслювання замкнутих областей, наприклад геометричних фігур, для заливки (закрашення) цих областей. Властивості:
Виведення тексту
Для виведення тексту на поверхню графічного об'єкту використовується метод TextOut. Інструкція виклику методу TextOut в загальному така: Об'єкт.Canvas.TextOut(x, у, Текст)
де:
- об'єкт – ім'я об'єкту, на поверхню якого виводиться текст;
- х, у – координати точки графічної поверхні, від якої виконується виведення тексту
- текст – змінна або константа символьного типу, значення якої визначає текст, що виводиться методом.
Шрифт, який використовується для виведення тексту, визначається значенням властивості Font відповідного об'єкту Сanvas. Властивістю Font є об'єкт типу TFont.
Область виведення тексту закрашується поточним кольором пензля. Тому перед виведенням тексту властивості Brush.Color потрібно привласнити значення bsClear або задати колір пензля, співпадаючий з кольором поверхні, на яку виводиться текст.
Основні компоненти які використовуються для виведення графіки: - Image
- PaintBox
- DrawGrid
- Chart
2. Цикл-багаторазове виконання одного оператора або набору операторів.щоб запрограмувати цикл,необхідно передбачити:-зміну-параметр,що містить поточне значення яке зростає або спадаєза кожним витком циклу
-діапазон зміни значень пареметра
-механізм і крок зміни цих значень
-механізм контролю моменту виходу значення параметра за межі заданого діапазону з метою завершення роботи циклу
Типи циклів
-з відомою к-тю повторень
-ітераційні цикли
Кожен оператор циклу має заголовок і тіло циклу
1)for – цикл з відомою кількістю повторень
For(<ініціалізація>;<вираз-умова>;<модифікування>)
{тіло циклу;}
<ініціалізація> виконується один раз перед початком виконання циклу
<вираз-умова> перевіряється перед кожним витком циклу
<модифікування> відбувається після кожного виконання тіла циклу.
Кожна з цих частин може бути порожньою
for(i=1;i<=N;i++){}
for(;i<=n;i++){}
for(;;i++){}
for(;;;){}
Цикл for у С++ може мати декілька параметрів
int I,j0
For(i=1;j=n=i<=n,j>0:i=1,j--){}
Параметри циклу можна змінювати з кроком відмінним від одиниці
for(i=1;i<=N;i+=2){}
Параметром циклу може бути дійсне число
float i
for(i=1.2;i<=N;i+=0.2){}
2)Ітераційний цикл з післяумовою
do
{<тіло циклу>;}
while(<вираз умова>);
Виконується тіло циклу,а потім перевіряється значення умови.Якщо воно дорівнює true,то тіло циклу виконується ще раз.
Це аналог repeat…until,з двома відмінностями,в делфі тіло циклу не обрамлюється begin I end і завершення роботи циклу відбувається по true,а не по falseё
3)Ітераційний цикл з передумовою
while(<вираз-умова>)
{тіло циклу;}
Робота циклу починається з обчислення значення виразу-умови.Якщо воно дорівнює true,то виконання тіла циклу продовжується.Якщо ж ні то виконання або не розпочинається взагалі,або завершується. Порівняння :
В делфі:
while умова do
begin
оператор_1;
оператор_2;
…
оператор_n;
end;
Відмінностей з С++ не має, окрім самого синтаксису ( див. 1,3 пункт в відмінностях IF ) repeat
оператор_1;
оператор_2;
.............
оператор_N;
until вираз; Аналог do...while в С++ Основною відмінністю є те, що в repeat…unitl якщо умова хибна, то оператори тіла циклу повторюються знову, а в do…while повторення відбувається поки умова правдива.
for i:= i to n do оператор; або
for i:= i downto n do оператор;
Різниця в синтаксисі. В С++ замість to ( downto ) використовується i++ ( i-- ) відповідно.
