Модульное программирование в Delphi

Автор работы: Пользователь скрыл имя, 30 Сентября 2013 в 11:45, курсовая работа

Описание работы

Основным принципом модульного программирования является принцип "разделяй и властвуй". Модульное программирование - это организация программы как совокупности небольших независимых блоков, называемых модулями, структура и поведение которых подчиняются определенным правилам.
Заметим, что нужно различать использование слова "модуль", когда имеется в виду синтаксическая конструкция языков программирования (unit в Object Pascal), и когда имеется в виду единица дробления большой программы на отдельные блоки (которые могут быть реализованы и в виде процедур, и в виде функций).

Содержание работы

1. Утвержденное техническое задание на работу 4
2. Введение 5
3. Технический и рабочий проект программной системы 8
4. Заключение 12
5. Список литературы 13
Приложение 1. Листинг программы. 14

Файлы: 1 файл

Копия Курсовая_Работа.doc

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

 

II

 

Условие задачи: удалить из массива А те элементы, в записи которых есть цифра 5

 

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

Дано:  a – массив целых чисел,

n – число элементов массива a.

Требуется сформировать массив целых  чисел b из  чисел массива a удовлетворяющих условию.

 

  1. Декомпозиция задачи.
    1. Определение наличия цифры 5 в числе.
      1. Таблица переменных.

Имя объекта

Структура

Тип

Семантика

a

массив

целое

Массив целых чисел

n

простая

целое

Число элементов массива a, b

b

массив

целое

Массив целых чисел


 

  1. Определение входных и выходных данных.

Входные данные:  a – массив целых чисел,

n – число элементов массива a.

Выходные данные:  b – массив чисел без цифры 5.

 

  1. Шаблон ввода/вывода.

Шаблон ввода:

Введите число элементов массива  n:

Введите массив целых чисел (через  пробел):

 

Шаблон вывода:

Массив после выполнения операции:

 

  1. Тестовые примеры.

№ теста

n

a

b

1

5

1 3 5 127 625

1 3 127

2

6

90 125 7 11 800 8191

90 7 11 800 8191

3

3

15 16 14

16 14


 

  1. Таблица имен переменных.

Имя переменной

Структура данных

Диапазон значений

Тип

Семантика

a

массив

0…10 000

целое

Исходный массив

n

простая

0…10

целое

Число элементов массива a, b

b

массив

0…10 000

целое

Конечный массив


 

III

 

Условие задачи: выполнить циклический сдвиг массива А вправо на заданное число элементов К

 

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

Дано:  a – массив целых чисел,

n – число элементов массива a,

k – число элементов подлежащих сдвигу вправо.

Требуется сформировать массив целых  чисел b из чисел массива a со сдвигом на определенное количество элементов.

 

  1. Декомпозиция задачи.
    1. Сдвиг массива на k элементов вправо.
      1. Таблица переменных.

Имя объекта

Структура

Тип

Семантика

a

массив

целое

Массив целых чисел

n

простая

целое

Число элементов массива a

k

простая

целое

Число сдвига


 

  1. Определение входных и выходных данных.

Входные данные:  a – массив целых чисел,

n – число элементов массива a,

k – число элементов подлежащих сдвигу вправо.

Выходные данные:  a – массив целых чисел с циклическим сдвигом вправо.

 

  1. Шаблон ввода/вывода.

Шаблон ввода:

Введите число элементов массива  n:

Введите массив целых чисел (через  пробел):

Введите число сдвига k:

 

Шаблон вывода:

Массив после выполнения операции:

 

  1. Тестовые примеры.

№ теста

n

a

k

a

1

5

1 3 5 127 625

3

5 127 625 1 3

2

6

90 125 7 11 800 8191

4

7 11 800 8191 90 125

3

3

15 16 14

1

14 15 16


 

  1. Таблица имен переменных.

Имя переменной

Структура данных

Диапазон значений

Тип

Семантика

a

массив

0…10 000

целое

Исходный массив

n

простая

0…10

целое

Число элементов массива a

k

простая

0…10

целое

Число сдвига


 

IV

 

Условие задачи: упорядочить массив по правилу перед элементом, который был первым в массиве, разместить все большие его, а за ним все остальные, сохраняя взаимное расположение как среди элементов, стоящих перед первым так и среди остальных элементов

 

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

Дано:  a – массив целых чисел,

n – число элементов массива a.

Требуется сформировать массив целых  чисел b из  чисел массива a отсортированного согласно условию.

 

  1. Декомпозиция задачи.
    1. Сортировка массива согласно условию.
      1. Таблица переменных.

Имя объекта

Структура

Тип

Семантика

a

массив

целое

Массив целых чисел

n

простая

целое

Число элементов массива a, b

b

массив

целое

Массив целых чисел


 

  1. Определение входных и выходных данных.

Входные данные:  a – массив целых чисел,

n – число элементов массива a.

Выходные данные:  b – отсортированный массив чисел.

 

  1. Шаблон ввода/вывода.

Шаблон ввода:

Введите число элементов массива  n:

Введите массив целых чисел (через  пробел):

 

Шаблон вывода:

Массив после выполнения операции:

 

  1. Тестовые примеры.

№ теста

n

a

b

1

5

1 3 5 127 625

3 5 127 625 1

2

6

90 125 7 11 800 8191

125 800 8191 90 7 11

3

3

