ОДНОМЕРНЫЕ МАССИВЫ
Массивы
Массивы
Практикум по решению задач
Практикум решения задач
ДВУМЕРНЫЕ МАССИВЫ
Объявление двумерного массива
Соотношение индексов в квадратной матрице i-номер строки, j-номер столбца
Ввод-вывод значений элементов матрицы с клавиатуры
Практикум
Упорядочить каждую строку матрицы по возрастанию. Массив размером МхN, элементы которого задаются датчиком случайных чисел на
Практика
1.33M
Категория: ПрограммированиеПрограммирование

Одномерные и двумерные массивы. Практикум

1.

2. ОДНОМЕРНЫЕ МАССИВЫ

Конечная, упорядоченная по номерам совокупность
значений, объединенных общим типом и именем –
называется массивом.
Индекс – величина, характеризующая положение
элемента, относительно начала массива.

Х
1
25
2
87
3
43
… …
29 17
30 33
Например, массив Х из 30 элементов
(целые числа)
Элементы массива

3.

Массивы
НОМЕР
массив
A
1
2
5
10
A[1]
A[2]
33
15
15
4
20
A[3]
A[4]
ЗНАЧЕНИЕ
элемента массива
(ИНДЕКС)
5
25
A[5]
элемента массива
НОМЕР (ИНДЕКС)
элемента массива: 2
A[2]=10
ЗНАЧЕНИЕ
элемента массива: 10

4.

Описание массива на Паскале
Массив целых чисел:
тип
элементов
var A : array[ 1 .. 5 ] of integer ;
имя
начальный
индекс
конечный
индекс
Размер через константу:
const N=5;
var A: array[1.. N ] of integer;

5. Массивы

Типовые задачи:
Определяется массив из 5 элементов (целые числа). Значения элементов
массива вводятся с клавиатуры. Вывод элементов массива на экран.
Program massiv_Opr_elem;
Const N=5;
Var i:integer;
M:array[1..N] of integer;
Begin
For i:=1 to N do begin {Вводим элементы массива}
Readln(M[i]);
end;
For i:=1 to N do begin {Печатаем элементы массива}
Write( ‘M[‘ ,I, ‘]=‘ ,M[i]); {в одной строке}
End;
End.

6. Массивы

Заполнение элементов массива случайными числами и определение
среднего арифметического.
Program massiv_Opr_elem;
Const N=10;
Var k,s:integer;
sr:real;
M:array[1..N] of integer;
begin
Randomize; {активизируем датчик случайных чисел}
For k:=1 to N do begin {Определяем элементы массива}
M[k]:=random(101) – 50; {случ. числа от -50 до 50}
Writeln( M[k]); {Печатаем элементы массива в столбец}
End;
S:=0;
For k:=1 to N do begin {Находим сумму}
s:=s + M[k];
End;
Sr:=s/n;
{и среднее значение}
Writeln( ‘Сумма=‘,s, ‘Среднее значение =’,sr:6:2);
end.

7.

Нахождение количества элементов
Дан массив А, состоящий из 10 элементов, значения которого вводятся с
клавиатуры. Подсчитать сколько элементов массива имеют значения меньшие
некоторой величины t.
Program zadacha;
Var
A: array [1..10]of real;
i,k: integer;
t: real;
begin
k:=0;
write (‘введите значение переменной t’);
read (t);
for i:=1 to 10 do begin
writeln (‘введите значение’ ,i, ’элемента массива’);
readln (a[i]);
If a[i] <t then k:=k+1;
end;
writeln (‘число элементов=‘,k);
end.

8.

1) Составить программу вычисления среднего арифметического модулей
отрицательных элементов массива А(15). Элементы массива вводятся с
клавиатуры {1,5; 0; -2; 8; -5,3; -7,1; 0; -4; 10; -2,3; -8; 1,5; -1; -2,5; 5}
Program mod;
Const N=15;
Var i, k: integer;
sr, s: real;
A: array [1..N] of real;
Begin
S:=0; k:=0;
For i:=1 to N do begin
Writeln (‘введите значение’ ,i, ‘элемента массива’);
Readln (a[i]);
If a[i]<0 then begin
k:=k+1;
s:=s+abs(a[i]);
end;
end;
Sr:=s/k;
Write (‘значение sr=’ , sr:6:2);
end.

9. Практикум по решению задач

1 вариант. Массив А (20) заполнен датчиком случайных
чисел. Найти количество элементов, имеющих
отрицательное значение.
2 вариант. Дан массив В(20) целых чисел, заполненный
датчиком случайных чисел. Выяснить верно ли, что
сумма элементов массива есть четное число.

