Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 16.01.2017, 02:52   #1
Программистер
Пользователь
 
Регистрация: 12.01.2017
Сообщений: 10
Репутация: 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, 02:56   #2
Программистер
Пользователь
 
Регистрация: 12.01.2017
Сообщений: 10
Репутация: 10
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан массив,состоящий N (N>1) вещественных чисел. Найти среднеарифметическое значение чисел массива. nikola_orsha Паскаль 2 11.10.2016 14: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


05:54.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru