- •3.Написати процедуру метода Гауса по блок-схемі.
- •2.Розкладання періодичної функції в ряд Фур'є (теорія)
- •3.Написати программу методу половинного ділення за блок-схемою:
- •4.Програма множення матриці на вектор.
- •3.Програма табулювання функції із записом результатів у масив і виведення на текстовий екран
- •4.Знаходження визначеного інтеграла методом Сімпсона
- •3.Програма табулювання функції із записом результатів у масив і виведення на текстовий екран.
- •1.Оператори циклів з відомою кількістю повторень. Ітераційні цикли. Процедури дострокового завершення циклу.
- •4.Написати функцію побудови і табулювання ряду Фур’є(за блок схемою)
- •3.Запрограмувати метод крамера
- •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 Програма знаходження мінімального максимального елемента матриці
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)
{double c=3*sin(sqrt(x))+0.35*x-3.8;return (c);}
int main ()
{ double a,b,eps,n,x;
cout <<"vvedit a,b,eps";
cin >>a>>b>>eps;
n=(a+b)/2.0;
while ((b-a)>eps)
{if (f(a)*f(n)<0)
{b=n;}
else
{a=n;}
n=(a+b)/2.0;}
x=(a+b)/2.0;
cout<<"x="<<x<<endl;
system ("PAUSE");
return 0;}
Білет27
1.
Описати основні властивості та події
візуальних Delphi
Форма
(Form) є основним елементом управління
при розробці проекту в Delphi. Саме на формі
розміщують потрібні компоненти, задають
для них потрібні властивості тощо. Увесь
внутрішній простір є робочою ділянкою,
яка може бути покрита крапчастою сіткою
для вирівнювання компонентів. Вікно
форми Form є початком розробки проекту і
є заготовкою (макетом) вікна проекту,
який розробляється.
Розробка проекту розпочинається з форми! Форма є контейнером, і може містити інші компоненти.
Форма є основою при створенні проекту в середовищі Delphi. Вікно форми можна переміщати по екрані, збільшувати, зменшувати, змінювати його властивості у вікні властивостей об’єктів, упорядковувати на ньому поставлені об’єкти і у вікні коду писати для них процедури.
Компоненти Delphi- це вже готові елементи інтерфейсу, які ви зможете використовувати у своїх програмах.
Інспектор об’єктів (Object Inspector). За допомогою інспектора об’єктів можна задавати початкові значення властивостей об’єкта та їхню реакцію на стандартні події. Вікно інспектора об’єктів містить список компонентів поточної форми, а також дві закладки: властивостей (Properties) та подій (Events).
Кожна закладка складається з двох стовпців: лівий містить назви властивостей або подій, а правий – їхні значення або назву процедури-реакції на подію. Активізувати вікно інспектора об’єктів можна за допомогою клавіші F11 або мишкою.
У вікні дерево об’єктів відображено всі об’єкти, які поставлені на поточну форму. Тобто у цьому вікні відображено назву форми (Form1), а також візуальні об’єкти, що встановлені на форму.
Вікно Редактор коду (Code Editor) призначене для написання коду програми на Object Pascal, який реалізує процедуру опрацювання певної події. Під час відкривання нового проекту в модуль Unit1.pas, який відповідає формі Form1, редактор автоматично заносить програмний код опису цієї форми. Під час додавання нових компонентів у вікно форми у програму автоматично заносяться коди з описами параметрів цих компонентів (висота, ширина, розташування, стиль тощо).
2. Оператори циклу С++ та відмінності з делфі. Цикл-багаторазове виконання одного оператора або набору операторів.
щоб запрограмувати цикл,необхідно передбачити:
-зміну-параметр,що містить поточне значення яке зростає або спадаєза кожним витком циклу
-діапазон зміни значень пареметра
-механізм і крок зміни цих значень
-механізм контролю моменту виходу значення параметра за межі заданого діапазону з метою завершення роботи циклу
Типи циклів
-з відомою к-тю повторень
-ітераційні цикли
Кожен оператор циклу має заголовок і тіло циклу
1)for – цикл з відомою кількістю повторень
For(<ініціалізація>;<вираз-умова>;<модифікування>)
{тіло циклу;}
<ініціалізація> виконується один раз перед початком виконання циклу
<вираз-умова> перевіряється перед кожним витком циклу
<модифікування> відбувається після кожного виконання тіла циклу.
Кожна з цих частин може бути порожньою
for(i=1;i<=N;i++){}
for(;i<=n;i++){}
for(;;i++){}
for(;;;){}
Цикл for у С++ може мати декілька параметрів
int I,j
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,то виконання тіла циклу продовжується.Якщо ж ні то виконання або не розпочинається взагалі,або завершується. Порівняйте синтаксис опису циклів у С++ і в Delphi
В делфі:
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-- ) відповідно.
3.Ньютон_Консоль program newton;
{$APPTYPE CONSOLE}
uses
SysUtils;
label 1;
function f(x:real):real;
begin;
f:=3*x-4*ln(x)-5;
end;
function fp(x:real):real;
begin;
fp:=3-4*(1/x);
end;
function f2p(x:real):real;
begin;
f2p:=4/sqr(x);
end;
var x,eps,dx:real;
var a,b,i,Kmax:integer;
begin;
a:=2;
b:=4;
Kmax:=12;
x:=b;
if f(x)*f2p(x)>0 then
Goto 1
else
x:=a ;
if f(x)*f2p(x)>0 then goto 1
else writeln('dlya zadanogo rivnznnz metod Nyutona ne vukonyetsya');
1: for i:=0 to Kmax
do
begin
Dx:=f(x)/fp(x);
repeat
x:=x-Dx;
until
Abs(Dx)>eps ;
end;
writeln('x=',x:3:4);
readln;
end.
4.Пояснити оператори заданої програми зі зв’язаними списками ( прога хвищуна з коментами, може дасть іншу…) #include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <tchar.h>
#pragma argsused
struct ElMatr //структура елемента зв'язаного одностороннього списка
{
int i,j ;
float A ;
ElMatr *NextA;
} ;
// Оголошуємо лобальну змінну типу ElMatr: *FirstElMatr - для вказiвника на 1-й елемент
// списку. Ця змінна буде доступна у всій програмі
ElMatr *FirstElmart;
// Оголошуємо прототип функції SeachElMatr для пошуку елемента списку за його
// індексами.
ElMatr *SeachElMatr(int i, int j, ElMatr *FirstEl);
int _tmain(int argc, _TCHAR* argv[])
{
clrscr();
// Описуємо змінні
int i,j; float AijValue;
ElMatr *MA,*Aijtek,*AijRob;
// Організовуємо цикл для введення елементів списку.
i=0;
while (i!=999) {
// Зчитуємо індекси і,j а також значення Aij
printf ("Input matrix element i j Aij \n");
scanf ("%d%d%f",&i,&j,&AijValue);
if (FirstElmart==NULL) // Були вже внесені у список якісь елементи матриці?
//Ще не було елементів у матриці, створюємо 1 елемент і записуємо його
// адресу у поле FirstElmart
{ MA = new ElMatr;
FirstElmart = MA;
MA->A=AijValue;
MA->i=i;
MA->j=j;
MA->NextA=0;
} else
// Вже є елементи у матриці. Шукаємо, куди б додати новий. Він повинен
// знаходитись у місці, яке визначають індекси i,j. Це допоможе зменшити
// час пошуку елемента при виборці
{
Aijtek=SeachElMatr (i, j, FirstElmart); // Скористаємось функцією пошуку
if (Aijtek->i==i && Aijtek->j==j)
// У таблиці уже є елемент з індексами i,j. Заміщуємо його значення на нове
{
MA = Aijtek ;
MA->A = AijValue;
}
else // Вставляємо новий елемент після елемента Aijtek, знайденого функцією
{
AijRob= new ElMatr;
//if (Aijtek->NextA!=NULL) {AijRob->NextA = Aijtek->NextA; } /* Запамятаємо адресу, на яку вказував знайдений елемент */
AijRob->NextA = Aijtek->NextA; /* Запамятаємо адресу, на яку вказував знайдений елемент */
MA=new ElMatr; /* Створимо новий елемент списку */
MA->A=AijValue; /* Присвоїмо його полям відповідні значення */
MA->i=i;
MA->j=j;
Aijtek->NextA=MA; /* Звяжемо новий елемент із старим елементом,
запамятованим у полі AijRob->NextA */
//if (AijRob->NextA!=NULL)
{MA->NextA=AijRob->NextA;}
}
}
}
// Виведення елементів матриці по запиту. Вводяться індекси і,j ,
// а виводиться значення Aij Для завершення введіть і=999
i=0;
while (i!=999)
{
printf ("Input,which matrix element (i j) show ?\n");
scanf ("%d%d",&i,&j);
MA = FirstElmart;
if (MA == NULL)
{
printf(" Matrix is empty");
return 0;
}
Aijtek=SeachElMatr (i, j, FirstElmart);// Скористаємось функцією пошуку
if (Aijtek->i == i && Aijtek->j == j) /* Елемент знайдено */
{
AijValue=Aijtek->A;
printf (" i= %d j= %d Aij= %f\n",i,j, AijValue);
}
else
printf("Element not found") ;
}
}
// Пишемо функцію для пошуку елемента матриці у списку елементів. Функція
// шукає найближчий елемент списку, у якого індекси менші або рівні заданим
// параметрам i,j
ElMatr *SeachElMatr(int i, int j, ElMatr *FirstEl) /* Після заголовку функці∙ не повинно бути ;, якщо це не огоглошення функці∙*/
{
ElMatr *Aijtek,*AijRob,*MA;
int ic,jc;
MA=FirstEl; /* Встановлюєм покажчик на початок списку */
Aijtek=MA; /* Запамятовуємо поточний елемент у полі Aijtek */
while ( MA!=NULL )
{
ic= MA->i ;
while ((MA!=NULL) &&(MA->i== ic))
{
if (ic==i )
{
while ((MA!= NULL) && ( MA->j <= j) && (MA->i == ic))
{
Aijtek = MA;
MA = MA->NextA;
if (MA == NULL){ break;}
jc = MA->j;
}
}
else
{
while ((MA!=NULL) && (MA->i == ic))
{
Aijtek=MA;
MA=MA->NextA;
if (MA==NULL){ break;}
jc =MA-> j;
}
}
if (MA==NULL) break;
if ((MA->i >i) ) break;
if ((Aijtek->i == i) &&(Aijtek->j >= j)) break;
AijRob=Aijtek->NextA;
if (AijRob->i == i && AijRob->j > j ) break;
if( AijRob->i > i ) break;
}
if (MA == NULL) break;
if ((Aijtek->i == i) &&(Aijtek->j >= j)) break;
AijRob=Aijtek->NextA;
if (AijRob->i == i && AijRob->j > j ) break;
if( AijRob->i > i ) break;
}
return Aijtek;
}
