Материал: Розробка програмного забезпечення

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Розробка програмного забезпечення

КИЇВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ

ІМЕНІ ТАРАСА ШЕВЧЕНКА

ОПТИКО-МЕХАНІЧНИЙ КОЛЕДЖ








ЗВІТ З НАВЧАЛЬНОЇ ПРАКТИКИ

зі спеціальності 5.05010301 "Розробка програмного забезпечення"


Студентки 3-го курсу групи ПР-31

Жидейкіної Наталії Анатоліївни








КИЇВ - 2015

Зміст

Практична робота 1. "Програми лінійної структури"

Практична робота 2. "Програми розгалуженої структури"

Практична робота 3. "Програмна реалізація функцій для роботи з датою та часом"

Практична робота 4. "Програма для роботи з візуальними компонентами керування"

Практична робота 5. "Програми циклічної структури"

Практична робота 6. "Програми для роботи з масивами даних"

Практична робота 7. "Програми для роботи з рядками даних"

Практична робота 8. "Створення інтерфейсу користувача стандартними подіями"

Практична робота 9. "Програми для роботи з власними функціями"

Практична робота 10. "Програми для роботи зі структурами даних"

Практична робота 11. "Програми для роботи з файлами"

Практична робота 12. "Програми для роботи з графічної підсистемою"

Практична робота 13. "Програми для роботи з глобальними ідентифікаторами Screen, Mouse, Application"

Практична робота 14. "Програми для роботи зі стандартними діалоговими компонентами"

Практична робота 15. "Програма для роботи з аудіо- та відео- файлами"

Практична робота 1. "Програми лінійної структури"

Завдання 1.1

Дано значення температури TF в градусах Фаренгейта. Визначити значення тієї ж температури у гарадусах Цельсію TC = (TF - 32).

#pragma hdrstop

#pragma argsused

#ifdef _WIN32

#include <tchar.h>

#elsechar _TCHAR;

#define _tmain main

#endif

#include <stdio.h>

#include "iostream.h"_tmain(int argc, _TCHAR* argv[])

{tf,tc;<<"tf=";>>tf;=(tf-32)*5/9;<<"tc="<<tc<<endl;("pause");0;}


Завдання 1.2

Дано змінні A, B, C. Змінити їх значення, перемістивши вміст A у B, B у C, C у A. Вивести нові значення змінних.

#pragma hdrstop

#pragma argsused

#ifdef _WIN32

#include <tchar.h>

#elsechar _TCHAR;

#define _tmain main

#endif

#include <stdio.h>

#include "iostream.h"_tmain(int argc, _TCHAR* argv[])

{A, B, C, D;<<"A=";>>A;<<"B=";>>B;<<"C=";>>C;<<endl;=A;=C;=B;=D;<<"A="<<A<<endl;<<"B="<<B<<endl;<<"C="<<C<<endl;("pause");0;

}


Завдання 1.3

Знайти рішення (x, y) системи лінійних рівнянь виду:

 

заданої коефіцієнтами A1, B1, C1, A2, B2, C2, якщо відомо, що система має єдине рішення.

#pragma hdrstop

#pragma argsused

#ifdef _WIN32

#include <tchar.h>

#elsechar _TCHAR;

#define _tmain main

#endif

#include <stdio.h>

#include "iostream.h"_tmain(int argc, _TCHAR* argv[])

{A1, B1, C1, A2, B2, C2, x, y;<<"A1=";>>A1;<<"B1=";>>B1;<<"C1=";>>C1;<<"A2=";>>A2;<<"B2=";>>B2;<<"C2=";>>C2;<<endl;=(((A2*C1)-(A1*C2))/((B1*A2)-(B2*A1)));=((C1-(B1*y))/A1);<<"x="<<x<<endl;<<"y="<<y<<endl;("pause"); 0;

}


Завдання 1.4

Дано три точки A, B, C на числовій вісі. Точки C розміщена між точками A і B. Знайти добуток довжин сторін AC і BC.