10.

Домашняя работа
1 задача: Массив заполнен случайными величинами в
диапазоне от -30 до 29 и состоит из N элементов. Подсчитать
сколько в нём отрицательных, положительных и нулевых
элементов.
2 задача: Задана последовательность из N целых натуральных
чисел случайной величиной. Вычислить среднее
арифметическое только тех элементов массива, порядковые
номера которых совпадают со значением этого элемента.

11.

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

12.

Program Vvod;
var
i: integer;
a: array[1..10] of integer;
f_in: text;
Begin
assign (f_in,
'C:\Users\PascalABC.NET\input.txt');
reset (f_in);
i:=1;
While not Eof (f_in) do
begin
read (f_in, a[i]);
Write(a[i],' ');
i:=i+1;
End;
close (f_in);
end.
Работа с файлами выполняется
следующими процедурами:
Assign – устанавливает связь между
именем файла в программе (файловой
переменной ) и физическим именем
файла, принятым в ОС.
Reset - открывает существующий файл
для чтения.
Rewrite – создает и открывает новый
файл для записи на внешнем устройстве
Close - закрывает открытый файл.
Для определения конца файла
используется стандартная встроенная
функция EOF, которая принимает
значение True, если достигнут конец
файла, и значение False в противном
случае.

13.

Вывод в файл
Program Vvod_Vivod;
var
i: integer;
a: array[1..10] of integer;
f_in, f_out: text;
Begin
assign (f_in, 'C:\Users\PascalABC.NET\input.txt');
reset (f_in);
assign(f_out, 'C:\Users\PascalABC.NET\output.txt');
Rewrite (f_out);
i:=1;
While not Eof (f_in) do
begin
read (f_in, a[i]);
write (f_out, a[i], ‘ ‘);
i:=i+1;
End;
close (f_in);
close (f_out);
end.

14.

Часто содержимое текстового файла представляет собой символьную
последовательность, разделенную на строки. Каждая строка заканчивается
специальным признаком EOLN (end of line) – конец строки.
Задача: Создать текстовый файл из целых чисел. Файл должен содержать
несколько строк. Вывести на экран удвоенные числа из файла, сохраняя вид
записи по строкам. Например, для исходного файла, содержащего числа
3 4 5
program task;
2 0 1
var f: text;
на экране должно появиться:
s: integer;
6 8 10
begin
4 0 2.
assing (f, ‘c:\test.txt’);
reset (f);
while not Eof (f) do begin
while not Eoln (f) do begin
read (f, s);
write (2*s, ‘ ‘);
end;
writeln;
end;
close (f);
end.

15.

Пример.
В текстовом файле f.txt через пробел
записаны целые натуральные числа.
Переписать в файл f1.txt из файла f.txt
все числа, за исключением
максимальных (предполагается, что их
может быть несколько).
Файлы f и f1 находятся в
тоже папке, что и программа.
Program T_1;
var
f, f1: Text;
a, max: longint;
flag: Boolean;
begin
Assign(f, 'f.txt');
Reset(f); max:=0;
while not Eof (f) do begin
Read (f, a);
if a>max then
max := a;
end;
Assign(f1,'f1.txt');
Rewrite(f1);
Reset(f);
while not Eof (f) do begin
Read(f, a);
if a<>max then
WriteLn (f1, a);
end;
Close(f);
Close(f1);
end.

16.

Практикум решения задач
Дан текстовый файл input.txt, содержащий N целыx чисел. Найдите
среднее арифметическое данных чисел, запишите ответ в
выходной файл output.txt.

17.

18.

