Написать программу в паскале. дан массив размера n. массив отсортировать в порядке возрастания. для отладки программы числа последовательностей сформировать с генератора случайных чисел.
Uses Crt; Const N = 13; Var A:array[1..N] of integer; i,j,Min,B:integer; Begin ClrScr; Randomize; Write('Исходный массив:'); For i:= 1 to N do Begin A[i]:=random(2*N+1)-N; Write(' ',A[i]) End; WriteLn; Write('Отсортированный массив:'); For i:= 1 to N do Begin Min:=i; For j:= i+1 to N do if A[j] < A[Min] then Min:=j; B:=A[i]; A[i]:=A[Min]; A[Min]:=B; Write(' ',A[i]) End; ReadLn End.
Вот программа , если мы хотим сложить 2 квадрата одного числа program sqr; var n,a: integer; begin write ('Введите число>>'); read (n); a:= n*n+n*n; writeln (a) end.
Но если мы хотим выразить 1 число в виде суммы 2-х квадратов и проверить возможно ли это, то (боюсь ошибиться) program sqr; uses crt; var n: integer; a,b:real; begin write ('Введите число>>'); read (n); a:= sqrt(n); if (a= sqrt(n)) and (a=(n*n)) then begin b:= sqrt(a); if b= (a*a)+(a*a) then writeln ('Можно'); if b<> (a*a)+(a*a) then writeln ('Нельзя'); end; if (a= sqrt(n)) and (a<>n*n) then writeln ('Нельзя') end.
Const
N = 13;
Var
A:array[1..N] of integer;
i,j,Min,B:integer;
Begin
ClrScr;
Randomize;
Write('Исходный массив:');
For i:= 1 to N do
Begin
A[i]:=random(2*N+1)-N;
Write(' ',A[i])
End;
WriteLn;
Write('Отсортированный массив:');
For i:= 1 to N do
Begin
Min:=i;
For j:= i+1 to N do
if A[j] < A[Min] then Min:=j;
B:=A[i];
A[i]:=A[Min];
A[Min]:=B;
Write(' ',A[i])
End;
ReadLn
End.