Работа с двумерными числовыми массивами
Анализ методики использования многомерных массивов в среде Delphi. Общее понятие массивов, их реализация, достоинства, недостатки. Массивы в Object Pascal. Описание функциональной структуры приложения: модуль MatrixOperations, модуль fileIO, модуль form.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 28.09.2010 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
198 G_Matrix.Cells[0, i+1]:= IntToStr(i+1);
199 G_Task1B.Cells[0, i]:= IntToStr(i+1);
200 G_Task1C.Cells[0, i]:= IntToStr(i+1);
201 end;
202 for i:= 0 to ColsN do
203 G_Matrix.Cells[i+1, 0]:= IntToStr(i+1);
204
205 //for i:= 0 to RowsN * ColsN do
206 // G_Task4.Cells[i, 0]:= IntToStr(i+1);
207 G_Matrix.Refresh;
208 end;
209
210 {при создании формы задаём размер матрицы по умолчанию}
211 procedure TMainForm.FormCreate(Sender: TObject);
212 begin
213 B_SetDimmsClick(Sender);
214 end;
215
216 {при уничтожении формы освобождаем память, выделенную для хранения матрицы}
217 procedure TMainForm.FormDestroy(Sender: TObject);
218 begin
219 workMatrix:= nil;
220 end;
221
222 {обработчик Файл->Выход}
223 procedure TMainForm.quitClick(Sender: TObject);
224 begin
225 if mrYes = MessageDlg('Вы уверены, что хотите выйти?', mtConfirmation, [mbYes, mbNo], 0)
226 then Close;
227 end;
228
229 {обработчик Задачи->задача 1}
230 procedure TMainForm.M_Task1Click(Sender: TObject);
231 begin
232 Pages.ActivePageIndex:= 0;
233 end;
234 {обработчик Задачи->задача 2}
235 procedure TMainForm.M_Task2Click(Sender: TObject);
236 begin
237 Pages.ActivePageIndex:= 1;
238 end;
239 {обработчик Задачи->задача 3}
240 procedure TMainForm.M_Task3Click(Sender: TObject);
241 begin
242 Pages.ActivePageIndex:= 2;
243 end;
244 {обработчик Задачи->задача 4}
245 procedure TMainForm.M_Task4Click(Sender: TObject);
246 begin
247 Pages.ActivePageIndex:= 3;
248 end;
249 {обработчик Задачи->задача 5}
250 procedure TMainForm.M_Task5Click(Sender: TObject);
251 begin
252 Pages.ActivePageIndex:= 4;
253 end;
254
255 {выполнение первого задания}
256 procedure TMainForm.B_Task1RunClick(Sender: TObject);
257 var
258 maxVal: TVector; //массив максимальных элементов из каждой строки
259 maxValCol: TVector; //массив номеров столбцов с максимальными элементами
260 RowN: integer;
261 begin
262 readMatrix;//прочитаем матрицу из таблицы
263 GetMaxVals(maxVal, maxValCol, workMatrix);//сформируем массивы по заданию
264 for RowN:= low(maxVal) to high(maxVal) do
265 begin//выведем сформированные массивы в элементы формы
266 G_Task1B.Cells[1, RowN]:= IntToStr(maxVal[RowN]);
267 G_Task1C.Cells[1, RowN]:= IntToStr(maxValCol[RowN]+1);
268 end;
269 //освободим память
270 maxVal:= nil;
271 maxValCol:= nil;
272 end;
273
274 {выполнение второго задания}
275 procedure TMainForm.B_Task2RunClick(Sender: TObject);
276 var S1, S2: Int64;//суммы выше и ниже пересечения диагоналей
277 begin
278 readMatrix;//проситаем матрицу из таблицы
279 //высчитаем суммы
280 S1:= GetSumAbove(workMatrix);
281 S2:= GetSumBelow(workMatrix);
282 //выведем суммы в элементы формы
283 E_Task2S1.Text:= IntToStr(S1);
284 E_Task2S2.Text:= IntToStr(S2);
285 if S1 >= S2 then L_Task2MatrxChanged.Caption:= 'Матрица не была изменена'
286 else
287 begin//если S1 < S2, то
288 SwapAboveBelow(workMatrix);//меняем местами элементы выше и ниже пересечения диагоналей
289 writeMatrix;//выводим изменённую матрицу на форму
290 L_Task2MatrxChanged.Caption:= 'Матрица была изменена'
291 end;
292 end;
293
294 {выполнение третьего задания}
295 procedure TMainForm.B_Task3RunClick(Sender: TObject);
296 begin
297 readMatrix;//прочтём матрицу из таблицы
298 if (high(workMatrix)+1) mod 2 = 0 then
299 begin//если число строк - чётное
300 CircuarShift(workMatrix, true);//осуществим циклический сдвиг вверх
301 L_Task3Result.Caption:= 'был произведён сдвиг "вверх"';
302 end
303 else
304 begin//иначе, если число строк - нечётное
305 CircuarShift(workMatrix, false);//осуществим циклический сдвиг вниз
306 L_Task3Result.Caption:= 'был произведён сдвиг "вниз"';
307 end;
308 writeMatrix;//выведем изменённую матрицу в таблицу
309 end;
310
311 {выполнение четвёртого задания}
312 procedure TMainForm.B_Task4RunClick(Sender: TObject);
313 var arrayB: TVector;//массив, содержащий "развёрнутую" матрицу
314 var i: integer;
315 begin
316 readMatrix;//прочтём матрицу из таблицы
317 UnwindMatrix(workMatrix, arrayB);//наполним массив, обходя матрицу по спирали
318 MEM_Task4.Lines[0]:= '';
319 for i:= 0 to high(arrayB) do
320 begin//выведем все элементы из массива на форму
321 //G_Task4.Cells[i, 1]:= IntToStr(arrayB[i]);
322 MEM_Task4.Lines[0]:= MEM_Task4.Lines[0] + IntToStr(arrayB[i]) + '; '
323 end;
324 arrayB:= nil;//освободим память
325 end;
326
327 {выполнение пятого задания}
328 procedure TMainForm.B_Task5RunClick(Sender: TObject);
329 begin
330 readMatrix;//прочтём матрицу из таблицы
331 SortRows(workMatrix);//отсортируем строки матрицы по убыванию сумм
332 writeMatrix;//выведем матрицу в таблицу
333 end;
334 {обработчик About}
335 procedure TMainForm.aboutClick(Sender: TObject);
336 var info: string;
337 begin
338 info:= 'Курсовая работа по дисциплине "Программирование на ЯВУ"'#10#10 +
339 'Тема: "Работа с двумерными числовыми массивами"'#10 +
340 'Выполнил: студент группы ВСМ-06-08 Филон Д. В.'#10#10#10 +
341 #9#9#9#9#9#9'Москва 2010 год';
342 MessageDlg(info, mtInformation, [mbIgnore], 0);
343 end;
344 end.
Подобные документы
Разработка программ на языке Turbo Pascal на основе использования массивов данных. Особенности хранения данных, способы объявления переменных, действия над элементами массивов, их ввод и вывод. Практическое применение одномерных и многомерных массивов.
методичка [17,8 K], добавлен 25.11.2010Особенности работы с процедурами и двумерными массивами, последовательность вызова процедур. Способы описания и использования многомерных массивов, назначение процедур, их описание и обращение к ним. Набор программы, ее отладка и тестирование данных.
лабораторная работа [112,1 K], добавлен 03.10.2010Характеристика вычислительной системы и инструментов разработки. Программирование на языке Pascal в среде Turbo Pascal и на языке Object Pascal в среде Delphi. Использование процедур, функций, массивов, бинарного поиска. Создание базы данных в виде файла.
отчет по практике [2,1 M], добавлен 02.05.2014Проектирование программного модуля в среде программирования Borland Delphi 7.0. Схемы алгоритмов решения задач по темам "Символьные переменные и строки", "Массивы", "Работа с файлами", "Создание анимации". Реализация программного модуля, код программы.
отчет по практике [961,6 K], добавлен 21.04.2012Анализ исходных данных. Определение структуры модуля для работы файлом. Разработка объектно-ориентированного приложения, использующего массив объектов, в среде Delphi. Модульная структура программного комплекса. Процедура сортировки методом вставки.
курсовая работа [2,2 M], добавлен 20.09.2014Решение задач, прямо связанных с применением циклов и массивов. Условия применения различных видов циклической структуры. Операторы цикла с предусловием while, постусловием do-while и for. Особенности работы с одномерными и двумерными массивами.
курсовая работа [1,1 M], добавлен 31.08.2019Вид деятельности, для автоматизации которой предназначен модуль. Определение границ проекта "создание мобильного приложения системы КБНТИ для отображения изменений в системе и управления модулем подписок". Построение диаграммы состояний уведомления.
отчет по практике [386,9 K], добавлен 11.04.2016Широкое использование компьютерных и информационных технологий. Концепции типов данных. Алгоритмы сортировки одномерных массивов. Описание двумерного массива Паскаля. Методы доступа к элементам массивов. Индексные, динамические и гетерогенные массивы.
курсовая работа [66,3 K], добавлен 07.12.2010Работа с массивами, их ввод и вывод, организация программ циклической структуры. Способы описания и использования массивов, алгоритмы их сортировки, сортировка выбором и вставками. Алгоритмы поиска элемента в неупорядоченном и упорядоченном массивах.
лабораторная работа [14,2 K], добавлен 03.10.2010Определение программного модуля. Принципы использования dll-библиотеки. Преимущества и недостатки использования dll-библиотек. Описание коэффициентов моделей. Разработка структуры классов. Реализация библиотеки классов в среде разработки MS Visual Studio.
дипломная работа [676,6 K], добавлен 16.06.2015