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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2010, 13:50   #1
n0rma1
 
Аватар для n0rma1
 
Регистрация: 15.04.2010
Сообщений: 9
Восклицание Сортировка массива.

Доброго времени суток формчане Очень прошу помочь с решением следующей задачи, не хватает баллов до зачёта :P
  • Отсортировать элементы одномерного массива между минимум и максимумом в порядке возрастания.
Заранее большое спасибо !!!
n0rma1 вне форума Ответить с цитированием
Старый 25.04.2010, 13:54   #2
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Ищешь минимум в массиве, запоминаешь его индекс. Затем ищешь максимум в массиве, запоминаешь его индекс. Далее определяешь какой из этих индексов меньше и в цикле между этими индексами делаешь сортировку элементов массива. Все очень просто!
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 25.04.2010, 14:10   #3
n0rma1
 
Аватар для n0rma1
 
Регистрация: 15.04.2010
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Grag Посмотреть сообщение
Ищешь минимум в массиве, запоминаешь его индекс. Затем ищешь максимум в массиве, запоминаешь его индекс. Далее определяешь какой из этих индексов меньше и в цикле между этими индексами делаешь сортировку элементов массива. Все очень просто!
Смысл то задачи я понимаю вот реализацию этого смысла в программном коде у меня осуществить не получается
n0rma1 вне форума Ответить с цитированием
Старый 25.04.2010, 14:13   #4
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Да я тебе не смысл задачи расписал, а алгоритм ее решения...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 25.04.2010, 15:01   #5
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Код:
Program massiv;
var
    mas:array[1..100] of integer;
    p,max,n,min,i,j:integer;
begin
write('Введите количество элементов массива: ');
readln(n);
randomize;
writeln('Исходный массив: ');
for i:=1 to n do
begin
mas[i]:=random(10);
write(mas[i],' ');
end;
writeln;
max:=1;
min:=1;
for i:=1 to n do
if mas[i]>mas[max] then max:=i
else
if mas[min]>mas[i] then min:=i;
if max>min  then
begin
i:=max;
max:=min;
min:=i;
end;
for i:=max+2 to min-1 do
for j:=min-1 downto i do
if mas[j-1]<mas[j] then
begin
p:=mas[j-1];
mas[j-1]:=mas[j];
mas[j]:=p;
end;
writeln('Результирующий массив: ');
for i:=1 to n do
begin
write(mas[i],' ');
end;
readkey;
end.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 25.04.2010, 16:12   #6
n0rma1
 
Аватар для n0rma1
 
Регистрация: 15.04.2010
Сообщений: 9
Восклицание

Спасибо конечно, но данный код не совсем осуществляет поставленную задачу Скажем даже так - не сортирует :P Вообщем покапались в коде, сделали сортировку методом "пузырька" и ввод массива с клавиатуры, вот что вышло, может кому пригодится

Код:
Program massiv;
uses crt;
var
    f:boolean;
    mas:array[0..100] of integer;
    p,max,c,n,min,imin,imax,i,j:integer;
begin
clrscr;
write('Введите количество элементов массива: ');
readln(n);
for i:=1 to n do
begin
Writeln('ВВедите ',i,' элемент массива');
Readln(mas[i]);

writeln;
end;
Writeln('Исходный массив: ');
for i:=1 to n do
write(' ',mas[i]);
Writeln;

min:=mas[1];
imin:=1;
max:=mas[1];
imax:=1;
for i:=1 to n do
 begin
  if mas[i]>max then
   begin
    max:=mas[i];
    imax:=i;
    end;
  if mas[i]<min then
   begin
    min:=mas[i];
    imin:=i;
    end;
 end;

writeln ('Максимальое= ',max);
Writeln('Минимальное= ',min);
repeat
  f:=false;
  for i:=1 to n-1 do
  begin
  if mas[i]>mas[i+1] then
    begin
      f:=true;
      c:=mas[i];mas[i]:=mas[i+1];mas[i+1]:=c;
    end;
  end;
until not f;

writeln('Результирующий массив: ');
for i:=1 to n do
begin
write(mas[i],' ');
end;
end.
ROMA2PVT спасибо за толчок к действию
n0rma1 вне форума Ответить с цитированием
Старый 25.04.2010, 16:20   #7
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

В вашей программе есть ДВА существенных НО!!!
Во-первых, вы сортируете массив целиком, проходя с первого элемента по последний, а не МЕЖДУ МАКСИМУМОМ и МИНИМУМОМ, как поставлено в условии задачи...
Во-вторых, я писал, что необходимо проверять индексы максимума и минимума в массиве, так как максимум может располагаться раньше чем минимум и наоборот...
Так что дорешивайте свою задачу...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 25.04.2010, 16:20   #8
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Не за что.Ток он сортирует всё прекрасно.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 25.04.2010, 16:24   #9
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Цитата:
В вашей программе есть ДВА существенных НО!!!
Во-первых, вы сортируете массив целиком, проходя с первого элемента по последний, а не МЕЖДУ МАКСИМУМОМ и МИНИМУМОМ, как поставлено в условии задачи...
Во-вторых, я писал, что необходимо проверять индексы максимума и минимума в массиве, так как максимум может располагаться раньше чем минимум и наоборот...Так что дорешивайте свою задачу...
Согласен с Grag'ом сортирока всего массива идёт.Впрочем эт вам решать.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 25.04.2010, 17:24   #10
n0rma1
 
Аватар для n0rma1
 
Регистрация: 15.04.2010
Сообщений: 9
По умолчанию

Блин, эта сессия меня доведёт до седины ... сам не понял какую задачу поставил, простите грешного, и вправду, сам решил другую задачу вместо нужной Всё верно, написанная программа подходит. Впредь буду внимательнее и пожалуй надо бы поспать :P
n0rma1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива в С++ olnesm Помощь студентам 1 19.04.2010 19:47
Сортировка массива по С++ Moldir Общие вопросы C/C++ 1 28.10.2009 17:40
Сортировка массива на Си Покемон Общие вопросы C/C++ 2 01.11.2008 08:24
Сортировка массива...? Roberto Помощь студентам 2 11.04.2008 13:32