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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2009, 18:44   #11
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
По умолчанию

Добрый вечер.
При нажатии на кнокпу1. значения из массива выводятся в график.


Код:
//Вывожу свой массив в график
for(int i=0; i<32; i++)
 Chart2->Series[0]->Add(massivec[i].chastotko,alfavit[i],clBlack);

//в massivec[i].chastotko у меня записаны частоты для каждой из букв в алфавите. В alfavit[i] - сами буквы
Я хочу сделать следующее:

При нажатии на кнопку2. График должен измениться таким образом.
Буквы должны сдивнуться на 1 "разряд" левее. Т.е. позиция станет -1. (и значения тоже должны сдвинутся!)

к примеру буква "В" встанет на место "Б", буква "А" встанет на место "Я" и т.п.

При следующем нажатии на кнопку2, все еще раз сдвигается. И так сколько угодно.

Подскажите плз, возможно ли вообще так сделать.
Мозг просто взрывается уже. В программе 1200 строк)))
Kycaka вне форума Ответить с цитированием
Старый 29.05.2009, 18:53   #12
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
tmp = нулевой элемент массива
цикл от 0 до N-2
 i-й элемент = (i+1)-й элемент
(N-1)-й элемент = tmp
После этого удаляем серию из чарта и добавляем заново (уже новый массив)

Как-то так.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 29.05.2009, 19:32   #13
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
По умолчанию

сделал)) получилось вот так:

Код:
int sdvig=0;
void __fastcall TForm1::Button2Click(TObject *Sender)
{
sdvig++;
if (sdvig==32)
	sdvig=0;

Chart1->Series[0]->Clear();

int i=0;
int d=0;
char temp1;
double temp2=0;
while (d<32)
	{
		temp1 = chastot[d].bukva;
		temp2 = chastot[d].chislo;
		i=d;
		i = i-sdvig;
		if (i<0)
			i=i+32;
		massiv[i].bukva = temp1;
		massiv[i].chislo = temp2;
		d++;
	}

for(int i=0; i<32; i++)
 Chart1->Series[0]->Add(massiv[i].chislo,massiv[i].bukva,clBlack);
}

Опять спасибо!!))
Kycaka вне форума Ответить с цитированием
Старый 29.05.2009, 19:45   #14
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

М.. Это точно работает? У меня, конечно, нет вашего полного кода, чтобы знать, но я имел в виду вот это:
Код:
void __fastcall TForm1::Button2Click(TObject *Sender)
{

Chart1->Series[0]->Clear();

char temp1;
double temp2;

temp1 = massiv[0].bukva;
temp2 = massiv[0].chislo;
for(int i=0; i<31; i++)
  massiv[i] = massiv[i+1];
massiv[31].chislo = temp2;
massiv[31].bukva = temp1;


for(int i=0; i<32; i++)
 Chart1->Series[0]->Add(massiv[i].chislo,massiv[i].bukva,clBlack);
}
Просто какой-то подозрительный у вас цикл.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 29.05.2009, 19:56   #15
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
По умолчанию

ДА! работает 100%.
я делал как, у меня есть массив с нормальными данными, потом создавал в кнопки еще один массив. и по нажатию кнопки производился цикл, в котором все перегоняется во 2ой массив с сдивом.

Так же должет быть "ИФ" т.к. 0-1=-1 - получается ошибка.
к -1 мы должны прибавить 32 (длину алфавита) = 31. (это если мы сдвигаем А, она появляется в конце)

Так же должен быть счетчик кнопки. Т.е. нажимаем 1 раз. сдвигается на -1. нажимаем еще раз, сдвигается на -2 уже. (но массив у нас создается каждый раз какбы на нормалых позициях, т.е. сдвиг должен увеличиваться).

Короче я уже сам запутался)) но работает все точно!)) Фух, написал свою программу наконец полностью!)) Спасибо за помощь!!! ))
Kycaka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графики kr00t Общие вопросы Delphi 0 14.05.2009 17:29
Графики в БД ~LiS~ БД в Delphi 1 05.06.2008 22:19
графики ZhekON Помощь студентам 6 10.04.2008 18:14
Графики delphin100 Общие вопросы Delphi 6 16.03.2008 10:40