Подсчёт числа вхождений Р>0 в массив.
Program poisc;
const n = 15;
var
x: array [1..n] of integer;
k, i, p: integer;
Begin
writeln('Введите число p>0, которое
будем искать в массиве');
readln(p);
Randomize;
k:=0;
for i := 1 to n do begin
x[i]:=random (50);
if x[i] = p then k:= k+ 1;
end;
if k = 0 then writeln ('В массиве нет такого
числа!')
else writeln ('Число’ ,p, ‘в массиве
присутствует’ , k, ‘раз’)
end.

19.

Решение задач по обработке массивов
Задание: Составить программу вычисления произведения
положительных элементов массива В(20) в диапазоне от 0 до 10, стоящих
на нечетных местах. Массив вводится с помощью датчика случайных
чисел.
Самостоятельная работа
Задача. Найти сумму тех элементов массива X(10), которые
одновременно имеют четные и отрицательные значения. Значения
массива вводятся с клавиатуры {0; -1; -3; 4; -8; 0; 6; -2; -1; -9}.
Дополнительная задача.
Заполните случайными числами два массива А(20) и В(20) в диапазоне
от 0 до 10. Найдите только те элементы этих массивов, значения
которых совпадают. Например, если А[2]= B[2]=4, то на экран надо
вывести:
номер: 2 значение: 4
Если таких совпадений нет, то вывести на экран сообщение об этом.

20.

Вставка элементов в заданный массив
Задача. Дан массив, состоящий из 20 элементов. Произвести
вставку числа 10 в позицию m данного массива. Позиция m должна
соответствовать диапазону 1<=m<=n
Program ZZZ;
Const n=20;
Var
i, m: integer;
A: array [1..n+1] of integer;
Begin
For i:=1 to n do readln (a[i]);
Writeln (‘введите номер индекса элемента вставки’);
Read (m);
For i:=n+1 downto m+1 do a[i]:=a[i-1];
a[m]:=10;
For i:=1 to n+1 do writeln (a[i]);
end.

21.

Задача:
Найти число элементов массива, которые больше своих «соседей», т.е.
предшествующего и последующего элементов.
Практика: Дан массив, состоящий из 10 элементов. Произвести
вставку числа 0 в позицию 5 данного массива. Элементы массива
определены датчиком случайных чисел от -19 до 20.

22.

Типовые задачи
Нахождение экстремумов.
Дан массив А(30), заполненный датчиком случайных чисел. Найти
наибольшие и наименьшее значение массива.
Program max_min;
Var i,min,max: integer;
A: array [1..30] of integer;
Begin
Randomize;
For i:=1 to 30 do begin
a[i]:=random(100);
writeln (‘значение’,I,’элемента =‘,a[i]);
end;
Min:=a[1];
Max:=a[1];
For i:=2 to 30 do begin
if a[i]<min then min:=a[i];
if a[i]>max then max:=a[i];
End;
Writeln (‘max=’,max, ‘min=‘,min);
End.

23.

Фрагмент программы нахождения max элемента и
его индекса

Max:=M[1];
Inmax:=1;
For k:=1 to N do {Находим максимальное и его индекс}
If M[k] > Max then begin
Max:= M[k];
Inmax:=k;
end;
Writeln( ‘Максимальное = M[‘, inmax, ‘]=‘,Max);

24.

Практикум
1. Дан массив B(40), заполненный датчиком
случайных чисел. Определить:
а)
максимальный элемент и его индекс;
б)
минимальный элемент и его индекс;
в)
на сколько максимальный элемент больше
минимального;
ЗАДАЧА.
Массив задан датчиком случайных чисел на
интервале [-37, 66]. Найти наименьший нечетный
элемент. Размер произвольный.

25.

Задача 1:
В одномерном массиве, состоящим из n вещественных элементов, найти
количество элементов, стоящих после максимального по модулю
элемента.
Program Z1;
const n=20;
K:=0;
Var i, k, inmax: integer;
For i:=inmax+1 to n do k:=k+1;
X: array [1..n] of real;
write (‘k=‘ ,k);
Max: real;
End.
Begin
For i:=1 to n do begin
x[i]:=random(100) -50;
writeln (‘значение’,i,’элемента =‘,x[i]);
end;
Max:=x[1];
Inmax:=1;
For i:=2 to N do
If abs(x[i]) > Max then begin
Max:= x[i];
Inmax:=i;
end;

26.

Задача 2:
Дан массив, состоящий из N целых чисел, заполненный датчиком
случайных величин.
Найти произведение элементов массива, расположенных после первого
отрицательного элемента.

27.

Поменять местами значения элементов.
Дан массив А(40), заполненный датчиком случайных чисел. Поменять
местами 1-й элемент с последним элементом, 2-й элемент с
предпоследним и т.д.
Program obmen;
Var i,p: integer;
a: array [1..40] of integer;
Begin
Randomize;
For i:=1 to 40 do begin
a[i]:=random (100)-50;
writeln (‘значение’,I,’элемент массива=‘,a[i]);
end;
For i:=1 to 20 do begin
p:=a[i];
a[i]:=a[40-i+1];
a[40-i+1]:=p;
end;
For i:=1 to 40 do
Writeln ( ‘a(‘ ,i, ’)=‘ , a[i]);
End.

