
22.02.2009, 23:11
|
|
Новичок
Регистрация: 22.02.2009
Сообщений: 1
С нами:
9060374
Репутация:
0
|
|
Помогите кто можэт , задание написать программу в С++builder 6 обробатывающую вектор, добавление нового элемента, удаление элемента, изменение, поиск максимального и минимального значения , в принцепи все ужэ зделал но препод спалил что удаление элемента работает каряво а в принцепи не работает, когда удаляется элемент то поиск минимального значения всегда показывает 0, то есть элемент получается не удаляется а заменяется на ноль , ПОМОГИТЕ кто можэт что нужно дописать чтоб нормально удалялся элемент!!! .
Код:
//---------------------------------------------------------------------------
#include <iostream>
# include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int i, j, k, n, is_null;
float tmp;
char c;
FILE *fp;
float **mas;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
is_null=1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RazmerClick(TObject *Sender)
{
for (i=0;i<SG1->ColCount;i++)
for (j=0;j<SG1->RowCount;j++)
{SG1->Cells[i][j]="";
SG1->Cells[i][j].Delete(i,1);
}
SG1->ColCount = StrToInt(Edit1->Text);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MaxClick(TObject *Sender)
{
if (is_null!=1) //î÷èñòèòü ïàìÿòü îò ñòàðîãî ìàññèâà
{
for(i=0; i<n; i++) delete[] mas[i];
delete[] mas;
}
//íîâîå êîëè÷åñòâî ýë-òîâ
n = StrToInt(Edit1->Text);
mas = new float *[n];
for (i = 0; i < n; i++)
mas[i] = new float [n];
//ñ÷èòûâàíèå èç String Grid 1 â ìàññèâ
for (i=0; i<n; i++)
for (j=0; j<n; j++)
{ if (SG1->Cells[i][j]!="")
mas[j][i]=StrToFloat(SG1->Cells[i][j]);
else mas[j][i]=0;
}
//ïîèñê ìàêñèìàëüíîãî çíà÷åíèÿ
i=0;
for (j=0; j<n; j++)
{
if (mas[i][j]>tmp)
tmp = mas[i][j];
}
//âûâîä â String Grid 2
Edit2->Text = FloatToStr(tmp);
//ðåçóëüòàò ïîèñêà â òåêñòîâûé ôàéë
fp = fopen("max.txt", "w");
{
fprintf(fp," %.2f ",tmp);
fprintf(fp,"\n");
}
fclose(fp);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
if (is_null!=1) //åñëè ïàìÿòü ïîä ìàññèâ âûäåëåíà, îñâîáîäèòü
{
for(i=0; i<StrToInt(Edit1->Text); i++) delete[] mas[i];
delete[] mas;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MinClick(TObject *Sender)
{
if (is_null!=1) //î÷èñòèòü ïàìÿòü îò ñòàðîãî ìàññèâà
{
for(i=0; i<n; i++) delete[] mas[i];
delete[] mas;
}
//íîâîå êîëè÷åñòâî ýë-òîâ
n = StrToInt(Edit1->Text);
mas = new float *[n];
for (i = 0; i < n; i++)
mas[i] = new float [n];
//ñ÷èòûâàíèå èç String Grid 1
for (i=0; i<n; i++)
for (j=0; j<n; j++)
{ if (SG1->Cells[i][j]!="")
mas[j][i]=StrToFloat(SG1->Cells[i][j]);
else mas[j][i]=0;
}
//ïîèñê ìèíèìàëüíîãî çíà÷åíèÿ
i=0;
for (j=0; j<n; j++)
{
if (mas[i][j]<tmp)
tmp = mas[i][j];
}
//âûâîä â Edit3
Edit3->Text = FloatToStr(tmp);
//ðåçóëüòàò ïîèñêà â òåêñòîâûé ôàéë
fp = fopen("min.txt", "w");
{
fprintf(fp," %.2f ",tmp);
fprintf(fp,"\n");
}
fclose(fp);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
|
|
|