Создайте одномерный массив, поменяйте местами первый элемент кратный 7 и средний...

0 голосов
54 просмотров

Создайте одномерный массив, поменяйте местами первый элемент кратный 7 и средний элемент,решить на Pascal ABC.


Информатика (20 баллов) | 54 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

//PascalABC.NET 3.0 сборка 1139 (10.01.2016)

begin
    var a := ArrRandom(10, 1, 100);
    a.Println;
    if not a.Any(x -> x mod 7 = 0) then begin
        writeln('нет элемента, что делится на 7');
        Halt();
    end;
    
    var n7 := 0;
    for var i := Low(a) to High(a) do
        if a[i] mod 7 = 0 then begin
            n7 := i;
            break;
        end;
    var t := a[(Low(a) + High(a)) div 2];
    a[(Low(a) + High(a)) div 2] := a[n7];
    a[n7] := t;
    
    a.Println;
end.

(53.1k баллов)
0

так и не нашла функции поиска элемента в массиве, которая возвращает индекс

0

А её и нет. Пока нет.

0

А в Вашей версии и не будет, она безбожно устарела.

0

То, о чем Вы спрашивали, появилось - работа с индексом.

0

прикольно

0 голосов

// PascalABC.NET 3.1, сборка 1179 от 29.02.2016
const
  n=15;
var
  a:array[1..n] of integer;
  i,k,t:integer;
begin
  Randomize;
  k:=0;
  for i:=1 to n do begin
    a[i]:=Random(90)+10;
    if k=0 then
      if a[i] mod 7 = 0 then k:=i;
    Write(a[i],' ')
    end;
  Writeln;
  if k>0 then begin
    if Odd(n) then i:=n div 2+1
    else i:=n div 2;
    t:=a[k]; a[k]:=a[i]; a[i]:=t;
    for i:=1 to n do Write(a[i],' ');
    Writeln
    end
  else Writeln('Нет элементов, кратных 7')
end.

Тестовое решение:
25 25 47 22 51 63 92 11 38 32 87 54 11 16 18
25 25 47 22 51 11 92 63 38 32 87 54 11 16 18

(142k баллов)
0

Можешь переделать с процедурой

0

Переделать ответ после истечения двух часов невозможно