Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Прошу помочь исправить программу

Ответить
Настройки темы
C/C++ - Прошу помочь исправить программу

Новый участник


Сообщения: 1
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: Drongo
Дата: 12-01-2013
Описание: Без матов общаемся.
Изображения
Тип файла: jpg IMG_3720.jpg
(228.0 Kb, 12 просмотров)
Тип файла: jpg IMG_3980.jpg
(428.9 Kb, 9 просмотров)
ПОМОГИТЕ ПОЖАЛУЙСТА, кто шарит в С++, иначе информатика меня *****......
Задание на фото!... Вот код, который у меня получился, но строка нужных чисел почему то появляется при нажатии заполнить массив и галочке - отображать эту строку, а нужно чтобы на галочке и вывести результат ( тоесть в кнопке, которая отвечает за расчет в какой ячейке число Б и сколько четных... 2) еще одна ошибка, - строка нужные числа отображжается неправильно, тоесть тупо в нужные записывается каждое второе число, а нужно чтобы она каждый элемент массива делила на , проверяла четность, и если оно четное, то записывала это число в строку нужные - под самим числом....
Помогите прошу вас, все облазил, никак не могу сделать, вот код который у меня: (ПС: Буду благодарен, если сразу примет, небольшим денежным вознаграждением)

Код: Выделить весь код
#include <vcl.h>
#include <math.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CSPIN"
#pragma resource "*.dfm"
TForm1 test;
int Pos_B=0;// положение ячейки с значением b в сетке
float GridMass[50];//Массив с данными из StrGrid
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject Sender)
{
randomize();
strg->Cells[0][0] = "№";
strg->Cells[0][1] = "Значение:";
strg->Cells[0][2] = "Нужные числа:";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject Sender)
{
Button2->Enabled=true;
// Очистка при перегенирации сетки
Label6->Caption=" ";
Label7->Caption=" ";
//-----------------------------
if (CheckBox1->Checked)
{
strg->RowCount= 3;
}

int SPIN_Val = cspin->Value;
int Val_A = StrToInt(Edit2->Text);

strg->ColCount= SPIN_Val+1;
for(int i=1;i<=SPIN_Val+1;i++)//Заполняем Сетку
{
strg->Cells[i][0] = IntToStr(i);
GridMass[i-1]= rand()%(2*(Val_A)+1) -Val_A; // Генерируем случайное число тз промежутка от -а до а
strg->Cells[i][1] = GridMass[i-1];

}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject Sender)
{
int K=0;
int Val_B =StrToInt( Edit1->Text );
int SPIN_Val = cspin->Value;
for(int i=1;i<SPIN_Val+1;i++)
{
if (GridMass[i-1]== Val_B)
{
Pos_B = i;
i= SPIN_Val+1;
}

}

if(!(Pos_B==0))
{
Label5->Visible=true;
Label7->Visible=true;
Label7->Caption=IntToStr(Pos_B);
for (int i=1;i< Pos_B;i++)
{

if ((fmod(i,2)== 0))
{
K++;
strg->Cells[i][2] = GridMass[i-1];
}

}

Label6->Caption=IntToStr(K);
}else {Label6->Caption="Числа b в сетке не встретелось";}




Впринцепе прога написана, но строка нужные числа никак работать не хочет!!!

Отправлено: 21:08, 11-01-2013

 

Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


GaM1er, Объясни условие, я его просто не понимаю, меня интересует такой момент, а именно наперед, что это такое или как вообще?
Цитата:
найти количество чётных элементов одномерного массива до первого встреченого числа равного наперед заданому числу b
В примере приведи.

Я так понял. Есть массив со значениями
Код: Выделить весь код
4, 5, 2, 5, 1, 5, 6, 4, 3
Мы вводим число b = 1 и производим проверку до первого встреченого элемента массива, который будет равен 1? Тоесть
Код: Выделить весь код
4, 5, 2, 5

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 03:42, 12-01-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Drongo, надо найти количество четных элементов до элемента, равного b. b считается заранее определенным.
Т.е. если b = 15 , то
Код: Выделить весь код
1, 3, 35, 56, 22, 54, 15, 2, 78
Цитата GaM1er:
GridMass[i-1]= rand()%(2*(Val_A)+1) -Val_A; »
Зачем нужна плюс единица "+1" ?
Код: Выделить весь код
void __fastcall TForm1::Button2Click(TObject Sender)
{
int K=0;
int Val_B =StrToInt( Edit1->Text );
int SPIN_Val = cspin->Value;

//нашли позицию b. Пусть криво, но нашли
for(int i=1;i<SPIN_Val+1;i++)
{
  if (GridMass[i-1]== Val_B)
  {
    Pos_B = i;
    i= SPIN_Val+1;
  }//if
}//for 

// Если b нашлась, то
if(!(Pos_B==0))
{
//лейболы пропускаем
    Label5->Visible=true;
    Label7->Visible=true;
    Label7->Caption=IntToStr(Pos_B);

//это еще что за цикл? 

    for (int i=1;i< Pos_B;i++)
    {
      if ((fmod(i,2)== 0)) //причем здесь остаток от деления ИНДЕКСА массива? Вот тут и есть вторая ошибка. 
     // массив GridMass[_]. Вот его и дели.  
     {
        K++;
        strg->Cells[i][2] = GridMass[i-1];
      }//if
    }//for
    Label6->Caption=IntToStr(K);
}
else {Label6->Caption="Числа b в сетке не встретелось";}
Цитата GaM1er:
Вот код, который у меня получился, но строка нужных чисел почему то появляется при нажатии заполнить массив и галочке - отображать эту строку, а нужно чтобы на галочке и вывести результат ( тоесть в кнопке, которая отвечает за расчет в какой ячейке число Б и сколько четных...»
Ошибку в логике управления ищи сам. Предложенный код здесь ни при чем.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:43, 12-01-2013 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Прошу помочь исправить программу

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Система - Прошу помочь с удалением IIS. tovit Программное обеспечение Windows 5 02-06-2023 21:07
Прошу помочь с VPN Saidjan ISA Server / Microsoft Forefront TMG 4 29-12-2011 16:56
[решено] Прошу помочь evm180 Лечение систем от вредоносных программ 23 24-02-2009 08:35
Очень прошу помочь... aviss Выбор отдельных компонентов компьютера и конфигурации в целом 6 09-08-2008 23:26




 
Переход