Матричный калькулятор в среде программирования Delphi

  • 30 июня 2015 г.
  • 349 Слова
program Pmxcalc;

{$APPTYPE CONSOLE}

{$R *.res}
// подключаем модули
uses
SysUtils, Windows, Math;
// определяем максимальнын значенияколичества строк и столбцов матрицы
const Nmax = 9;Mmax = 9;
// создаем новый тип - матрица размером Mmax на Nmax, элементы типа double
type tmx = array [1..Mmax, 1..Nmax] of double;
// объявляем глобальные переменные
var mk: char; //команда меню
a_m, a_n, b_m, b_n, c_m, c_n: integer; // текущие размерноти матриц A, B, C
a, b, c: tmx; // матрицы

procedure Cls; // процедура очистки экрана с помощью функций WinApivar csb: CONSOLE_SCREEN_BUFFER_INFO;
crd: COORD;
con, wr: DWORD;
begin
crd.X:= 0;
crd.Y:= 0;
con:= GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(con, csb);FillConsoleOutputCharacter(con, ' ', csb.dwSize.X*csb.dwSize.Y, crd, wr);
SetConsoleCursorPosition(con, crd);
end;

function ReadKey: char; // процедура ожидания нажатия на клавишу в консоли
varcon, rd: DWORD;
rc: INPUT_RECORD;
begin
con:= GetStdHandle(STD_INPUT_HANDLE);
repeat
ReadConsoleInput(con, rc, 1, rd);
until not rc.Event.KeyEvent.bKeyDown;
// возврат - кодсимвола, соответсвующий нажатой клавише
result:= rc.Event.KeyEvent.AsciiChar;
end;

// процедура вывода матрицы размером MxN, матрица передается через указатель
procedure Out_Mx(var mx: tmx; m, n:integer);
var i, j: integer;
begin
for i:= 1 to m do
begin
for j:= 1 to n do Write(mx[i, j]:5:3, #9);
WriteLn;
end;
WriteLn;
end;

// процедура ввода матрицы размером MxN, матрицапередается через указатель
procedure In_Mx(var mx: tmx; m, n: integer);
var i, j: integer;
begin
WriteLn('Введите значение элементов матрицы ',m,'x',n,' по строкам:');
for i:= 1 to m dofor j:= 1 to n do Read(mx[i, j]);
end;

// процедура заполнения элементов матрицы случайными числами в диапазоне [-50;50]
procedure Rnd_Mx(var mx: tmx; m, n: integer);
var i, j:...
tracking img