Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Краткая характеристика вспомогательных модулей ⇐ ПредыдущаяСтр 7 из 7
При решении задач на обработку массива потребуется неоднократно вводить, выводить массивы, а также выполнять над ними различные операции. Очевидно, что в этом случае удобно использовать заранее написанные процедуры и функции, которые целесообразно хранить во вспомогательном модуле. Такие модули созданы и называются UnitArrayDop. и UnitMatixDop. Ниже, для справки, приводятся интерфейсы этих модулей. Однако созданные процедуры и функции, которые записаны в этих модулях, могут стать универсальными только в том случае, если будут оперировать с одним и тем же типом массива. Поэтому в модуле описаны эти типы массивов. Для одномерных массивов - это массив целых чисел, максимальная длина которого будет составлять 100 элементов, и индексы будут нумероваться с 1. Для двумерных массивов - это массив целых чисел, максимальное количество строк и столбцов которого будет составлять 10 элементов, и индексы будут нумероваться с 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); Интерфейс модуля для работы с двумерными массивами 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); Рекомендации по перестановкам элементов матрицы Есть задачи, в которых требуется менять местами элементы матрицы. Ниже перечислены некоторые из таких задач. – Транспонирование матрицы (поворот вокруг главной диагонали). – Поворот вокруг вспомогательной диагонали. – Поворот вокруг горизонтальной оси. – Поворот вокруг вертикальной оси. Для решения всех этих задач требуется двойной цикл. Внешний цикл обычно организуется по всем номерам строк или столбцов, иногда, за исключением первого или последнего номера. Внутренний же цикл обеспечивает перебор только половины элементов, которые расположены с одной стороны от оси поворота. Тело цикла содержит операторы, которые обеспечивают обмен значениями между текущим элементом матрицы и симметричным ему. Для организации обмена удобнее всего использовать промежуточную переменную. Основная трудность, возникающая при решении этих задач, это определение индексов элемента, симметричного текущему элементу. В таблице 3.6 приведены параметры циклов, обеспечивающих перевороты элементов матрицы вокруг различных осей симметрии. Индексные выражения, приведенные в таблице, составлены в предположении, что нижние индексы строк и столбцов раны единице, верхние индексы столбцов и строк соответственно равны nCol и nRow,
3.5 Содержание отчета – Наименование работы. – Цель работы. – Схемы алгоритмов для процедуры и функций, обеспечивающих работу с массивами. – Тексты модулей проекта с пояснениями в виде комментариев. – Результаты тестирования проектов в виде копий формы с результатами. – Выводы. Рекомендованая литература 1. Культин Н. Delphi 6. Программирование на Object Pascal. – СПб.:БХВ-Петербург,2002. 2. Ставровский А.Б. Турбо Pascal 7.0/ Учебник. – К.: BHV, 2000.
4 РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА № 4. Цели работы: – получить навыки работы с записями в Object Pascal; – получить навыки работы с типизированными файлами в Object Pascal; – освоить алгоритмы обработки типизированных файлов. 4.1 Задания для работы В работе следует создать проект по обработке файла, который содержит записи, соответствующие варианту задания из таблицы 4.1. Номер варианта выбирается по последней цифре номера зачетной книжки.
Создаваемый проект должен обеспечить: – Отображение записей файла в StringGrid. – Добавление группы записей из StringGrid к файлу. – Сохранение файла под другим именем – Поиск записи по значению одного из полей. – Удаление из файла записи, соответствующей заданному значению одного из полей. – Получение какой-нибудь интегральной оценки для всех записей или группы записей. – Сортировку файла по какому-нибудь признаку. – Поиск записи в упорядоченном файле. – Вставку записи в упорядоченный файл. – Удаление записи из упорядоченного файла. Обработку записей следует проводить только в файле. Компоненты TStringGrid использовать только для считывания записей из файла и вывода результатов. 4.2 Перечень основных процедур и функций для работы с типизированными файлами В таблице 4.2 приведены для справки основные процедуры и функции, используемые при работе с типизированными файлами.
4.3 ПРИМЕР Создание проекта «Результаты аттестации»
Данный проект можно рассматривать как пример выполнения задания к расчетно-графической работе. Точного следования этому образцу от студента не требуется. В этом проекте мы будем работать с файлом, содержащим информацию о результатах аттестации студентов. Каждая запись файла будет хранить информацию о группе студента, фамилии, количестве неудовлетворительных оценок и среднем балле. Реализация проекта находится в папке kid\pub\lectures\1_kurs\ projectToLection\.To_lection_18_19. Требования к проекту Проект должен обеспечить: – Просмотр записей файла в StringGrid. – Добавление группы записей из StringGrid к файлу. – Поиск записи по заданной фамилии. – Удаление записи. – Подсчет количества отличников в файле. – Сохранение файла под другим именем. – Сортировку файла по фамилиям и по результатам успеваемости. – Вставку записи в упорядоченный файл. – Удаление записи из упорядоченного файла.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-02-07; просмотров: 107; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.153.38 (0.024 с.) |