Помогите реализовать в виде подпрограмм пункты 1,2,3
Код:
#include <vcl.h>
#pragma hdrstop
#include<vector.h>
#include "Unit1.h"
using namespace std;
typedef vector< pair< double, double > > t_num_pairs_list;
t_num_pairs_list lst, lst1, lst2;
int i;
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{ int k;
k=StrToInt(Edit1->Text);
srand( time( 0 ) );
for ( int i( k ); --i; )
{
lst1.push_back( make_pair( rand( ) % 10, rand( ) % 10 ) );
lst2.push_back( make_pair( rand( ) % 10, rand( ) % 10 ) );
}
for ( int i( 0 ), end( lst1.size( ) ); i < end; ++i )
{ Memo1->Lines->Add(FloatToStr( lst1[i].first ) + "," + FloatToStr( lst1[i].second )) ; }
for ( int i( 0 ), end( lst2.size( ) ); i < end; ++i ){
Memo2->Lines->Add(FloatToStr( lst2[i].first ) + "," + FloatToStr( lst2[i].second )); }
}
1. void __fastcall TForm1::Button2Click(TObject *Sender)
{
Memo3->Lines->Add("Пары списка №1, первая координата которых встречается как вторая координата у пар списка №2:");
for ( int i( 0 ), end( lst1.size( ) ); i < end; ++i )
{
for ( int k( 0 ), end( lst2.size( ) ); k < end; ++k )
{
if ( lst1[i].first == lst2[k].second )
{
lst.push_back( lst1[i] );
break;
}
}
}
for ( int i( 0 ), end( lst.size( ) ); i < end; ++i ) {
Memo3->Lines->Add(FloatToStr( lst[i].first ) + "," + FloatToStr( lst[i].second )) ; }
}
2. void __fastcall TForm1::Button3Click(TObject *Sender)
{
Memo3->Lines->Add(" Пары (х, у) списка №1, встречающиеся в виде (у, х) в списке №2:");
for ( int i( 0 ), end( lst1.size( ) ); i < end; ++i )
{
for ( int k( 0 ), end( lst2.size( ) ); k < end; ++k )
{
if ( lst1[i].first == lst2[k].second && lst1[i].second == lst2[k].first )
{
lst.push_back( lst1[i] );
break;
}
}
}
for ( int i( 0 ), end( lst.size( ) ); i < end; ++i ) {
Memo3->Lines->Add(FloatToStr( lst[i].first ) + "," + FloatToStr( lst[i].second )) ; }
}
3. void __fastcall TForm1::Button4Click(TObject *Sender)
{ Memo3->Lines->Add("Пары (х,у), где х < у списка №1");
for ( int i( 0 ), end( lst1.size( ) ); i < end; ++i )
{
if ( lst1[i].first < lst1[i].second )
{
lst.push_back( lst1[i] );
}
}
for ( int i( 0 ), end( lst.size( ) ); i < end; ++i ) {
Memo3->Lines->Add(FloatToStr( lst[i].first ) + "," + FloatToStr( lst[i].second )) ; }
}
void __fastcall TForm1::Button5Click(TObject *Sender)
{
Memo1->Clear();
Memo2->Clear();
Memo3->Clear();
lst1.clear();
lst2.clear();
lst.clear();
ShowMessage("Списки очищенны!");
}