
- •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 Метод половинного ділення
4. Інтеграли з заданою точністю.
//---------------------------------------------------------------------------
#include <vcl.h>
#include <math.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int i, N;
double a,b,h,eps;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
double f(double x)
{
return 1.0/(1+x+x*x);
}
//---------------------------------------------------------------------------
double sum(int m, double x)
{
int i;
double s=0;
for (i = 1; i <= m; i++)
{
s=s+f(x);
x=x+h;
}
return s;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
a=StrToFloat(Edit1->Text);
b=StrToFloat(Edit2->Text);
N=StrToInt(Edit3->Text);
eps=StrToFloat(Edit4->Text);
h=(b-a)/N;
double S,So;
switch (ComboBox1->ItemIndex) {
case 0: {
S=0;
do
{
So=S;
S=h*sum(N,a+h/2);
N++;
}
while(fabs(S-So)<eps);
Edit5->Text=FloatToStr(S);
return;
}
case 1: {
S=0;
do
{
So=S;
S=h*0.5*(f(a)+f(b)+2*sum(N-1,a+h));
N++;
}
while(fabs(S-So)<eps);
Edit5->Text=FloatToStr(S);
return;
}
case 2: {
S=0;
do
{
So=S;
S=h*(f(a)+f(b)+2*sum(N-1,a+h)+4*sum(N,a+h/2))/6;
N++;
}
while(fabs(S-So)<eps);
Edit5->Text=FloatToStr(S);
return;
}
default:
ShowMessage("Спочатку оберіть метод обчислення");
}
}
//---------------------------------------------------------------------------
Білет 7
Функції
Подібно процедурам, опис функції складається із заголовка і тіла. Однак опис заголовка має 2 відмінності: перш за все, для функцій використовується ключове слово function. Крім того, оскільки функції завжди повертають результат, завершується рядок заголовка типом значення, що повертається. Таким чином, для оголошення функції ми отримуємо наступний синтаксис:
function <Ім'я> [(параметри)]: <тип результату>;
Повертає значення може бути будь-якого типу, крім файлового. Що стосується подальшого опису функції, то воно повністю аналогічно такому для процедур. Єдиним доповненням є те, що в тілі функції обов'язково має бути присутня хоча б одна операція присвоювання, в лівій частині якої повинно бути або ім'я функції, або ключове слово result. Саме цей вислів і визначає повертане функцією значення.
Розглянемо приклад функції, яка повертатиме куб числа, переданого їй як аргумент:
function cube (value: integer): integer;
result: = value * value * value;
}
Тут визначена функція, що має параметр value типу цілого числа, яке вона зводитьу третю ступінь шляхом триразового множення, і результат присвоюється спеціальної змінної result. Таким чином, щоб у будь-якому місці програми обчислити значення числа в 3-го ступеня, достатньо написати такий вираз:
x = cube (3);
В результаті виконання цього виразу змінної x буде присвоєно значення 27. Даний приклад ілюструє використання функцій в класичному випадку - для явного обчислення значення змінної. Однак функції можуть використовуватися у виразах і безпосередньо. Наприклад, можна поставити виклик функції cube в якомусь місці арифметичного виразу подібно звичайної змінної:
x: = a + cube (b) / 2;
Подібно процедурам, функції так само можуть бути вбудованими. Крім того, функції можуть включати в себе не тільки локальні функції, але і процедури. Втім, вірно і зворотне - в процедурах можуть використовуватися локальні функції. Наприклад, у тій же процедурі TriplePrint можна було б використовувати не процедуру, а функцію PrepareStr, яка б приймала рядок і повертала її ж в лапках:
procedure TriplePrint (str: string);
function PrepareStr (s: string): string;
begin
result: = '"' + s + '"';
end;
var
i: integer;
begin
for i: = 1 to 3 do begin
writeln (PrepareStr (str)); / / функція використана як змінна
end;
end;
Як уже зазначалося, крім спеціальної змінної result, у функціях можна використовувати іншу автоматично оголошується змінна, ім'я якої відповідає імені функції. Так, для функції cube ім'я змінної також буде cube:
function cube (value: integer): integer;
cube: = value * value * value;
}
В даному випадку обидва варіанти будуть вести себе повністю аналогічно. Розбіжності виявляються лише в тому випадку, якщо використовувати таку змінну у виразах в тілі функції. У подібних випадках слід використовувати саме змінну result, а не ім'я функції, оскільки іспольз0ованіі імені функції у виразі всередині самої функції призведе до її рекурсивному викликом.
2.Скаляні типи даних у С++
УС/C++ змінні повинні бути описані, а їхній тип специфікований до того, як ці змінні будуть використані. При описі змінних застосовується префіксний запис, при якому спочатку вказується тип, а потім — ім'я змінної. Якщо змінних одного типу є декілька, то вони можуть бути записані в одному рядочку через кому. Наприклад:
float weight; int exam_score, max, min, i; char ch, c, symbol;
З типом даних зв'язуються і набір визначених значень, і набір операцій, які можна виконувати над змінними даного типу. Змінні можна ініціалізувати в місці їхніх описів, наприклад:
int height = 71; float income = 26034.12;
Найпростішими скалярними типами, визначеними в С, є:
сhar — представляється як однобайтове ціле число; int — двобайтове ціле; long — чотирибайтове ціле; float — чотирибайтове раціональне; double — восьмибайтове раціональне;
Основні скалярні (прості) типи даних можна розділити на цілі та раціональні. Кожен тип даних характеризується діапазоном значень, обсягом пам’яті, який займає змінна цього типу та додатковими властивостями, таким як точність для чисел з плаваючою комою та можливість зберігати інформацію про знак числа для цілих чисел (додатні і від’ємні чи тільки додатні). цілі: unsigned char | 8 біт | 0..255 char | 8 біт | 128..127 enum | 16 біт | -32,768..32,767 unsigned int | 16 біт | 0..65,535 short int | 16 біт | -32,768..32,767 int | 16 біт | -32,768..32,767 unsigned long | 32 біт | 0..4,294,967,295 long | 32 біт | -2,147,483,648..2,147,483,647 дійсні: float | 32 біт | double | 64 біт | long double | 80 біт |
Порівняння з Delphi
Порівняльна таблиця типів даних:
Цілочисельні
Delphi C++ кількість байт
Byte unsigned char 1
ShortInt char 1
Word unsigned short int 2
SmallInt short int 2
Integer int 4
Cardinal unsigned int 4
Int64 (зі знаком) 8
(відсутній тип) unsigned long 8
Дійсні
Single float 4
Double double 8
Extended long double 10
Логічний тип
Boolean bool 1
Відсутність типу
Відсутнє поняття void