Инструкция пользователя
12
Рассмотрим последовательность действий пользователя при использовании программы для сдвига элементов матрицы. Ему необходимо запустить на выполнение программу, которая называется «ms.exe». Для удобства запуска программы под управлением Microsoft Windows, можно сделать следующее: щелкните правой кнопкой мыши по Рабочему Столу Windows Þ в появившемся меню выберите Создать Þ Ярлык Þ в появившемся окне в Командной строке набираем путь доступа к программе и нажимаем кнопку Далее Þ в следующем окне назовем наш ярлык Сдвиг и нажимаем кнопку Далее Þ выберите иконку и нажмите кнопку Готово. Теперь у Вас на рабочем столе находится иконка программы. После запуска пользователь увидит на экране окно, изображенное на рисунке 8. В верхней строке окна находится главное меню с двумя пунктами: Файл. Содержит подпункты: § Открыть – загрузка матрицы из текстового файла; § Выход – закончить работу с программой. Обработка, содержит один подпункт Начать – запуск алгоритма сдвига элементов матрицы. Остальную часть окна занимает область вывода матрицы. Порядок работы: § выбрать файл с исходными данными Файл à Открыть; § выполнить команду Обработка à Начать для сдвига элементов слоев. Для хранения матриц используется текстовый файл со следующей структурой: 1 строка – два целочисленных значения n, m из диапазона 1…10 разделенные пробелом – число строк и столбцов матрицы соответственно; В последующих n строка расположена сама матрица, m целочисленных значений в строке, разделитель – пробел. Необходимо помнить, что обработке подлежат матрицы максимальной размерности 10´10 элементов.
Тестовый пример
Заключение
Результатом курсового проектирования по дисциплине «Программирование на языках высокого уровня» на тему «Разработка программы для сдвига элементов матрицы по слоям» является разработанная программа для IBM PC совместимых компьютеров, предназначенная для обработки произвольных целочисленных матриц, а также подробное руководство пользователя программой. В ходе курсового проектирования были выявлены особенности написания программы, разработан алгоритм программы и описан принцип ее работы. Недостатком программы является ограниченная размерность обрабатываемых матриц. В теоретической части работы мной были приведены материалы о программирование в среде Delphi.
Список использованной литературы
1. Бобровский С.И. Delphi 7. Начальный курс: Учебное пособие – М.: Диалог – МИФИ, 2002. -416 с. 2. Гофман В.Э. Delphi 7. – Спб.: BHV‑Петербург, 2003. -488 с. 3. Лишнер Рэй. Delphi. Справочник. – М.: БЕК, 2003. -715 с. 4. Поган А.М., Царенко Ю.А. Программирование в Delphi. Просто как дважды два. – М.: Нолидж, 2004. -557 с.
Приложение. Листинг программы
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, Grids, StdCtrls; type mas = array [1..100] of integer; mat = array [1..10, 1..10] of integer; TForm1 = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem; MOpenFile: TMenuItem; N4: TMenuItem; MQuit: TMenuItem; N6: TMenuItem; MRun: TMenuItem; OpenDialog1: TOpenDialog; StringGrid1: TStringGrid; procedure MQuitClick (Sender: TObject); procedure MOpenFileClick (Sender: TObject); procedure MRunClick (Sender: TObject); procedure FillGrid (a: mat; n, m: integer); private {Private declarations} public {Public declarations} end; var Form1: TForm1; implementation {$R *.dfm} const cc: array [1..10] of TColor = (clBlue, clFuchsia, clGreen, clLime, clMaroon, clNavy, clOlive, clRed, clTeal, clYellow); var mf: string; // имя файла с матрицей c: array [1..10, 1..10] of TColor; // массив цветов слоев a: mat; // заданая матрица k: integer; // счетчик слоев procedure Sdvig (var d: mas; n: integer); // сдвиг массива по часовой стрелке var i, l: integer; begin if n = 0 then Exit; l:= d[n]; for i:= n downto 2 do d[i]:= d [i – 1]; d[1]:= l; end; procedure SloiColor (fn, n, m: integer; sd: boolean); // определение цветов слоев и их сдвиг var i, j: integer; d: mas; begin if ((n >= 2) or (m >= 2)) and ((fn < n) and (fn < m)) then begin j:= 0; for i:= fn to m do begin c [fn, i]:= cc[k]; j:= j + 1; d[j]:= a [fn, i]; end; for i:= fn + 1 to n do begin c [i, m]:= cc[k]; j:= j + 1; d[j]:= a [i, m]; end; for i:= m – 1 downto fn do begin c [n, i]:= cc[k]; j:= j + 1; d[j]:= a [n, i]; end; for i:= n – 1 downto fn + 1 do begin c [i, fn]:= cc[k]; j:= j + 1; d[j]:= a [i, fn]; end; if sd then begin Sdvig (d, j); j:= 0; for i:= fn to m do begin j:= j + 1; a [fn, i]:= d[j]; end; for i:= fn + 1 to n do begin j:= j + 1; a [i, m]:= d[j]; end; for i:= m – 1 downto fn do begin j:= j + 1; a [n, i]:= d[j]; end; for i:= n – 1 downto fn + 1 do begin j:= j + 1; a [i, fn]:= d[j]; end; end; Inc(k); SloiColor (fn + 1, n – 1, m – 1, sd); end; end; procedure TForm1.MQuitClick (Sender: TObject); // выход из программы var fi: integer; begin fi:= Application. MessageBox ('Вы действительно хотите завершить программу?', 'Информация', mb_YesNo); // вывод окна if fi = IDYes then Application. Terminate; // выход end; procedure TForm1.MOpenFileClick (Sender: TObject); // открыть файл данных var n, m, i, j: integer; f: textfile; begin if OpenDialog1. Execute then begin mf:= OpenDialog1. FileName; MRun. Enabled:= True; AssignFile (f, mf); Reset(f); ReadLn (f, n, m); for i:= 1 to n do begin for j:= 1 to m do Read (f, a [i, j]); ReadLn(f); end; CloseFile(f); for i:= 1 to n do for j:= 1 to m do c [i, j]:= clBlack; k:= 1; SloiColor (1, n, m, false); FillGrid (a, n, m); end; end; procedure TForm1. FillGrid (a: mat; n, m: integer); // вывод матрицы с заданными цветами элементов var i, j: integer; r: trect; begin StringGrid1. Refresh; for i:= 1 to 10 do StringGrid1. Cells [i, 0]:= «; for i:= 1 to 10 do begin StringGrid1. Cells [0, i]:= «; for j:= 1 to 10 do begin r:= StringGrid1. CellRect (j, i); StringGrid1. Canvas. TextOut (r.topleft.x + 1, r. Top + 2, ' '); end; end; for i:= 1 to m do StringGrid1. Cells [i, 0]:= IntToStr(i); for i:= 1 to n do begin StringGrid1. Cells [0, i]:= IntToStr(i); for j:= 1 to m do begin StringGrid1. Canvas. Font. Color:= c [i, j]; r:= StringGrid1. CellRect (j, i); StringGrid1. Canvas. TextOut (r.topleft.x + 1, r. Top + 2, IntToStr (a[i, j])); end; end; StringGrid1. Canvas. Refresh; end; procedure TForm1.MRunClick (Sender: TObject); var i, j, n, m: integer; f: textfile; begin AssignFile (f, mf); Reset(f); ReadLn (f, n, m); CloseFile(f); for i:= 1 to n do for j:= 1 to m do c [i, j]:= clBlack; k:= 1; SloiColor (1, n, m, true); FillGrid (a, n, m); Append(f); WriteLn(f); for i:= 1 to n do begin for j:= 1 to m do Write (f, a [i, j]:5); WriteLn(f); end; CloseFile(f); end; end.
12
Популярное: Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... Почему стероиды повышают давление?: Основных причин три... Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (232)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |