Тема: Реалізація циклічних алгоритмів
Мета: вивчити циклічні оператори while, do - while, for, навчитися реалізовувати циклічні алгоритми. Вивчивши прості засоби відладки програм в середовищі C++ Builder, скласти і відлагодити програму.
Перелік використних компонентів.
|
RadioGroup
|
|
||||||||||
|
|
|
||||||||||
Властивості Align, Constraints, Cursor, Enabled, Font, Height, Hint, ShowHint, Left, ParentColor, ParentFont, ParentShowHint, Name, PopupMenu, Top, Transparent, Visible, Width і деякі інші є загальними для багатьох компонентов.тся загальними для багатьох компонентів .
Для кожного x, що змінюється від a до b з кроком h, знайти значення функції Y(x), суми S(x) і |Y(x) - S(x)| і вивести у вигляді таблиці. Значення a, b, h і n вводяться з клавіатури. Оскільки значення S(x) є рядом розкладання функції Y(x), при правильному рішенні значення S і Y для заданого аргументу x (для тестових значень початкових даних) повинні співпадати в цілій частині і в перших двох-чотирьох позиціях після десяткової точки.
Роботу програми перевірити для a = 0,1; b = 1,0; h = 0,1; значення параметра n вибрати залежно від завдання.
13 Варіант
Програмній код продукту
#include <vcl.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#pragma hdrstop
#pragma argsused
int main(int argc, char* argv[])
{
double a, b, x, h, r, s;
int n, zn = - 1, k;
puts("Input a, b, h, n");
scanf("%lf%lf%lf%d", &a, &b, &h, &n);
for(x = a; x<=b; x+=h){
r = s = 1;
for(k =1; k<=n; k++){
r=zn*r*pow((2*x),2*k)/2*k;
s+=r;
}
printf("\n x= %8.2lf sum= %8.5lf", x, s);
}
puts("\nPress any key ... ");
getch();
return 0;
}
Скріншот працюючого додатку

Додаток Варіант 13
Програмний код продукту
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include<math.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Memo1->Clear();
Memo1->Lines-> Add("Лабараторна робота 4");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double rez,i;
int n,k;
if(RadioGroup1->ItemIndex == -1)
{
ShowMessage("Виберіть завдання");
return;
}
try{
i=StrToFloat(Edit1 -> Text);
}
catch(EConvertError &e)
{
ShowMessage("Перевірте правильність данних");
return;
}
try
{
switch(RadioGroup1-> ItemIndex)
{
case 0 :
for(n=1;n<i;n++)
{
rez=((pow(7,n))-(pow(2,n)))/(pow(14,n));
}
break;
case 1 :
for(n=1;n<i;n++)
{
rez=(pow(n,3))*tan((2*3,14)/(pow(5,n)));
}
break;
case 2 :
for(n=1;n<i;n++)
{
rez=(pow(4,n))/(pow(((n+1)/n),n*n));
}
break;
case 3 :
for(n=1;n<i;n++)
{
//k=pow((2*n+3),7);
rez=(1/(pow((pow((2*n+3),7)),1/6)));
}
break;
case 4 :
for(n=1;n<i;n++)
{
rez=((n+2)/(n*(n+4)));
}
break;
case 5 :
for(n=1;n<i;n++)
{
rez=(pow(5,n))/(pow(n,5));
}
break;
case 6 :
for(n=1;n<i;n++)
{
rez=(pow(-1,(n-1)))/(2*n);
}
break;
case 7 :
for(n=1;n<i;n++)
{
rez=(pow(-1,(n+1)))*(1/(pow((n+1),3/2)));
}
break;
}
}
catch(EConvertError &e)
{
ShowMessage("Помилка");
return;
}
Memo1-> Lines-> Add("Результат =" +FloatToStrF(rez,ffFixed,5,3));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Memo1->Clear();
}
//---------------------------------------------------------------------------
Скріншот працюючого додатку

Контрольні питання
Що називають керуючим оператором мови С?
Серед великої кількості операторів можна виділити оператори, що керують ходом обчислень. Такі оператори називають керуючими операторами (інструкціями).
Дайте визначення циклу.
Цикл — різновид керуючої конструкції у високорівневих мовах програмування, призначена для організації багаторазового виконання набору інструкцій (команд). Також циклом може називатися будь-яка багатократно виконувана послідовність команд, організована будь-яким чином (наприклад, із допомогою умовного переходу).
Які циклічні оператори ви можете назвати?
while, do - while, for
Які види циклів наявні в мові програмування С? Які оператори пов'язані з кожним з видів циклів?
Цикл з після умовою(do-while), передумовою (while), цикл з лічильником (for).
Поясніть принци роботи циклічного оператора for. Намалюйте блок-схему роботи оператора.
|
for (i = 0; i < 10; ++i) { ... тіло циклу }
|
|
Поясніть принци роботи циклічного оператора while. Намалюйте блок-схему роботи оператора.
|
// форма записи цикла while while (/*условие продолжения цикла while*/) { /*блок операторов*/; /*управление условием*/; }
|
|
Поясніть принци роботи циклічного оператора do...while. Намалюйте блок-схему роботи оператора.
|
// форма записи оператора цикла do while: do // начало цикла do while { /*блок операторов*/; } while (/*условие выполнения цикла*/); // конец цикла do while
|
|