Разработать программу на языке паскаль: 1) из массивов вещественных чисел а и в сформировать массив с, записав в него элементы массивов а и в, которые не содержат "семерок" в восьмеричном представлении 2) в матрице целых чисел а (n.n) упорядочить те строки , в которых диагональные элементы не содержат семерок. решить либо 1 либо 2
Program Robiertmusin;
uses crt;
const n = 15;
type
MyArray = array [1..n,1..n] of integer;
procedure ArrayOutput(A: MyArray);
var i,j: integer;
begin
for i := 1 to n do
begin
for j:= 1 to n do
write(A[i,j]:4, ' ');
writeln;
end;
writeln;
end;
procedure RowSort(var A: MyArray; Nom: integer);
var i, j, temp: integer;
begin
for i := 1 to n-1 do
for j := i+1 to n do
if A[nom,i]>A[nom,j] then begin
temp:=A[nom,i];
A[nom,i]:=A[nom,j];
A[nom,j]:=temp;
end;
writeln(nom,'-я строка упорядочена');
end;
var
mass:MyArray;
i,j:integer;
begin
writeln('В матрице целых чисел А (n*n) программа упорядочивает те строки,'); writeln('в которых диагональные элементы не содержат семерок');
{Создаём начальный массив и выводим его}
randomize;
for i := 1 to n do
for j:= 1 to n do
mass[i,j]:=random(20);
ArrayOutput(mass);
{Просматриваем строки}
for i := 1 to n do
begin
if (mass[i,i]<>7) and (mass[n-i+1,n-i+1]<>7) then RowSort(mass, i);
end;
{Выводим итоговый массив}
writeln('Упорядоченный массив: ');
ArrayOutput(mass);
end.
function Has7Octal(n: integer): Boolean;
var
p, q, r: integer;
begin
Result := false;
if n > 0 then begin
p := abs(n);
repeat
q := p div 8;
r := p mod 8;
if r = 7 then begin Result := true; p := 0 end
else p := q
until p = 0;
end;
end;
const
m = 10;
n = 7;
var
a: array[1..m] of integer;
b: array[1..n] of integer;
c: array[1..m + n] of integer;
i, k: integer;
begin
writeln('Введите элементы масcива А(', m, ')');
for i := 1 to m do read(a[i]);
writeln('Введите элементы масcива B(', n, ')');
for i := 1 to n do read(b[i]);
k := 0;
for i := 1 to m do
if not Has7Octal(a[i]) then begin
k := k + 1;
c[k] := a[i]
end;
for i := 1 to n do
if not Has7Octal(b[i]) then begin
k := k + 1;
c[k] := b[i]
end;
writeln('Результирующий массив');
for i := 1 to k do write(c[i]:7);
writeln
end.
Тестовый прогон:
Введите элементы масcива А(10)
3453 -2341 2424 15353 0 5344 93 7777 1274 -343
Введите элементы масcива B(7)
8644 8090 -12321 23432 5 1234 35
Результирующий массив
-2341 0 5344 93 -343 -12321 23432 5 1234 35