русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Ввод вывод матриц в Паскале

Ввод или вывод матриц на языке программирования Паскаль выполняются с использованием вложенных циклов,  при этом в список ввода/вывода помещается переменная с индексом.

Вводить матрицы в Паскале можно по элементам или по строкам

  • For i:=1 to n do

         For j:=1 to n do Read(x[i, j]);
  -2
   3
 . . .
   5

  • For i:=1 to n do

          Begin
             For j:=1 to n do Read(x[i, j]);
             Readln;
          End;

-2  3  6  2 
             . . .
4  2  1  7 

Аналогично можно записать процедуры вывода, но при этом необходимо  предусмотреть разделительные пробелы и  форматы выводимых данных.

For i:=1 to n do
          Begin
             For j:=1 to n do Write(x[i, j]:4);
             Writeln;
          End;

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

Пример №12.1.  Сформировать матрицу случайных целых чисел в диапазоне -10..10  и найти  ее максимальный элемент. Программу написать на языке Паскаль.

Текст программы

Program м3;
Uses CRT;
Const  n=4; m=5;
k1=10;
k2=k1*2+1;
Type matr =array[1..n,1..m] of integer;
Var
a               :matr;
i, f, ma     :integer;
Begin
ClrScr;
Randomize;
Writeln('Исходная матрица:');
For i:=1 to n do
Begin
For j:=1 to m do
Begin
f:=random(k2);
a[i, j]:=k1-f;
Write(a[i,j]:3,' ':3);
End;
Writeln;
End;
ma:=a[1, 1];
For i:=1 to n do
For j:=1 to m do
If  a[i, j]>ma then ma:=a[i, j];
Writeln;
Writeln('Результат:');
Writeln('ma=',ma);
Repeat Until KeyPressed
End.

 

Пример 12.2.  Найти сумму положительных элементов элемент в каждом столбце матрицы, заданной в файле inp.txt.
4   -3    5   -7   -8
3    9   -1   -2    6
-3    6   -5    4   -2
-4   -5    2    7   -3

 

Текст программы

Program ma11;
{Найти сумму положительных элементов элемент в каждом столбце матрицы}
Uses CRT;
Const
n = 4; m=5;
Type
vec =array[1..m] of integer;
mat =array[1..n] of vec;
t   =text;
Var
a         : mat;
max       : vec;
ma        : integer;
i,j       : byte;
f1        : t;
Begin
ClrScr;
Assign(f1,'inp.txt');Reset(f1);
Writeln('Исходный масив:');
For i:=1 to n do
Begin
For j:=1 to m do
Begin
Read(f1,a[i,j]);
Write(a[i,j]:5);
End;
Readln(f1);Writeln
End;
Writeln;
for j:=1 to m do
Begin
ma:=a[1,j];
for i:=1 to n do
If a[i,j]>ma then ma:=a[i,j];
max[j]:=ma;
End;
Writeln('Результат:');
for j:=1 to m do  Write(max[j]:6);
Readln;
end.

 

Результат работы программы:

Исходный массив:
4   -3    5   -7   -8
3    9   -1   -2    6
-3    6   -5    4   -2
-4   -5    2    7   -3

Результат:
4     9     5     7     6

Пример 12.3.    Найти сумму положительных элементов элемент в каждой строке  матрицы, заданной в файле inp.txt.
4   -3    5   -7   -8
3    9   -1   -2    6
-3    6   -5    4   -2
-4   -5    2    7   -3

 

Текст программы

Program ma1;
{Найти сумму положительных  элементов в каждой строке матрицы}
Uses CRT;
Const
n = 4; m=5;
Type
vec =array[1..n] of integer;
mat =array[1..n,1..m] of integer;
t   =text;
Var
a         : mat;
sp        : vec;
s         : integer;
i,j       : byte;
f1        : t;
Begin
ClrScr;
Assign(f1,'inp.txt');Reset(f1);
Writeln('Исходный массив:');
For i:=1 to n do
Begin
For j:=1 to m do
Begin
Read(f1,a[i,j]);
Write(a[i,j]:5);
End;
Readln(f1);Writeln
End;
Writeln;
for i:=1 to n do
Begin
s:=0;
for j:=1 to m do
If a[i,j]>0 then s:=s+a[i,j];
sp[i]:=s;
End;
Writeln('Результат:');
for i:=1 to n do  Write(sp[i]:6);
Readln;
end.

 

Результат работы программы:

Исходный массив:
4   -3    5   -7   -8
3    9   -1   -2    6
-3    6   -5    4   -2
-4   -5    2    7   -3

Результат:
9    18    10     9

 

Пример 12.4.  Найти сумму отрицательных элементов в каждой строке матрицы а(5х4).

 

Текст программы

Program ran_arr;
{Найти сумму отрицательных элементов в каждой строке}
Uses CRT;
Const
n = 5; m=4;
k1 = 10;
k2 = 2*k1+1;
Type
vec =array[1..n] of integer;
mat =array[1..n,1..m] of integer;
Var
arr_mat     : mat;
arr_vec     : vec;
s           : integer;
i,j,f       : byte;
Begin
ClrScr;
Randomize;
Writeln('Генерируем исходный масив');
For i:=1 to n do
Begin
For j:=1 to m do
Begin
f:=Random(k2);
arr_mat[i,j] := k1-f;
Write(arr_mat[i,j]:6);
end;
Writeln;
End;
for i:=1 to n do
Begin
s:=0;
for j:=1 to m do If arr_mat[i,j]<0 then s:=s+arr_mat[i,j];
arr_vec[i]:=s
End;
Writeln('Результат:');
for i:=1 to n do  Write(arr_vec[i]:6);
Readln
end.

 

Результат работы программы:

Генерируем исходный масив
-3     9     9     9
4     5    -4     2
3     7    10     3
10     1    -7     8
10     2    -6    -9

Результат:
-3    -4     0    -7   -15

 

Пример 12.5.   Найти минимальный и максимальный элемент матрицы а(4х3).

Текст программы

Program ms;
{Найти минимальный и максимальный элемент матрицы а(4х3)}
Uses CRT;
Const
n = 4; m = 3;
Type
matr = array[1..n,1..m] of integer;
Var
X       : matr;
Max,Min : integer;
i,j     : byte;
Begin
ClrScr;
Writeln('Введите X(4,3):');
For i:=1 to n do
For j:=1 to m do
Begin
Write ('X[',i,',',j,']=');   Read(X[i,j]);
End;
{  Поиск максимума:  }
Max:=X[1,1];
Min:=X[1,1];
For i:=1 to n do
For j:=1 to m do
Begin
If x[i,j]>max then max:=x[i,j];
If x[i,j]<min then min:=x[i,j];
End;
Writeln(^G'Максимум=',Max,^M^J'Минимум=',Min);
Repeat Until KeyPressed
End.

 

Результат работы программы:

Введите X(4,3):
X[1,1]=1
X[1,2]=4
X[1,3]=5
X[2,1]=6
X[2,2]=7
X[2,3]=6
X[3,1]=5
X[3,2]=6
X[3,3]=7
X[4,1]=8
X[4,2]=9
X[4,3]=1
Максимум=9
Минимум=1

Просмотров: 18882

Вернуться в оглавление:Алгоритмические языки




Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.