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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2011, 20:10   #1
ТатьянаЧернышева
 
Аватар для ТатьянаЧернышева
 
Регистрация: 01.12.2011
Сообщений: 8
Смущение Сортировка одномерного массива. Паскаль. Не найти ошибку, Буду благодарна)

Отсортировать положительные по возрастанию, отрицательные по убыванию... Только по возрастанию сортирует, не понимаю ничего, а сама плохо разбираюсь в программировании((


program sortirovka_odn_mas;
var a:array[1..50] of integer;
i,i1,x,n:integer;
begin
write('vvod kol-va elementov - ');
readln(n);
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
for i:=1 to n do
begin
if a[i]>0 then
begin
for i:=1 to n-1 do
for i1:=i+1 to n do
begin
if a[i]>a[i1] then
begin
x:=a[i];
a[i]:=a[i1];
a[i1]:=x;
end;
end;
end;
end;
for i:=1 to n do
begin
if a[i]<0 then
begin
for i:=1 to n-1 do
for i1:=i+1 to n do
begin
if a[i]<a[i1] then
begin
x:=a[i];
a[i]:=a[i1];
a[i1]:=x;
end;
end;
end;
end;
writeln;
for i:=1 to n do write (' ',a[i]);
end.


Заранее спасибо!

Последний раз редактировалось ТатьянаЧернышева; 01.12.2011 в 20:57.
ТатьянаЧернышева вне форума Ответить с цитированием
Старый 01.12.2011, 21:54   #2
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

Код:
const Maxm=20;
var
  mas: array[1..Maxm] of integer;
  i, j, temp, m, code: integer;
  st: string;
begin
  writeln('Данная программа позволяет отсортировать массив');
 writeln('Введите размерность массива (массив может содержать от 1 до 20 чисел)');
  readln(m);
  for i := 1 to m do 
  begin
    writeln('Введите элемент массива');
    repeat
    readln(st);
    val(st,mas[i],code);
    if code<>0 then
     writeln('Вам необходимо ввести число.Повторите ввод');
     until (code=0); 
  end;
 for i := 1 to m - 1 do
    for j := 1 to m - i do
      if mas[j] > mas[j + 1] then begin
        temp := mas[j];
        mas[j] := mas[j + 1];
        mas[j + 1] := temp
      end;
  writeln('Отсортированный массив: ');
   for i := 1 to m do
    writeln(mas[i]);
    
  readln
end.
эта программа сортирует массив в порядке возрастания
if mas[j] > mas[j + 1] then begin - если в этой строке знак > поменять на < то программа будет сортировать массив в порядке убывания
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...

Последний раз редактировалось McFrey; 01.12.2011 в 22:02.
McFrey вне форума Ответить с цитированием
Старый 01.12.2011, 22:06   #3
ТатьянаЧернышева
 
Аватар для ТатьянаЧернышева
 
Регистрация: 01.12.2011
Сообщений: 8
По умолчанию

Спасибо большое) Буду пробовать!!!))
ТатьянаЧернышева вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
буду очень благодарна) anytka2k Помощь студентам 1 16.11.2011 11:19
Найти ошибку в выводе отсортированного массива!Паскаль Анастасия1902 Помощь студентам 0 16.06.2011 19:14
буду очень благодарна ) In\/isible Паскаль, Turbo Pascal, PascalABC.NET 3 26.04.2011 20:45
сортировка одномерного массива imperceptible4462 Помощь студентам 10 07.09.2010 09:35
Сортировка одномерного массива Гамбит Помощь студентам 2 02.11.2009 00:28