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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2015, 16:38   #1
vasilych
 
Регистрация: 23.01.2015
Сообщений: 9
По умолчанию работа с динамическими массивами с++ builder

здравствуйте, здесь код программы, которая вычисляет сумму элементов массива после наименьшего. подскажите, как можно сделать, что бы в stringride появлялся измененный массив ( с первым - наименьшим элементом и до конца ).
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include "time.h"
#include "Unit1.h"
#include "math.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 int n = 7;
void __fastcall TForm1::FormCreate(TObject *Sender)
{
        randomize();                                                 //включает генератор случайных чисел
        Edit1->Text=IntToStr(n);
        StringGrid1->ColCount=n;                                     //задает кол-во столбцов матрицы
        for(int i=0; i<n;i++)
                StringGrid1->Cells[i][0] = IntToStr(random(21)-10);  //изначальное заполнение матрицы случайными числами

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        n=StrToInt(Edit1->Text);                                   //значение кол-ва столбцов из Edit1
        if(n>7){
                ShowMessage("Максимальное количество эллементов - 7, значение будет изменено на допустимое! ");     //
                n=5;                                               //при значении n<5 выдает ошибку и изменяет на 5
                Edit1->Text = "7";                                 //
        }
        StringGrid1->ColCount=n;                                   //
        for(int i=0; i<n;i++)                                      //заполнение случайными числами
                StringGrid1->Cells[i][0]=IntToStr(random(21)-10);  //


}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int i, min, sum=0, a[10];
for(i=0; i<n;i++)
              a[i]=StrToInt(StringGrid1->Cells[i][0]);

min=a[0];
for(i=1; i<n;i++)                                                //если "a" с индексом "i"
if (a[i]<min)                                                    //меньше минимального,
 {
                                                                 //a[i] становится минимальным
   min=a[i];                                                     //и сумма = 0
   sum=0;
   {
 if(min==a[n])
 Label3->Caption = "summa elementov ravna 0 ";}                  //
 }                                                               //
else                                                             //в противном случае
 {
   sum+=a[i];


Label3->Caption = "summa elementov = "+IntToStr(sum);
Label3->Show() ;
}
}


void __fastcall TForm1::Button3Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
vasilych вне форума Ответить с цитированием
Старый 03.02.2015, 17:43   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Код:
StringGrid->Cells[i][0] = FloatToStr(arr[i]);
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 03.02.2015 в 17:47.
Smitt&Wesson вне форума Ответить с цитированием
Старый 03.02.2015, 18:32   #3
vasilych
 
Регистрация: 23.01.2015
Сообщений: 9
По умолчанию

а можете поточнее описать, куда это вставлять, и какие библиотеки подключать, заранее спасибо.
vasilych вне форума Ответить с цитированием
Старый 03.02.2015, 18:39   #4
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

В обработчик Батона2, после нахождения минимального элемента.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 03.02.2015, 20:06   #5
vasilych
 
Регистрация: 23.01.2015
Сообщений: 9
По умолчанию

компилятор не воспринимает "arr", нужно ли подключать дополнительные библиотеки? Заранее спасибо.
vasilych вне форума Ответить с цитированием
Старый 03.02.2015, 20:48   #6
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от vasilych Посмотреть сообщение
компилятор не воспринимает "arr", нужно ли подключать дополнительные библиотеки? Заранее спасибо.
Это имя массива. У Вас оно a[i]. Я по-привычке написал массив - array. Никаких дополнительных библиотек подключать не нужно.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 03.02.2015, 22:47   #7
vasilych
 
Регистрация: 23.01.2015
Сообщений: 9
По умолчанию

огромное спасибо
vasilych вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с динамическими массивами spectrum988 Помощь студентам 12 26.09.2014 14:51
Работа с динамическими массивами Heng Помощь студентам 1 08.10.2013 21:18
Lazarus (Работа с динамическими массивами) Dionis46 Lazarus, Free Pascal, CodeTyphon 2 15.02.2012 21:26