Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.04.2008, 16:43
kobezzza kobezzza вне форума
Прохожий
 
Регистрация: 28.03.2008
Сообщения: 13
Репутация: 10
По умолчанию Плиз хелп с лабой)

Значит задание такое: из элементов двух массивов,которое больше некоторого числа составить третий, вывести его на экран, посчитать колличество элементов, их произведение и чтобы кол-во столбцов в StringGrid динамически менялось от кол-ва элементов третьего массива

Я делал вот так:

Код:
Const
N=10;M=15;Z=25;
var
  Form1: TForm1;
  C: array [1..N] of integer;
  T: array [1..M] of integer;
  B: array [1..Z] of integer;
implementation

{$R *.dfm}

procedure TForm1.goClick(Sender: TObject);
var i,p,d:integer;
    chislo:integer;

begin
  label1.Caption:='';
  label2.Caption:='';
  chislo:=StrToInt(edit1.Text);
  p:=1;
  d:=0;
  for i:=1 to N do
  begin
  C[i]:=1+random(N);
    if (C[i]>chislo) then
      begin
        B[i]:=C[i];
      end;
  end;
  for i:=1 to M do
  begin
    T[i]:=1+random(M);
    if (T[i]>chislo) then
      begin
        B[i+N]:=T[i];
      end;
  end;
  with StringGrid1 do
  begin
    for i:=1 to Z do
    begin
        d:=d+1;
        p:=p*B[i];
        ColCount:=d;
        Cells[i-1,0]:=IntToStr(b[i]);
    end;
    label1.Caption:='Всего элементов: '+IntToStr(d);
    label2.Caption:='Произведение элементов массива: '+IntToStr(p);
  end;
end;
end.

Но в результате в StringGrid выводятся '0',а если прописать условие на фильтрацию этих нулей, то выводятся пустые ячейки((( Помогите плз) Заранее благодарен!
Ответить с цитированием
  #2  
Старый 14.04.2008, 19:29
Аватар для Zylex
Zylex Zylex вне форума
Прохожий
 
Регистрация: 06.04.2008
Адрес: Сыктывкар
Сообщения: 33
Репутация: 10
По умолчанию

А где у вас Randomize?:
__________________
Программирование - стиль жизни
Ответить с цитированием
  #3  
Старый 14.04.2008, 19:51
kobezzza kobezzza вне форума
Прохожий
 
Регистрация: 28.03.2008
Сообщения: 13
Репутация: 10
По умолчанию

Да он тут по сути и ненужен, рандомайз даёт рандомное значение при каждом повторном запуске цикла, а тут этого не требуется, вопрос остаётся в силе, как вычеркнуть пустый ячейки из StringGrid
Ответить с цитированием
  #4  
Старый 14.04.2008, 20:18
Аватар для Zylex
Zylex Zylex вне форума
Прохожий
 
Регистрация: 06.04.2008
Адрес: Сыктывкар
Сообщения: 33
Репутация: 10
По умолчанию

Цитата:
Сообщение от kobezzza
Да он тут по сути и ненужен, рандомайз даёт рандомное значение при каждом повторном запуске цикла, а тут этого не требуется, вопрос остаётся в силе, как вычеркнуть пустый ячейки из StringGrid

Код:
        StringGrid1.ColCount := Число Столбцов;
        StringGrid1.RowCount := Число Строк;

Попробоуй ниписать так
__________________
Программирование - стиль жизни
Ответить с цитированием
  #5  
Старый 14.04.2008, 21:14
kobezzza kobezzza вне форума
Прохожий
 
Регистрация: 28.03.2008
Сообщения: 13
Репутация: 10
По умолчанию

Да не ето нето, ето указывает колличество строк и столбцов, а м нужно чтобы пустая ячейка вычёркивалась, например 21 _ 45 -> 21 45 , хотя я не понимаю и за чего ето происходит(
Ответить с цитированием
  #6  
Старый 16.04.2008, 13:08
MegaPiha MegaPiha вне форума
Активный
 
Регистрация: 24.03.2008
Сообщения: 227
Версия Delphi: Delphi 7
Репутация: 30
По умолчанию

Я бы так это делал.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    StringGrid1: TStringGrid;
    Edit1: TEdit;
    Button1: TButton;
    StringGrid2: TStringGrid;


    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;


Const
N=10;M=15;Z=25;
var
  Form1: TForm1;
  C: array [0..N] of integer;
  T: array [0..M] of integer;
  B: array [0..Z] of integer;
implementation

{$R *.dfm}




procedure TForm1.Button1Click(Sender: TObject);
var i,p,d,max:integer;
    chislo:integer;

begin
  StringGrid1.Refresh;
  label1.Caption:='';
  label2.Caption:='';
  chislo:=StrToInt(edit1.Text);
  StringGrid1.Cells[0,1]:='C';
  StringGrid1.Cells[0,2]:='T';

  for i:=1 to N do
  begin
     C[i]:=random(100);
     StringGrid1.Cells[i,1]:=IntToStr(C[i]);
  end;

  for i:=0 to M do
  begin
      T[i]:=random(100);
      StringGrid1.Cells[i+1,2]:=IntToStr(T[i]);
  end;

  d:=-1;
  for i:=0 to N do
  begin
    if (C[i]>chislo) then
    begin
        d:=d+1;
        B[d]:=C[i];
     end;
  end;

  for i:=0 to M do
  begin
    if (T[i]>chislo) then
    begin
        d:=d+1;
        B[d]:=T[i];
     end;
  end;
  StringGrid2.ColCount:=d;

  StringGrid2.Cells[0,1]:='B';
  for i:=0 to d do
  begin
       StringGrid2.Cells[i+1,1]:=IntToStr(B[i]);
  end;

  p:=1;
  for i:=0 to d do
  begin
       p:=p*b[i];
  end;
 label1.Caption:='Âñåãî ýëåìåíòîâ: '+IntToStr(d);
 label2.Caption:='Ïðîèçâåäåíèå ýëåìåíòîâ ìàññèâà: '+IntToStr(p);

end;


procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
  For i:=0 to M-1 do
      StringGrid1.ColWidths[i]:=Trunc(StringGrid1.Width /M);
end;

end.
Вложения
Тип файла: zip kobezza.zip (8.4 Кбайт, 4 просмотров)
Ответить с цитированием
  #7  
Старый 16.04.2008, 20:12
kobezzza kobezzza вне форума
Прохожий
 
Регистрация: 28.03.2008
Сообщения: 13
Репутация: 10
По умолчанию

Пасиб))ты мне во всём помогаешь, биг спс)
Ответить с цитированием
  #8  
Старый 16.04.2008, 22:29
kobezzza kobezzza вне форума
Прохожий
 
Регистрация: 28.03.2008
Сообщения: 13
Репутация: 10
По умолчанию

Понял свою ошибку, она оказалось ппц тупой
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:26.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter