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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2014, 12:46   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от rrrFer Посмотреть сообщение
Во втором цикле тоже N-1 должно быть )
Это смотря для чего (какая задача решается).
Вы что конкретно имеете в виду?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.03.2014, 13:07   #12
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

имею ввиду ваш код из 9 поста
Код:
for i:=1 to N-1 do
  for j:=i+1 to N do
если мы хотим отсортировать массив кроме последнего элемента - то последний элемент трогать вообще не надо (ни в первом цикле, ни во вложенном).
rrrFer вне форума Ответить с цитированием
Старый 24.03.2014, 13:23   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от rrrFer Посмотреть сообщение
имею ввиду ваш код из 9 поста
Код:
for i:=1 to N-1 do
  for j:=i+1 to N do
если мы хотим отсортировать массив кроме последнего элемента - то последний элемент трогать вообще не надо (ни в первом цикле, ни во вложенном).
тогда уже так (последний не трогаем)
Код:
for i:=1 to N-2 do
  for j:=i+1 to N-1 do
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.03.2014, 14:23   #14
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сделать массив упорядоченным, переместив последний элемент на новую позицию.
Это делать надо? Или еще только пока идет обсуждение как сформировать условие задачи?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 24.03.2014, 14:39   #15
niwssg
Пользователь
 
Регистрация: 12.11.2012
Сообщений: 35
По умолчанию

Код:
    
    while(mas[max-1] > mas[i++])
        ;
    c = mas[max-1];

    while( max-1 != i-1)
    {
        mas[max-1]= mas[max-2];
        max--;
    }
    mas[i-1]=c;
Что то вроде этого получилось. max - кол. элементов.
Гуру поправят надеюсь, я только учусь.
Не стал усложнять бинарными поисками.
niwssg вне форума Ответить с цитированием
Старый 24.03.2014, 21:14   #16
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию

Код:
type
TArray = array[1..40] of Integer;
 function ArrayToString(a: TArray; N: integer): string;
var
  i: integer;
begin
  result := '';
  for i:=1 to N-1 do
    result := result  + IntToStr(a[i])+',';
  result := result  + IntToStr(a[N]);
end;
function SortirArray (a: TArray;N:integer): string;
var
i,j,t:integer;
begin            (в этой строке ошибку выдаёт программа .Почему? и что нужно исправить?)
  for i:=1 to N-2 do
   for j:=i+1 to N-1 do
    if A[i] >= A[j] then begin
        t := A[i];
        A[i] := A[j];
        A[j] := t
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
N,t,j,i:integer;
a:TArray;
begin
randomize;
N:=StrToInt(Edit1.Text);
for i:=1 to n do
      a[i] := random(41);
SortirArray(a,i);  
RichEdit1.Lines.Clear;
RichEdit1.Lines.Append(ArrayToString(a,n)); 
RichEdit2.Lines.Clear;
for i:=1 to N do
   for j:=i+1 to N-1 do
    if A[i] >= A[j] then begin
        t := A[i];
        A[i] := A[j];
        A[j] := t
    end;
RichEdit2.Lines.Append(ArrayToString(a,n));
end;end.
nadyaH вне форума Ответить с цитированием
Старый 24.03.2014, 23:05   #17
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

не знаю, мне в этой строке никакой ошибки не выдало!

Код:
function SortirArray (a: TArray;N:integer): string;
var
i,j,t:integer;
begin            {(в этой строке ошибку выдаёт программа .Почему? и что нужно исправить?)}
  for i:=1 to N-2 do
   for j:=i+1 to N-1 do
    if A[i] >= A[j] then begin
        t := A[i];
        A[i] := A[j];
        A[j] := t
    end;
end;
p.s. запакуйте исходники проекта в архив и приложите полученный архив к сообщению на форуме

p.p.s. Вы зря не читаете то, что Вам пишут. Вам НЕ НУЖНА СОРТИРОВКА МАССИВА целиком.
Перечитывайте выделенный текст до тех пор, пока не осознаете, что Вы в программе делаете не то, что требуется!

Последний раз редактировалось Serge_Bliznykov; 24.03.2014 в 23:07.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.03.2014, 08:54   #18
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию

Получается я заполняю массив числами, а потом сортирую его,кроме последнего элемента и вывожу .
По другому я не знаю, как заполнить массив упорядоченно,кроме последнего элемента.
В условии задачи нету как нужно заполнить массив И каким способом отсортировать его.
Выложила сжатую программу.
Вложения
Тип файла: rar аррей 88.rar (173.1 Кб, 8 просмотров)
nadyaH вне форума Ответить с цитированием
Старый 25.03.2014, 09:21   #19
niwssg
Пользователь
 
Регистрация: 12.11.2012
Сообщений: 35
По умолчанию

Мне видится что нужно взять последний элемент и сделать вставку со смещением. Ну или не делать в зависимости от значения последнего элемента массива.
niwssg вне форума Ответить с цитированием
Старый 25.03.2014, 10:24   #20
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию

Как это реализовать в делфи?
nadyaH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан массив X(N,M).Найти номера столбцов массива,все элементы которых четны. Из полученных значений сформировать одномерный массив. darwin1 Паскаль, Turbo Pascal, PascalABC.NET 3 16.03.2014 13:31
подкорректировать: Дан массив, все элементы которого упорядочены. Найти количество различных элементов в данном массиве ( Delphi ) schibeki Помощь студентам 9 20.02.2014 09:39
Дан массив из 18 вещественных чисел, все элементы которого различны. Не могу сделать вывод результатов. ( на С ) Максим28 Помощь студентам 4 22.11.2013 02:38
Соединить два массива а и b в массив с так, чтобы его элементы были упорядочены по возрастанию. Поправить код. dmitriy20104 Паскаль, Turbo Pascal, PascalABC.NET 10 08.08.2012 11:21