Разработка в среде Turbo Pascal программы удаления элемента массива

Автор работы: Пользователь скрыл имя, 23 Мая 2011 в 18:31, курсовая работа

Описание

Задан одномерный массив. Найти элемент массива удовлетворяющий условию. Удалить найденный элемент из массива, и преобразованный массив упорядочить по возрастанию.

Исходными данными являются элементы одномерного массива и условие поиска элемента массива. В результате решения задачи должен быть удален элемент массива и сортировка массива по возрастанию.

Работа состоит из  1 файл

Курсовая информатика.docx

— 55.96 Кб (Скачать документ)

АЛЬМЕТЬЕВСКИЙ ГОСУДАРСТВЕННЫЙ

НЕФТЯНОЙ  ИНСТИТУТ 

КАФЕДРА ИНФОРМАТИКИ 
 
 

КУРСОВАЯ  РАБОТА

ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА»

РАЗДЕЛ:АЛГОРИТМИЧЕСКИЙ  ЯЗЫК PASCAL

НА ТЕМУ:РАЗРАБОТКА В СРЕДЕ TURBO PASCAL

ПРОГРАММЫ УДАЛЕНИЯ ЭЛЕМЕНТА МАССИВА 
 
 
 

выполнил  студент: Абдуллин Т.Р.

группы:19-13В

проверил: старший  преподователь Салихова Г.Л. 

АЛЬМЕТЬЕВСК 2010 год 

    Постановка  задачи

    Задан одномерный массив. Найти элемент  массива удовлетворяющий условию. Удалить найденный элемент из массива, и преобразованный массив упорядочить по возрастанию.

    Исходными данными являются элементы одномерного  массива и условие поиска элемента массива. В результате решения задачи должен быть удален элемент массива  и сортировка массива по возрастанию. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

    Описание  алгоритма решения  задачи графическим  способом

     Упрощенная  схема алгоритма 

      

    Детализация укрупненной схемы  алгоритма

    В программе решаются следующие подзадачи:

  1. Заполнение одномерного массива.
  2. Нахождение элемента массива удовлетворяющего условию.
  3. Удаление элемента массива.
  4. Сортировка  массива.
  5. Вывод преобразованного массива.
 

    Ввод  элементов одномерного  массива

    Ввод  элементов массива будем производить  с клавиатуры. Для ввода элементов массива используем цикл с параметром.

    

    

    

    

    

      

    Нахождение  элемента массива  удовлетворяющего условию

     Поиск заключается втом что бы сравнить все элементы массива с условием 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 программы удаления элемента массива