Ответ: Съешь ещё этих мягких французских булок, да выпей же чаю.
<em>// PascalABC.NET 3.3, сборка 1583 от 25.11.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var a:=SeqRandom(ReadInteger('n='),-99,99).Select(t->t/10).ToArray;
a.Println;
var (imax,imin):=(a.IndexMax,a.LastIndexMin);
Swap(a[imin],a[imax]); a.Println
end.
<u>Пример</u>
n= 15
-4.3 -5.6 7.2 -5.3 -7.7 9.3 1.4 0.3 -4.7 6.3 5.7 7.5 -8.6 6.9 -2.5
-4.3 -5.6 7.2 -5.3 -7.7 -8.6 1.4 0.3 -4.7 6.3 5.7 7.5 9.3 6.9 -2.5
Программа с исправленными СИНТАКСИЧЕСКИМИ ошибками:
program pr1;
var a, b, d: integer;
begin
readln(a);
readln(b);
d:=1;
while (d<>a) or (b mod 4=0) do begin
d:=d+1;
readln(b);
end;
writeln(d);
end.
Программа может выглядеть такЖ
uses crt;
const n=4;
type Mas=array [1..n] of real;
Var A: Mas;
i: integer;
Sum, Sred: real;
Begin
ClrScr;
for i:=1 to n do
begin
Write('A[',i, ']=');
ReadLn(A[i]);
Sum:=Sum+A[i];
end;
Sred:=Sum/n;
WriteLn ('Sred = ', Sred:5:2);
ReadLn;
end.
Если A, B имеют общий делитель d, то и A + B делится на d. Отсюда идея: найдем наибольший делитель N, меньший N, и представим всё в виде d + (N - d). d будем искать так: найдём наименьший делитель q, не равный 1 (если число составное, он не больше корня из N), тогда d = N/q.
var
q, d, n: longint;
isfound: boolean;
begin
readln(n);
isfound := false;
for q := 2 to trunc(sqrt(n)) + 1 do
if n mod q = 0 then
begin
d := n div q;
write(d, ' ', n - d);
isfound := true;
break;
end;
if not isfound then
write(1, ' ', n - 1);
end.