Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C++Builder 6 StringGrid, C++Builder 6 StringGrid 
:(
    Опции темы
zeuzo
  Дата 17.4.2013, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 17.4.2013

Репутация: нет
Всего: нет



Всем привет.
Помогите кто сможет, нужно перевести код с делфи на C++Builder 6
Код

unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;
 
type
  TForm1 = class(TForm)
    sg1: TStringGrid;
    sg2: TStringGrid;
    edCol: TEdit;
    edRow: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    btStr: TButton;
    btBgn: TButton;
    procedure btBgnClick(Sender: TObject);
    procedure btStrClick(Sender: TObject);
    procedure Poisk(var a:Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  n,m: Integer; //столбцы, строки
 
implementation
 
{$R *.dfm}
 
procedure TForm1.btBgnClick(Sender: TObject);
//подготовка таблиц и заполнение 1-й
var
  i,j: Integer;
begin
  n:=strtoint(edCol.Text);
  m:=strtoint(edRow.Text);
  sg1.ColCount:=n; //столбцы
  sg1.RowCount:=m; //строки
  sg2.ColCount:=n; //столбцы
  randomize;
  for i:= 0 to n-1 do //столбцы
    for  j:= 0 to m-1 do //строки
      sg1.Cells[i,j]:=inttostr(random(100)-50);
end;
 
procedure TForm1.btStrClick(Sender: TObject);
//перебор столбцов
var
  i: Integer;
begin
  for i:= 0 to n-1 do //столбцы
  Poisk(i);
end;
 
procedure TForm1.Poisk(var a:Integer);
//обработка в столбце
var
  j: Integer;
begin
  for  j:= m-1 downto 0 do //строки
    if StrToInt(sg1.Cells[a,j])<0 then
      begin
        sg2.Cells[a,0]:= sg1.Cells[a,j];
        exit;
      end
      else sg2.Cells[a,0]:= '0';
end;
 
end.



а вот само задание:

Задача состоит в том что надо создать 2-ухмерный массив в стринггрид.(размеры массива вводишь сам, числа рандомные от -50 до 20)
 Потом нужно чтоб из каждого столбца было выбрано последнее отрицательное число и было занесеноо в следущую стринггрид и получить 1-номерный массив(только из отрицательных чисел).
PM MAIL   Вверх
wolver17
Дата 20.4.2013, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 15.5.2011

Репутация: 1
Всего: 1



Код

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include <stdlib.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
  int n,m; //столбцы, строки
  void Poisk(int);

TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::btBgnClick(TObject *Sender)
{
//ïîäãîòîâêà òàáëèö è çàïîëíåíèå 1-é
  n=StrToInt(edCol->Text);
  m=StrToInt(edRow->Text);
  Form1->sg1->ColCount=n; //ñòîëáöû
  sg1->RowCount=m; //ñòðîêè
  sg2->ColCount=n; //ñòîëáöû
  randomize;
  for(int i=0;i<n;i++) //ñòîëáöû
  {
    for(int j=0;j<m-1;j++) //ñòðîêè
    {
      sg1->Cells[i][j]=IntToStr(random(100)-50);
    }
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btStrClick(TObject *Sender)
{
//ïåðåáîð ñòîëáöîâ
  for(int i=0;i<n-1;i++) //ñòîëáöû
  Poisk(i);
}
//---------------------------------------------------------------------------

void Poisk(int a)
{
//îáðàáîòêà â ñòîëáöå
  for(int j=m-1;j>0;j--)//ñòðîêè
  {
    if (StrToInt(Form1->sg1->Cells[a][j])<0)
    {
        Form1->sg2->Cells[a][0]=Form1->sg1->Cells[a][j];
        exit(0);
    }
    else
        Form1->sg2->Cells[a][0]= '0';
  }
}
//---------------------------------------------------------------------------



Вот тебе все файлы проекта, синтаксически всё перевёл, ну а дальше если есть логические ошибки - выискуй сам по дебагу smile .

Это сообщение отредактировал(а) wolver17 - 20.4.2013, 20:32

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  temp.7z 310,45 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0570 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.