ФЭА / Информатика / КУРСОВАЯ РАБОТА ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА» РАЗДЕЛ: АЛГОРИТМИЧЕСКИЙ ЯЗЫК PASCAL НА ТЕМУ: «Разработка в среде Turbo Pascal программы сжатия массива»
(автор - student, добавлено - 29-04-2014, 12:19)
СКАЧАТЬ:
КУРСОВАЯ РАБОТА ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА» РАЗДЕЛ: АЛГОРИТМИЧЕСКИЙ ЯЗЫК PASCAL НА ТЕМУ:
«Разработка в среде Turbo Pascal программы сжатия массива»
ОглавлениеОглавление……………………………………………………………..1 1.ПОСТАНОВКА ЗАДАЧИ………………………………………………..3 2.ОПИСАНИЕ АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ ГРАФИЧЕСКИМ СПОСОБОМ………………………………………………………………...4 2.1 Укрупненная схема алгоритма. 4 2.2 Блок-схема алгоритма. 10 3.РАЗРАБОТКА ПРОГРАММЫ НА ЯЗЫКЕ PASCAL…..………..…..13 3.1 Описание блоков укрупненной схемы алгоритма на языке Pascal 14 3.2 Листинг программы.. 17 3.3 Тестирование программы.. 19 4.СПИСОК ЛИТЕРАТУРЫ….………………………………………….20
.ПОСТАНОВКА ЗАДАЧИ Разработка в среде Turbo Pascal программы формирования и обработки элементов одномерного массива.
Дан двумерный целочисленный массив А(2х15). 1.Преобразовать массив в одномерный. 2.Сжать массив, удаляя его одинаковые элементы. Под удалением элемента из массива понимать исключение этого элемента путем смещения всех следующих за ним элементов влево на 1 позицию и присваивание последнему элементу массива значения 0. 3.Преобразованный массив упорядочить по убыванию. Для отладки программы исходный массив сформировать с помощью генератора случайных чисел.
2.ОПИСАНИЕ АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ ГРАФИЧЕСКИМ СПОСОБОМ
Укрупненная схема алгоритма
Детализация укрупненной схемы алгоритма В программе решаются следующие задачи:
Ввод элементов двумерного массива
Как оговаривалось в постановке задачи, ввод элементов двумерного массива будем осуществлять с помощью генератора случайных чисел. Поэтому воспользуемся формулой Random(100). Алгоритм заполнения массива соответствующими числами указан ниже:
Преобразование двумерного массива в одномерный
Для осуществления данного алгоритма нам необходимо взять новую переменную и присваивать значения двумерного массива:
Вывод одномерного массива После преобразования выводим массив. Вывод элементов одномерного массива осуществляется при помощи цикла с параметром.
Удаление одинаковых элементов Под удалением элемента из массива понимать исключение этого элемента путем смещения всех следующих за ним элементов влево на 1 позицию и присваивание последнему элементу массива значения о.
Сортировка массива по убыванию Для сортировки массива используем алгоритм линейной сортировки (сортировка методом прямого выбора). Идея линейной сортировки заключается в том, чтобы, последовательно просматривая весь массив, отыскать наибольший элемент и поменять местами его с первым элементом. Затем просматриваются элементы массива, начиная со второго, снова находится наибольший, который меняется местами со вторым и т.д., пока не будет отсортирован весь массив. Блок схема:
Вывод элементов массива После создания и сортировки выводим полученный массив на экран. Вывод элементов массива осуществляется при помощи цикла с параметром.
Блок-схема алгоритма
3. РАЗРАБОТКА ПРОГРАММЫ НА ЯЗЫКЕ PASCALПрограмма начинается со служебного слова Program, после которого следует заголовок программы. Далее включаем раздел Uses для использования модуля CRT, который применяется для управления работой экрана в текстовом режиме. После названия программы и идентификации используемых модулей следует раздел переменных (var). В разделе переменных описан целочисленный массив под именем a, целочисленные переменные i, j – счетчики циклов; temp – вспомогательная переменная для сортировки элементов и т.д. Тело программы или раздел операторов начинается со слова begin и заканчивается end. В этом разделе описываем действия, которые должна выполнить программа согласно выбранному алгоритму. Так как в программе подразумевается ввод данных с экрана и вывод полученных результатов на экран, перед началом программы его необходимо очистить от ненужной информации. Это проделывает процедура clrscr, которая описана в модуле Crt. Перед первым обращением к функции random необходимо с помощью вызова процедуры randomize инициализировать программный генератор случайных чисел, иначе при каждом запуске программы датчик будет выдавать одни и те же числа.
Описание блоков укрупненной схемы алгоритма на языке Pascal
Ввод элементов массива. Для того, чтобы прокомментировать, что вначале будет выведен исходный массив на экран, используем оператор writeln('Сгенерированный двумерный массив'). Рассмотренный фрагмент блок-схемы для реализации ввода элементов двумерного массива на языке Pascal будет представлен в следующем виде:
for i:=1 to n do begin for j:=1 to m do begin a[i,j]:=random(100); write(a[i,j]:3); end;
Запись write(a[i,j]:3) обозначает, что для вывода каждого элемента на экран отводится 3 позиции. Следующий оператор random с параметрами генерирует случайно взятое число и помещает его в текущий элемент массива. Так мы можем быстро заполнить массив интересующим нас диапазоном чисел. Добавим в конце оператор writeln без параметров для более удобного восприятия информации с экрана.
Сортировка массива
Вывод преобразованного массива
После сортировки выводим полученный массив на экран стандартными средствами вывода:
writeln('Отсортированный массив:'); for i:=1 to n*m do write(b[i]:3);
где write(b[i]:3) – вывод элементов массива в строку с указанием количества занимаемых позиций.
Листинг программы program Gusmanov; uses crt; const n=2; m=15; var a: array [1..n,1..m] of integer; b: array [1..m*n] of integer; i,j,k,c,l,d,max:integer; begin randomize; clrscr; for i:=1 to n do begin for j:=1 to m do begin a[i,j]:=random(100); write(a[i,j]:3); end; writeln; end; k:=1; for i:=1 to n do for j:=1 to m do begin b[k]:=a[i,j]; k:=k+1; end; writeln; for k:=1 to m*n do write(b[k]:3); writeln;
for k:=1 to m*n do for d:=k+1 to m*n do if b[k]=b[d] then begin for l:=d to m*n-1 do b[l]:=b[l+1]; b[m*n]:=0; end;
for i:=1 to m*n do begin max:=b[i]; for k:=i to m*n do if b[k]> max then begin max:=b[k]; l:=k; end; c:=b[i]; b[i]:=max; b[l]:=c; end; writeln; writeln; for k:=1 to m*n do write(b[k]:3); readln; end.
Тестирование программы Ниже приведены результаты выполнения программы на примере различных входных данных.
4. Список литературыИванов А.Ф., Потапова О.Н., Салихова Г.Л. Основы алгоритмического языка Pascal. – Альметьевск: тип. АлНИ, 2007г.
5. Попов В., «Паскаль и Дельфи. Самоучитель» - СПб.:-«Питер», 2003г.
Похожие статьи:
|
|