Методические указания и задания к лабораторным работам по курсу "алгоритмы и структуры данных "




НазваниеМетодические указания и задания к лабораторным работам по курсу "алгоритмы и структуры данных "
страница14/19
Дата публикации28.09.2013
Размер1.39 Mb.
ТипМетодические указания
vbibl.ru > Информатика > Методические указания
1   ...   11   12   13   14   15   16   17   18   19
^


Приложение А

Пример программы, выполняющей сортировку таблицы

методом линейного выбора




Program Lin_Sort;

{сортировка таблицы методом линейного выбора}

Uses Crt;

Const Nmax=100;

Type Rec=Record

Name: String[15]; {название государства}

Area: Integer; {площадь, тыс. кв. км}

end;

Table=array [1..Nmax] of Rec;
Var T: Table; {основная таблица}

n: integer; {количество записей}

ch: byte;

procedure InTab( var T: Table; var n: integer);

{ввод записей таблицы с клавиатуры}

var ch: char;

fname: string;

i: integer;

f: file of rec;

cod: byte;

begin

ClrScr;

n:=0;

repeat

n:=n+1;

WriteLn('Введите ',n,'-ю запись таблицы');

Writeln('Государство:');

ReadLn(t[n].name);

WriteLn('Площадь: ');

Readln(t[n].area);

WriteLn('Продолжить ввод? y/n');

ch:=ReadKey;

until ch in ['n','N','т','Т'];

Writeln('Сохранить введенные данные в файле? y/n');

ch:=ReadKey;

if ch in ['n','N','т','Т'] then

exit;

Writeln('Введите имя файла');

ReadLn(fname);

Assign(f,fname);

{$I-} { отключение контроля ошибок ввода/вывода }

Rewrite(f);

{$I+} { включение контроля ошибок ввода/вывода }

cod:=IOResult;

if cod=0 then

begin

for i:=1 to n do

write(f, t[i]);

close(f);

end

else

begin

Writeln('Ошибка при создании файла');

ReadKey;

end;

end;
procedure InFileTab( var T: Table; var n: integer);

{чтение записей из файла в таблицу}

var cod: byte;

f: file of rec;

fname: string;

ch: char;

begin

ClrScr;

repeat

Writeln('Введите имя файла');

ReadLn(fname);

Assign(f,fname);

{$I-} {отключение контроля ошибок ввода/вывода}

Reset(f);

{$I+}

cod:=IOResult;

if cod<>0 then { файл не найден }

begin

WriteLn('Не могу найти файл ', fname);

Writeln('Продолжить работу? y/n');

ch:=ReadKey;

if ch in ['n','N','т','Т'] then

exit; {выход в меню}

end;

until cod=0;

n:=0;

while not eof(f)do

begin

n:=n+1;

read(f,T[n]);

end;

close(f);

WriteLn('Таблица загpужена из файла ', fname);

Write('Нажмите любую клавишу...');

ReadKey;

end;

procedure ShowTab( var T: Table;n: integer);

{печать всех записей таблицы}

var i:integer;

begin

ClrScr;

WriteLn('Записи таблицы:');

WriteLn('--------------T----------¬');

WriteLn('¦ Государство ¦ Площадь ¦');

WriteLn('+-------------+----------+');

for i:=1 to n do

WriteLn('¦',T[i].Name:12,' ¦',T[i].Area:9,' ¦');

WriteLn('L-------------+-----------');

WriteLn('Нажмите любую клавишу ...');

ReadKey;

end;

procedure PrintTab(var T:Table; n,i,imin:integer);

{промежуточная печать ключей для демонстрации метода сортировки}

var k:integer;

begin

for k:=1 to n do

begin

if k=i then {i-позиция переставляемой записи}

textattr:=red*16+white {белые на красном фоне}

else

if k=imin then {imin-позиция записи с мин.ключом}

textattr:=blue*16+white {белые на синем фоне}

else

textattr:=black*16+white;{белые на черном фоне}

write(t[k].Area);

textattr:=black*16+white;

write(' ');

end;

writeln;

end;

procedure SortTab(var T:Table; n:integer);

{процедура сортировки таблицы методом линейного выбора}

var i, imin,j:integer;

