42548

Сортування методом вставок

Лабораторная работа

Информатика, кибернетика и программирование

Завдання: розробити програму, що забезпечує сортування вхідного файлу методом вставок. Вхідний файл містить в собі двовимірний масив чисел цілого типу, всі елементи якого слід відсортувати за зростанням, причому зробити це окремо в кожному стовпці.

Украинкский

2013-10-30

29.5 KB

2 чел.

Міністерство освіти і науки України

Хмельницький національний університет

Кафедра системного програмування

Лабораторна робота №1

З дисципліни структури даних і алгоритми

Тема: 

«Сортування методом вставок»

 

                                                                                       Виконав ст. гр. КІ-10-3

                                                                    Матвєєв П.

       Перевірив Кльоц Ю. П.

Хмельницький 2011

Завдання: розробити програму, що забезпечує сортування вхідного файлу методом вставок. Вхідний файл містить в собі двовимірний масив чисел цілого типу, всі елементи якого слід відсортувати за зростанням, причому зробити це окремо в кожному стовпці.

Лістинг програми:

uses crt;

const n=8;

type mas=array[1..n,1..n] of integer;

var m:mas;

    i,j: integer;

    t: text;

procedure gen(var m:mas; var t:text);

var i,j:integer;

 begin

 randomize;

 rewrite(t);

 for i:=1 to n do begin

 for j:=1 to n do begin

 m[i,j]:=random(10);

 write(t,m[i,j],' ');

 end;

 writeln(t);

 end;

 close(t);

end;

procedure sort(var m:mas; var j:integer);

var i,k,temp,p:integer;

    tmas:array[1..n] of integer;

 begin

 for i:=1 to n do tmas[i]:=m[i,j];

 for k:=2 to n do begin

  temp:=tmas[k]; p:=k-1;

  While (p>0) and (temp<tmas[p]) do begin

   tmas[p+1]:=tmas[p];p:=p-1;

   end;

  tmas[p+1]:=temp;

 end;

 for i:=1 to n do m[i,j]:=tmas[i];

 end;

 procedure regen(var m:mas; var t:text);

 var i,j:integer;

  begin

  rewrite(t);

  for i:=1 to n do begin

  for j:=1 to n do begin

  write (t,m[i,j],' ');

  end;

  writeln(t);

  end;

  close(t);

 end;

begin

assign(t,paramstr(1));

gen(m,t);

for j:=1 to n do sort(m,j);

regen(m,t);

end.

Результат:

Вміст вихідного файлу:

0 4 0 0 0 1 0 0

2 6 0 1 1 2 0 2

3 6 1 3 1 3 1 2

3 7 2 3 6 4 1 4

4 7 5 5 6 5 1 5

5 7 5 6 7 5 2 5

8 7 6 9 8 7 3 7

9 8 7 9 9 7 9 9


 

А также другие работы, которые могут Вас заинтересовать

85111. Обработка изделия мережкой. Правила БЖ при вышивании 468.5 KB
  Мережка – это ажурная техника вышивания. Выполняется мережка на месте выдернутых с ткани ниток. Мережки относятся к счётной технике. Существует большое количество различных мережек. Мережки применяются в салфетках, скатертях, для подшивания краёв изделия
85112. Рушниковые швы (крестик) 261.69 KB
  Цель: расширить знания учащихся по рушниковым швам; научить правильной технологии вышивания рушникового шва; воспитывать аккуратность при выполнении вышивки развивать художественный вкус учащихся. Актуализация опорных знаний и умений учащихся. Закрепление новых знаний и умений учащихся. Актуализация опорных знаний и умений учащихся.
85113. Счётная гладь, поверхностно-нашитая счётная гладь. Виды глади (прямая, косая, качалочковая) 1.02 MB
  Виды глади прямая косая качалочковая. Цель: формировать представление о видах счётной глади; научить различать виды счётной глади вышивать прямой и косой гладью; воспитывать художественный вкус при выполнении вышивальных работ. Оборудование: образцы видов счётной глади готовые изделия иллюстрации из журналов образцы тканей для вышивания. Виды счётной глади.
85114. Техника вышивания «занизывание». Композиция в вышивке счётной гладью и «занизыванием» 311.83 KB
  Цель: расширить представления учащихся о видах счётной глади и занизывания; научить выполнять эту технику вышивания; воспитывать аккуратность при выполнении вышивальных работ уважительное отношение к национальным традициям украинской народной вышивки. Структура урока: Организационный момент Актуализация опорных знаний и умений учащихся. Закрепление новых знаний и умений учащихся. Актуализация опорных знаний и умений учащихся.
85115. Письмове додавання і віднімання багатоцифрових чисел 67.41 KB
  Ознайомити учнів з прийомами письмового додавання і віднімання багатоцифрових чисел у межах мільйона; закріплювати вміння учнів розв\\\'язувати задачі та рівняння. Учні перевіряють чи правильно розв\\\'язано приклади. Розвиток математичних знань. Розв\\\'язування рівнянь № 319.
85116. Перевірка віднімання додаванням. Складені задачі, розв\\\'язання яких опирається на правило знаходження невідомого доданка 45.38 KB
  Складені задачі розв\\\'язання яких опирається на правило знаходження невідомого доданка №№ 324 330. Узагальнити уявлення учнів про зв\\\'язок дій віднімання і додавання; вчити розв\\\'язувати задачі на знаходження невідомого доданка. б Розв\\\'язати задачу. Скільки всього центнерів зерна стало на елеваторі Розв\\\'язання: 1708 675 357 = 2740 ц.
85117. Знаходження різниці, коли зменшуване містить кілька нулів 125.56 KB
  Ознайомити учнів з випадком віднімання багатоцифрових чисел коли зменшуване містить кілька нулів; закріплювати уміння виконувати перевірку дій додавання і віднімання розв\\\'язувати задачі. а Розв\\\'язати з перевіркою. б Скласти і розв\\\'язати задачу за скороченим записом.
85118. Додавання кількох доданків. Задачі на знаходження довжини сторони трикутника 77.3 KB
  Закріплювати вміння учнів застосовувати сполучний і переставний закони додавання для зручних обчислень та виконувати додавання і віднімання багатоцифрових чисел письмово; вправляти у розв\\\'язуванні задач. б Скільки всього десятків сотень тисяч у числі 109256 в Скласти і розв\\\'язати задачу за поданим скороченим записом. Розв\\\'язання: 1 11650 7650 = 4000л надоїла третя доярка; 2 7650 3750 = 3900 л надоїла друга доярка. Розв\\\'язати задачу.
85119. Знаходження значень виразів на сумісні дії першого ступеня та виразів з дужками 37.15 KB
  Закріплювати вміння учнів виконувати дії додавання і віднімання над багатоцифровими числами; навчати узагальнених прийомів розв\\\'язування задач. а Розв\\\'язати і зробити перевірку. 1 Розв\\\'яжи задачу. Розв\\\'язання.