Скачиваний:
46
Добавлен:
10.02.2015
Размер:
407.04 Кб
Скачать

Восновной программе добавить печать массива слов. Предварительно надо объявить переменные. После отладки отладочные выводы надо убрать.

nw:=StrToWord(s, w); writeln(' nw=', nw);

for i:=1 to nw do writeln(w[i]);

Задание 2

Отсортировать массив слов

1.По алфавиту

2.По длине слова

Для сортировки целесообразно использовать одну функцию сортировки с передачей ей критерия сортировки через процедурный тип.

Type

TFSort=Function(s1, s2 : string) : Boolean;

Функции - критерии сортировки

Function FSortA(s1, s2 : string) : Boolean;

Begin if s1>s2 then Result:=true else

Result:=false; End; Function FSortL(s1, s2 : string) : Boolean;

Begin if length(s1)>length(s2) then Result:=true else Result:=false; End;

Функция сортировки с подсчетом перестановок

Function Sort(Var w : Tw; nw : word; FSort : TFSort) : word;

Var i, j : word; buf : string; Begin

Result:=0;

for i:=1 to nw-1 do for j:=i+1 to nw do

if FSort(w[i], w[j]) then

begin inc(Result); buf:=w[i]; w[i]:=w[j]; w[j]:=buf; end;

End;

Основная программа

Var s : string;

w: Tw;

nw, i : word;

BEGIN

//. . . . . . . . . . . . . .

//SortA

writeln(' Change SortA=',

Sort(w, nw, FSortA)/(0.5*(nw-1)*nw):7:3); for i:=1 to nw do writeln(w[i]);

//SortL

writeln(' Change SortL=',

Sort(w, nw, FSortL)/(0.5*(nw-1)*nw):7:3); for i:=1 to nw do writeln(w[i]);

readln;

END.

Соседние файлы в папке Практикумы 1 курс