Функции LENGTH и CONCAT.

Функция Length возвращает в качестве значения длину строки. Например, если в строковой переменной «stroka» записано слово «Pascal», то Length(stroka) будет равно 6. Эта операция аналогична операции Ord(stroka[0]), которую мы разбирали в 1-м уроке. ...

Ввод логических переменных с клавиатуры.

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

Ветвления в Pascal.

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

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

Разветвляющийся вычислительный процесс.

Если вычислительный процесс зависит от определенных условий и реализуется по одному из нескольких заранее предусмотренных направлений, он называется разветвляющимся вычислительным процессом, а каждое ...

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

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

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

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

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

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

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

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

Добавить комментарий

Защитный код
Обновить

   ГлавнаяПаскальПримеры программ.