Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Сортировка элементов в массиве

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Сортировка элементов в массиве
Имя
Сообщение << Старые топики   Новые топики >>
Сортировка элементов в массиве - 2004-11-04 19:18:07   
Nickolas

Сообщений: 21
Оценки: 0
Присоединился: 2004-11-04 13:19:48
Привет всем!
Вопрос по Pascal''ю.
Помогите ,плиз, решить задачу.
Нужно:
1)создать массив из n элементов
2)заполнить случайными числами в определённом диапазоне
3)отсортировать элементы по возрастанию
4)вывести полученный результат на экран.

С первыми двумя пунктами проблем не возникло, ну а вот с остальным… Никак не допираю как отсортировать массив:(. Слышал, что надо использовать флаги…
Помогите, плиз, на вас последняя надежда:)
Post #: 1
Сортировка элементов в массиве - 2004-11-04 21:55:50   
Laex

Сообщений: 44
Оценки: 0
Присоединился: 2004-11-04 01:38:29
const

maxn = 100;

type

tarr = array [1..maxn] of integer;

var

arr : tarr;

n : integer;



procedure CreateArr(var arr : TArr;const n : integer);

var

i : integer;

begin

randomize;

for i := 1 to n do

arr := Random(100);
<BR>end;
<BR>
<BR>procedure SortArr(var arr : TArr;const n : integer);
<BR>var
<BR> i,j : integer;
<BR> ind : integer;
<BR> x : integer;
<BR>begin
<BR> for i := 1 to n - 1 do begin
<BR> ind := i;
<BR> for j := i+1 to n do
<BR> if arr[ind] &lt; arr[j] then
<BR> ind := j;
<BR> x := arr[ind];
<BR> arr[ind] := arr;
<BR> arr := x;
<BR> end;
<BR>end;
<BR>
<BR>procedure WriteArr(var arr : TArr; const n : integer);
<BR>var
<BR> i : integer;
<BR>begin
<BR> for i :=1 to n do
<BR> write(arr, ' ');
<BR> writeln;
<BR>end;
<BR>
<BR>begin
<BR> write('Input n : ');
<BR> readln(n);
<BR> if n &lt;= maxn then begin
<BR> CreateArr(arr,n);
<BR> SortArr(arr,n);
<BR> WriteArr(arr,n);
<BR> end else
<BR> writeln('Value of n is too large…');
<BR> readln;
<BR>end.
Post #: 2
Сортировка элементов в массиве - 2004-11-04 22:12:23   
Maker

Сообщений: 647
Оценки: 0
Присоединился: 2004-03-11 18:50:32
А теперь и для консоли(паскаля), и попроще, и с оптимизацией (метод пузырька) ;)

program Project1;
{$APPTYPE CONSOLE}
uses SysUtils;

var x:array[1..100] of integer;
a,i: integer;
t: boolean;

begin
{ TODO -oUser -cConsole Main : Insert code here }
randomize;
for i:=1 to 100 do begin
x:=50+random(50);<BR> end;<BR> for i:=1 to 100 do write(x,' ');<BR> writeln; writeln;<BR> <BR> t:=true;<BR> while t do begin<BR> t:=false;<BR> for i:=1 to 99 do if x&gt;x[i+1] then begin<BR> a:=x;<BR> x:=x[i+1];<BR> x[i+1]:=a;<BR> t:=true;<BR> end;<BR> end;<BR><BR> for i:=1 to 100 do write(x,' ');<BR> writeln;<BR> read(a);<BR><BR>end.
Post #: 3
Сортировка элементов в массиве - 2004-11-05 06:02:20   
Nickolas

Сообщений: 21
Оценки: 0
Присоединился: 2004-11-04 13:19:48
Спасибо ребята!
Неплохо было бы добавить комментарии в код, ну ладно, сам постараюсь разобраться.
Post #: 4
Сортировка элементов в массиве - 2004-11-05 14:33:40   
DeepThinker

Сообщений: 177
Оценки: 0
Присоединился: 2004-06-13 02:26:09
Мда ребят, с чувством юмора у вас все ок…. метод пузырька - просто ох%енная оптимизация блин, qsort отдыхает…
Post #: 5
Сортировка элементов в массиве - 2004-11-15 23:48:20   
***mR.PrOpEr***

Сообщений: 135
Оценки: 0
Присоединился: 2004-10-08 00:33:23
а почему именно МЕТОД ПУЗЫРЬКА?:??
Post #: 6
Сортировка элементов в массиве - 2004-11-17 04:25:13   
DeepThinker

Сообщений: 177
Оценки: 0
Присоединился: 2004-06-13 02:26:09
Название почему такое? А RTFM слабо, батенька? Это в ЛЮБОЙ книгу по программированию самого базового уровня написано. Потому что максимальные элементы массива всплывают вверх как пузырьки. Или как дохлые рыбки. :)
Post #: 7
Сортировка элементов в массиве - 2004-11-22 19:20:11   
ReynX

Сообщений: 2
Оценки: 0
Присоединился: 2004-11-22 19:03:03
Program MasSort;
Uses Crt;
Type Arr=Array[1..100] Of Byte;
Var Ar:Arr;
I,K:Byte;
R:=Byte;
Begin
Randomize;
For I:=1 To 100 Do Ar:=Random(255);<BR> For I:=100 DownTo 2 Do<BR> For K:=2 To I Do IfAr[K]&lt;Ar[K-1] Then Begin<BR> R:=Ar[K];<BR> Ar[K]:=Ar[K-1];<BR> Ar[K-1]:=R;<BR> End;<BR>End.<BR><BR>Учись, студент. НЕТ, школьник. [sm=2.gif]
Post #: 8
Сортировка элементов в массиве - 2004-11-22 19:23:34   
ReynX

Сообщений: 2
Оценки: 0
Присоединился: 2004-11-22 19:03:03
Блин, вывод забыл!

После сортировки вставь:
For I:=1 To 100 Do Write (Ar);<BR><BR>PS Если массив двумерный, действуй по аналогии. Просто добавь координату строк.
Post #: 9
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Сортировка элементов в массиве







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.