Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 20.04.2010, 20:05   #1
Алексей777911
 
Аватар для Алексей777911
 
Регистрация: 02.11.2009
Адрес: Владимир
Сообщений: 6
Репутация: 10
Вопрос Сортировка массива простыми вставками на Delphi

Дано n целых положительных двузначных чисел. Трактуя каждое число как пару цифр из интервала 0–9, отсортировать их (цифры) по возрастанию.

Дано:
54 12 37

Нужно трактовать эти числа как пара цифр, то есть у такой набор цифр получится:
5 4 1 2 3 7

И эти цифры отсортировать, то есть на выходе у будет:
1 2 3 4 5 7

Как это сделать?
Алексей777911 вне форума   Ответить с цитированием
Старый 20.04.2010, 20:18   #2
Hacker19_90
Delphi Warrior
Профессионал
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Адрес: Виртуальная реальность
Сообщений: 2,497
Репутация: 353

icq: 636954303
По умолчанию

Попробуй создать массив длиной 2N.
И исходный массив перевести в созданный следующим образом
Код:
i := 1
repeat i < 2N do
     NoviiMassiv[i] := StariiMassiv div 10;
     NoviiMassiv[i + 1] := StariiMassiv mod 10;
     i := i + 2;
until (i = (2N + 1));
Ну а потом сортируй любым методом
__________________
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума   Ответить с цитированием
Старый 20.04.2010, 20:25   #3
vedro-compota
любитель-далеко не
Профессионал
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Адрес: Россия. Славный город Воронеж )
Сообщений: 1,155
Репутация: 639
По умолчанию сортировка простыми включениями

Код:
type 
  TData = array[0..N] of integer; 

procedure SortInsertion(var a: TData); //  Внимание! Массив должен 
                                       //  начинаться с нуля!
var 
  i,j : integer;   
  tmp     : integer;
begin
  for i:=2 to N do begin
    tmp:=a[i];  j:=i-1;
    a[0]:=tmp;  // установка барьера
    while tmp<a[j] do begin
      a[j+1]:=a[j]; // сдвинуть элемент
      j:=j-1
    end;
    a[j+1]:=tmp // поставить элемент на свое место
  end;
end; // SortInsertion
__________________
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума   Ответить с цитированием
Старый 21.04.2010, 18:31   #4
Алексей777911
 
Аватар для Алексей777911
 
Регистрация: 02.11.2009
Адрес: Владимир
Сообщений: 6
Репутация: 10
Вопрос Примерно так:

unit Unit3;

interface

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

type
TForm3 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);
var i, j, max, buf, k: integer;
tmp:integer;
a:array [1..3] of integer;
b:array [1..6] of integer;

begin

if length(StringGrid1.cells[i-1,0])<>0
then a[i]:= StrToInt(StringGrid1.Cells[i-1,0]) else a[i]:=0; label1.caption:='';

for i := 1 to 6 do
b[i]:=a[i] div 10; //находим первую цифру
b[i+1]:=a[i] mod 10; //находим вторую цифру

end;

begin //сортировка
for i:=2 to 6 do begin
tmp:=b[i];
j:=i-1;
b[1]:=tmp; // установка барьера
while tmp<b[j] do begin
b[j+1]:=b[j]; // сдвинуть элемент
j:=j-1;
end;
b[j+1]:=tmp // поставить элемент на свое место
end;


for k:=1 to 6 do

Label1.caption:=label1.caption+' '+IntToStr(b[i]);

Label1.caption:=label1.caption+#13; //вывод отсортированного массива


end.






Где у меня ошибки?))
Алексей777911 вне форума   Ответить с цитированием
Ответ

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка вставками Katyunya Помощь студентам 1 20.04.2010 08:27
Сортировка вставками blind0482 Assembler 2 02.12.2009 14:15
Сортировка вставками Pti44ka Помощь студентам 3 17.11.2009 17:49
Сортировка вставками двухмерного массива ponchikpk Помощь студентам 6 09.03.2009 14:34
Сортировка вставками глючит... Arkuz Общие вопросы Delphi 1 01.10.2007 21:44


17:00.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru