ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 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;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------