28.

1 вариант.
• Дан массив X(20), заполненный датчиком случайных чисел.
Поменять местами минимальное значение и первый элемент
массива.
• Дан массив А(15), заданный случайными числами в диапазоне от
-10 до 10. Определите количество чётных и нечетных элементов
массива.
2 вариант.
• Дан массив X(20), заполненный датчиком случайных чисел.
Поменять местами максимальное значение и последний элемент
массива.
• Дан массив В(15), заполненный датчиком случайных чисел в
диапазоне от -10 до 10. Найдите сумму всех четных элементов
массива, имеющих нечетные номера или дать сообщение, что
таких элементов нет.

29.

Формирование нового массива из элементов старого массива
Дан массив X(20), заполненный датчиком случайных чисел в диапазоне от
-50 до 49 включительно. Сформировать новый массив Y из десяти первых
положительных элементов массива X.
Program zadacha;
If k<10 then begin
Label 1,2;
writeln (‘элементов нет’);
Var X: array [1..20] of integer;
goto 2;
Y: array [1..10] of integer;
end;
i,k: integer;
1: writeln (‘Элементы массива Y’);
Begin
for k:=1 to 10 do writeln (y[k]);
randomize;
2: end.
for i:=1 to 20 do begin
x[i]:= random(100) -50;
Writeln (‘ значение’, I ,’элемента массива=‘ , x[i]);
End;
k:=o;
For i:=1 to 20 do
if x[i]>0 then begin
k:=k+1;
y[k]:=x[i];
if k=10 then goto 1
end;

30.

