Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Отчет по лабораторной работе 7 ldquo;Сортировка rdquo; Выполнил- студент группы 514

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 1.6.2024

Министерство образования и науки РФ.

Федеральное агентство по образованию.

Томский Государственный Университет Систем Управления и

Радиоэлектроники.

ТУСУР.

Кафедра компьютерных систем в управлении и проектировании.

КСУП.

Отчет по лабораторной работе №7

“Сортировка ”

Выполнил: студент группы №514

______________________

Проверил: ассистент кафедры КСУП

______________________

ТОМСК – 2005г.

Содержание

1. Введение____________________________________________________________      стр.

2.Основная часть:

          а)условие задачи №7_______________________________________________     стр.

          б)программа с комментариями_____________________________________     стр.

          в) условие задачи №17______________________________________________     стр.

          г) программа с комментариями_____________________________________     стр.

3.Вывод_______________________________________________________________      стр.

 

Введение.

Сортировка – один из наиболее распространенных   процессов современной обработки данных. Сортировкой называется распределение элементов множества по группам  в соответствии с определенными правилами.

Сортировка простыми включениями

Этот метод обычно используют игроки в карты. Элементы

(карты) условно разделяются на готовую последовательность a1,a2,...,a(i-1) и входную последовательность ai,...,an. На каждом

шаге, начиная с i=2 и увеличивая i на 1, берут i-ый элемент входной последовательности и передают в главную последовательность, вставляя его на подходящее место.

Сортировка простым выбором

Метод:

1) Выбирается наименьший элемент.

2) Он меняется с первым элементом a[1].

3) Эти операции повторяются с оставшимися n-1 элементами, потом с n-2 элементами, пока не останется только один элемент наибольший.

Сортировка простым обменом (метод "пузырька")

Метод:

Сравниваем и обмениваем два соседних элемента, до тех пор пока не будут рассортированы все элементы.

Сортировка слиянием

Слияние обозначает объединение двух или более упорядоченных последовательностей в одну упорядоченную последовательность.

Основная часть

Задача №7.

Пусть дана строка, в которой между словами находится по одному пробелу. Переставить слова по возрастанию в лексикографическом порядке.

Описание переменных:

a) глобальные переменные:

  1.  S – тип string, т.к. это вводимая строка;
  2.  I, j – определяем тип word, так как нужны целочисленные значения.

б) локальные переменные:

  1.  i1, kk, ll, i2, k2, i3, k3, i4, t4, ki, ii, i5 - определяем тип word, так как нужны целочисленные значения.
  2.  t3,os – тип string, т.к. это строка;

Пошаговое описание:

Шаг №1 Вводим строку;

Шаг №2 Сортируем простым выбором;

Шаг №3 Выводим строку;

Описание ф-ий и процедур:

LecСравнивает два слова и переставить слова по убыванию в лексикографическом порядке.

HmvОпределяет кол-во слов в строке.

Woнаходит нужное слово в строке.

Delудаляет нужное слово в строке.

Ins - вставляет нужное слово в строку.

Changeменяет местами слова.

 

Текст программы с коментариями

Uses Crt; {Подключение библиотек}

Var s           : String;{Описание глобальных иеременных}

   i,j         : Word;

Function Lec(w1,w2:string):word;{Сравнивает два слова и определяет какое слово должно быть первым}

Var i1,kk,ll:word;       {Описание локальных переменных}

Begin

If (Length(w1)>Length(w2)) then ll:=Length(w2) else ll:=Length(w1);

kk:=0;

For i1:=1 to ll do

If (Ord(w1[i1])<>Ord(w2[i1])) then

 Begin

  If (Ord(w1[i1])>Ord(w2[i1])) then kk:=1 else kk:=2;{}

  Break;

 End;

If ((kk=0)and(Length(w1)=ll)) then kk:=2;

If ((kk=0)and(Length(w2)=ll)) then kk:=1;

Lec:=kk;

End;

Function hmw(s2:string):word;{Определяет кол-во слов в строке}

Var i2,k2                       : word; {Описание локальных переменных}

Begin

k2:=1;

For i2:=1 to Length(s2) do

 If s2[i2]=' ' then inc(k2);

hmw:=k2;

End;

Function wo(n3:word;s3:string): string;{находит нужное слово}

Var i3,k3                           :word; {Описание локальных переменных}

   t3                              :string;

Begin

k3:=1;

t3:='';

For i3:=1 to length(s3) do

 Begin

  If (s3[i3] = ' ') then Begin inc(k3); Continue; End;

  If (k3 = n3) then t3:=t3+s3[i3];

 End;

wo:=t3

End;

Procedure Del(var s4:string;n4:word);{удаляет нужное слово}

Var i4,k4,t4      :word; {Описание локальных переменных}

Begin

k4:=1;

t4:=0;

For i4:=1 to length(s4) do

 Begin

  If (s4[i4-t4] = ' ') then Begin inc(k4); Continue; End;

  If (k4=n4) then Begin Delete(s4,i4-t4,1);Inc(t4); End;

 End;

End;

Procedure Ins(var si:string;wi:string;ni:word);{Вставляет нужное слово}

Var ki,ii :word; {Описание локальных переменных}

Begin

ki:=1;

If (ki=ni) then begin Insert(wi,si,ni);Exit; end;

