Основы программирования на языке Паскаль
for i:=1 to 4 do
for j:=1 to 4 do
if i=j then Begin b[k]:=a[i,j]; k:=k+1; end;
{отыскиваем и заносим в b[1] a[1,1]}
{меняем k и заносим в b[2] a[2,2] и т.д.}
writeln(' на главной диагонали лежат элементы:');
writeln('a[1,1]=',b[1],' a[2,2]=',b[2],' a[3,3]=',b[3],' a[4,4]=',b[4]);
readln;
END.
Эта программа отличается от предыдущей тем, что она вначале вводит массив А, затем его распечатывает в виде
a11 a12 a13 a14
a21 a22 a23 a24
a31 a32 a33 a34
a41 a42 a43 a44
а после выводит результаты в том же виде, что и программа Prim26, т.е.
Program Prim26b;
Var i,j,k,n:integer;
a:array[1 40,1 40] of integer;
b:array[1 40] of integer;
BEGIN writeln('введите размерность массива');
readln(n);
for i:=1 to n do
for j:=1 to n do
Begin writeln('введите a[',i,',',j,']');
readln(a[i,j]); end;
{ вывести элементы массива а }
fori:=1 tondo
Begin writeln; {перевести курсор на новую строку}
for j:=1 to n do
write(a [i , j],' '); {вывестиэлементыводнустроку}
end;
k:=1;
for i:=1 to n do
for j:=1 to n do
if i=j then Begin b[k]:=a[i , j]; k:=k+1; end;
{отыскиваем и заносим в b[1] a[1,1]}
{меняем k и заносим в b[2] a[2,2] и т.д.}
writeln(' на главной диагонали лежат элементы:');
for k:=1 to n do
write(' a[',k,',',k,']=',b[k]);
readln;
END.
Эта программа работает так же, как и предыдущая, но с массивами и с переменными измерениями.
Величина входного массива может быть до 40 строк и 40 столбцов. Чтобы это обеспечить, в разделе Var описываем массив a: array [1 40,1 40] of integer; а затем в программе вводим по запросу n, которое будет определять, с матрицей какой величины мы будем работать конкретно (n должно быть в диапазоне 1-40). Далее все циклы программы работают от 1 до n, т.е. машина решит задачу для массива введенной размерности n.
Program Prim27;
Var i,j,k,n:integer;
a:array[1 40,1 40] of integer;
b:array[1 40] of integer;
BEGIN writeln('ввести n'); readln(n);
for i:=1 to n do
for j:=1 to n do
Begin writeln('ввести a[',i,',',j,']');
readln(a[i,j]); end;
{ вывести элементы массива а }
fori:=1 tondo
Begin writeln; {перевести курсор на новую строку}
for j:=1 to n do
write(a[i,j],' '); {вывестиэлементыводнустроку}
end;
k:=1;
for i:=1 to n do
for j:=1 to n do
if i+j-1=n then Begin b[k]:=a[i,j]; k:=k+1; end;
{отыскиваем и заносим в b[1] a[1,1]}
{меняем k и заносим в b[2] a[2,2] и т.д.}
writeln;
writeln(' на дополнительной диагонали лежат элементы:');
for k:=1 to n do
write(b[k],' ');
readln;
END.
Программа Prim 27 работает аналогично программе Prim 26b, однако выводит элементы, лежащие на дополнительной диагонали.
Program Prim28;
Var i,j,min,m,n,k:integer;
a:array[1 20,1 10] of integer;
b:array[1 10] of integer;
BEGIN writeln('ввести m,n'); readln(m,n);
for i:=1 to m do {m – количествострок }
for j:=1 to n do {n – количествостолбцов}
Begin writeln('ввести a[', i ,', ', j,']');
readln(a[i , j]); end;
{ вывести элементы массива а }
fori:=1 tomdo
Begin writeln;
for j:=1 to n do
write(a[i,j],' '); end;
min:=32767; {максимальное integer, чтобы в последующем сравнивать}
{и заносить в min все элементы a[i,j], которые меньше min}
for i:=1 to m do
for j:=1 to n do
if a[i , j]<min then Begin min:=a[i , j]; k:=i; end;
writeln(' строка, содержащая наименьший элемент');
for j:=1 to n do
write(' a[', k ,',', j ,']=',a[k , j]);
readln; END.
Программа Prim 28 находит в массиве строку размером до 20х10, содержащую наименьший элемент.
Program Prim29;
Var i,j:integer; a:array[1 5, 1 7] of integer;
b:array[1 7] of integer;
c:array[1 5] of integer;
BEGIN for i:=1 to 5 do
for j:=1 to 7 do
begin writeln('введите a[',i,',',j,'] элементматрицыа');
readln(a[i,j]); end;
for j:=1 to 7 do
begin writeln('введите b[',j,'] элементвектора b');
readln(b[j]); end;
for i:=1 to 5 do {начало перемножения матрицы на вектор}
begin c[i]:=0;
for j:=1 to 7 do
c[i]:=c[i]+ a[i,j]*b[j]; end;
{конец перемножения матрицы на вектор}
writeln('распечаткамассиваа');
for i:=1 to 5 do
begin writeln; {начать новую строку}
for j:=1 to 7 do
write(' ',a[i,j]); end; writeln;
writeln('распечаткамассива b');
for j:=1 to 7 do
write(' ',b[j]); writeln;
writeln('результирующиймассивс');
for i:=1 to 5 do
write(' ',c[i]);
readln; END.
Программа вводит матрицу А размером 5х7 и вектор размером 7 элементов, затем их перемножает по правилу Сi= Сi+ a[i,j]*b[j] и выводит пять элементов массива С.
Заметим, что для вычисления каждого с необходимо каждый элемент строки массива a умножить на соответствующий по индексу элемент массива b, а затем все эти произведения сложить. таким образом, количество элементов массива с будет равно количеству строк матрицы a (и, соответственно, количеству элементов массива b).
Program Prim29a;
Var i,j,n,m:integer; a:array[1 50,1 70] of integer;
b:array[1 70] of integer;
c:array[1 50] of integer;
BEGIN writeln('ввести количество строк и столбцов');
readln(n,m);
for i:=1 to n do
for j:=1 to m do
begin writeln('ввести a[',i,',',j,'] элементматрицыа');
readln(a[i,j]); end;
for j:=1 to m do
Другие рефераты на тему «Программирование, компьютеры и кибернетика»:
Поиск рефератов
Последние рефераты раздела
- Основные этапы объектно-ориентированного проектирования
- Основные структуры языка Java
- Основные принципы разработки графического пользовательского интерфейса
- Основы дискретной математики
- Программное обеспечение системы принятия решений адаптивного робота
- Программное обеспечение
- Проблемы сохранности информации в процессе предпринимательской деятельности