#pragma hdrstop

#pragma argsused

#ifdef _WIN32

#include <tchar.h>

#elsechar _TCHAR;

#define _tmain main

#endif

#include <stdio.h>

#include "iostream.h"

#include "math.h"

#include "conio.h"_tmain(int argc, _TCHAR* argv[])

{Xa, Xb, Ya, Yb, Yc, Xc,D=0;<<"Xa=";>>Xa;<<"Xb=";>>Xb;<<"(Xa<Xc<Xb)\nXc=";>>Xc;<<"Ya=";>>Ya;<<"Yb=";>>Yb;<<"(Ya<Yc<Yb)\nYc=";>>Yc;<<endl;((((Xa<Xc)&&(Xc<Xb))||((Xa>Xc)&&(Xc>Xb)))&&(((Ya<Yc)&&(Yc<Yb))||((Ya>Yc)&&(Yc>Yb))))

{ D=(sqrt(pow((Xc-Xa),2)+pow((Yc-Ya),2)))*(sqrt(pow((Xc-Xb),2)+pow((Yc-Yb),2))) ;<<"D="<<D<<endl;("pause");}

{ cout<<"D="<<D<<endl;("pause"); }0;

}



Практична робота 2. "Програми розгалуженої структури"

Завдання 2.1

Дано тризначне число. Перевірити істинність висловлювання: "Всі цифри даного числа різні".

#pragma hdrstop

#pragma argsused

#ifdef _WIN32

#include <tchar.h>

#elsechar _TCHAR;

#define _tmain main

#endif

#include <stdio.h>

#include "iostream.h"_tmain(int argc, _TCHAR* argv[])

{num;<<"write three-digit number\nnumber=";

cin>>num;

if((num>99)&&(num<1000))

{

if (((num/100)!=((num/10)%10))&&((num/100)!=((num%10)%10))&&(((num/10)%10)!=((num%10)%10)))

{

cout<<"three-digit number includ different numbers\n";

}

else

cout<<"three-digit number includ same numbers\n" ;

}<<"you write wrong number";("pause");0;

}


Завдання 2.2

Дано ціле число, яке лежить в діпазоні 1-999. Винести його рядок - опис виду "парне двозночне число", "непарне тризначне число" і т.д.

#pragma hdrstop

#pragma argsused

#ifdef _WIN32

#include <tchar.h>

#elsechar _TCHAR;

#define _tmain main

#endif

#include <stdio.h>

#include "iostream.h"_tmain(int argc, _TCHAR* argv[])

{num;b=true;<<"write number in the range from 1 to 999 \nnumber=";>>num;

if((num>0)&&(num<10))

{cout<<"One-digit ";}

{if((num>9)&&(num<100))

{cout<<"Two-digit ";}

{if (((num>99)&&(num<1000)))

{cout<<"Three-digit ";}

{cout<<"you write wrong number\n";b=false;}

}

}(b)

{(num%2==0)

{ cout<<"pair number\n";}

{ cout<<"unpair number\n";}

}("pause");0;

}



Практична робота 3. "Програмна реалізація функцій для роботи з датою та часом"

Завдання 3.1

Використовуючи класс TDateTime (оголошенийв модулі systdate.h) розробіть застосування для роботи з датою і часом, яке демонструватиме всі можливі операції над ними.

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

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "systdate.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"*Form1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------__fastcall TForm1::Button1Click(TObject *Sender)

{DateTime = TDateTime::CurrentDateTime();week=DateTime.DayOfWeek();

switch(week)

{

case 1:{Label1->Caption ="monday"; break;}

case 2:{Label1->Caption ="tuesday"; break;}

case 3:{Label1->Caption ="wednesday"; break;}

case 4:{Label1->Caption ="thursday"; break;}

case 5:{Label1->Caption ="friday"; break;}

case 6:{Label1->Caption ="saturday"; break;}

case 7:{Label1->Caption ="sunday"; break;}

}->Caption ="DateTime "+DateTime.DateTimeString();->Caption ="Date "+DateTime.DateString();->Caption ="Time "+DateTime.TimeString();= TDateTime::FileDateToDateTime(FileAge(Application->ExeName));->Caption = "data and time of file: " + DateTime.DateTimeString();

}

