Разработать программу на языке паскаль: 1) из массивов вещественных чисел а и в сформировать массив с, записав в него элементы массивов а и в, которые не содержат "семерок" в восьмеричном представлении 2) в матрице целых чисел а (n.n) упорядочить те строки , в которых диагональные элементы не содержат семерок. решить либо 1 либо 2

relinaro09 relinaro09    2   09.06.2019 02:00    0

Ответы
FanatikOutlast FanatikOutlast  01.10.2020 22:42
Вторая задача, Паскаль АВС

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.
ПОКАЗАТЬ ОТВЕТЫ
Aliska17 Aliska17  01.10.2020 22:42
Первая задача.

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
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика