Автор работы: Пользователь скрыл имя, 30 Сентября 2013 в 11:45, курсовая работа
Основным принципом модульного программирования является принцип "разделяй и властвуй". Модульное программирование - это организация программы как совокупности небольших независимых блоков, называемых модулями, структура и поведение которых подчиняются определенным правилам.
Заметим, что нужно различать использование слова "модуль", когда имеется в виду синтаксическая конструкция языков программирования (unit в Object Pascal), и когда имеется в виду единица дробления большой программы на отдельные блоки (которые могут быть реализованы и в виде процедур, и в виде функций).
1. Утвержденное техническое задание на работу 4
2. Введение 5
3. Технический и рабочий проект программной системы 8
4. Заключение 12
5. Список литературы 13
Приложение 1. Листинг программы. 14
II
Условие задачи: удалить из массива А те элементы, в записи которых есть цифра 5
Дано: a – массив целых чисел,
n – число элементов массива a.
Требуется сформировать массив целых чисел b из чисел массива a удовлетворяющих условию.
Имя объекта |
Структура |
Тип |
Семантика |
a |
массив |
целое |
Массив целых чисел |
n |
простая |
целое |
Число элементов массива a, b |
b |
массив |
целое |
Массив целых чисел |
Входные данные: a – массив целых чисел,
n – число элементов массива a.
Выходные данные: b – массив чисел без цифры 5.
Шаблон ввода:
Введите число элементов массива n:
Введите массив целых чисел (через пробел):
Шаблон вывода:
Массив после выполнения операции:
№ теста |
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 |
Имя переменной |
Структура данных |
Диапазон значений |
Тип |
Семантика |
a |
массив |
0…10 000 |
целое |
Исходный массив |
n |
простая |
0…10 |
целое |
Число элементов массива a, b |
b |
массив |
0…10 000 |
целое |
Конечный массив |
III
Условие задачи: выполнить циклический сдвиг массива А вправо на заданное число элементов К
Дано: a – массив целых чисел,
n – число элементов массива a,
k – число элементов подлежащих сдвигу вправо.
Требуется сформировать массив целых чисел b из чисел массива a со сдвигом на определенное количество элементов.
Имя объекта |
Структура |
Тип |
Семантика |
a |
массив |
целое |
Массив целых чисел |
n |
простая |
целое |
Число элементов массива a |
k |
простая |
целое |
Число сдвига |
Входные данные: a – массив целых чисел,
n – число элементов массива a,
k – число элементов подлежащих сдвигу вправо.
Выходные данные: a – массив целых чисел с циклическим сдвигом вправо.
Шаблон ввода:
Введите число элементов массива n:
Введите массив целых чисел (через пробел):
Введите число сдвига k:
Шаблон вывода:
Массив после выполнения операции:
№ теста |
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 |
Имя переменной |
Структура данных |
Диапазон значений |
Тип |
Семантика |
a |
массив |
0…10 000 |
целое |
Исходный массив |
n |
простая |
0…10 |
целое |
Число элементов массива a |
k |
простая |
0…10 |
целое |
Число сдвига |
IV
Условие задачи: упорядочить массив по правилу перед элементом, который был первым в массиве, разместить все большие его, а за ним все остальные, сохраняя взаимное расположение как среди элементов, стоящих перед первым так и среди остальных элементов
Дано: a – массив целых чисел,
n – число элементов массива a.
Требуется сформировать массив целых чисел b из чисел массива a отсортированного согласно условию.
Имя объекта |
Структура |
Тип |
Семантика |
a |
массив |
целое |
Массив целых чисел |
n |
простая |
целое |
Число элементов массива a, b |
b |
массив |
целое |
Массив целых чисел |
Входные данные: a – массив целых чисел,
n – число элементов массива a.
Выходные данные: b – отсортированный массив чисел.
Шаблон ввода:
Введите число элементов массива n:
Введите массив целых чисел (через пробел):
Шаблон вывода:
Массив после выполнения операции:
№ теста |
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 |
Имя переменной |
Структура данных |
Диапазон значений |
Тип |
Семантика |
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)
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.
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:
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(
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);