//---------------------------------------------------------------------------__fastcall TForm1::Button2Click(TObject *Sender)

{>Terminate();

}

//---------------------------------------------------------------------------__fastcall TForm1::Button3Click(TObject *Sender)

{OldCursor = Screen->Cursor;

Screen->Cursor = crHourGlass;

TDateTime StartDateTime = TDateTime::CurrentDateTime();(int i = 0; i < 500000; i++)

{(TDateTime::CurrentDateTime().DateTimeString());>ProcessMessages();

}EndDateTime = TDateTime::CurrentDateTime();>Cursor = OldCursor;->Caption = (EndDateTime - StartDateTime).TimeString();

}

//---------------------------------------------------------------------------__fastcall TForm1::Button4Click(TObject *Sender)

{TDateTime DateTime = TDateTime::CurrentDateTime();

Label7->Caption = (DateTime++).DateTimeString();

}

//---------------------------------------------------------------------------__fastcall TForm1::Button5Click(TObject *Sender)

{TDateTime DateTime = TDateTime::CurrentDateTime();->Caption =(DateTime += 1.125).DateTimeString();

}

//---------------------------------------------------------------------------__fastcall TForm1::Timer1Timer(TObject *Sender)

{ String TimeFormat, DateFormat;(CheckBox1->Checked)

DateFormat = "dddddd ";

else

DateFormat = "ddddd ";(CheckBox2->Checked)= "hh:nn:ss";

else= "hh:nn";->Caption = TDateTime::CurrentDateTime().FormatString(DateFormat+TimeFormat);

}

//---------------------------------------------------------------------------__fastcall TForm1::CheckBox1Click(TObject *Sender)

{(CheckBox1->Checked)

Label9->Caption = TDateTime::CurrentDateTime().FormatString("dddddd:hh:nn");

else

Label9->Caption = TDateTime::CurrentDateTime().FormatString("ddddd:hh:nn");

}

//---------------------------------------------------------------------------__fastcall TForm1::CheckBox2Click(TObject *Sender)

{(CheckBox2->Checked)

Label9->Caption = TDateTime::CurrentDateTime().FormatString("dd.mm.yy.hh:nn:ss");//TimeFormat = "hh:nn:ss";

else->Caption = TDateTime::CurrentDateTime().FormatString("dd.mm.yy.hh:nn");// TimeFormat = "hh:nn";

}



Практична робота 4. "Програма для роботи з візуальними компонентами керування"

Завдання 4.1