Задача: Даны два одномерных массива разной
program v10;
размерности, заполненные датчиком случайных
const n=10;
чисел. Сформировать массив, состоящий из
const m=15;
элементов, принадлежащих и тому и другому
var
массивам.
a: array [1..n] of integer;
b: array [1..m] of integer;
c: array [1..m] of integer;
k:=0;
i,j,k,n1: integer;
for i:=1 to n do begin
begin
for j:=1 to m do begin
randomize;
if a[i]=b[j] then begin
Write (‘первый массив’);
k:=k+1;
for i:=1 to n do begin
c[k]:=b[j];
a[i]:=random(25);
end;
writeln (a[i]);
end;
end;
end;
write (‘второй массив’);
writeln ('k=',k);
for j:=1 to m do begin
n1:=k;
b[j]:=random(25);
writeln (‘значение', j, ‘элемента=' , b[j]); write (‘сформированный массив');
for k:=1 to n1 do writeln ('c[',k,']=',c[k]);
end;
end.

31. Практикум решения задач

1. Даны два массива одинаковой размерности.
Получить третий массив такой же размерности,
каждый элемент которого равен сумме
соответствующих элементов данных массивов.
2. Даны два одномерных массива одинаковой
размерности. Получить третий массив той же
размерности, каждый элемент которого равен
наибольшему из соответствующих элементов
данного массива.

32.

Сортировка массива
Метод «пузырька»
Суть метода, в
том, что последовательно
сравнивают пары соседних элементов массива. Если
первый элемент пары окажется больше второго, то
они меняются местами и на второе место (как
пузырёк) «всплывает» больший из двух элементов…
Сравнение с перестановкой повторяются, пока не
будет достигнут конец массива. В результате,
начиная с конца массив упорядочен по возрастанию.

33.

program sort_pyz;
const
n = 10;
var
a: array[1..n] of integer;
i, j, p: integer;
begin
randomize;
write ('Исходный массив: ');
for i := 1 to n do begin
a[i] := random(31)-15;
writeln (a[i]);
end;
for i := 1 to n-1 do begin {сортировка массива}
for j := 1 to n - i do
if a[j] > a[j+1] then begin
p := a[j];
a[j] := a[j+1];
a[j+1] := p
end;
end;
write ('Отсортированный массив: ');
for i := 1 to n do writeln (a[i]);
end.

34. ДВУМЕРНЫЕ МАССИВЫ

Положение элементов описывается двумя
индексами. Их можно представить в виде
прямоугольной таблицы или матрицы.
А=
а11 а12 а13
а21 а22 а23
Матрица А размерностью 2*3 (две строки, три столбца)
Номер элемента определяется пересечением строки
и столбца. а12 – элемент, стоящий в первой строке и
во втором столбце.

35. Объявление двумерного массива

Const n = 2; m = 3;
Var A: array[1..n,1..m] of <тип элементов>;
Формирование двумерного массива
осуществляется всеми возможными способами:
ввод с клавиатуры,
через генератор случайных чисел,
помощью файла или др.

36.

Главная диагональ квадратной
матрицы проходит из левого верхнего
угла в правый нижний.
a11 a12 a13
А[3,3]=
a21 a22 a23
a31 a32 a33

37.

Побочная диагональ квадратной
матрицы проходит из правого
верхнего угла в левый нижний.
a11 a12 a13
А[3,3]=
a21 a22 a23
a31 a32 a33

38. Соотношение индексов в квадратной матрице i-номер строки, j-номер столбца

i=j
i<j
i>j
i+j=n+1
i+j<n+1
i+j>n+1
Элементы матрицы находятся на главной
диагонали
Элементы матрицы находятся над главной
диагональю
Элементы матрицы находятся под главной
диагональю
Элементы матрицы находятся на побочной
диагонали
Элементы матрицы находятся над побочной
диагональю
Элементы матрицы находятся под побочной
диагональю

39. Ввод-вывод значений элементов матрицы с клавиатуры

Program zadacha;
Var
A: array [1..10, 1..10] of real;
I, j: integer;
Begin
For i:=1 to 10 do
For j:=1 to 10 do begin
readln (a[I,j]);
Writeln ( ’a(‘ ,I, ‘,’ ,j, ‘)=‘ , a[I,j]);
end;
end.

40.

Ввод двумерного массива А с помощью
генератора случайных чисел
Program dv_mas;
Const n = 10; m = 15; {размерностью 10*15}
Var i, j: integer;
a: array[1..n,1..m] of integer;
Begin
Randomize;
{активизируем датчик случайных чисел}
For i:=1 to n do {Определяем элементы массива}
For j:=1 to m do begin
A[i,j]:=random(51) – 25; {случ. числа от -25 до 25}
Write( ‘a(‘ ,i, ’,’ ,j, ‘)=‘, A[i,j]:5); {Печатаем элементы массива}
End;
End.

41.

42.

Типовые задачи
Суммирование значений элементов матрицы и нахождение
количества.
Дана матрица А(10,15), заполненная датчиком случайных чисел в
диапазоне от 0 до 30. Найти сумму значений всех элементов данной
матрицы и количество нулевых элементов.
Program sum;
Var
A: array [1..10,1..15] of integer;
I, j, s,k: integer;
Begin
S:=0;
K:=o;
Randomize;
For i:=1 to 10 do
For j:=1 to 15 do begin
a[I,j]:=random(31);
s:=s+a[I,j];
If a[I,j]:=0 then k:=k+1;
end;
Writeln (‘ сумма значений=‘ ,s);
Writeln (‘количество нулевых=‘ ,k);
end.

43.

Практикум по решению задач
Дана матрица А(10, 20), заполненная датчиком
случайных чисел в диапазоне от -10 до 19 включительно.
Подсчитать количество положительных значений и сумму
отрицательных значений элементов матрицы.
Домашнее задание
Заполнить двумерный массив с клавиатуры,
найти произведение элементов по главной и сумму по
побочной диагонали.

44.

Нахождение экстремумов
Дана квадратная матрица В(10,10), заполненная случайными
числами в диапазоне от -15 до 25 включительно. Выдать на печать
максимальное значение элементов данной матрицы.
Program max;
Var
B: array [1..10, 1..10] of integer;
i, j, max: integer;
Begin
Randomize;
for i:=1 to 10 do
for j:=1 to 10 do begin
b[i,j]:=random(41)-15;
end;
Max:= b[1,1];
for i:=1 to 10 do
for j:=1 to 10 do begin
if b[i,j]> max then max:=b[i,j];
end;
Writeln (‘max=‘ , max);
end.

45.

Нахождение
наибольших элементов
каждой строки массива:

46.

Program Stroki;
const n=3; m=4;
var a:array [1..n,1..m] of real;
max: array [1..n] of real;
i, j: integer;
Begin
{ВВОД МАССИВА с клавиатуры}
………………………………
for i:=1 to n do
begin
max[i]:=a[i,1];
for j:=2 to m do begin
if max[i]<a[i,j] then max[i]:=a[i,j];
end;
end;
write(‘Наибольшие числа строк массива => ’);
for i:=1 to n do
writeln(‘max[‘ , i , ‘]’, max[i]);
end.

47.

Практическая работа по
вариантам:
Написать программы:
1)Нахождения наименьших
элементов в строках матрицы;
2)Нахождения наименьших
элементов в столбцах
матрицы.

