Автор - Grace1234

Pascal
а) Реализовать любую сортировку однострочного массива. Пользователь вводит кол-во элементов, а затем поэлементно заполняет массив. Пример: 5, 1,78,9,5,4; Ответ:1,4,5.9.78
б) Пользователь вводит два массива по аналогии с предыдущей задачей. Необходимо отсортировать оба и слить их, соблюдая сортировку. Пример входных данных: 3, 1,78,9, 2, 5,4; Ответ:1,4,5.9.78

Ответ

Проверено экспертом

Автор - fedrfedr

Ответ:

program a;

type

 Ta = array of Integer;


procedure Sort (var a: Ta);

var

 i, j, jmax, atmp: Integer;

begin

 for i := Low (a) to High (a) do begin

   jmax := i;

   for j := i + 1 to High (a) do begin

     if a [j] < a [jmax] then        // возрастание и убывание меняется знаком "<" или ">" в этом операторе

       jmax := j;

   end;

   atmp := a [i];

   a [i] := a [jmax];

   a [jmax] := atmp;

 end;

end;


var

 n, i: Integer;

 a: Ta;

begin

 Write ('Количество элементов: ');

 ReadLn (n);

 SetLength (a, n);

 for i := Low (a) to High (a) do

   Read (a [i]);

 Sort (a);

 for i := Low (a) to High (a) do

   Write (a [i], ' ');


 ReadLn;

 ReadLn;

end.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  

program b;

type

 Ta = array of Integer;


procedure Sort (var a: Ta);

var

 i, j, jmax, atmp: Integer;

begin

 for i := Low (a) to High (a) do begin

   jmax := i;

   for j := i + 1 to High (a) do begin

     if a [j] < a [jmax] then        // возрастание и убывание меняется знаком "<" или ">" в этом операторе

       jmax := j;

   end;

   atmp := a [i];

   a [i] := a [jmax];

   a [jmax] := atmp;

 end;

end;


procedure InArr (var a: Ta);

var

 i, n: Integer;

begin

 Write ('Количество элементов: ');

 ReadLn (n);

 SetLength (a, n);

 for i := Low (a) to High (a) do

   Read (a [i]);

end;


var

 n, i, l1, l2: Integer;

 a1, a2: Ta;

begin

 Write ('Первый массив.');

 InArr (a1);

 Write ('Второй массив.');

 InArr (a2);

 l1 := Length (a1);

 l2 := Length (a2);

 SetLength (a1, l1 + l2);

 for i := Low (a2) to High (a2) do

   a1 [i + l1] := a2 [i];

 Sort (a1);

 for i := Low (a1) to High (a1) do

   Write (a1 [i], ' ');


 ReadLn;

 ReadLn;

end.

Ответы и объяснения

Сервис носит ознакомительный характер, вся информация, а в частности вопросы и ответы, которые задают и отвечают пользователи.
© 2026 Все права защищены Политика конфиденциальности Контакты
search points attachment profile arrow left arrow right star heart verified symbols equation arrow-down question mark check menu accountancyadministrationagriculturalalgebraallarabicartart_musicbelarusbelarus_altbiologybusinesscatalachemistrychineseeconomicsegzamenglishentrepreneurshipenvironmentethicseuskarafirst_aidfrenchgalegogeographygeologygeometrygermangrammarhealthhistoryindia_langindonesian_langinformaticsitalianjapanesekazachkazach_altkoreanlanguagelatinlawlife_scienceliteraturelogicmathematicsmusicnigerian_langother_languagesotherspedagogicsphilosophyphysical_educationphysicspoliticspsychologyreligionrpa_langrussianrussian_altsciencesecurityskillssocial_sciencesociologyspanishstatisticstechnologytourismtrafficukrainianukrainian_altukrainian_literaturewos_civilisation accountancyadministrationagriculturalalgebraall_1arabicartart_music_2belarusbelarus_altbiologybusiness_2catalachemistry_1chineseeconomicsexam_3englishentrepreneurshipenvironment_2ethicseuskarasecurity_1frenchgalegogeography_4geology_4geometrygermangrammarhealthhistoryindia-langindonesian-langinformaticsitalianjapanesekazachAsset 230koreanlanguagelatinlawlife-scienceliteraturelogic_2mathematicsmusicnigerian-langotherlanguagesother_1pedagogicsphilosophyphysical_educationphysicspoliticspsychologyreligion_1rpa-langrussianrussian_altsciencesecurity_3_mskills_1allsocial_science_5_msociologyspanishstatisticstechnologytourismtrafficukrainianukrainian_altukrainian_literaturewos_civilisation