Файл: Звіт до лабораторної роботи #3.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 07.08.2024

Просмотров: 27

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Звіт до лабораторної роботи №3

Тема: Визначення функції. Звернення до функції.

Мета: Ознайомитися Технологією створення програмних продуктів та освіжити в пам’яті функції та звернення до функції

Склад групи:

  • Матвієнко Богдан

  • Максименко Роман

  • Могила Андрій

  • Прилєпа Олександр

  • Шастун Владислав

Завдання: :

1

  • Скласти програму для знаходження найменшого загального кратного трьох натуральних чисел.

  • Написати програму для знаходження суми більшого і меншого з трьох чисел.

  • Обчислити площу правильного шестикутника із стороною а, використовуючи підпрограму обчислення площі трикутника.

2

  • Дані натуральні числа K і N. Скласти програму формування масиву А, елементами якого є числа, сума цифр яких рівна K і які не більше N.

  • Дано три квадратні матриці А, В, C n-го порядку. Вивести на друк ту з них, норма якої найменша. Пояснення. Нормой матриці назвемо максимум з абсолютних величин її елементів.

  • Два натуральні числа називаються «дружніми», якщо кожне з них дорівнює сумі всіх дільників (окрім його самого) іншого числа (наприклад, числа 220 і 284). Знайти всі пари «дружніх чисел», які не більше даного числа N.

  • Два прості числа називаються «близнятами», якщо вони відрізняються один від одного на 2 (наприклад, 41 і 43). Надрукувати всі пари «близнят» з відрізrка [n, 2n], де n — задане натуральне число більше 2

3

  • Натуральне число, в записі якого n цифр, називається числом Армстронга, якщо сума його цифр, піднесена до ступеня n, дорівнює самому числу. Знайти всі числа Армстронга від 1 до k.

  • Написати програму, яка знаходить і виводить на друк всі чотиризначні числа вигляду, для яких виконується:

а) а, b, c, d — різні цифри;

б) ab - cd = а + b + c + d.

  • Знайти всі прості натуральні числа, не перевершуючі n, двійковий запис яких є палиндром, тобто читається однаково зліва направо і справа наліво.

  • Знайти всі натуральні n-значні числа, цифри в яких утворюють строго зростаючу послідовність (наприклад, 1234, 5789).

4

  • Написати програму, що визначає суму n-значних чисел, що містять лише непарні цифри. Визначити також, скільки парних цифр в знайденій сумі.

  • Дано натуральне число n. Знайти всі числа Мерсена менші n. (Просте число називається числом Мерсена, якщо воно може бути представлене у вигляді 2p — 1, де р — теж просте число. Наприклад, 31 = 25 — 1 — число Мерсена.)

  • Вирішити завданя, використовуючи рекурсивну підпрограму: підрахувати кількість цифр в заданому натуральному числі.


Приклади роботи з програмою:

Код програми:

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "math.h"

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

int NSK(int,int);

int NSD(int,int);

float max(float,float);

float min(float,float);

float Plosha(float);

float Apofema(float);

int index=0,razm=3;

int pods(int sum, int number)

{

return !number ? sum : pods(sum + 1, number / 10);

}

int podc(int number)

{

return !number ? 1 : pods(0, number);

}

int prv(int n)

{

register int d;

for (d=2; d<=n/2; d++)

if (n%d==0)

return 0;

return 1;


}

int NSD(int x,int y)

{

while(x!=y)

{

if(x<y) y-=x;

else x-=y;

}

return x;

}

int NSK(int x, int y)

{

return x*y/NSD(x,y);

}

float max(float x,float y)

{

if(x>y)

return x;

else

return y;

}

float min(float x,float y)

{

if(x<y)

return x;

else

return y;

}

float Plosha(float x)

{

return 0.5*x*Apofema(x);

}

float Apofema(float x)

