Var a,b,c:array[1..20] of integer; ar:ty; n,m,k,i:integer;
procedure quicksort(var a:ty; Lo,Hi: integer);
procedure sort(l,r: integer); var i,j,x,y: integer; begin i:=l; j:=r; x:=a[random(r-l+1)+l]; repeat while a[i]<x do i:=i+1; while x<a[j] do j:=j-1; if i<=j then begin if a[i] > a[j] then begin y:=a[i]; a[i]:=a[j]; a[j]:=y; end; i:=i+1; j:=j-1; end; until i>=j; if l<j then sort(l,j); if i<r then sort(i,r); end;
begin; randomize; sort(Lo,Hi); end;
begin readln(n); for i:=1 to n do begin readln(a[i]); ar[i]:=a[i]; end; readln(m); for i:=1 to m do begin readln(b[i]); ar[i+n]:=b[i]; end; readln(k); for i:=1 to k do begin readln(c[i]); ar[i+n+m]:=c[i]; end; quicksort(ar,1,n+m+k); writeln('Final array:'); for i:=1 to n+m+k do write(ar[i]:4); end.
Пример ввода: 3 1 2 3 3 1 2 3 3 1 2 3 Пример вывода: Final array: 1 1 1 2 2 2 3 3 3
1. "Школьное" решение // PascalABC.Net 3.0, сборка 1064 var i,n1,n2:integer; s:longint; begin Write('Введите интервал для вычисления суммы: '); Read(n1,n2); s:=0; if n1 mod 2 = 0 then i:=n1 else i:=n1+1; while i<=n2 do begin s:=s+i; i:=i+2 end; Writeln('Сумма четных чисел в интервале равна ',s) end.
Тестовое решение: Введите интервал для вычисления суммы: 7 14 Сумма четных чисел в интервале равна 44
2. Современное решение // PascalABC.Net 3.0, сборка 1064 var n1,n2:integer; begin Write('Введите интервал для вычисления суммы: '); Read(n1,n2); if Odd(n1) then Inc(n1); Writeln('Сумма четных чисел в интервале равна ',Range(n1,n2,2).Sum); end.
Type
ty=array[1..60] of integer;
Var
a,b,c:array[1..20] of integer;
ar:ty;
n,m,k,i:integer;
procedure quicksort(var a:ty; Lo,Hi: integer);
procedure sort(l,r: integer);
var
i,j,x,y: integer;
begin
i:=l;
j:=r;
x:=a[random(r-l+1)+l];
repeat
while a[i]<x do
i:=i+1;
while x<a[j] do
j:=j-1;
if i<=j then
begin
if a[i] > a[j] then
begin
y:=a[i];
a[i]:=a[j];
a[j]:=y;
end;
i:=i+1;
j:=j-1;
end;
until i>=j;
if l<j then sort(l,j);
if i<r then sort(i,r);
end;
begin;
randomize;
sort(Lo,Hi);
end;
begin
readln(n);
for i:=1 to n do
begin
readln(a[i]);
ar[i]:=a[i];
end;
readln(m);
for i:=1 to m do
begin
readln(b[i]);
ar[i+n]:=b[i];
end;
readln(k);
for i:=1 to k do
begin
readln(c[i]);
ar[i+n+m]:=c[i];
end;
quicksort(ar,1,n+m+k);
writeln('Final array:');
for i:=1 to n+m+k do
write(ar[i]:4);
end.
Пример ввода:
3
1
2
3
3
1
2
3
3
1
2
3
Пример вывода:
Final array:
1 1 1 2 2 2 3 3 3
// PascalABC.Net 3.0, сборка 1064
var
i,n1,n2:integer;
s:longint;
begin
Write('Введите интервал для вычисления суммы: '); Read(n1,n2);
s:=0;
if n1 mod 2 = 0 then i:=n1 else i:=n1+1;
while i<=n2 do begin s:=s+i; i:=i+2 end;
Writeln('Сумма четных чисел в интервале равна ',s)
end.
Тестовое решение:
Введите интервал для вычисления суммы: 7 14
Сумма четных чисел в интервале равна 44
2. Современное решение
// PascalABC.Net 3.0, сборка 1064
var
n1,n2:integer;
begin
Write('Введите интервал для вычисления суммы: '); Read(n1,n2);
if Odd(n1) then Inc(n1);
Writeln('Сумма четных чисел в интервале равна ',Range(n1,n2,2).Sum);
end.