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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2017, 01:52   #1
Программистер
Пользователь
 
Регистрация: 12.01.2017
Сообщений: 10
По умолчанию [Delphi/Console] Сортировать массив, состоящий из вещественных чисел так , чтобы минимум был в начале массива

Условие : Сортировать массив , состоящий из вещественных чисел так , чтобы минимум был в начале массива.



Код:
Код:
program Lab7vyborprocedure;

{$APPTYPE CONSOLE}
  const
    nmax=10;
      type mas=array[1..nmax] of real;
        procedure vybor (const n:integer;out A:mas; var min:real;var nommin:integer;var res:Textfile);
          var i,j,z:integer;
            begin
              for j := 1 to n-1 do
               begin
                  min:=A[j];
                  nommin:=j;
                     for i := j to n do
                       if abs(A[i])<abs(min) then
                         begin
                           min:=A[i];
                           nommin:=i;
                           writeln(res,'Массив после ',j,'-ой итерации');
                           for z:=1 to n do
                           write(res,A[z]:4:1,' ');
                           writeln(res);
                         end;
                           A[nommin]:=A[j];
                           A[j]:=min
                        end;
            end;

 var
 j,nommin,n,i:integer;
  A:mas;
  dat,res:TextFile;
  min:real;

begin
    AssignFile(dat,'dat7.txt');reset(dat);
    AssignFile(res,'res7.txt');rewrite(res);
     read(dat,n);
      for i := 1 to n do read(dat,A[i]);
        writeln(res,'Выбор');
        writeln(res,'n= ',n);
        writeln(res,'Исходный массив :');
        for i:=1 to n do write(res,A[i]:4:1,' ');
        writeln(res);
            vybor (n,A,min,nommin,res);
            writeln(res);
            writeln(res,'Сортированный по не убыванию абсолютной величины массив :');
             writeln(res,'n= ',n);
            for i := 1 to n do write(res,A[i]:4:1,' ');
           writeln(res);
           CloseFile(dat);
           CloseFile(res);

end.
Никак не могу добиться , чтобы программа корректно выводила массив после каждой итерации , точнее , не могу понять , какая переменная отвечает за количество итерации.

Вот , что я получаю :
Выбор
n= 10
Исходный массив :
5.3 2.1 -100.0 -8.0 10.9 -14.0 3.0 -7.0 100.0 11.0
Массив после 1-ой итерации
5.3 2.1 -100.0 -8.0 10.9 -14.0 3.0 -7.0 100.0 11.0
Массив после 2-ой итерации
2.1 5.3 -100.0 -8.0 10.9 -14.0 3.0 -7.0 100.0 11.0
Массив после 3-ой итерации
2.1 3.0 -100.0 -8.0 10.9 -14.0 5.3 -7.0 100.0 11.0
Массив после 3-ой итерации
2.1 3.0 -100.0 -8.0 10.9 -14.0 5.3 -7.0 100.0 11.0
Массив после 4-ой итерации
2.1 3.0 5.3 -8.0 10.9 -14.0 -100.0 -7.0 100.0 11.0
Массив после 5-ой итерации
2.1 3.0 5.3 -7.0 10.9 -14.0 -100.0 -8.0 100.0 11.0
Массив после 6-ой итерации
2.1 3.0 5.3 -7.0 -8.0 -14.0 -100.0 10.9 100.0 11.0
Массив после 7-ой итерации
2.1 3.0 5.3 -7.0 -8.0 10.9 -100.0 -14.0 100.0 11.0
Массив после 7-ой итерации
2.1 3.0 5.3 -7.0 -8.0 10.9 -100.0 -14.0 100.0 11.0

Сортированный по не убыванию абсолютной величины массив :
n= 10
2.1 3.0 5.3 -7.0 -8.0 10.9 11.0 -14.0 100.0 -100.0
Программистер вне форума Ответить с цитированием
Старый 16.01.2017, 01:56   #2
Программистер
Пользователь
 
Регистрация: 12.01.2017
Сообщений: 10
По умолчанию

Вопрос уже решился
Программистер вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан массив,состоящий N (N>1) вещественных чисел. Найти среднеарифметическое значение чисел массива. nikola_orsha Паскаль, Turbo Pascal, PascalABC.NET 2 11.10.2016 13:05
Одномерный массив, состоящий из n вещественных элементов ekb_lbp Помощь студентам 9 14.07.2013 13:49
assembler. Задан массив А из N чисел. Преобразовать этот массив так, чтобы сначала шли четные числа, а потом – нечетные Transcend Помощь студентам 5 18.03.2013 11:42
Преобразовать одномерный массив, состоящий из 10 вещественных элементов.... serjj Общие вопросы C/C++ 9 31.01.2013 19:11
Сформировать одномерный массив целых чисел М2, состоящий из некратными числу N четным элементам массива М Izymka Помощь студентам 12 30.05.2010 02:10