Автор работы: Пользователь скрыл имя, 23 Мая 2011 в 18:31, курсовая работа
Задан одномерный массив. Найти элемент массива удовлетворяющий условию. Удалить найденный элемент из массива, и преобразованный массив упорядочить по возрастанию.
Исходными данными являются элементы одномерного массива и условие поиска элемента массива. В результате решения задачи должен быть удален элемент массива и сортировка массива по возрастанию.
АЛЬМЕТЬЕВСКИЙ ГОСУДАРСТВЕННЫЙ
НЕФТЯНОЙ
ИНСТИТУТ
КАФЕДРА ИНФОРМАТИКИ
КУРСОВАЯ РАБОТА
ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА»
РАЗДЕЛ:АЛГОРИТМИЧЕСКИЙ ЯЗЫК PASCAL
НА ТЕМУ:РАЗРАБОТКА В СРЕДЕ TURBO PASCAL
ПРОГРАММЫ
УДАЛЕНИЯ ЭЛЕМЕНТА МАССИВА
выполнил студент: Абдуллин Т.Р.
группы:19-13В
проверил: старший
преподователь Салихова Г.Л.
АЛЬМЕТЬЕВСК
2010 год
Постановка задачи
Задан одномерный массив. Найти элемент массива удовлетворяющий условию. Удалить найденный элемент из массива, и преобразованный массив упорядочить по возрастанию.
Исходными
данными являются элементы одномерного
массива и условие поиска элемента
массива. В результате решения задачи
должен быть удален элемент массива
и сортировка массива по возрастанию.
Описание алгоритма решения задачи графическим способом
Упрощенная
схема алгоритма
Детализация укрупненной схемы алгоритма
В программе решаются следующие подзадачи:
Ввод элементов одномерного массива
Ввод
элементов массива будем
Нахождение элемента массива удовлетворяющего условию
Поиск заключается втом что бы сравнить все элементы массива с условием a[i]=2*a[i+1]. Если такого элемента не будет найдено будет выведено сообщение. Если найден, то запомним номер элемента. Для сравнения используем цикл с параметром.
Удаление найденного элемента
Удаление
будем производить путем
Сортировка обменом
Для упорядочивания массива используем алгоритм сортировки обменом. При сортировке элементы массива меняются местами таким образом, что их значения оказываются упорядоченными.
Вывод элементов одномерного массива
После сортировки выводим преобразованный массив. Вывод элементов одномерного массива осуществляется также при помощи цикла с параметром.
Блок-схема алгоритма
Разработка программы на языке Pascal
В качестве заголовка программы возьмем название Kurs, который будет записан после ключевого слова Program.
В данной программе в разделе констант (const) объявим константу n=5, где n- количество элементов массива.
В разделе переменных Var опишем целочисленные массивы a и k, целочисленные переменные i,j,s,m,k – счетчики циклов и буферная переменная max.
В
разделе операторов опишем действия,
которые должна выполнить программа
согласно выбранного алгоритма. Этот раздел
заключен между словами begin
и end.
Описание блоков укрупненной схемы алгоритма
на
языке Pascal
Ввод элементов одномерного массива
Используем процедуру вывода write ('Введите элементы массива'), которая позволит прокомментировать очередность вывода исходного массива. Затем каждый очередной элемент массива считывается с экрана оператором read(a[i]), все это работает в цикле. Цикл работает до достижения переменной i значения n, то есть до конца массива.
В виде фрагмента программы это запишется следующим образом:
for i:=1 to n do begin
write(‘Введите элементы массива’);
read(a[i]);
end;
Нахождение элемента массива удовлетворяющего условию
Поиск осуществляем в цикле с параметром и в цикле условия. Цикл с параметром работает до достижения переменной i значения n. В усовии цикла проверяем элементы массива a[i]=2*a[i+1]. Если находиться элемент массива который удовлетворяет условию, то мы запоминаем номер этого элемента в переменной s. Если таких элементов массива нет, то выводи сообщение writeln(‘Элементы не найдены’).
Реализация данного рода обработки массивов программным способом запишется следующим образом:
for i:=1 to n do begin
if a[i]=a[i+1] then begin
s:=i; m:=m+1; end;end;
if
m=0 then writeln(‘Элементы
не найдены’’);
Удаление найденного элемента
Удаление будем производить в цикле, но i присвоим значение переменной s, и начиная с этого элемента будем сохранять элементы массива a в массиве k, до тех пор пока i не достигнет значения n. После мы создаем еще один цикл, где i равно также значению s, но до n-1. В этом цикле уже элементы массива k сохраняем в массиве a. Это выглядит так:
for i:=s to n do begin
j:=j+1;
k[j]:=a[i]; end;
j:=0;
for i:=s to n-1 do begin
j:=j+1;
a[i]:=k[j];
end;
Сортировка массива
Следующий цикл реализует алгоритм сортировки массива обменом.
Запись for i:=n downto 1 do означает, что элементы массива будут обрабатываться, столько раз сколько элементов в массиве. Если предыдущий элемент больше следующего a[i]>a[i+1], то значения меняются местами. Для перемены местами используется буферная переменная max. Сначала в переменной сохраняется значение предыдущего элемента массива. Затем элементу с этим номером присваивается значение следующего элемента массива, после чего следующему элементу массива присваивается значение буферной переменной max.
for y:=n downto 1 do
for i:=1 to y-1 do
if
a[i]>a[i+1] then begin max:=a[i]; a[i]:=a[i+1]; a[i+1]:=max; end;
Вывод преобразованного массива
После сортировки выводим преобразованный массив на экран стандартными средствами вывода.
for i:=1 to n-1 do
write(a[i]’ ’);
Листинг программы
Program Kurs;
const n=5;
var a,k: array [1..n] of integer;
i,j,max,y,s,m: integer;
begin
j:=0; m:=0;
Информация о работе Разработка в среде Turbo Pascal программы удаления элемента массива