48.

Перестановка строк
массива:

49.

Program Stroki2;
const n=5; m=4;
var a:array [1..n,1..m] of integer;
i, j,r,b,c: integer;
Begin
{ВВОД МАССИВА};
………………………………
Writeln (‘Введите номера меняемых местами строк’);
Readln (r, b);
for j:=1 to m do begin
c:=a[r, j];
a[r, j]:=a[b, j];
a[b, j]:=c;
end;
Writeln (‘Новый массив => ’);
for i:=1 to n do
for j:=1 to m do begin
write(a[i, j],’ ‘);
writeln;
end;
end.

50.

Составьте программу, меняющую местами значения
элементов массива А(N,N) симметрично относительно
побочной диагонали.
Фрагмент программы:
a11 a12 a13
for i:=1 to n-1 do
for j:=1 to n-i do begin
x:=a[i,j];
a[i,j]:=a[n-j+1,n-i+1];
a[n-j+1,n-i+1]:=x
end;
Writeln ('Обмен элементов симметрично побочной диагонали');
for i:=1 to n do begin
for j:=1 to n do
write(a[i, j]);
a21 a22 a23
a31 a32 a33

51.

Поменять значения элементов побочной и главной диагонали
Фрагмент программы
for i:=1 to n do
for j:=1 to n do
if i=j then
begin
tmp:=a[i,j];
a[i,j]:=a[i,n-i+1];
a[i,n-i+1]:=tmp;
end;

52.

Практикум решения задач
Задача:
Дана матрица А [3,6], заполненная датчиком случайных чисел.
В числовой матрице поменять местами два столбца, т. е. все
элементы одного столбца поставить на соответствующие им
позиции другого, а его элементы второго переместить в первый.

53.

const
N = 3; M = 6;
var
a: array[1..N,1..M] of integer;
i, j, a, b, buff: integer;
begin
randomize;
for i:=1 to N do begin
for j:=1 to M do begin
a[i,j] := random(4);
write(a[i,j]:3);
end;
writeln;
end;
write('Какие столбцы поменять местами: ');
readln(a,b);
for i:=1 to N do begin
buff := a[i,a];
a[i,a] := a[i,b];
a[i,b] := buff;
end;
for i:=1 to N do begin
for j:=1 to M do
write(a[i,j]:3);
writeln;
end;
end.

54.

Задача. Дана матрица. Сформировать одномерный массив, каждый
элемент которого равен сумме отрицательных элементов
соответствующей строки заданной целочисленной матрицы.
Const n=10; m=10;
Var S: array[1..n] of integer;
A: array[1..n,1..m] of integer;
i,j: integer;
Begin
Randomize;
For i:=1 to n do
For j:=1 to m do begin
a[I,j]:= random (100) -50
End;
For i:=1 to n do begin
S[ i ]:=0; {задание начальных значений элементов массива суммы}
For j:=1 to m do
if A[ i,j ] < 0 then S[ i ]:= S[ i ] + A[ i,j];
End;
Writeln (‘Массив из суммы отрицательных элементов’);
For i:=1 to n do {Печатаем элементы массива S}
Write( S[ i ]:5);
end.

55. Практикум

1. Дана матрица, состоящая из 10 строк и 5 столбцов и
заполненная случайными числами в диапазоне от -30 до
29. Сформировать одномерный массив из произведений
положительных значений элементов каждого столбца
матрицы.

56. Упорядочить каждую строку матрицы по возрастанию. Массив размером МхN, элементы которого задаются датчиком случайных чисел на

интервале [-17;26].
program porydok;
Const n=5; m=6;
Var a: array[1..n,1..m] of integer;
i, j, t,k : integer;
Begin
Randomize;
For i:=1 to n do
begin
For j:=1 to m do
begin
a[i,j]:=random(44)-17;
write(a[i,j],' ');
end;
Writeln;
end;
for i := 1 to n do
begin
for j := 1 to m do
for k := 1 to m-j do
if (a[i, k] > a[i, k+1]) then
begin
t:= a[i,k];
a[i,k]:= a[i,k+1];
a[i,k+1]:= t;
end;
end;
writeln ('упорядоченная матрица');
For i:=1 to n do begin
For j:=1 to m do write(a[i,j],' ');
Writeln;
end;
End.

57. Практика

• Упорядочить каждый столбец матрицы по убыванию.
Массив размером МхN, элементы которого задаются
датчиком случайных чисел на интервале [-10;24].
English     Русский Правила