- •Программирование
- •«Программирование»
- •Чернигов чгту 2011
- •Ответственный за выпуск: Бивойно п.Г., доцент кафедры информационных и компьютерных систем, кандидат технических наук,
- •Введение
- •1Расчетно-графическая работа № 1. Функции и процедуры для расчетов по формулам
- •1.1 Задания к расчетно-графической работе
- •1.2 Пример создания проекта
- •1.2.1Создание интерфейса
- •1.2.1.1 Компонент ole-контейнер
- •1.2.1.2Компонент Group Box
- •1.2.1.3 Компонент Memo
- •1.2.1.4 Завершение работы над интерфейсом
- •1.2.2Создание процедур и функций
- •1.2.2.1Процедура очистки протокола
- •1.2.2.2Процедура инициализации формы
- •1.2.2.3Процедура считывания коэффициентов уравнения
- •1.2.2.4Функция для расчета по формуле
- •1.2.2.5Процедура вызова выполнения расчета по формуле
- •1.2.3Использование дополнительного модуля
- •1.2.4Форматирование результатов расчетов
- •1.2.5Контольный пример
- •1.3 Содержание отчета
- •Рекомендованая литература
- •2Расчетно-графическая работа № 2. Программирование циклов
- •2.1 Задания к расчетно-графической работе
- •2.2 Рекомендации по составлению алгоритмов решаемых задач
- •2.2.1Итерационные алгоритмы
- •2.2.2Алгоритмы вычисления сумм бесконечных рядов
- •2.2.3Алгоритмы обработки последовательностей целых чисел
- •2.2.4Алгоритмы табулирования значений функций
- •2.3 Пример создания проекта
- •2.3.1Компоненты для создания интерфейса проекта
- •2.3.1.1Компоненты PageControl и TabSheet
- •2.3.1.2Компонент CheckBox
- •2.3.1.3Дополнительные требования к интерфейсу
- •2.3.2Создание закладки для вычисления корня
- •2.3.2.1Интерфейс страницы вычисления корня
- •2.3.2.2Процедура вычисления корня
- •2.3.3Создание закладки для вычисления синуса
- •2.3.3.1Интерфейс страницы вычисления синуса
- •2.3.3.2Процедура вычисления синуса
- •2.3.4Создание закладки «Табулирование функции»
- •2.3.4.1 Интерфейс странички «Табулирование функции»
- •2.3.4.2Создание процедуры табулирования функции
- •2.3.5Создание закладки «Обработка последовательности целых чисел»
- •2.3.5.1Интерфейс странички «Обработка последовательности целых чисел»
- •2.3.5.2Создание процедуры обработки последовательности целых чисел
- •Рекомендованая литература
- •3Расчетно-графическая работа № 3. Обработка массивов
- •3.1 Задания для работы с одномерным массивом
- •3.2 Задания на сортировку одномерных массивов
- •3.3 Задания на обработку двумерных массивов
- •3.4 Краткая характеристика вспомогательных модулей
- •3.4.1Интерфейс модуля для работы с одномерными массивами
- •3.4.2Интерфейс модуля для работы с двумерными массивами
- •3.4.3Рекомендации по перестановкам элементов матрицы
- •Перечень основных процедур и функций для работы с типизированными файлами
- •Пример Создание проекта «Результаты аттестации»
- •4.1.1Требования к проекту
- •4.1.2Интерфейс пользователя для проекта
- •4.1.3Определение типов данных
- •4.1.4Настройка интерфейса пользователя
- •4.1.5Вспомогательные процедуры для работы с файлом Процедура выбора имени файла
- •4.1.5.1Процедура открытия файла
- •4.1.5.2Процедура вывода файла в StringGrid
- •4.1.6Процедуры работы со StringGrid1
- •4.1.7Процедуры реализации пунктов меню fileMenu
- •4.1.7.1Добавление данных из StringGrid1 в файл
- •4.1.7.2Поиск записи по фамилии
- •4.1.7.3Удаление записи по фамилии
- •4.1.7.4Сохранение файла под другим именем
- •Содержание отчета
- •Рекомендованая литература
3.4 Краткая характеристика вспомогательных модулей
При решении задач на обработку массива потребуется неоднократно вводить, выводить массивы, а также выполнять над ними различные операции. Очевидно, что в этом случае удобно использовать заранее написанные процедуры и функции, которые целесообразно хранить во вспомогательном модуле. Такие модули созданы и называются UnitArrayDop. и UnitMatixDop. Ниже, для справки, приводятся интерфейсы этих модулей.
Однако созданные процедуры и функции, которые записаны в этих модулях, могут стать универсальными только в том случае, если будут оперировать с одним и тем же типом массива. Поэтому в модуле описаны эти типы массивов. Для одномерных массивов - это массив целых чисел, максимальная длина которого будет составлять 100 элементов, и индексы будут нумероваться с 1. Для двумерных массивов - это массив целых чисел, максимальное количество строк и столбцов которого будет составлять 10 элементов, и индексы будут нумероваться с 1.
В том случае, если в РГР нужен другой тип массива, процедуры модуля придется несколько изменить.
3.4.1Интерфейс модуля для работы с одномерными массивами
interface
Type
TArray100= array[1..100] of integer;
procedure createRandomArray(var a:TArray100; count, modul:integer);
procedure getArrayFromStr(var a:TArray100; var count:integer; s:String);
procedure getArrayFromMemo(var a:TArray100; var count:integer; mem:TMemo);
procedure getArrayFromInputBox(var a:TArray100; var count:integer);
function ArrayToStr(const a:TArray100; count:integer):string;
function ArrayToStrFromTo(const a:TArray100; left,right:integer):string;
procedure showArrayInMemo(const a:TArray100; count:integer; mem:TMemo);
function sumArray(const a:TArray100; count:integer):integer;
procedure minMax(const a:TArray100; count:integer;
var min,max,iMax,iMin:integer);
function posInArray(element:integer; const a:TArray100; count:integer):integer;
function PosInSortArray(x:integer; const a:TArray100; count:integer):integer;
procedure accum(const a:TArray100; var b:TArray100;count:integer);
procedure shiftLeft(var a:TArray100; count, i1,i2:integer);
procedure trans(var a:TArray100; count:integer);
procedure delElem(element:integer; var a:TArray100; var count:integer);
procedure SortArray(var a:TArray100;count:integer);
procedure SortArrayBubl(var a:TArray100;count:integer);
procedure SortArrayInsert(var a:TArray100;count:integer);
procedure JoinArray(const a1,a2:TArray100;size1,size2:integer;
var a3:TArray100; var size3:integer);
procedure InsertToSortArray(element:integer; var a:TArray100; var count:integer);
3.4.2Интерфейс модуля для работы с двумерными массивами
unit UnitMatrixDop;
interface
uses StdCtrls, SysUtils, Grids, unitArrayDop;
type
TMatrInt10x10= array[1..10,1..10]of Integer;
//Тип для процедур, які визначають результат сортування
TcalcPos=procedure(rowCount,colCount,num:Integer;var row,col:Integer);
procedure createRndMatr(var m:TMatrInt10x10;nRow,nCol,modul:integer);
procedure showMatrInMemo(const m:TMatrInt10x10;nRow,nCol:integer;memo:TMemo);
procedure showMatrInGrid(const m:TMatrInt10x10;nRow,nCol:integer;grid:TStringGrid);
procedure getMatrFromMemo(var m:TMatrInt10x10; var nRow,nCol:integer;memo:TMemo);
procedure getMatrFromGrid(var m:TMatrInt10x10; var nRow,nCol:integer;grid:TStringGrid);
procedure TransMatr(var m:TMatrInt10x10; nRow,nCol:integer);
procedure DelColFromMatr(var m:TMatrInt10x10; nRow:integer; var nCol:integer; delCol:integer);
procedure SortMatrix(var mtr:TMatrInt10x10; nRow,nCol:integer; getPos:TcalcPos);