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

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - 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