tmp:rec;

begin

ClrScr;

WriteLn('Шаги сортировки (выделены ключи переставляемых записей)');

for i:=1 to n-1 do

begin

imin:=i; {определение индекса мин. элемента}

for j:=i+1 to n do

if t[j].Areathen

imin:=j;

if imin<>i then

begin

PrintTab(T,n,i,imin);{промежут. печать ключей}

ReadKey;

{обмен записей}

tmp:=t[i];

t[i]:=t[imin];

t[imin]:=tmp;

end;

end;

end;

begin

n:=0;

repeat

ClrScr;

WriteLn('1. Ввод данных с клавиатуры');

WriteLn('2. Загpузка таблицы из файла');

WriteLn('3. Вывод таблицы');

WriteLn('4. Сортировка таблицы методом линейного

выбора');

WriteLn('------------------------------------');

WriteLn('0. Выход');

WriteLn;

Write('Ваш выбоp: ');

ReadLn(ch);
Case ch of

1: InTab(T,n);

2: InFileTab(T,n);

3: if n<>0 then

ShowTab(T,n)

else

begin

Writeln('Таблица не создана');

ReadKey;

end;

4: if n<>0 then

SortTab(T,n)

else

begin

Writeln('Таблица не создана');

ReadKey;

end;

end;

until ch=0;

end.

1   ...   11   12   13   14   15   16   17   18   19

Похожие:

Методические указания и задания к лабораторным работам по курсу \"алгоритмы и структуры данных \" iconФизика методические указания к лабораторным работам 10, 31
Козлов В. А., Курушин А. Д., Серов Е. А. Физика. Методические указания к лабораторным работам 10, 31 // Под общ ред доц. С. Г. Стоюхина....

Методические указания и задания к лабораторным работам по курсу \"алгоритмы и структуры данных \" iconМетодические указания и задания к лабораторным работам по курсам “
Дискретные структуры“, “Теория алгоритмов и вычислительных процессов“ (для студентов специальностей 050102 “Программное обеспечение...

Методические указания и задания к лабораторным работам по курсу \"алгоритмы и структуры данных \" iconМетодические указания к лабораторным наборам предназначены для студентов,...
Металлургическая гидроаппаратура: Методические указания к лабораторным работам / Санкт-Петербургский государственный горный институт...

Методические указания и задания к лабораторным работам по курсу \"алгоритмы и структуры данных \" iconМетодические указания к лабораторным работам по дисциплине «Автоматизация...
Сапр простейшей структуры на основе расчета и анализа критериев эффективности с использованием имитационных моделей

Методические указания и задания к лабораторным работам по курсу \"алгоритмы и структуры данных \" iconМетодические указания к лабораторным работам по курсу “
В прологе предусматриваются основные арифметические операции +, -, /, ×, mod, div. Чтобы заставить систему выполнить присваивание...

Методические указания и задания к лабораторным работам по курсу \"алгоритмы и структуры данных \" iconМетодические указания к лабораторным работам по дисциплине «Программирование»
Тема: Разработка классов, создание конструкторов и деструкторов. Использование статических членов класса

Методические указания и задания к лабораторным работам по курсу \"алгоритмы и структуры данных \" iconУчебное пособие к лабораторным работам
Автоматизированные информационно-управляющие системы: учебное пособие к лабораторным работам / Л. С. Казаринов, Т. А. Барбасова,...

Методические указания и задания к лабораторным работам по курсу \"алгоритмы и структуры данных \" iconКонтрольные задания по курсу «Экономико-математическое моделирование»...
Контрольные задания по курсу «Экономико-математическое моделирование» и методические указания к их выполнению

Методические указания и задания к лабораторным работам по курсу \"алгоритмы и структуры данных \" iconКонтрольные задания по курсу «Экономико-математическое моделирование»...
Контрольные задания по курсу «Экономико-математическое моделирование» и методические указания к их выполнению

Методические указания и задания к лабораторным работам по курсу \"алгоритмы и структуры данных \" iconМетодические указания и контрольные задания к выполнению контрольных...
В методических указаниях приведены программа изучения курса, контрольные вопросы, контрольные задания и методические указания по...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
vbibl.ru
Главная страница