Использование вложенного оператора If.

Условные операторы в Pascal можно вкладывать друг в друга. Для этого используется вложенный оператор IF. Рассмотрим это на примере программы, которая будет считать количество корней квадратного уравнения.

Использование Var, Integer, Readln.

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

Тип данных Boolean. Значения True, False в Pascal.

Мы рассмотрели с Вами целый тип данных (integer), вещественный тип (real), символьный (char). В этом уроке мы рассмотрим тип данных, который имеет большое значение в программировании. Логический типBoolean. Одной из особенностей этого типа данных ...

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

Сортировка одномерного массива. Метод пузырька.

Сортировка — перестановка местами объектов в определенном порядке. Известно несколько сотен алгоритмов сортировки и их модификаций.

Линейные процессы вычислений.

Простейший алгоритм представляет собой цепочку блоков (операторов) от начального блока до конечного. Каждый блок должен быть выполнен один единственный раз. Это линейный алгоритм. Он отражает ...

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

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

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

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

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