Предмет:
Тип роботи:
Звіт з практики
К-сть сторінок:
55
Мова:
Українська
justify;">#include <fstream>
int _tmain(int argc, _TCHAR* argv[])
{
int n=0,i=0,j=0;
//float a;
int *mas = new int[100];
fstream F;
F.open("D:\\input.txt");
if (F)
{
while (!F.eof())
{
F>>mas[i];
i++;
} n=--i;
F.close();
fstream fl(ios_base::trunc);
fl.open("D:\\output.txt",ios_base::app);
for (i=0;i<=n;i++)
{
if(mas[i]!=0)
{fl<<mas[i];
fl<<" ";}
else j++;
}
while(j!=0)
{fl<<0;j--;}
fl.close();
}
else cout<<" fale is missed "<<endl;
return 0;
}
ПРАКТИЧНА РОБОТА 12
Програми для роботи з графічної підсистемою
Задання 12.1
Користуючись компонентами мови програмування С++ написати програму для виведення на екран наступних фігур.
Розміри: Фігура 1 =101 , Фігура 2 = 87, Фігура 3 = 89, Координати Х, У=30,50.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double a = 101;
double x =50;
double y =30;
PaintBox2 -> Repaint();
PaintBox3 -> Repaint();
PaintBox1 -> Canvas-> Rectangle(x,y,a+x,a+y);
PaintBox1 -> Canvas-> MoveTo(x,y);
PaintBox1 -> Canvas-> LineTo(a+x,a+y);
PaintBox1 -> Canvas-> MoveTo(a+x,y);
PaintBox1 -> Canvas-> LineTo(a-x,a+y);
PaintBox1 -> Canvas-> MoveTo((a/2)+x,y);
PaintBox1 -> Canvas-> LineTo((a/2)+x,a+y);
PaintBox1 -> Canvas-> MoveTo(a+x,(a/2)+y);
PaintBox1 -> Canvas-> LineTo(x,(a/2)+y);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
double a = 87;
double b =a/3;
double x =50;
double y =30;
PaintBox1 -> Repaint();
PaintBox3 -> Repaint();
PaintBox2 -> Canvas-> MoveTo(x,(a/4)+y);
PaintBox2 -> Canvas-> LineTo(b+x,(a/4)+y);
PaintBox2 -> Canvas-> MoveTo(x,(a/2)+y);
PaintBox2 -> Canvas-> LineTo(b+x,(a/2)+y);
PaintBox2 -> Canvas-> MoveTo(x,(a*0.75)+y);
PaintBox2 -> Canvas-> LineTo(b+x,(a*0.75)+y);
PaintBox2 -> Canvas-> Rectangle(b+x,y,b*2+x,a+y);
PaintBox2 -> Canvas-> MoveTo(b*2+x,(a/2)+y);
PaintBox2 -> Canvas-> LineTo(a+x,(a/2)+y);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{double a =89;
double x =50;
double y =30;
PaintBox1 -> Repaint();
PaintBox2 -> Repaint();
PaintBox3 -> Canvas-> MoveTo(x,(a/4)+y);
PaintBox3 -> Canvas-> LineTo(x+(a/3),(a/4)+y);
PaintBox3 -> Canvas-> MoveTo(x+(2*a/3),(a/4)+y);
PaintBox3 -> Canvas-> LineTo(x+a,(a/4)+y);
PaintBox3 -> Canvas-> MoveTo(x+(a/3),y);
PaintBox3 -> Canvas-> LineTo(x+(a/3),(a/2)+y);
PaintBox3 -> Canvas-> MoveTo(x+(2*a/3),y);
PaintBox3 -> Canvas-> LineTo(x+(2*a/3),(a/2)+y);
}
//---------------------------------------------------------------------------
Завдання 12.2
Підготувати програму на мові С++ для виведення на екран двох рядків тексту:
Software development
<Your name and surname>
Рядки вказаного тексту надрукувати двома гарнітурами, для кожної з яких задати два різних кеглі з наступними кутами нахилу відносно горизонтальної вісі: 00, 900 .
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
PaintBox1 -> Canvas -> Rectangle(0,0,200,100);
PaintBox1 -> Canvas -> Font -> Size = 10;
PaintBox1 -> Canvas -> Font -> Name= "Arial";
PaintBox1 -> Canvas -> TextOutW(2,2,"Software development");
PaintBox1 -> Canvas -> Font -> Size = 15;
PaintBox1 -> Canvas -> Font -> Name= "Times New Roman";
PaintBox1 -> Canvas -> TextOutW(2,22,"Zhideikina Nata");
}
//---------------------------------------------------------------------------
Завдання 12.3
Написати програму для побудови на екрані наступних фігур:
#include <vcl.h>
#pragma hdrstop
#define PI 3.1415926535897932
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{double a = 50;
PaintBox1 -> Canvas ->MoveTo(100,100);
PaintBox1 -> Canvas ->LineTo(100-a*sin(36*PI/180),100-a*cos(36*PI/180));
PaintBox1 -> Canvas ->LineTo(100-a*sin(36*PI/180)+a*sin(72*PI/180),100-a*cos(36*PI/180)-a*cos(72*PI/180));
PaintBox1 -> Canvas ->LineTo(100+a+a*sin(36*PI/180),100-a*cos(36*PI/180));
PaintBox1 -> Canvas ->MoveTo(100,100);
PaintBox1 -> Canvas ->LineTo(100+a,100);
PaintBox1 -> Canvas ->LineTo(100+a+a*sin(36*PI/180),100-a*cos(36*PI/180));
PaintBox1 -> Canvas ->LineTo(100+a+a*sin(36*PI/180)+a*sin(36*PI/180),100-a*cos(36*PI/180)+a*cos(18*PI/180));
PaintBox1 -> Canvas ->LineTo(100+a+(a*sin(18*PI/180))+a*sin(72*PI/180),100+a*(cos(18*PI/180))+a*cos(72*PI/180));
PaintBox1 -> Canvas ->MoveTo(100+a,100);
PaintBox1 -> Canvas -> LineTo(100+a+(a*sin(18*PI/180)),100+a*(cos(18*PI/180)));
PaintBox1 -> Canvas -> LineTo(100+a+(a*sin(18*PI/180))+a*sin(72*PI/180),100+a*(cos(18*PI/180))+a*cos(72*PI/180));
PaintBox1 -> Canvas -> LineTo(100+a+(a*sin(18*PI/180))+a*sin(72*PI/180)-a*sin(36*PI/180),100+a*(cos(18*PI/180))+a*cos(72*PI/180)+a*cos(36*PI/180));
PaintBox1 -> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-(a*cos(36*PI/180)),100+a*(cos(18*PI/180))+(a*sin(36*PI/180))+a);
PaintBox1 -> Canvas -> MoveTo(100+a+(a*sin(18*PI/180)),100+a*(cos(18*PI/180)));
PaintBox1 -> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-(a*cos(36*PI/180)),100+a*(cos(18*PI/180))+(a*sin(36*PI/180)));
PaintBox1 -> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-(a*cos(36*PI/180)),100+a*(cos(18*PI/180))+(a*sin(36*PI/180))+a);
PaintBox1 -> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-(a*cos(36*PI/180))-a*cos(18*PI/180),100+a*(cos(18*PI/180))+(a*sin(36*PI/180))+a-a*sin(18*PI/180));
PaintBox1 -> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-2*(a*cos(36*PI/180))-a*sin(72*PI/180),100+a*(cos(18*PI/180))+a*cos(72*PI/180));
PaintBox1 -> Canvas -> MoveTo(100+a+(a*sin(18*PI/180))-(a*cos(36*PI/180)),100+a*(cos(18*PI/180))+(a*sin(36*PI/180)));
PaintBox1 -> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-2*(a*cos(36*PI/180)),100+a*(cos(18*PI/180)));
PaintBox1 -> Canvas -> LineTo(100+a+(a*sin(18*PI/180))-2*(a*cos(36*PI/180))-a*sin(72*PI/180),100+a*(cos(18*PI/180))+a*cos(72*PI/180));
PaintBox1 -> Canvas -> LineTo(100-a*sin(36*PI/180)-a*sin(36*PI/180),100-a*cos(36*PI/180)+a*cos(18*PI/180));
PaintBox1 -> Canvas -> LineTo(100-a*sin(36*PI/180),100-a*cos(36*PI/180));
PaintBox1 -> Canvas -> MoveTo(100+a+(a*sin(18*PI/180))-2*(a*cos(36*PI/180)),100+a*(cos(18*PI/180)));
PaintBox1 -> Canvas -> LineTo(100,100);}
//---------------------------------------------------------------------------
ПРАКТИЧНА РОБОТА 13
Програми для роботи з глобальними ідентифікаторами Screen, Mouse, Application
Завдання 13.1
Створити застосування, яке:
Користуючись глобальним об’єктом Screen при своєму завантаженні використовуватиме перевірку розміра екрана монітору і при перевищені формою цього розміру автоматично прирівнюватиме до нього, а також виводитиме у компонент ComboBox1 список всіх шрифтів даного комп’ютера.
Користуючись глобальним об’єктом Mouse у StatusBar виводити поточні координати курсора миші відносно форми та екрану, а також при натисканні на кнопку використовуватиме реверсну зміну кнопок миші.
Користуючись властивостями компоненту ApplicationEvents при наведені мишею на будь-якийкомпонент на формі у StatusBar виводився текст підказки закладений у властивість Hint кожного компонента.
При натисненні клавіші NumLock, CapsLock та Insert вивести у Statusbar стан кнопок.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
this->Width = this->Width > Screen->Width ? Screen->Width : this->Width;
this->Height = this->Height > Screen->Height ? Screen->Height : this->Height;
ComboBox1->Items->Assign(Screen->Fonts);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
{POINT pos;
GetCursorPos(&pos);
StatusBar1->Panels->Items[0]->Text = "Экран: x=" + FloatToStr(pos.x) + " y=" + FloatToStr(pos.y);
StatusBar1->Panels->Items[1]->Text = "\nФорма: x=" + FloatToStr(pos.x-Left) + \
" y=" + FloatToStr(pos.y-Top);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
static bool b( false );
SwapMouseButton( b = !b );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ApplicationEvents1ActionExecute(TBasicAction *Action, bool &Handled)
{ StatusBar1->Panels->Items[2]->Text = Application->Hint;}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key, TShiftState Shift)
{
switch (Key)
{
case VK_CAPITAL:
StatusBar1->Panels->Items[3]->Text = (::GetKeyState(VK_CAPITAL)) ? "CapsLock" : "bbb";
break;
case VK_NUMLOCK:
StatusBar1->Panels->Items[3]->Text = (::GetKeyState(VK_NUMLOCK)) ? "NumLock" : "bbb";
break;
case VK_SCROLL:
StatusBar1->Panels->Items[3]->Text = (::GetKeyState(VK_SCROLL)) ? "ScrollLock" : "bbb";
break;
}
}
//---------------------------------------------------------------------------
ПРАКТИЧНА РОБОТА 14
Програми для роботи зі стандартними діалоговими компонентами
Завдання 14.1
За допомогою компонентів FontDialog, PrintDialog, PrintSetupDialog реалізувати підтримку форматованого тексту в компоненті RichEdit з можливістю друку його вмісту.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
//---------------------------------------------------------------------------
void __fastcall TForm1::N1Click(TObject *Sender)
{ if (PrintDialog1->Execute()) {
Printer()->BeginDoc();
for(int i = 0;i<RichEdit1->Lines->Count;i++)
Printer()->Canvas->TextOut(100,100+(RichEdit1->Font->Size+80)*i,RichEdit1->Lines->Strings[0]) ;
Printer()->EndDoc(); }}
//---------------------------------------------------------------------------
void __fastcall TForm1::N3Click(TObject *Sender)
{
PrinterSetupDialog1->Execute();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N2Click(TObject *Sender)
{
if(FontDialog1 -> Execute()) RichEdit1->Font = FontDialog1->Font ;
}
//---------------------------------------------------------------------------
ПРАКТИЧНА РОБОТА 15
Програма для роботи з аудіо- та відео- файлами
Завдання 15.1
Створити застосування, яке програватиме аудіо- та відео- файли. Файли завантажуються в програму за допомогою компонента TOpenDialog.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
MediaPlayer1->Close();
if(OpenDialog1->Execute()) {
MediaPlayer1->FileName = OpenDialog1->FileName;
MediaPlayer1->Open();
MediaPlayer1->Display=Panel1;
MediaPlayer1->Play();
} }
//---------------------------------------------------------------------------