Использование program, begin…end, write, readln, Uses Crt, Clrscr.

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

Процедуры STR и VAL.

В строковую переменную можно записывать не только буквы, но и цифры. Однако это будут не числа, как таковые, а их символьное представление. Для преобразования символьных представлений числа в само число, и наоборот, используются процедуры STR и VAl.

...

Строковые константы в Pascal.

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

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

Вложенные итерационные циклы.

Под вложенным итерационным циклом понимают такую алгоритмическую структуру, при которой в тело одного итерационного цикла включен другой итерационный цикл. Другими словами, любая составная ...

Сортировка двумерного массива.

Пример 36. Задан двумерный массив X из 6 строк и 4 столбцов. Упорядочить массив X по возрастанию элементов дробной части столбца с номером N. Отсортированный массив X вывести на экран монитора.

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

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

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

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

Произведение двух матриц размерностью КхМ вычисляется согласно следующему правилу: 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*.