Алгоритм сортировки строки массива по возрастанию методом прямого выбора может быть представлен так: 1. Просматривая строку массива от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального. 2. Просматривая строку массива от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального. 3. И так далее до предпоследнего элемента.
Решение:
//Pascal const n = 7;
var a: array[1..n, 1..n] of integer; i, j, min, ind: integer;
//Заполнение массива сл. числами и вывод на экран begin for i := 1 to n do begin for j := 1 to n do begin a[i, j] := random(100); write(a[i, j]:4); end; writeln; end;
//Сортировка строки матрицы прямым выбором
for i := 1 to n - 1 do begin min := a[4, i]; ind := i; for j := i + 1 to n do if a[4, j] < min then begin min := a[4, j]; ind := j; end; a[4, ind] := a[4, i]; a[4, i] := min; end; writeln;
//вывод отсортированной строки for j := 1 to n do begin write(a[4, j]:4); end; end.
Программа:
Pascal:
№1)
var
arr: array[1..30] of integer;
i, pr: integer;
begin
// генерация массива из 30 рандомных чисел от -100 до 100
for i := 1 to 30 do arr[i] := random(-100, 100);
writeln(arr); // вывод массива
pr := 1;
for i := 1 to 30 do if (arr[i] mod 2 = 0) and (arr[i] mod 3 = 0) then pr := pr * arr[i];
pr.Print();
end.
№2)
var
arr: array[1..30] of integer;
i, s: integer;
begin
// генерация массива из 30 рандомных чисел от -1000 до 1000
for i := 1 to 30 do arr[i] := random(-1000, 1000);
writeln(arr); // вывод массива
s := 0;
for i := 1 to 30 do if (arr[i] >= 100) and (arr[i] < 1000) then begin
while arr[i] > 0 do begin
s := s + arr[i] mod 10;
arr[i] := arr[i] div 10;
end;
end;
s.print();
end.