Умножение, деление, сложение, вычитание вещественных чисел в Pascal.

С вещественными числами можно производить операции умножения, сложения, вычитания, а также операцию деления. Причем операция деления отличается от операции Div. Деление вещественных чисел - это обычное математическое деление, в результате которого ...

Процедуры Dec и Inc в Pascal.

При работе с целыми числами используются процедуры DEC и INC. Процедура Dec уменьшает число на определенное значение, а процедура Inc увеличивает число на определенное значение.

GotoXY в Pascal.

Процедура GotoXY используется в Pascal для перевода курсора в нужную позицию на экране. Для этой процедуры указываются координаты. После указания процедуры GotoXY в коде программы сообщение будет выводиться на экран в тех координатах, которые мы ...

Циклы и массивы

Тип данных Char.

Тип CHAR (литерный, символьный). Этот тип задает конечное упорядоченное множество символов (литер), допускаемое в конкретной реализации языка.

ФАЙЛЫ ЗАПИСЕЙ

В практике программирования часто встречаются задачи, решение которых требует большого количества относительно мало изменяемых во времени данных. Ввод данных с экрана заново при каждом счете для этих ...

Анализ задачи:

Следует разработать программу, выполняющую стандартные математические операции транспонирования и умножения матриц. Для хранения матриц используются двумерные массивы (исходная матрица А и результирующая матрица А*), размерность матриц задается с клавиатуры.

Метод решения задачи:

Транспонирование массива заключается в том, что первая строка массива становится первым столбцом нового массива, вторая строка массива становится вторым столбцом нового массива и так далее. Вы можете скачать вайбер на андроид телефон при помощи которого Вы сможете общаться с друзьями а также передавать фото и видео файлы.

Произведение двух матриц размерностью КхМ вычисляется согласно следующему правилу: a [i,j] = sum k=1 to n b [i,j]*c[k,j] , где i — номер строки, а j — номер столбца.

Алгоритм решения задачи:

1.Ввод аргументов k, m - размеров матрицы ; 2.Заполнение массива целыми числами. 3.Транспонирование матрицы. 4.Нахождение произведения транспонированной матрицы и исходной. 5.Вывод результатов.

Описание структур данных, использованных в алгоритме:

Mаs, trans, pr – массивы целых чисел; содержащие исходную, транспонированную матрицы, произведение матриц.

i, j, k – счетчики цикла; изменяются под управлением оператора цикла. ar_sizex, ar_sizey – аргументы, в которые заносятся данные о размерах исходного массива (параметры К и М).

Программа и методика испытания:

Данный алгоритм представлен несколькими циклическими структурами с внутрицикловыми ветвлениями. Поэтому во время проведения испытаний разработанной программы следует проверить правильность задания граничных значений для параметра цикла, правильность (соответствие поставленной задаче) тела цикла, правильность начальных условий для операторов тела цикла.

 uses crt;
const range=100;
var i,j,k,ar_sizex,ar_sizey:integer; mas,trans,pr: array [1..10,1..10] of longint;
begin
randomize;
clrscr;
writeln('Дана матрица А, размером КхМ. Получить транспонированную матрицу А*');
writeln('и матрицу АхА*');
writeln;
repeat write('Введите K:'); readln(ar_sizex);
write('Введите М:');
readln(ar_sizey);
if (ar_sizex<=0) or (ar_sizey<=0) then writeln('Неправильный ввод данных');
until (ar_sizex>0) and (ar_sizey>0);
for j:= 1 to ar_sizey do for i:= 1 to ar_sizex do mas[i,j]:=round(Random(range)/random);
writeln; writeln('Элементы исходной матрицы:' );
for j:= 1 to ar_sizey do begin for i:= 1 to ar_sizex do write(mas[i,j]:5,' ');
writeln;
end;
writeln; writeln('Элементы транспонированной матрицы:' );
for j:= 1 to ar_sizex do begin for i:= 1 to ar_sizey do begin trans[i,j]:=mas[j,i];
write(trans[i,j]:5,' ') end; writeln; end; writeln; writeln('Произведение матриц:');
for j:= 1 to ar_sizex
do begin for i:= 1 to ar_sizex do begin for k:=1 to ar_sizex do pr[i,j]:=mas[k,i]*trans[j,k]+pr[i,j]; write(pr[i,j]:7,' ');
end;
writeln;
end;
writeln('Нажмите любую клавишу для выхода.');
readkey;
end. 

Для корректной работы алгоритма программы следует провести контроль введенных оператором начальных значений используемых параметров. При этом используется цикл типа «REPEAT..UNTIL», выполняемый до тех пор, пока не будут заданы правильные начальные условия выполнения основного алгоритма программы (K > 0, N>0). При вводе неправильного значения производится возврат к началу цикла для повторного ввода информации с выдачей соответствующего информационного сообщения.

Предыдущая статья : Дано натуральное число N. Необходимо вычислить произведение первых N сомножителей: 1/2*3/4*5/6

Оглавление : Уроки Паскаль. Массивы.

   ГлавнаяПаскальПримеры программ.Дана матрица A размером KxM. Получить транспонированную матрицу A* и произведение AxA*.