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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2010, 00:08   #1
west.by
Подтвердите свой е-майл
 
Регистрация: 16.05.2010
Сообщений: 54
По умолчанию поиск нечетных элементов в delphi

ребята набросал софтинку-но не хватает опыта.
необходимо сохранить суть и синтаксик но
-отладить мою калечную сортировку нечетных чисел-вывести их рандомно в стринггрид 2
-в первом поле(начальном куда руками инфа вводится-стринггрид1) оставить только четные соответсвенно удаля пустые клетки /нечетные перенеся во второй стринггрид

Пример
1 2 3 4 5 6 7 8 9 10 11 12 13 14
жмем кнопку
1 3 5 7 9 11 13
2 4 6 8 10 12 14



Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    BitBtn1: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  n,k,i:Integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
n:=3;
Edit1.Text:=IntToStr(n);
StringGrid1.ColCount:=n;
StringGrid2.ColCount:=n;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
n:=StrToInt(Edit1.Text);
StringGrid1.ColCount:=n;
StringGrid2.ColCount:=n;

end;

procedure TForm1.Button2Click(Sender: TObject);
Var a,b : Array of Char;  	//преобразование массива
k,i : Integer;
begin
    SetLength(a,n);	   	  
  SetLength(b,n);            //и результирующий b массивы
  For k:=0 to n-1 Do         //считывание значений массива а 
  a[k]:=StringGrid1.Cells[k,0][1]; //из StringGrid1
  i:=0;
  For k:=0 To n-1 do
     if a[k] in ['0'..'9'] Then Begin 
b[i]:=a[k]; 	
Inc(i); 
 End;
  For k:=0 To n-1 Do
     if Not(a[k] in ['0'..'9']) Then Begin  // тут сортирую нечетных
      if a[k] mod 2 <> 0 then k:= k+1;   ///  тут ошибка!
 b[i]:=a[k];
 Inc(i); 
 End;
  For k:=0 To n-1 Do         //вывод массива b в StringGrid2
     StringGrid2.Cells[k,0]:=b[k];
   a:=Nil;  b:=Nil;  		   //освобождение памяти
end;



end.
зы: я был бы благолдарен вам если бы вы еще показали мне как сделать на выбор заполнение рандомными числами от 1 до 100-при этом созранить мой ручной ввод.
Вложения
Тип файла: rar лаба на экз.rar (3.8 Кб, 21 просмотров)

Последний раз редактировалось west.by; 07.06.2010 в 08:58.
west.by вне форума Ответить с цитированием
Старый 07.06.2010, 11:24   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ниче не понятно...
Давай уточняй что ты хочешь
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.06.2010, 11:48   #3
Ol'ga_new
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 125
По умолчанию

Для добавления рандомного заполнения:
Код:
//в процедуру:
procedure TForm1.Button2Click(Sender: TObject);
//добавить проверку наличия данных, нарпимер в первой ячейке, если нет ничего, то заполнить ...
if StringGrid1.Cells[0,0]='' then 
for i:=0 to n do
StringGrid1.Cells[i,0]:=inttostr(random(100));
или предусмотреть кнопку...

и ещё:
Код:
if a[k] mod 2 <> 0 then k:= k+1;   /// тут ошибка!
это массив символов (Array of Char) , мне кажется ошибка в этом, возими другой тип.

Последний раз редактировалось Ol'ga_new; 07.06.2010 в 12:02.
Ol'ga_new вне форума Ответить с цитированием
Старый 07.06.2010, 15:01   #4
west.by
Подтвердите свой е-майл
 
Регистрация: 16.05.2010
Сообщений: 54
По умолчанию

A kak po drugomu naiti nechetnie?(

ребят помогите а то я чего то бессислен((((
как осуществить поиск нечетных чисел чтоб прога работала.

Последний раз редактировалось Stilet; 08.06.2010 в 07:35.
west.by вне форума Ответить с цитированием
Старый 07.06.2010, 23:53   #5
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

поиск нечетных чисел можно производить при помощи функции odd(x), где x - целое число. Функция возвращает true если число нечетное.
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 08.06.2010, 00:19   #6
west.by
Подтвердите свой е-майл
 
Регистрация: 16.05.2010
Сообщений: 54
По умолчанию

я настолько узколоб-ввиду определенных личностей-что должен рассматривать только вариант с использованием стрингрида(((

Message from Stilet's mail: Значит нужно использую тистрингрид ввести массив ручками/заполнить автоматом(2 варианта на выбор)ю масстив это произвольные числа. мне нужно удалить числанечетные из старого массива и перенести их в новый при этом убрать пробелы в старом(еоторые остались вместо нечетных)

Последний раз редактировалось Stilet; 08.06.2010 в 07:38.
west.by вне форума Ответить с цитированием
Старый 08.06.2010, 08:04   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Заполняем:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var i,j:integer;
begin
  with StringGrid1 do
   for i:=0 to RowCount-1 do
    for j:=0 to ColCount-1 do Cells[j,i]:=inttostr(random(20));
end;
Фильтруем:
Код:
procedure TForm1.BitBtn1Click(Sender: TObject);
var i,j:integer;s:string;
begin
  with StringGrid1 do begin
   for i:=0 to RowCount-1 do begin
    for j:=0 to Rows[i].Count-1 do begin
     tag:=StrToIntDef(rows[i][j],0);
     if (tag mod 2) =0 then begin
      StringGrid2.Rows[i].Add(rows[i][j]);
      rows[i][j]:='';
     end else
      s:=s+rows[i][j]+#13#10;
    end;
    Rows[i].Text:=s;
    s:='';
   end;
   end;
end;
Ферштейн?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.06.2010, 15:52   #8
west.by
Подтвердите свой е-майл
 
Регистрация: 16.05.2010
Сообщений: 54
По умолчанию

A стрингрид 1 на ввод где с поиском нечетных чисел?
west.by вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан файл, содержащий целые числа. Найти количество нечетных чисел среди элементов файла stasyan Помощь студентам 12 03.04.2010 18:49
Поиск нескольких элементов cneltyn Общие вопросы по Java, Java SE, Kotlin 4 27.10.2009 13:56
Перестановка элементов четных и нечетных строк Юлия19 Помощь студентам 3 14.06.2009 18:33
Поиск элементов junkie Паскаль, Turbo Pascal, PascalABC.NET 2 07.06.2009 17:21
поиск элементов массива omar22 PHP 5 30.04.2009 13:01