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

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-- ) відповідно.

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