Работа с двумерными числовыми массивами

Анализ методики использования многомерных массивов в среде 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.