ФЭА / Информатика / КУРСОВАЯ РАБОТА ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА» РАЗДЕЛ: АЛГОРИТМИЧЕСКИЙ ЯЗЫК PASCAL НА ТЕМУ: Разработка в среде Turbo Pascal программы удаления определенных элементов массива
(автор - student, добавлено - 29-12-2015, 19:48)
Скачать:
КУРСОВАЯ РАБОТА ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА» РАЗДЕЛ: АЛГОРИТМИЧЕСКИЙ ЯЗЫК PASCAL НА ТЕМУ: Разработка в среде Turbo Pascal программы удаления определенных элементов массива
ОГЛАВЛЕНИЕ ПОСТАНОВКА ЗАДАЧИ.. 3 ОПИСАНИЕ АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ ГРАФИЧЕСКИМ СПОСОБОМ 4 Укрупнённая схема алгоритма. 4 Детализация укрупненной схемы алгоритма. 5 Блок-схема алгоритма. 8 РАЗРАБОТКА ПРОГРАММЫ НА ЯЗЫКЕ PASCAL. 11 Описание блоков укрупненной схемы алгоритма на языке Pascal. 12 Листинг программы.. 15 Тестирование программы.. 17 Список литературы.. 18
ПОСТАНОВКА ЗАДАЧИ
Разработать в среде Turbo Pascal программу удаления определенных элементов массива. Дан массив размера N. 1.Удалить последний элемент массива, который больше своего левого соседа. Под удалением элемента из массива понимать исключение этого элемента путем смещения всех следующих за ним элементов влево на 1 позицию и присвоение последнему элементу массива значение 0. 2.Преобразованный массив вывести в порядке убывания элементов. Для отладки программы исходную матрицу сформировать с помощью генератора случайных чисел.
Детализация укрупненной схемы алгоритма
В программе решаются следующие подзадачи: 1.Формирование и вывод одномерного массиваA(n) 2.Поиск последнего элемента массива, который больше своего левого соседа 3.Удаление требуемого элемента из массива 4.Упорядочение элементов массива по убыванию 5.Вывод результата
Формирование и вывод одномерного массива A(n) Алгоритм заполнения массива соответствующими числами указан ниже (приведена блок-схема):
Поиск
последнего элемента массива, Приведем фрагмент блок-схемы:
Удаление требуемого элемента из массива
Описанный процесс отображен в блок-схеме:
Упорядочение элементов массива по убыванию
Приведем фрагмент блок-схемы:
Вывод результата
Приведем фрагмент блок-схемы:
Блок-схема алгоритма.РАЗРАБОТКА ПРОГРАММЫ НА ЯЗЫКЕ PASCAL
Программа начинается со служебного слова Program, после которого следует заголовок программы KR. Далее включаем раздел Uses для использования модуля CRT, который применяется для управления работой экрана в текстовом режиме. После названия программы и идентификации используемых модулей следует раздел объявления констант (const)и переменных (var). В данной программе в разделе констант объявлена константа n=5 (размерность массива). В разделе переменных описан целочисленный массив a – одномерный массив, целочисленные переменные i,j – счетчики циклов, переменная max – последний элемент массива, который больше своего левого соседа, k – номер искомого элемента, p– вспомогательная переменная для сортировки элементов одномерного массива. Тело программы или раздел операторов начинается со слова begin и заканчивается end. В этом разделе описаны действия, которые должна выполнить программа согласно выбранного алгоритма. Так как в программе подразумевается вывод полученных результатов на экран, перед началом программы его необходимо очистить от ненужной информации. Это проделывает процедура clrscr, которая описана в модуле Crt. Процедуру ReadLn без параметров применяем в конце программы для задержки: до нажатия на клавишу <Enter</b>> результат выполнения программы остается на экране.
Описание блоков укрупненной схемы алгоритма на языке Pascal.
Формирование и вывод одномерного массива A(n) Рассмотренный фрагмент блок-схемы для реализации ввода и вывода элементов одномерного массива по заданному правилу на языке Pascal будет представлен в следующем виде:
Writeln(' Одномерный массив:'); {Заполнение и вывод массива на экран} for i:=1 to n do begin a[i]:=random(41)-20; write(a[i]:4); end;writeln;
Поиск
последнего элемента массива,
Введем переменную max, предположим, что последним элементом массива, который больше своего левого соседа является первый элемент – max:=a[1]. Тогда k:=1. Далее просматриваем элементы массива в цикле с параметром, начиная со второго элемента. Сравниваем a[i]>a[i-1], если условие выполняется max:=a[i]; k:=i. Рассмотренный фрагмент блок-схемы для реализации поиска и выбора по заданному правилу на языке Pascal будет представлен в следующем виде:
max:=a[1];k:=1; for i:=2 to n do if a[i]>a[i-1] then begin max:=a[i]; k:=i;end; Writeln(' Последним элементом массива, который больше своего левого соседа является ', max); Writeln(' (',k, '-й элемент)'); Удаление требуемого элемента из массива
В цикле просматриваем элементы заданного массива, начиная с k-го до n-го элемента, во вложенном цикле перебираем элементы с номерами столбцов от i до (n-1)-го и осуществляем сдвиг на 1 позицию влево, после чего последнему элементу присваиваем 0. Теперь на месте i-го элемента стоит следующий по номеру (i+1)-й. Таким образом, осуществляем удаление k-го элемента из массива.
Writeln(' Удаление найденного элемента:'); for i:=k to n do for j:=i to n-1 do a[j]:=a[j+1]; a[n]:=0; for i:=1 to n do write(a[i]:4);
Упорядочение элементов массива по убыванию
Во вложенном цикле с параметром (первый цикл по переменной i от 1 до предпоследнего элемента, второй цикл по переменной j от i+1 до последнего элемента массива) сравниваем элементы a[i]>a[j], если условия выполняется, осуществляем перестановку, используя дополнительную переменную p. Описанная выше процедура сортировки на языке Pascal записывается следующим образом:
for i:=1 to n-1 do begin for j:=i+1 to n do if a[i]<a[j] then begin p:=a[i]; a[i]:=a[j]; a[j]:=p; end; end; writeln;
Вывод результата
Далее остается лишь вывести упорядоченный целочисленный одномерный массив A на экран:
writeln(' Упорядочение элементов '); for i:=1 to n do write(a[i]:4);
Задача решена.
Листинг программы
Program KR; Uses crt; Const n=10; Var a:array [1..n] of integer; i,j,k:byte; p,max:integer;
Begin clrscr; randomize; Writeln(' Одномерный массив:'); {Заполнение и вывод массива на экран} for i:=1 to n do begin a[i]:=random(41)-20; write(a[i]:4); end;writeln;
max:=a[1];k:=1; for i:=2 to n do if a[i]>a[i-1] then begin max:=a[i]; k:=i;end;
Writeln(' Последним элементом массива, который больше своего левого соседа является ', max); Writeln(' (',k, '-й элемент)');
{Удаление} Writeln(' Удаление найденного элемента:'); for i:=k to n do for j:=i to n-1 do a[j]:=a[j+1]; a[n]:=0;
for i:=1 to n do write(a[i]:4); {Упорядочение элементов}
for i:=1 to n-1 do begin for j:=i+1 to n do if a[i]<a[j] then begin p:=a[i]; a[i]:=a[j]; a[j]:=p; end; end; writeln; writeln(' Упорядочение элементов '); for i:=1 to n do write(a[i]:4); readln; End. Тестирование программыНиже приведен результат выполнения программы: Список литературы
1.Иванов А.Ф., Потапова О.Н. , Салихова Г.Л. Основы алгоритмического языка Pascal.: – Альметьевск: тип. АлНИ, 2007г. 2.Потапова О.Н., Салихова Г.Л., Садриева Л.М., Миндиярова О.Г., Мохова О.М., Фахрутдинова Р.Р., Ханова И.А. Методические указания по выполнению курсовой работы по информатике -Альметьевск , 2009г. – 156 с. 3.Перминов О.H. Программирование на языке ПАСКАЛЬ. - М.: Радио и связь, 1988. - 220 с. 4.Марченко А.И., Марченко Л.А. Программирование в среде TurboPascal 7.0. - М.: Бином Универсал, К.: ЮНИОР, 1997. - 496 с. 5.Культин Н. TurboPascal в задачах и примерах.– СПб.: БХВ-Петербург, 2003 г. – 256 с.
Похожие статьи:
|
|