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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2010, 14:13   #1
deathz0r
Пользователь
 
Регистрация: 25.05.2010
Сообщений: 24
По умолчанию Delphi. Перемещение всех элементов массива с четными значениями в конец массива2.

Требуется создать приложение. Основная задача - сортировка массива. Массив задается случайными числами. Все элементы массива с четным значением переместить в конец массива. Написал, но почему, то в поле memo2: элементы не сортируются, а вместо их значений присваиваются 0. Подскажите как исправить/дополнить:

procedure TForm1.Button1Click(Sender: TObject);
begin
a:=StrToInt(Edit1.Text);
If a>10 then
begin
Application.MessageBox('Неверное количество элементов', 'Ошибка',MB_OK);
a:=0;
exit;
end;
randomize;
Memo1.Lines.Clear;
for i:=1 to a do begin
m[i]:=random(11);
Memo1.Lines.Add(IntToStr(i) + ':'+' '+' '+ IntToStr(m[i]));
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
j:=0;
r:=0;
a:=StrToInt(Edit1.Text);
Memo2.Lines.Clear;
for i:=1 to a do
for j:=1 to a-1 do
begin
m2[j]:=m[i];
if m2[j] mod 2 = 0 then
begin
r:=m2[j+1];
m2[j+1]:=m2[j];
m2[j]:=r;
end;
Memo2.Lines.Clear;
for i:=1 to a do
Memo2.Lines.Add(IntToStr(i) + ':'+' '+' '+ IntToStr(m2[i]));
end;
end;
deathz0r вне форума Ответить с цитированием
Старый 25.05.2010, 15:04   #2
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Код:
unit Unit1;

interface

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

Const mas=10;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  buf:integer;

implementation

uses Math;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
Var i,j,k,chet,nechet:integer;
a,b,c:array [1..mas] of integer;
begin
Memo1.Text:='';
Memo2.Text:='';
Randomize;
For i:=1 to mas do
begin
a[i]:=RandomRange(1,100);
memo1.lines.Add(inttostr(i)+') '+inttostr(a[i]));
end;
j:=-1;
k:=0;
chet:=0; nechet:=0;
For i:=1 to mas do
If a[i] mod 2=0 then
begin
inc(j);
b[mas-j]:=a[i];
a[i]:=0;
inc(chet);
end;
For i:=1 to mas do
If a[i] mod 2=1 then
begin
inc(k);
c[k]:=a[i];
a[i]:=0;
inc(nechet);
end;
j:=-1;
For i:=1 to nechet do
a[i]:=c[i];
For i:=nechet+1 to mas do
begin
inc(j);
a[i]:=b[mas-j];
end;
For i:=1 to mas do
Memo2.Lines.Add(inttostr(a[i]));
end;

end.
Вложения
Тип файла: zip Форум.zip (203.7 Кб, 12 просмотров)
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
паскаль - Заменить каждый третий элемент массива на значение суммы всех его элементов. tanyalove Помощь студентам 4 26.05.2010 09:55
Удаление и перемещение элементов массива в паскале Devilman Помощь студентам 4 21.04.2010 15:17
Вставить число после всех элементов массива, кратных 3 Mclaren Помощь студентам 0 10.11.2009 02:40
Для массива определить сумму всех элементов, стоящих после максимального HECTOR.A. Паскаль, Turbo Pascal, PascalABC.NET 4 17.06.2009 22:04
перемещение элементов массива Skrip Общие вопросы C/C++ 1 09.06.2009 18:04