Сортировка массивов

Автор работы: Пользователь скрыл имя, 02 Ноября 2011 в 20:05, курсовая работа

Краткое описание

Задача
Заполнить массив длиной 50 элементов последовательностью случайных положительных вещественных чисел.
Найти минимальный и максимальный элементы массива и вывести их на экран.
Отсортировать массив по возрастанию методом вычеркивания.
Исходный и отсортированный массивы вывести в текстовый файл.
Цель

Познакомится с методами сортировки массивов, научится находить минимальный и максимальный элементы, сортировать массив, выводить данные в текстовый файл.

Содержимое работы - 1 файл

ТитульныйМЕХ.doc

— 36.50 Кб (Скачать файл)

 Пермский  Государственный  Технический Университет 

      Кафедра МСА 
 
 
 

        
 
 
 

      Курсовая  работа

      по  теме

      «СОРТИРОВКА МАССИВОВ»

 
 
 
 
 

                    выполнил  студент

                           Механошин А.В. 

                           ЭТФ, гр. ЭСу-01 
               
               
               
               
               
               
               
               
               
               

   Пермь 2002

Задача

  1. Заполнить массив длиной 50 элементов последовательностью случайных положительных вещественных чисел.
  2. Найти минимальный и максимальный элементы массива и вывести их на экран.
  3. Отсортировать массив по возрастанию методом вычеркивания.
  4. Исходный и отсортированный массивы вывести в текстовый файл.

Цель

Познакомится  с методами сортировки массивов, научится находить минимальный и максимальный элементы, сортировать массив, выводить данные в текстовый файл.

Описание  программы

  1. Формируем исходный массив с помощью генератора случайных чисел.
  1. Выводим исходный массив на экран.
  2. Определяем максимальный и минимальный элементы массива.
  3. Проводим сортировку массива в цикле методом вычеркивания.

     Метод состоит из N этапов. На каждом этапе в исходном массиве

     Z[N] ищется минимальное значение, которое переписывается в

     ячейку Y[I] целевого массива (I – номер этапа), а вместо него в

     исходном массиве записывается  достаточно большое число

     (элемент как бы вычеркивается  – он уже не может быть

     минимальным). Здесь же подсчитывается  число итераций

     (количество вычеркнутых элементов).

  1. Выводим отсортированный массив на экран.
  2. Выводим число итераций на экран.
  3. Вводим имя файла для вывода данных в текстовый файл.
  4. Связываем имя файла с файловой переменной, открываем файл

    для вывода.

  1. Выводим данные.
  2. Закрываем файл.

Программа

 

program sort_3 (input,output);

uses crt;

var

   Z:array [1..50] of real;

   Y:array [1..50] of real;

   A:array [1..50] of real;

   I,N,J,iter,min_pos:integer;

   max,min,min1:real; name:string;

   F: text;

begin

   clrscr; N:=50; {всего элементов в массиве}

   for I:=1 to N do

      begin

      Z[i]:=random(30); {генератор случ. чисел}

      A[i]:=Z[i] {формируется исходный массив}

      end;

   writeln ('ИСХОДНЫЙ  МАССИВ');

   write ('[');

    for I:=1 to N do

      begin

      write(' ',Z[i]:4:2)

      end;

   write (' ]');

   writeln;

   max:=Z[1]; min1:=Z[1];

   for I:=1 to N do

   begin if max<z[i] then max:=z[i];

         if min1>z[i] then min1:=z[i]

         {нахождение мин.и макс.элементов}

   end;

   writeln;

  writeln ('МАКС. ЭЛЕМЕНТ МАССИВА = ',max:4:2);

   writeln ('МИН.  ЭЛЕМЕНТ МАССИВА = ',min1:4:2);

   iter:=0;

   for J:=1 to N do

   begin

     min:=Z[1]; {запоминаем первый элемент}

     min_pos:=1; {и его позицию}

     for I:=2 to N do

         begin

           if Z[i]<min then

           begin

            {минимальным становится z[i]}

            min:=Z[i];  min_pos:=i;

            iter:=iter+1 {счетчик итераций}

           end;

         end;

      {сохраняем мин.элемент,вычеркиваем  его из исх.массива}

          Y[J]:=Z[min_pos]; Z[min_pos]:=9999;

      {записываем большое число вместо  минимального}

    end;

   writeln;

   writeln ('ОТСОРТИРОВАННЫЙ  МАССИВ');

     write ('[');

     for I:=1 to N do

     begin

     write (' ',Y[i]:4:2)

     end;

     writeln (' ]');

   writeln;

   writeln('КОЛИЧЕСТВО  ИТЕРАЦИЙ =',iter);

   writeln;

writeln ('НАЗВАНИЕ  ФАЙЛА ДЛЯ ВЫВОДА РЕЗУЛЬТАТОВ:');

readln (name);

assign (F,name);

rewrite (F); {открываем  файл для вывода результатов}

   writeln(F,' ':30,'СОРТИРОВКА  МАССИВА ПО ВОЗРАСТАНИЮ');

   writeln(F,' ':4,'№  п/п',' ':20,'исх.массив',' ':20,'отсорт.массив');

   for I:=1 to N do

   writeln (F,' ':5,i,' ':27,a[i]:4:2,' ':27,Y[i]:4:2);

   writeln (F,' ':10,'минимальный  элемент массива =  ',min1:4:2);

   writeln (F,' ':10,'максимальный элемент массива =  ',max:4:2);

   close (F) {закрываем  файл для вывода результатов}

end. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Вывод данных (текстовый  файл) 

          СОРТИРОВКА  МАССИВА ПО ВОЗРАСТАНИЮ 

   № п/п                    исх.массив                   отсорт.массив

     1                           0.00                           0.00

     2                           0.00                           0.00

     3                           25.00                          0.00

     4                           6.00                           0.00

     5                           8.00                           0.00

     6                           20.00                          1.00

     7                           9.00                           2.00

     8                           4.00                           2.00

     9                           11.00                          4.00

     10                          12.00                          4.00

     11                          2.00                           4.00

     12                          14.00                          4.00

     13                          2.00                           4.00

     14                          25.00                          6.00

     15                          1.00                           7.00

     16                          8.00                           8.00

     17                          27.00                          8.00

     18                          11.00                          8.00

     19                          23.00                          8.00

     20                          9.00                           9.00

     21                          20.00                          9.00

     22                          25.00                          9.00

     23                          21.00                          9.00

     24                          9.00                           11.00

     25                          4.00                           11.00

     26                          9.00                           12.00

     27                          13.00                          13.00

     28                          7.00                           14.00

     29                          24.00                          14.00

     30                          8.00                           14.00

     31                          14.00                          15.00

     32                          4.00                           17.00

     33                          26.00                          19.00

     34                          8.00                           20.00

     35                          23.00                          20.00

     36                          29.00                          21.00

     37                          14.00                          21.00

     38                          26.00                          23.00

     39                          24.00                          23.00

     40                          0.00                           23.00

     41                          4.00                           23.00

     42                          4.00                           24.00

     43                          15.00                          24.00

     44                          0.00                           25.00

     45                          17.00                          25.00

     46                          0.00                           25.00

     47                          23.00                          26.00

     48                          19.00                          26.00

     49                          23.00                          27.00

     50                          21.00                          29.00

          

           минимальный элемент массива =  0.00

         максимальный элемент массива  =  29.00

Информация о работе Сортировка массивов