15 16 14

16 15 14


 

  1. Таблица имен переменных.

Имя переменной

Структура данных

Диапазон значений

Тип

Семантика

a

массив

0…10 000

целое

Исходный массив

n

простая

0…10

целое

Число элементов массива a, b

b

массив

0…10 000

целое

Конечный массив


 

 

4. Заключение.

 

В ходе разработки приложения были освоены  стандартные приемы подключения  модуля к проекту среды Delphi, работа с формой и эстетически правильного оформления кода программы. Разработка программы велась с применением массивов, циклов, процедур, а также стандартных и собственных функций. Задачи с тестовыми примерами загружаются непосредственно в поле Memo из заранее подготовленных текстовых файлов.

 

Полученная программа корректно выполняет возложенные на неё функции и может применяться в целях предусмотренных техническим заданием.

 

5. Список литературы.

 

1. Басс Лен Архитектура программного обеспечения на практике [пер. с англ.] / Л. Басс 2-е - изд. - СПб: Питер, 2006. - 574 с.

2. Иванова Г.С. Основы программирования [Учеб. для вузов] 2-е - изд. перераб. и дополнено. - М.: изд - во МГТУ им. Н.Э. Баумана, 2002. - 415 с. ил.

3. Непейвода Н.Н. Стили и методы программирования курс лекций: учеб. пособие: М.: 2005. - 316 с.: ил.

4. Окулов С.М. Основы программирования. М.: Лаборатория базовых значений 2002. - 424 с.

5. Солодкий О.Г. Основы программирования: сборник задач; М-во образования и науки Рос. Федерации по образованию, Алт. акад. экономики и права. - Барнаул: Изд. ААЭП, 2005. - 83 с.

6. Хореев П.Б. Технологии объектно-ориентированного программирования; учеб. пособие; - М.: Academia, 2004. - 447 с.

 

Приложение 1. Листинг программы.

unit KR;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, Unit1;

 

type

  TForm1 = class(TForm)

    rb1: TRadioButton;

    rb2: TRadioButton;

    rb3: TRadioButton;

    rb4: TRadioButton;

    lst1: TListBox;

    lst2: TListBox;

    edt1: TEdit;

    btn1: TButton;

    btn2: TButton;

    edt2: TEdit;

    btn3: TButton;

    edt3: TEdit;

    mmo1: TMemo;

    dlgOpen1: TOpenDialog;

    procedure btn1Click(Sender: TObject);

    procedure btn2Click(Sender: TObject);

    procedure btn3Click(Sender: TObject);

    procedure xxx(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

  n: Integer;

  a,b: array of Integer;

 

 

implementation

 

 

 

{$R *.dfm}

Function GetSubStr(st:string;n:Integer):string;

Var i,p:integer;

begin

  for i:=1 to n-1 do

    begin p:=pos(' ',st);

      st:=copy(st,p+1,length(st)-p)

    end;

  p:=pos(' ',st);

    If p <> 0 then result:=copy(st,1,p-1)

    Else result:=st

  End;

 

 

 

 

 

procedure TForm1.btn1Click(Sender: TObject);

var i:Integer;

begin

a:=nil;

n:=StrToInt(edt1.Text);

SetLength(a,n);

lst1.Clear;

for i:=0 to n-1 do a[i]:=StrToInt(GetSubStr(edt2.Text,i+1));

for i:=0 to n-1 do lst1.Items.Add(IntToStr(a[i]));

end;

 

procedure TForm1.btn2Click(Sender: TObject);

begin

// Îñâîáîæäåíèå ïàìÿòè

 

 

end;

 

procedure TForm1.btn3Click(Sender: TObject);

var i,m,step,k,nach,konec,x:Integer;

begin

  lst2.Items.Clear;

  b:=nil;

  SetLength(b,n);

 

  if rb1.Checked then

  begin

    rb1p(a,b,n);

     for i:=0 to n-1 do

     begin

       if b[i]<>0 then lst2.Items.Add(IntToStr(b[i]));

     end;

    end;

 

  if rb2.Checked then

  begin

    rb2p(a,b,n);

     for i:=0 to n-1 do

     begin

       if b[i]>0 then lst2.Items.Add(IntToStr(b[i]));

       if b[i]=-1 then lst2.Items.Add(IntToStr(0));  {Âîçâðàùàåì çàìåíó}

     end;

  end;

 

  if rb3.Checked then

  begin

    k:=StrToInt(edt3.Text);

    rb3p(a,n,k);

    for i:=0 to n-1 do lst2.Items.Add(IntToStr(a[i]));

  end;

 

  if rb4.Checked then

  begin

    rb4p(a,b,n);

    for i:=0 to n-1 do lst2.Items.Add(IntToStr(b[i]));

  end;

 

end;

 

procedure TForm1.xxx(Sender: TObject);

begin

mmo1.Clear;

if dlgOpen1.Execute then mmo1.Lines.LoadFromFile(dlgOpen1.FileName);

end;

 

end.

 

unit Unit1;

 

interface

uses SysUtils, Math;

procedure rb1p(var a,b:array of Integer; var n: Integer);

procedure rb2p(var a,b:array of Integer; var n: Integer);

procedure rb3p(var a:array of Integer; var n,k: Integer);

procedure rb4p(var a,b:array of Integer; var n: Integer);

Информация о работе Модульное программирование в Delphi