Головна

Анкетні дані на абітурієнтів в кінці методичного посібника.

  1.  Au, Pb, Niпрі 300 Кв залежно від концентраціон- го радіусаг -ЬпрІ 1 сторінка
  2.  Au, Pb, Niпрі 300 Кв залежно від концентраціон- го радіусаг -ЬпрІ 10 сторінка
  3.  Au, Pb, Niпрі 300 Кв залежно від концентраціон- го радіусаг -ЬпрІ 11 сторінка
  4.  Au, Pb, Niпрі 300 Кв залежно від концентраціон- го радіусаг -ЬпрІ 12 сторінка
  5.  Au, Pb, Niпрі 300 Кв залежно від концентраціон- го радіусаг -ЬпрІ 13 сторінка
  6.  Au, Pb, Niпрі 300 Кв залежно від концентраціон- го радіусаг -ЬпрІ 14 сторінка
  7.  Au, Pb, Niпрі 300 Кв залежно від концентраціон- го радіусаг -ЬпрІ 15 сторінка

Текст програми:

program sortirovka;

uses crt;

type data = record

fio: string [30];

godr, godo: integer;

ates: record

mat, fiz, rus: integer;

end;

haus: boolean;

ekz: record

mat, fiz, rus: integer;

end;

end;

filetype = file of data;

var files, a, b, c: filetype;

z, n: integer; {Для підрахунку числа серій}

eor: boolean; {Індикатор кінця серії}

keys: char;

buf, stu: data;

procedure copys (var x, y: filetype);

var buf1: data;

begin

read (x, buf); write (y, buf);

if eof (x) then eor: = true

else begin

{Заглядаємо вперед}

read (x, buf1);

{Повертаємося на вихідну запис}

seek (x, filepos (x) -1);

eor: = buf1.fio

end;

end;

procedure copyrun (var x, y: filetype);

{Переписати серії з x в y}

begin

repeat

copys (x, y);

until eor;

end;

procedure mergerun;

{Злиття серій з А і В у С}

var bufa, bufb: data;

begin

repeat

read (a, bufa); seek (a, filepos (a) -1);

read (b, bufb); seek (b, filepos (b) -1);

if bufa.fio

then begin; copys (a, c); if eor then copyrun (b, c); end

else begin; copys (b, c); if eor then copyrun (a, c); end;

until eor

end;

procedure distribute; {З З в А і В}

begin

reset (c); rewrite (a); rewrite (b);

repeat

copyrun (c, a);

if not eof (c) then copyrun (c, b);

until eof (c);

close (a); close (b); close (c);

end;

procedure merge;

begin

reset (a); reset (b); rewrite (c);

while (not eof (a)) and (not eof (b)) do

begin

mergerun; z: = z + 1;

end;

while not eof (a) do begin; copyrun (a, c); z: = z + 1; end;

while not eof (b) do begin; copyrun (b, c); z: = z + 1; end;

close (a); close (b); close (c);

end;

procedure sort;

begin

repeat

distribute; z: = 0;

merge;

until z = 1;

erase (b); erase (a);

end;

procedure print;

begin

reset (c);

while not eof (c) do

begin

read (c, stu);

writeln (stu.fio, '-', stu.godr, '-', stu.godo);

end;

writeln ( 'Для продовження натисніть Enter!');

readln;

end;

begin {main}

assign (c, 'c: \ data.dat'); {Файл з даними}

assign (b, 'c: \ temp1');

assign (a, 'c: \ temp2');

clrscr;

writeln ( 'Чи не відсортовані дані');

print;

writeln ( 'Сортування даних за прізвищем');

writeln ( 'Відсортовані дані');

sort;

print;

end.

Результат виконання програми:

 Невідсортовані дані: Анісімов Петро Іванович - 1982--1999Сінілов Сергій Іванович-1983--2000Шарапов Євген Володимирович - 1984--2001Бажін Микита Андрійович - 1983--2000Созінов Олексій Петрович-1984--2001Малишев Василь Володимирович - 1982--1999Тіхонов Сергій Геннадійович-1982--1999Еговцев Іван Артурович - 1983--2000Міхайлов Артем Єгорович-1983--2000Ползунова Олена Андріївна-1982--1999Смірнов Микита Володимирович - 1984--2001Мельнікова Лариса Анатоліївна - 1984--2001Токарева Надія Олександрівна - 1983 --2000Маслова Ніна Михайлівна-1984--2001Молчановскій Ільнар Ірековіч - 1982--1999Корягіна Ніна Плахова - 1984-2001Егорова Пелагея Луповна - 1983--2000Гаспер Валентина Олександрівна - 1982--1999Теплоухов Юрій Леонідович-1982--1999Кірьянов Антон Олексійович -1983--2000Для продовження натисніть Enter! Сортування даних по фамілііОтсортірованние данниеАнісімов Петро Іванович - 1982--1999Бажін Микита Андрійович - 1983--2000Гаспер Валентина Олександрівна - 1982--1999Еговцев Іван Артурович - 1983--2000Егорова Пелагея Луповна - 1983--2000Кірьянов Антон Олексійович - +1983 --2000Корягіна Ніна Плахова - 1984--2001Малишев Василь Володимирович - 1982--1999Маслова Ніна Михайлівна - 1984--2001Мельнікова Лариса Анатоліївна - 1984--2001Міхайлов Артем Єгорович - 1983--2000Молчановскій Ільнар Ірековіч - 1982-- 1999Ползунова Олена Андріївна - 1982--1999Сінілов Сергій Іванович - 1983--2000Смірнов Микита Володимирович - 1984--2001Созінов Олексій Петрович - 1984--2001Теплоухов Юрій Леонідович - 1982--1999Тіхонов Сергій Геннадійович - 1982--1999Токарева Надія Олександрівна - 1983--2000Шарапов Євген Володимирович - 1984--2001Для продовження натисніть Enter!

 

Варіанти завдань.

1. Сортувати файл з даними за оцінками на вступних іспитах і середньою оцінкою в атестат, методом багатофазного злиття, роздрукувати файл з даними до сортування і після: прізвище ім'я по батькові, рік народження, оцінки на вступних іспитах і атестат.

2. Сортувати файл з даними на поточний рік закінчення школи, методом збалансованого злиття, роздрукувати файл з даними до сортування і після: прізвище ім'я по батькові, рік народження, рік закінчення школи і потреба в гуртожиток.

3. Сортувати файл з даними за роком народження, методом простого злиття, роздрукувати файл з даними до сортування і після: прізвище ім'я по батькові, рік народження і оцінки в атестат.

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

5. Сортувати файл з даними за прізвищами, методом багатофазного злиття, роздрукувати файл з даними до сортування і після: прізвище ім'я по батькові, рік народження, рік закінчення школи і потреба в гуртожиток.



 Сортування багатофазним злиттям. |  Покажчики.

 Операції над множинами. |  Файлові типи даних |  ініціалізація файлу |  Файли і робота з ними |  Лабораторна робота №11. |  Анкетні дані на абітурієнтів в кінці методичного посібника. |  Злиття впорядкованих послідовностей. |  Сортування збалансованим злиттям |  Сортування простим злиттям |  Сортування природним злиттям. |

© um.co.ua - учбові матеріали та реферати