За допомогою 2-х контейнерів Panel поділіть простір форми на дві частини (головна та нижня) з прив`язкою до її границь. На головній частині розмістіть кнопку Button. На нижній частині розиістіть компонент TrackBar. При зміні позицій "повзунка" TrackBar реалізуйте можливість зміни прозорості форми. При наведенні миші на кнопку Button реалізуйте можливість зміни її положення відносно форми з нможливістю виходу за межі форми.

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

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"*Form2;

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

__fastcall TForm2::TForm2(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------__fastcall TForm2::TrackBar1Change(TObject *Sender)

{

Form2->AlphaBlendValue=TrackBar1->Position;

}

//---------------------------------------------------------------------------__fastcall TForm2::Button1Click(TObject *Sender)

{t=Panel1->Height - Button1->Height;t2=Panel1->Width - Button1->Width;->Top=rand()%t;->Left=rand()%t2;}



Практична робота 5. "Програми циклічної структури"

Завдання 5.1

Дано два цілі числа A і B (A<B). Вивести в порядку зростання всі цілі числа, розташовані між A I B(включаючисамі числа A і B), а також кількість N цих чисел.

#pragma hdrstop

#pragma argsused

#ifdef _WIN32

#include <tchar.h>

#elsechar _TCHAR;

#define _tmain main

#endif

#include <stdio.h>

#include "iostream.h"_tmain(int argc, _TCHAR* argv[])

{A=0, B=0, N=0; bool boolean=true;<<"A<B\nA=";>>A;<<"B=";>>B;(A<B)

for(;A<=B;A++)

{

cout<<A<<" ";

N++;

}

{cout<<"Error: A>B";boolean = false;}<<endl;(boolean)

{<<"N="<<N<<"\n";

}("pause");0;

}


Завдання 5.2

.Обчислити значення змінної z =  . Вивести значення a, b, z.

a =

 

де k - кількість інтерацій.

#pragma hdrstop

#pragma argsused

#ifdef _WIN32

#include <tchar.h>

#elsechar _TCHAR;

#define _tmain main

#endif

#include <stdio.h>

#include "iostream.h"

#include "math.h"f1(double k)

{f=0;=(((cos((2.1*k))*sin(abs(k)))/0.15)-5.8);f;

}f2(double k)

{f=0;=abs(((sin(k))/(3.12))+cos(pow(k,2)));f;

}_tmain(int argc, _TCHAR* argv[])

{a=0,b=0,z=0;k=0;

cout<<"k=";

cin>>k;

for(int i=0;i<=k;i+=2)

{

a=f1(i);

if(i%8==0)

b=f2(i);

z=abs((12*a)-b);

}

cout<<"b="<<b<<"\na="<<a<<"\nz="<<z<<endl;

system("pause");

return 0;

}


Завдання 5.3

Спортсмен почав тренерування, пробіг у перший день 10 км. Кожен наступний день він збільшував довжину пробігу на Р відсотків від пробігу попереднього дня (0 < P < 50). За заданим Р визначити, після якого дня сумарний пробіг спортсмена за всі дні перевищить 200 км, і вмвести знайдену кількість днів К та сумарний пробіг S на екран.

#pragma hdrstop

#pragma argsused

#ifdef _WIN32

#include <tchar.h>

#elsechar _TCHAR;

#define _tmain main

#endif

#include <stdio.h>

#include "iostream.h"_tmain(int argc, _TCHAR* argv[])

{P=0,K=1; double S=10;<<"(0<P<50)\nP=";>>P;((0<P)&&(P<50))

{

for(;S<=200;++K)

S+=P*(S/100);

cout<<"S="<<S<<" K="<<K<<"\n";

system("pause");

}0;

}


Завдання 5.4

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

#pragma hdrstop

#pragma argsused

#ifdef _WIN32

#include <tchar.h>

#elsechar _TCHAR;

#define _tmain main

#endif

#include <stdio.h>

#include "iostream.h"_tmain(int argc, _TCHAR* argv[])

{sum=0,number=0,i=1; double sr=0;<<"number=";

cin>>number;

{

sum+=number;

sr=sum/i;

cout<<"sum="<<sum<<" sr="<<sr<<endl;

cout<<"number=";

cin>>number;

i++;

}(number!=0);("pause");0;

}


Завдання 5.5

Написати порграму, якаперевіряє, чи є введене користувачем число простим.

#pragma hdrstop

#pragma argsused

#ifdef _WIN32

#include <tchar.h>

#elsechar _TCHAR;

#define _tmain main

#endif

#include <stdio.h>

#include "iostream.h"_tmain(int argc, _TCHAR* argv[])

{number=0;boolean=true;<<"number=";>>number;(int i = 2; i < number; i++)

{

if((number%i!=0)&&(number!=2)&&(number!=0))

{

cout<<"number is not prime\n";

boolean=false;

break;

}

}(boolean)

{ cout<<"number is prime";}("pause");0;

}



Практична робота 6. "Програми для роботи з масивами даних"

Завдання 6.1

Дано масив з N цілих чисел. Написати програму, яка змінить масив таким чином, щоб спочатку розміщювались всі числа, що не дорівнюють нулю, а в кінці нулі.

#pragma argsused

#ifdef _WIN32

#include <tchar.h>

#elsechar _TCHAR;

#define _tmain main

#endif

#include <stdio.h>

#include "iostream.h"

#include "string.h"_tmain(int argc, _TCHAR* argv[])

{n=0,N=0;<<"n=";>>n;N=n;mas[1000];(int i=0;i<n;i++)

{<<"mas["<<i<<"]=";>>mas[i];

}<<endl;(int i=0;i<n;i++)

{(mas[i]==0)

{

for(int l=i;l<n;l++)

{

mas[l]=mas[l+1];

} mas[n-1]=0;--n;

}

}(int i=0;i<N;i++)

{<<"mas["<<i<<"]="<<mas[i]<<endl;

//cin>>mas[i];

}("pause");0;

}



Завдання 6.2

Написати програму, яка в цілочисленому масиві знайде і виведе на екран розмір найдовшої послідовності однакових чисел, що йдуть підряд, а також це повторюване число.

#pragma hdrstop

#pragma argsused

#ifdef _WIN32

#include <tchar.h>

#elsechar _TCHAR;

#define _tmain main

#endif

#include <stdio.h>

#include "iostream.h"_tmain(int argc, _TCHAR* argv[])

{n=0,I=1,MAX=0,NUMBER;<<"n=";>>n;mas[1000];(int i=0;i<n;i++)

{<<"mas["<<i<<"]=";>>mas[i];

}<<endl;=mas[0];(int i=1;i<n;i++)

{(mas[i]==mas[i-1])

{I++;}

{if(I>=MAX)

{=I;=mas[i-1];=0;

}

{I=0;}

}

}<<"NUMBER="<<NUMBER<<" MAX="<<MAX<<endl;("pause");0;

}



Завдання 6.3

Дано дві квадратні матриці A розміром NxK MxK. Обчислити матрицю C за формулою: C = 8B *A*B - A - B4

#pragma hdrstop

#pragma argsused

#ifdef _WIN32

#include <tchar.h>

#elsechar _TCHAR;

#define _tmain main

#endif

#include <stdio.h>

#include "iostream.h"

#include "conio.h"_tmain(int argc, _TCHAR* argv[])

{

int k;A[100][100];B[100][100];B28[100][100];AB28[100][100];B2[100][100];B4[100][100];C[100][100];AB4[100][100];<<"A:\n";

{for(int i=0;i<5;i++)

{(int j=0;j<5;j++)

{;[i][j]=rand()%10;<<A[i][j]<<" ";

// cout<<"A["<<i<<"]["<<j<<"]=";

//cin>>A[i][j];

}cout<<endl;

} cout<<"\n";<<"B:\n";(int i=0;i<5;i++)

{(int j=0;j<5;j++)

{

//cout<<"B["<<i<<"]["<<j<<"]=";

//cin>>B[i][j];;[i][j]=rand()%10;<<B[i][j]<<" ";

}cout<<endl;

} system("pause");

}<<"B2:\n";(int i=0;i<5;i++)

{(int j=0;j<5;j++)

{k=0;

for(int t=0;t<5;t++)

{

k+= B[i][t]*B[t][j];

} B2[i][j]=k; cout<< B2[i][j]<<" ";

} } cout<<endl;<<"B28:\n";(int i=0;i<5;i++)

{(int j=0;j<5;j++)

{

B28[i][j]=B2[i][j]*8; cout<< B28[i][j]<<" ";

} cout<<"\n\n";

}<<"AB28:\n";(int i=0;i<5;i++)

{(int j=0;j<5;j++)

{k=0;(int t=0;t<5;t++)

{

k+= A[i][t]*B28[t][j];