{

return x/(2*tan(3.14/6));

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

int k,i,n,c,s=0;

index=0;

k=StrToInt(Edit1->Text);

n=StrToInt(Edit2->Text);

if (n>5000) {ShowMessage("Число n занадто велике"); Edit2->SetFocus(); return;}

if (k>=n || k>30 || k<=0) {ShowMessage("Число k не входить в допустимі межі"); Edit1->SetFocus(); return;}

//for (i=k;i<n;i++) {

i=k;

while (i<n) {

c=i%10; s=c;

c=(i/10)%10; s=s+c;

c=(i/100)%10; s=s+c;

c=(i/1000)%10; s=s+c;

if (s == k) {StringGrid1->ColCount=index+1;StringGrid1->Cells[index][0]=IntToStr(i);

index++; }

if (index>18) StringGrid1->Height=39;

i++;

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)

{

if (IsCharAlpha(Key) || Key=='.' || Key==',' || Key=='-') Key=0;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit2KeyPress(TObject *Sender, char &Key)

{

if (IsCharAlpha(Key) || Key=='.' || Key==',' || Key=='-') Key=0;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit3KeyPress(TObject *Sender, char &Key)

{

if (IsCharAlpha(Key) || Key=='.' || Key==',' || Key=='-') Key=0;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::StringGrid2KeyPress(TObject *Sender, char &Key)

{

if (IsCharAlpha(Key) || Key=='.' || Key==',') Key=0;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::StringGrid3KeyPress(TObject *Sender, char &Key)

{

if (IsCharAlpha(Key) || Key=='.' || Key==',') Key=0;


}

//---------------------------------------------------------------------------

void __fastcall TForm1::StringGrid4KeyPress(TObject *Sender, char &Key)

{

if (IsCharAlpha(Key) || Key=='.' || Key==',') Key=0;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Edit1->Clear();

Edit2->Clear();

for (int i=0;i<index;i++)

StringGrid1->Cells[i][0]="";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)

{

for (int i=0;i<razm;i++)

for(int j=0;j<razm;j++)

{ StringGrid2->Cells[i][j]="";

StringGrid3->Cells[i][j]="";

StringGrid4->Cells[i][j]="";

StringGrid5->Cells[i][j]="";

}

Edit3->Clear();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

StringGrid2->ColCount=razm;

StringGrid3->ColCount=razm;

StringGrid4->ColCount=razm;

StringGrid5->ColCount=razm;

StringGrid2->RowCount=razm;

StringGrid3->RowCount=razm;

StringGrid4->RowCount=razm;

StringGrid5->RowCount=razm;

randomize;

for (int i=0;i<razm;i++)

for(int j=0;j<razm;j++) {

StringGrid2->Cells[i][j]=IntToStr(random(20)-9);

StringGrid3->Cells[i][j]=IntToStr(random(20)-9);

StringGrid4->Cells[i][j]=IntToStr(random(20)-9);

}

Button3->Enabled=false;

Memo1->Clear();

Memo2->Clear();

RadioGroup1->ItemIndex=0;

Edit7->Hide();Edit8->Hide();Edit9->Hide();Edit10->Hide();Edit11->Hide();Edit12->Hide();Edit13->Hide();Edit14->Hide();

Label11->Hide();Label12->Hide();Label13->Hide();Label14->Hide();Label15->Hide();Label16->Hide();Label17->Hide();Label18->Hide();Label19->Hide();

Button13->Hide();Button14->Hide();Button16->Hide();

Label23->Caption="";

Label27->Caption="";

Label26->Visible=false;

Label24->Visible=false;

Label25->Visible=false;

Memo3->Clear();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

razm=StrToInt(Edit3->Text);

StringGrid2->ColCount=razm;

StringGrid3->ColCount=razm;

StringGrid4->ColCount=razm;

StringGrid5->ColCount=razm;

StringGrid2->RowCount=razm;

StringGrid3->RowCount=razm;


StringGrid4->RowCount=razm;

StringGrid5->RowCount=razm;

for (int i=0;i<razm;i++)

for(int j=0;j<razm;j++) {

StringGrid2->Cells[i][j]=IntToStr(random(20)-9);

StringGrid3->Cells[i][j]=IntToStr(random(20)-9);

StringGrid4->Cells[i][j]=IntToStr(random(20)-9);

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)

{

int i,j;

for (i=0;i<razm;i++)

for(j=0;j<razm;j++) {

if (StringGrid2->Cells[i][j]=="" || StringGrid3->Cells[i][j]=="" || StringGrid4->Cells[i][j]=="") {

ShowMessage("Заповніть масив");

return; }

}

int max1=StrToInt(StringGrid2->Cells[0][0]),max2=StrToInt(StringGrid3->Cells[0][0]),max3=StrToInt(StringGrid4->Cells[0][0]);

// int a[razm],b[razm],c[razm];

for (i=0;i<razm;i++)

for(j=0;j<razm;j++) {

if (StrToInt(StringGrid2->Cells[i][j])>max1) max1=StrToInt(StringGrid2->Cells[i][j]);

if(StrToInt(StringGrid3->Cells[i][j])>max2) max2=StrToInt(StringGrid3->Cells[i][j]);

if(StrToInt(StringGrid4->Cells[i][j])>max3) max3=StrToInt(StringGrid4->Cells[i][j]);

}

if (max1<max2 && max1<max3)

for (i=0;i<razm;i++)

for(j=0;j<razm;j++)

StringGrid5->Cells[i][j]=StringGrid2->Cells[i][j];

else if (max2<max1 && max2<max3)

for (i=0;i<razm;i++)

for(j=0;j<razm;j++)

StringGrid5->Cells[i][j]=StringGrid3->Cells[i][j];

else

for (i=0;i<razm;i++)

for(j=0;j<razm;j++)

StringGrid5->Cells[i][j]=StringGrid4->Cells[i][j];

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit3Change(TObject *Sender)

{

if (Edit3->Text.Length()>0) Button3->Enabled=true;

else Button3->Enabled=false;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button7Click(TObject *Sender)

{

Edit4->Clear();

Memo1->Clear();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Memo1KeyPress(TObject *Sender, char &Key)

{

Key=0;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit4KeyPress(TObject *Sender, char &Key)

{

if (IsCharAlpha(Key) || Key=='.' || Key==',' || Key=='-') Key=0;

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------