For ii:=1 to length(si) do

 begin

  If (si[ii] = ' ') then inc(ki);

  If (ki=ni) then Begin Insert(wi,si,ii+1);Break; End;

 end;

End;

Procedure Change(var st:string;v1,v2:word);{меняет слова местами}

var i5               :word; {Описание локальных переменных}

   os               :string;

Begin

os:=st;

Del(st,v1);

Ins(st,wo(v2,os),v1);

Del(st,v2);

Ins(st,wo(v1,os),v2);

End;

BEGIN

ClrScr; {Очитска экрана}

Write('Введите строку: ');

 Readln(s);{Ввод строки}

For i:=1 to (hmw(s)-1) do{сортировка простым выбором}

 For j:=i+1 to hmw(s) do

  If Lec(wo(i,s),wo(j,s))=2 then Change(s,i,j);

Write('Строка: ',s);{вывод отсортированной строки}
Readkey;

END.{Конец программы}

Результаты работы прогаммы:

Введите строку: 345 ghfj tyrue cvbd

Строка: 345 cvbd ghfj tyrue

Задача №17

Дана матрица A из целых чисел размером MxN. Переставить строки матрицы так, чтобы строки стали расположены по возрастанию в лексикографическом порядке.

 Описание переменных:

  1)Глобальные:

        а) i, j- определяем тип word, так как нужны целочисленные значения.   

        б) c – mat;

        

  2)Локальные:

         t1,i1,i2,k2 - определяем тип word, так как нужны целочисленные значения.        

 

Пошаговое описание алгоритма:

       Шаг№1 забиваем массив случайными числами;

       Шаг№2вызов процедуры сортировки методом пузырька ;

            Шаг№3 вывод результата на экран.

Описание ф-ий и процедур:

LecУстанавливает лексикографический порядок строк .

ChangeМеняет местами строки матрицы.

Текст программы с комментариями

uses Crt; {Подключение библиотек}

const m=3; {Описание констант}

     n=4;

type mat=array[1..m,1..n] of word; {Задание нового типа}

Var i,j:word; {Описание глобальных иеременных}

   c  :mat;

Procedure Change(var m1:mat;s11,s12:word); {Заголовок процедуры}

Var t1,i1            :word; {Описание локальных переменных}

Begin

For i1:=1 to n do

 Begin

  t1:=m1[s11,i1];m1[s11,i1]:=m1[s12,i1];m1[s12,i1]:=t1;

 End;

End;

Function Lec(m2:mat;s21,s22:word):word; {Заголовок функции}

Var i2,k2            :word;    {Описание локальных переменных}

Begin

k2:=1;

For i2:=1 to n do

 Begin

  If m2[s21,i2]>m2[s22,i2] then begin k2:=1;break; end;

  If m2[s21,i2]<m2[s22,i2] then begin k2:=2;break; end;

 End;

lec:=k2;

End;

BEGIN

ClrScr; {Очитска экрана}

Randomize;

For i:=1 to m do

 Begin

  For j:=1 to n do

   Begin

    c[i,j]:= random(100); {Задание массива случайным образом}

    If ((c[i,j] div 10)>0) then Write(c[i,j],' ') else Write(c[i,j],'  ');

   End;

   Writeln;

 End;

For i:=1 to (m-1) do

 For j:=i to m do

  If Lec(c,i,j)=1 then Change(c,i,j);{Сортировка}

Writeln;

For i:=1 to m do

 Begin

  For j:=1 to n do {Вывод результата}

   If ((c[i,j] div 10)>0) then Write(c[i,j],' ') else Write(c[i,j],'  ');

   Writeln;

 End;

Readkey;

END.

Результаты работы прогаммы:

8 84 25 83             

42 17 82 21

 11   18  45   90

 

  8   84   25   83

11 18 45 90 

42 17 82 21

Вывод

С помощью этой лабораторной работы мы ознакомились с сортировкой, научились использовать метод пузырька и случайного выбора.




1. Принципы трудового права это установленные с помощью законодательства положения основывающиеся на общ
2. Тема данной работы была выбрана в связи с широким внедрением и использованием информационных технологий в уч
3. Решение головоломки Ж Арсака
4. Что такое аритмология
5. Северодвинский техникум управления и информационных технологий НОУ СПО СТУИТ НОУ СПО Северодвински.html
6. Реферат на тему- Принципи навчання інформатики
7. плохих которые якобы за Европу и хороших которые якобы за Россию виден невооруженным глазом
8. Вода
9.  Социализация- стадии факторы агенты средства механизмы Мудр 2002 гл 2
10. то переночевать. Было второе послевоенное лето хотя на улице стояла ночь я весь вспотел от жары и безумной.
11. Реферат- Общество анонимных трудоголиков
12. Экономика предприятия промышленности группы Эк 2526 Предприятие и предпринимательство
13. Іонізуючі випромінювання та їх характеристика Назва ldquo;іонізуючі випромінюванняrdquo; об~єднує різні за с.html
14. ЛАБОРАТОРНАЯ РАБОТА 1 Создание функциональной модели деятельности компании IDEF0
15. Задание 1 Требуется распределить V тыс
16. Курсовая работа- Профилировщик приложений
17. Транспортирование глины и добавок. Оборудование для подготовки добавок
18. тема наук об управлении
19. В языке есть слова
20. Особливості фізичної реабілітації в період вагітності, пологовий та післяпологовий періоди