![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как рассортировать?
Werka © (2006-11-27 12:44:00)Мне нужно написать программу для сортировки массива из 20 целых чисел заполненные случайными образам в диапазоне от -1000 до 1000. Вывести его на экран. Упорядочить по возрастанию, и вывести на экран снова уже упорядоченный.
Я смог вывести его на экран, но как его упорядочить по возрастанию я не знаю вот то что у меня получилось:
uses crt;
var i,j:integer;
s,n,a:real;
M:array[1..20]of real;
begin
clrscr;
randomize;
a:=0;
for i:=1 to 20 do begin
a:=random(2000);
M[i]:=a-1000;
writeln(M[i]:2:0)
end;
Writeln('---');
for j:=1 to 20 do begin
end;
readln;
end.
Пожалуйста помогите мне доделать этк прогу.
Shell (2006-11-27 13:59:00) [21]Я не совсем пойму это место, мы находим самый маленьки член
a[min]:=buf;
Но на экран выводим изночальный массив
for k:=1 to SIZE do writeln(a[k]);
alex810 (2006-11-27 13:56:00) [22]Удалено модератором
Cawa (2006-11-27 13:55:00) [23]Удалено модератором
alex810 (2006-11-27 13:52:00) [24]Удалено модератором
Steep (2006-11-27 13:49:00) [25]Удалено модератором
Cawa (2006-11-27 13:49:00) [26]т.е. из тобой приведенного кода вынести
for k:=1 to SIZE do writeln(a[k]);
из циклов.
Cawa (2006-11-27 13:47:00) [27]ссори вот так
for i:=1 to SIZE-1 do
begin
min:=i;
for j:=i+1 to SIZE do
if a[j] < a [min] then min:=j;
buf:=a[i]; a[i]:=a[min]; a[min]:=buf;
end;
for k:=1 to SIZE do writeln(a[k]);
readln;
Cawa (2006-11-27 13:45:00) [28]попробу так сортировать
for i:=1 to SIZE-1 do
begin
min:=i;
for j:=i+1 to SIZE do
begin
if a[j] < a [min] then min:=j;
buf:=a[i]; a[i]:=a[min]; a[min]:=buf;
end;
end;
for k:=1 to SIZE do writeln(a[k]);
readln;
Shell (2006-11-27 13:45:00) [29]Да не доглядел, но если поставить тип real то возникнит куча ошибок которые я не знаю как испровлять, а мне обязательно нужны числа от -1000 до 1000
alex810 (2006-11-27 13:45:00) [30]
> a:array[1..SIZE] of integer;
> так почему-же
> a[i]:=t-1000;
> может быть отрицательное?
отрицательное число тоже может быть целым
Андрей Сенченко (2006-11-27 13:44:00) [31]Shell (27.11.06 13:42) [23]
Ошибку Тебе назвали в [22].
Как-нибудь нам увидеть "большое количество цифр" можно ?
Steep (2006-11-27 13:44:00) [32]почему for i:=1 to SIZE-1
у тебя ж массив не с 0?
umbra (2006-11-27 13:43:00) [33]2 Shell (27.11.06 13:39) [18]
> но программа не работает
а скомпилировать? а запустить? :)
Shell (2006-11-27 13:42:00) [34]Нет просто скажите где ошибка.прога запускается и выдаёт очень большое кол-во цифр
Steep (2006-11-27 13:42:00) [35]a:array[1..SIZE] of integer;
так почему-же
a[i]:=t-1000;
может быть отрицательное?
Андрей Сенченко (2006-11-27 13:40:00) [36]Удалено модератором
alex810 (2006-11-27 13:40:00) [37]Удалено модератором
Steep (2006-11-27 13:39:00) [38]Короче хорош флудить...
давайте лучше помогать кому-нить...
Shell (2006-11-27 13:39:00) [39]Посмотрите вроде правильно сделал, но программа не работает
uses crt;
const
SIZE=20;
var
a:array[1..SIZE] of integer;
min,t:integer;
j:integer;
buf:integer;
i,k:integer;
begin
clrscr;
randomize;
t:=0;
for i:=1 to size do begin
t:=random(2000);
a[i]:=t-1000;
writeln(a[i]:2)
end;
for i:=1 to SIZE-1 do
begin
min:=i;
for j:=i+1 to SIZE do if a[j] < a [min]
then min:=j;
buf:=a[i]; a[i]:=a[min]; a[min]:=buf;
for k:=1 to SIZE do writeln(a[k]);
end;
readln;
end.
alex810 (2006-11-27 13:37:00) [40]Удалено модератором