• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Отсортировать числа

Katerina Voy

Новые
Регистрация
19 Дек 2011
Сообщения
12
Реакции
0
Баллы
0
Отсортировать числа

подскажите как можно отсортировать одномерный массив к примеру по возрастанию чисел??
 
Ну ладно, не дождавшись ответа - вот, нарисовал в качестве примера:
Код:
CONST
 N=10;
VAR
 T:Array[1..10] of Byte;
 i,j,d:Byte;
BEGIN
 Randomize;
 For i:=1 to N do T[i]:=Random(N);
 Writeln('Initial array:');
 For i:=1 to N do Write(T[i]:2);
 Writeln;
 Writeln;
 For i:=1 to N-1 do
  For j:=1 to N-i do
   If T[j]>T[j+1] then
    begin
     d:=T[j];
     T[j]:=T[j+1];
     T[j+1]:=d;
    end;
 Writeln('Ordered array:');
 For i:=1 to N do Write(T[i]:2);
 Readln;
END.
 
Vladimir_S, спасибо большое))
у меня получилось так:
uses crt;
const n=4; m=9;
var a:array [1..n,1..m] of byte;
i,j,d:Byte;
begin
for i:=1 to n do
begin
for j:=1 to m do
a[i,j]:=random(100); end;
for i:=1 to n do
begin for j:=1 to m do
write(' ',a[i,j],' ');
writeln; end;
for i:=1 to m-1 do
for j:=1 to m-i do
if a[1,j]>a[1,j+1] then
begin
d:=a[1,j];
a[1,j]:=a[1,j+1];
a[1,j+1]:=d;
end;
writeln('Ordered array:');
for i:=1 to m do write(a[1,i]:2,' ');
readln;
end.
 
А задача-то какая? Упорядочить только первую строку?
И, кстати - зачем там CRT присоединен, если ни одной CRT-шной команды не используется?
Да, это та задача) crt - из-за того, что pascal abc)
 
что-то я совсем запуталась :/

Код:
uses crt;
const n=4; m=9;
type mass=array [1..n,1..m] of integer;

procedure vvod(var a:mass; f:text);
var i,j:byte;
begin
for i:=1 to n do begin
for j:=1 to m do
read(a[i,j]);
end;
for i:=1 to n do begin
for j:=1 to m do
write(f,a[i,j],' ');
writeln;
end;
end;

procedure ordering(var a:mass);
 var i,j,d:byte;
 begin
   for i:=1 to m-1 do
  for j:=1 to m-i do
   if a[1,j]>a[1,j+1] then
     begin
       d:=a[1,j];
         a[1,j]:=a[1,j+1];
          a[1,j+1]:=d;
          end;
         end;


var a:mass;
    i,j,d:Byte;
    f:text;
begin
 assign(f,'in.txt');
 reset(f);
 vvod(a,f);
 close(f);
     assign(f,'in.txt');
        rewrite(f);
        ordering(a);
        writeln('Ordered array:');
       for i:=1 to m do write(a[1,i]:2,' ');
   readln;

     close(f);
     end.
 
Версия Pascal тут не при чем, все дело в привычке цеплять crt везде, где он нужен и не нужен, так уж их научили :(.
 
что-то я совсем запуталась :/
Посмотрите такой вариант. Исправил несколько ошибок, "причесал", вставил экранные подсказки (не люблю "слепого" ввода):
Код:
uses crt;
const n=4; m=9;
type mass=array [1..n,1..m] of integer;

var a:mass;
    f:text;

procedure vvod(var b:mass);
var i,j:byte;
begin
 for i:=1 to n do
  for j:=1 to m do
   begin
    write('a[',i,',',j,']= ');
    readln(b[i,j]);
   end;
 for i:=1 to n do
  begin
   for j:=1 to m do
    write(f,b[i,j]:4);
   writeln(f);
  end;
end;

procedure ordering(var b:mass);
 var i,j,d:byte;
 begin
   for i:=1 to m-1 do
    for j:=1 to m-i do
     if b[1,j]>b[1,j+1] then
      begin
       d:=b[1,j];
       b[1,j]:=b[1,j+1];
       b[1,j+1]:=d;
      end;
   for i:=1 to m do write(f,b[1,i]:4);
 end;


begin
 assign(f,'in.txt');
 rewrite(f);
 vvod(a);
 close(f);
 assign(f,'out.txt');
 rewrite(f);
 ordering(a);
 close(f);
end.
 
Версия Pascal тут не при чем, все дело в привычке цеплять crt везде, где он нужен и не нужен, так уж их научили :(.
Лёш, я с этим АВС уже ничему не удивляюсь - знаю только, что они там CRT здорово перехимичили по отношению к нормальному Паскалю. Пёс их знает (я - точно не), что они в него запихали... :D
 
Посмотрите такой вариант. Исправил несколько ошибок, "причесал", вставил экранные подсказки (не люблю "слепого" ввода):

Вы просто не представляете как мне помогли) Спасибо)
 
Назад
Сверху