Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2011, 13:44   #1
Алиса Ростова
 
Аватар для Алиса Ростова
 
Регистрация: 03.12.2011
Сообщений: 7
По умолчанию Указатели

Как оформить эту же работу только с указателями?
Код:
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
int length = 0;
double* A = NULL;
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
Memo1->Clear();
}
void fillArray(double* a, int n)
{
A[0] = 0.9162907319;
for(int i = 1; i < n; i++)
A[i] = -A[i-1]* 1.053734342+1.099548878;
}
void bubbleSort(double* a, int n)
{
bool* pt = new bool;
*pt = true;
double *ptmp = new double;
while (*pt)
{
*pt = false;
for (int j = 0; j < n - 1; j++)
{
if ( *(a + j) < *(a + j + 1) )
{
*ptmp = *(a + j);
*(a + j) = *(a + j + 1);
*(a + j + 1) = *ptmp;
*pt = true;
}
}
}
delete pt;
delete ptmp;
}
void printArray(double* a, int n)
{
for (int i = 0; i < n; i++)
Form1->Memo1->Lines->Add("A[ " + IntToStr(i) + " ] = " +
FloatToStr(a[i]));
}
void diapazon(double* a, int n)
{
bool t = true;

//while (t)
//{
t = false;
for (int i = 0; i < length - 1; i++)
{

if ((A[i] > 0.8) && (A[i] < 1))
{
        double vr = A[i];
        A[i] = A[n];
        A[n] = vr;
        t = true;
        n++;
}
}
}
//}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (RadioButton1->Checked)
{
length = StrToInt(Edit1->Text);
if (A !=NULL)
delete []A;
A = new double[length];
Memo1->Lines->Add("---- Çàïîëíåíèå ----");
fillArray(A, length);
}
if (RadioButton2->Checked)
{
Memo1->Lines->Add("---- Îáìåííàÿ ñîðòèðîâêà ----");
bubbleSort(A, length);
}
if (RadioButton3->Checked)
{
Memo1->Lines->Add("---- Äèàïîçîí ----");
diapazon(A, length);
}
printArray(A, length);
}

Последний раз редактировалось Stilet; 04.12.2011 в 14:07.
Алиса Ростова вне форума Ответить с цитированием
Старый 04.12.2011, 14:08   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А тут и так работа с указателями ведется:
Цитата:
double *ptmp = new double;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.12.2011, 21:09   #3
Алиса Ростова
 
Аватар для Алиса Ростова
 
Регистрация: 03.12.2011
Сообщений: 7
По умолчанию

Тогда подскажите как сделать без указателей!!!
Алиса Ростова вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Указатели(С++) Scarletred Помощь студентам 0 05.04.2010 22:53
Указатели(С++) Scarletred Помощь студентам 0 05.04.2010 22:50
C++ Указатели KLOP Помощь студентам 4 06.03.2010 20:27
Указатели AquaticSoul Общие вопросы C/C++ 5 22.12.2009 15:13
[C] массивы, указатели, двойные указатели. Iggel Общие вопросы C/C++ 5 05.05.2009 12:39