Обновлён задачник
|
|
@ -15,7 +15,7 @@ internal static class RevisionClass
|
|||
public const string Major = "2";
|
||||
public const string Minor = "2";
|
||||
public const string Build = "0";
|
||||
public const string Revision = "993";
|
||||
public const string Revision = "995";
|
||||
|
||||
public const string MainVersion = Major + "." + Minor;
|
||||
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
%MINOR%=2
|
||||
%REVISION%=993
|
||||
%REVISION%=995
|
||||
%MAJOR%=2
|
||||
%COREVERSION%=0
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
=|||%f|uses%# PT4Exam;%#%#begin%# Task('%f');%#%#end.
|
||||
=|||%f|%x<0_Exam>%X<0_Exam>
|
||||
BIN
ReleaseGenerators/PT4/Lib/Graph/GExamCheck1.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
ReleaseGenerators/PT4/Lib/Graph/GExamCheck10.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
ReleaseGenerators/PT4/Lib/Graph/GExamCheck11.png
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
ReleaseGenerators/PT4/Lib/Graph/GExamCheck12.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
ReleaseGenerators/PT4/Lib/Graph/GExamCheck13.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
ReleaseGenerators/PT4/Lib/Graph/GExamCheck14.png
Normal file
|
After Width: | Height: | Size: 9.8 KiB |
BIN
ReleaseGenerators/PT4/Lib/Graph/GExamCheck2.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
ReleaseGenerators/PT4/Lib/Graph/GExamCheck3.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
ReleaseGenerators/PT4/Lib/Graph/GExamCheck4.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
ReleaseGenerators/PT4/Lib/Graph/GExamCheck5.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
ReleaseGenerators/PT4/Lib/Graph/GExamCheck6.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
ReleaseGenerators/PT4/Lib/Graph/GExamCheck7.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
ReleaseGenerators/PT4/Lib/Graph/GExamCheck8.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
ReleaseGenerators/PT4/Lib/Graph/GExamCheck9.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
84
ReleaseGenerators/PT4/Lib/PT4ExamBegin_ru.txt
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
[=Pascal][=PascalABC][=CPP][=Python][0]
|
||||
[~Îáðàáîòêà ñòàòèñòè÷åñêèõ äàííûõ]
|
||||
[text]
|
||||
Ïðè ðåøåíèè çàäà÷ äàííîé ïîäãðóïïû íåîáõîäèìî èñïîëüçîâàòü
|
||||
çàãîòîâêó, âêëþ÷àþùóþ îïèñàíèÿ ïåðåìåííûõ è ââîä
|
||||
èñõîäíûõ äàííûõ:
|
||||
[code]
|
||||
[=Pascal][=PascalABC]
|
||||
const
|
||||
N = 15;
|
||||
var
|
||||
a: array[1..N] of integer;
|
||||
i, j, k: integer;
|
||||
begin
|
||||
for i := 1 to N do
|
||||
read(a[i]);
|
||||
|
||||
|
||||
end.
|
||||
[=CPP]
|
||||
#define N 15
|
||||
int a[N];
|
||||
int i, j, k;
|
||||
for (i = 0; i < N; i++)
|
||||
cin >> a[i];
|
||||
[=Python]
|
||||
N = 15
|
||||
i = None
|
||||
j = None
|
||||
k = None
|
||||
a = [int(i) for i in input().split()]
|
||||
[=Pascal][=PascalABC][=CPP][=Python]
|
||||
[text]
|
||||
Òðåáóåòñÿ äîïîëíèòü ïðîãðàììó-çàãîòîâêó àëãîðèòìîì
|
||||
ðåøåíèÿ çàäà÷è, èñïîëüçóÿ òîëüêî òå ïåðåìåííûå, êîòîðûå óêàçàíû â òåêñòå
|
||||
çàãîòîâêè (âñå ïåðåìåííûå ìîæíî íå èñïîëüçîâàòü).
|
||||
[123-130]
|
||||
[-H]
|
||||
[text]
|
||||
Ïðåäëàãàåìàÿ çàãîòîâêà ñîäåðæèò îïèñàíèÿ ïåðåìåííûõ è ââîä
|
||||
èñõîäíûõ äàííûõ. Òðåáóåòñÿ äîïîëíèòü ïðîãðàììó-çàãîòîâêó àëãîðèòìîì
|
||||
ðåøåíèÿ çàäà÷è, èñïîëüçóÿ òîëüêî òå ïåðåìåííûå, êîòîðûå óêàçàíû â òåêñòå
|
||||
çàãîòîâêè (âñå ïåðåìåííûå ìîæíî íå èñïîëüçîâàòü).
|
||||
[code]
|
||||
[=Pascal][=PascalABC]
|
||||
const
|
||||
N = 15;
|
||||
var
|
||||
a: array[1..N] of integer;
|
||||
i, j, k: integer;
|
||||
begin
|
||||
[-W]
|
||||
Task('%{task}');
|
||||
[+W]
|
||||
for i := 1 to N do
|
||||
read(a[i]);
|
||||
|
||||
|
||||
end.
|
||||
[=CPP]
|
||||
[-W]
|
||||
void Solve()
|
||||
{
|
||||
Task("%{task}");
|
||||
[+W]
|
||||
#define N 15
|
||||
int a[N];
|
||||
int i, j, k;
|
||||
for (i = 0; i < N; i++)
|
||||
cin >> a[i];
|
||||
|
||||
[-W]
|
||||
}
|
||||
[=Python]
|
||||
def solve():
|
||||
task("%{task}")
|
||||
[+W]
|
||||
N = 15
|
||||
i = None
|
||||
j = None
|
||||
k = None
|
||||
a = [int(i) for i in input().split()]
|
||||
|
||||
|
||||
786
ReleaseGenerators/PT4/Lib/PT4ExamCheck_ru.txt
Normal file
|
|
@ -0,0 +1,786 @@
|
|||
[=Pascal][=PascalABC][1-14]
|
||||
var x, y: real;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(x, y);
|
||||
[1]
|
||||
if x*x + y*y >= 4 then
|
||||
if x >= -2 then
|
||||
if y <= -x then
|
||||
[2]
|
||||
if x*x + y*y >= 4 then
|
||||
if y >= -2 then
|
||||
if y <= x then
|
||||
[3]
|
||||
if y >= x then
|
||||
if y >= 0 then
|
||||
if y <= 2 - x*x then
|
||||
[4]
|
||||
if y <= 2*x*x then
|
||||
if x >= -1 then
|
||||
if y >= 1 then
|
||||
[5]
|
||||
if y <= 1 then
|
||||
if y >= 0 then
|
||||
if x >= -1 then
|
||||
if y >= x*x then
|
||||
[6]
|
||||
if y <= x then
|
||||
if y <= -x then
|
||||
if y >= x*x - 2 then
|
||||
[7]
|
||||
if y <= 1 - x then
|
||||
if y >= 0 then
|
||||
if x >= 0 then
|
||||
if x*x + y*y <= 1 then
|
||||
[8]
|
||||
if y >= -1 then
|
||||
if y <= x then
|
||||
if y <= 0 then
|
||||
if x*x + y*y <= 1 then
|
||||
[9]
|
||||
if y <= 1 then
|
||||
if y >= x then
|
||||
if x >= -1 then
|
||||
if x*x + y*y <= 1 then
|
||||
[10]
|
||||
if y <= x + 2 then
|
||||
if x <= 0 then
|
||||
if x*x + y*y <= 25 then
|
||||
[11]
|
||||
if y >= x*x - 6 then
|
||||
begin
|
||||
if x*x + y*y <= 16 then
|
||||
writeln('Ïðèíàäëåæèò')
|
||||
end
|
||||
else
|
||||
if x >= 0 then
|
||||
writeln('Ïðèíàäëåæèò')
|
||||
else
|
||||
writeln('Íå ïðèíàäëåæèò');
|
||||
[12]
|
||||
if y <= sin(x) then
|
||||
if x <= 3.14/2 then
|
||||
if y >= 0 then
|
||||
[13]
|
||||
if y <= 1 then
|
||||
if x >= 0 then
|
||||
if y >= sin(x) then
|
||||
[14]
|
||||
if y <= 0 then
|
||||
if y >= -1 then
|
||||
if y <= cos(x) then
|
||||
[1-4][6][10][12-14]
|
||||
writeln('Ïðèíàäëåæèò')
|
||||
else
|
||||
writeln('Íå ïðèíàäëåæèò');
|
||||
[5][7-9]
|
||||
writeln('Ïðèíàäëåæèò')
|
||||
else
|
||||
writeln('Íå ïðèíàäëåæèò');
|
||||
[1-14]
|
||||
writeln('Ïðîãðàììà çàâåðøåíà');
|
||||
end.
|
||||
[15]
|
||||
var c: real;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(c);
|
||||
if c > 0 then
|
||||
write('íåò ðåøåíèé')
|
||||
else
|
||||
write('x = ', sqrt(-c):0:2, ' èëè x = ', -sqrt(-c):0:2);
|
||||
[16-21]
|
||||
var a, b: real;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(a, b);
|
||||
[16]
|
||||
if a = 0 then
|
||||
if b = 0 then
|
||||
write('ëþáîå ÷èñëî')
|
||||
else
|
||||
write('íåò ðåøåíèé')
|
||||
else
|
||||
if b = 0 then
|
||||
write('x = 0.00')
|
||||
else
|
||||
write('x = ', b/a:0:2,' èëè x = ', -b/a:0:2);
|
||||
[17]
|
||||
if b = 0 then
|
||||
write('x = 0.00')
|
||||
else
|
||||
if a = 0 then
|
||||
write('íåò ðåøåíèé')
|
||||
else
|
||||
write('x = ', -b/a:0:2);
|
||||
end.
|
||||
[18]
|
||||
if a = 0 then
|
||||
if b > 0 then
|
||||
write('ëþáîå ÷èñëî')
|
||||
else
|
||||
write('íåò ðåøåíèé')
|
||||
else
|
||||
write('x > ', -b/a:0:2);
|
||||
[19]
|
||||
if b = 0 then
|
||||
write('x > 0.00 èëè x < 0.00')
|
||||
else
|
||||
if a > 0 then
|
||||
write('x > 0.00 èëè x < ', -b:0:2)
|
||||
else
|
||||
write(-b:0:2, ' < x < 0.00') ;
|
||||
[20]
|
||||
if a = 0 then
|
||||
if b > 0 then
|
||||
write('íåò ðåøåíèé')
|
||||
else
|
||||
write('x > 0.00 èëè x < 0.00')
|
||||
else
|
||||
write(-a:0:2,' < x < 0.00');
|
||||
[21]
|
||||
if b > 0 then
|
||||
write('x > ', a:0:2,' èëè x < 0.00')
|
||||
else
|
||||
if a > 0 then
|
||||
write('0.00 < x < ', a:0:2)
|
||||
else
|
||||
write(a:0:2, ' < x < 0.00');
|
||||
[15-21]
|
||||
end.
|
||||
[22]
|
||||
var N: integer;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(N);
|
||||
while N > 10 do
|
||||
begin
|
||||
N := N mod 10;
|
||||
end;
|
||||
write(N);
|
||||
end.
|
||||
[23]
|
||||
var N: integer;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(N);
|
||||
while N > 10 do
|
||||
begin
|
||||
N := N mod 100;
|
||||
end;
|
||||
write(N);
|
||||
end.
|
||||
[24]
|
||||
var N, digit, maxdigit: integer;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(N);
|
||||
maxdigit := 10;
|
||||
while N >= 10 do
|
||||
begin
|
||||
digit := N mod 10;
|
||||
if maxdigit < digit then
|
||||
maxdigit := digit;
|
||||
N := N div 10;
|
||||
end;
|
||||
write(maxdigit);
|
||||
end.
|
||||
[25]
|
||||
var N, p, digit: integer;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(N);
|
||||
p := N mod 10;
|
||||
while N >= 10 do
|
||||
begin
|
||||
digit := N mod 10;
|
||||
p := p * digit;
|
||||
N := N div 10;
|
||||
end;
|
||||
writeln(p);
|
||||
end.
|
||||
[26]
|
||||
var N, s: integer;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(N);
|
||||
s := 1;
|
||||
while N > 1 do
|
||||
begin
|
||||
if N mod 10 <> 0 then
|
||||
s := N mod 10;
|
||||
N := N div 10;
|
||||
end;
|
||||
write(s);
|
||||
end.
|
||||
[27]
|
||||
var N, digit, maxdigit: integer;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(N);
|
||||
maxdigit := N mod 10;
|
||||
while N > 0 do
|
||||
begin
|
||||
digit := N mod 10;
|
||||
if digit mod 3 = 0 then
|
||||
if digit > maxdigit then
|
||||
maxdigit := digit;
|
||||
N := N div 10;
|
||||
end;
|
||||
if maxdigit = 0 then
|
||||
writeln('NO')
|
||||
else
|
||||
writeln(maxDigit)
|
||||
end.
|
||||
[28]
|
||||
var N, cnt: integer;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(N);
|
||||
cnt := 0;
|
||||
while N > 0 do
|
||||
begin
|
||||
cnt := cnt + N mod 2;
|
||||
N := N div 10;
|
||||
end;
|
||||
writeln(cnt)
|
||||
end.
|
||||
[29]
|
||||
var N, R, T, d: integer;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(N);
|
||||
R := 0;
|
||||
T := 0;
|
||||
while N > 0 do
|
||||
begin
|
||||
d := N mod 10;
|
||||
if d <> 2 then
|
||||
begin
|
||||
R := R + d * T;
|
||||
T := T + 1;
|
||||
end;
|
||||
N := N div 10;
|
||||
end;
|
||||
writeln(T);
|
||||
end.
|
||||
[30]
|
||||
var N, m, d: integer;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(N);
|
||||
m := 0;
|
||||
while N > 0 do
|
||||
begin
|
||||
d := N mod 10;
|
||||
if d > 1 then
|
||||
begin
|
||||
m := d + m;
|
||||
end;
|
||||
N := N div 10;
|
||||
end;
|
||||
write(m);
|
||||
end.
|
||||
[-----------------------------------------------]
|
||||
[=CPP][12-15]
|
||||
[-HW]
|
||||
#include <cmath>
|
||||
using namespace std;
|
||||
[1-30]
|
||||
void Solve()
|
||||
{
|
||||
Task("%{task}");
|
||||
[+HW]
|
||||
[1-14]
|
||||
double x, y;
|
||||
cin >> x >> y;
|
||||
[1]
|
||||
if (x*x + y*y >= 4)
|
||||
if (x >= -2)
|
||||
if (y <= -x)
|
||||
[2]
|
||||
if (x*x + y*y >= 4)
|
||||
if (y >= -2)
|
||||
if (y <= x)
|
||||
[3]
|
||||
if (y >= x)
|
||||
if (y >= 0)
|
||||
if (y <= 2 - x*x)
|
||||
[4]
|
||||
if (y <= 2*x*x)
|
||||
if (x >= -1)
|
||||
if (y >= 1)
|
||||
[5]
|
||||
if (y <= 1)
|
||||
if (y >= 0)
|
||||
if (x >= -1)
|
||||
if (y >= x*x)
|
||||
[6]
|
||||
if (y <= x)
|
||||
if (y <= -x)
|
||||
if (y >= x*x - 2)
|
||||
[7]
|
||||
if (y <= 1 - x)
|
||||
if (y >= 0)
|
||||
if (x >= 0)
|
||||
if (x*x + y*y <= 1)
|
||||
[8]
|
||||
if (y >= -1)
|
||||
if (y <= x)
|
||||
if (y <= 0)
|
||||
if (x*x + y*y <= 1)
|
||||
[9]
|
||||
if (y <= 1)
|
||||
if (y >= x)
|
||||
if (x >= -1)
|
||||
if (x*x + y*y <= 1)
|
||||
[10]
|
||||
if (y <= x + 2)
|
||||
if (x <= 0)
|
||||
if (x*x + y*y <= 25)
|
||||
[11]
|
||||
if (y >= x*x - 6)
|
||||
{
|
||||
if (x*x + y*y <= 16)
|
||||
cout << "Ïðèíàäëåæèò" << endl;
|
||||
}
|
||||
else
|
||||
if (x >= 0)
|
||||
cout << "Ïðèíàäëåæèò" << endl;
|
||||
else
|
||||
cout << "Íå ïðèíàäëåæèò" << endl;
|
||||
[12]
|
||||
if (y <= sin(x))
|
||||
if (x <= 3.14/2)
|
||||
if (y >= 0)
|
||||
[13]
|
||||
if (y <= 1)
|
||||
if (x >= 0)
|
||||
if (y >= sin(x))
|
||||
[14]
|
||||
if (y <= 0)
|
||||
if (y >= -1)
|
||||
if (y <= cos(x))
|
||||
[1-4][6][10][12-14]
|
||||
cout << "Ïðèíàäëåæèò" << endl;
|
||||
else
|
||||
cout << "Íå ïðèíàäëåæèò" << endl;
|
||||
[5][7-9]
|
||||
cout << "Ïðèíàäëåæèò" << endl;
|
||||
else
|
||||
cout << "Íå ïðèíàäëåæèò" << endl;
|
||||
[1-14]
|
||||
cout << "Ïðîãðàììà çàâåðøåíà";
|
||||
[15-21]
|
||||
cout << fixed << setprecision(2);
|
||||
[15]
|
||||
double c;
|
||||
cin >> c;
|
||||
if (c > 0)
|
||||
cout << "íåò ðåøåíèé";
|
||||
else
|
||||
cout << "x = " << sqrt(-c):0:2, ' èëè x = ', -sqrt(-c):0:2);
|
||||
[16-21]
|
||||
double a, b;
|
||||
cin >> a >> b;
|
||||
[16]
|
||||
if (a == 0)
|
||||
if (b == 0)
|
||||
cout << "ëþáîå ÷èñëî";
|
||||
else
|
||||
cout << "íåò ðåøåíèé";
|
||||
else
|
||||
if (b == 0)
|
||||
cout << "x = 0.00";
|
||||
else
|
||||
cout << "x = " << b/a << " èëè x = " << -b/a;
|
||||
[17]
|
||||
if (b == 0)
|
||||
cout << "x = 0.00";
|
||||
else
|
||||
if (a == 0)
|
||||
cout << "íåò ðåøåíèé";
|
||||
else
|
||||
cout << "x = " << -b/a;
|
||||
[18]
|
||||
if (a == 0)
|
||||
if (b > 0)
|
||||
cout << "ëþáîå ÷èñëî";
|
||||
else
|
||||
cout << "íåò ðåøåíèé";
|
||||
else
|
||||
cout << "x > " << -b/a;
|
||||
[19]
|
||||
if (b == 0)
|
||||
cout << "x > 0.00 èëè x < 0.00";
|
||||
else
|
||||
if (a > 0)
|
||||
cout << "x > 0.00 èëè x < " << -b;
|
||||
else
|
||||
cout << -b << " < x < 0.00";
|
||||
[20]
|
||||
if (a == 0)
|
||||
if (b > 0)
|
||||
cout << "íåò ðåøåíèé";
|
||||
else
|
||||
cout << "x > 0.00 èëè x < 0.00";
|
||||
else
|
||||
cout << -a << " < x < 0.00";
|
||||
[21]
|
||||
if (b > 0)
|
||||
cout << "x > " << a << " èëè x < 0.00";
|
||||
else
|
||||
if (a > 0)
|
||||
cout << "0.00 < x < " << a;
|
||||
else
|
||||
cout << a << " < x < 0.00";
|
||||
[22]
|
||||
int N;
|
||||
cin >> N;
|
||||
while (N > 10)
|
||||
{
|
||||
N = N % 10;
|
||||
}
|
||||
cout << N;
|
||||
[23]
|
||||
int N;
|
||||
cin >> N;
|
||||
while (N > 10)
|
||||
{
|
||||
N = N % 100;
|
||||
}
|
||||
cout << N;
|
||||
[24]
|
||||
int N, digit, maxdigit;
|
||||
cin >> N;
|
||||
maxdigit = 10;
|
||||
while (N >= 10)
|
||||
{
|
||||
digit = N % 10;
|
||||
if (maxdigit < digit)
|
||||
maxdigit = digit;
|
||||
N = N / 10;
|
||||
}
|
||||
cout << maxdigit;
|
||||
[25]
|
||||
int N, digit, p;
|
||||
cin >> N;
|
||||
p := N % 10;
|
||||
while (N >= 10)
|
||||
{
|
||||
digit = N % 10;
|
||||
p = p * digit;
|
||||
N = N / 10;
|
||||
}
|
||||
cout << p;
|
||||
[26]
|
||||
int N, s;
|
||||
cin >> N;
|
||||
s = 1;
|
||||
while (N > 1)
|
||||
{
|
||||
if (N % 10 != 0)
|
||||
s = N % 10;
|
||||
N = N / 10;
|
||||
}
|
||||
cout << s;
|
||||
[27]
|
||||
int N, digit, maxdigit;
|
||||
cin >> N;
|
||||
maxdigit = N % 10;
|
||||
while (N > 0)
|
||||
{
|
||||
digit = N % 10;
|
||||
if (digit % 3 == 0)
|
||||
if (digit > maxdigit)
|
||||
maxdigit = digit;
|
||||
N = N / 10;
|
||||
}
|
||||
if (maxdigit == 0)
|
||||
cout << "NO";
|
||||
else
|
||||
cout << maxDigit;
|
||||
[28]
|
||||
int N, cnt;
|
||||
cin >> N;
|
||||
cnt = 0;
|
||||
while (N > 0)
|
||||
{
|
||||
cnt = cnt + N % 2;
|
||||
N = N / 10;
|
||||
}
|
||||
cout << cnt;
|
||||
[29]
|
||||
int N, R, T, d;
|
||||
cin >> N;
|
||||
R = 0;
|
||||
T = 0;
|
||||
while (N > 0)
|
||||
{
|
||||
d = N % 10;
|
||||
if (d != 2)
|
||||
{
|
||||
R = R + d * T;
|
||||
T++;
|
||||
}
|
||||
N = N / 10;
|
||||
}
|
||||
cout << T;
|
||||
[30]
|
||||
int N, m, d;
|
||||
cin >> N;
|
||||
m = 0;
|
||||
while (N > 0)
|
||||
{
|
||||
d = N % 10;
|
||||
if (d > 1)
|
||||
{
|
||||
m = d + m;
|
||||
}
|
||||
N = N / 10;
|
||||
}
|
||||
cout << m;
|
||||
[1-30]
|
||||
[-HW]
|
||||
}
|
||||
[+HW]
|
||||
[-----------------------------------------------]
|
||||
[=Python][12-15]
|
||||
[-HW]
|
||||
import math
|
||||
[1-30]
|
||||
def solve():
|
||||
task("%{task}")
|
||||
[+HW]
|
||||
[1-14]
|
||||
x = float(input())
|
||||
y = float(input())
|
||||
[1]
|
||||
if x*x + y*y >= 4:
|
||||
if x >= -2:
|
||||
if (y <= -x):
|
||||
[2]
|
||||
if x*x + y*y >= 4:
|
||||
if y >= -2:
|
||||
if y <= x:
|
||||
[3]
|
||||
if y >= x:
|
||||
if y >= 0:
|
||||
if y <= 2 - x*x:
|
||||
[4]
|
||||
if y <= 2*x*x:
|
||||
if x >= -1:
|
||||
if y >= 1:
|
||||
[5]
|
||||
if y <= 1:
|
||||
if y >= 0:
|
||||
if x >= -1:
|
||||
if y >= x*x:
|
||||
[6]
|
||||
if y <= x:
|
||||
if y <= -x:
|
||||
if y >= x*x - 2:
|
||||
[7]
|
||||
if y <= 1 - x:
|
||||
if y >= 0:
|
||||
if x >= 0:
|
||||
if x*x + y*y <= 1:
|
||||
[8]
|
||||
if y >= -1:
|
||||
if y <= x:
|
||||
if y <= 0:
|
||||
if x*x + y*y <= 1:
|
||||
[9]
|
||||
if y <= 1:
|
||||
if y >= x:
|
||||
if x >= -1:
|
||||
if x*x + y*y <= 1:
|
||||
[10]
|
||||
if y <= x + 2:
|
||||
if x <= 0:
|
||||
if x*x + y*y <= 25:
|
||||
[11]
|
||||
if y >= x*x - 6:
|
||||
if x*x + y*y <= 16:
|
||||
print("Ïðèíàäëåæèò")
|
||||
elif x >= 0:
|
||||
print("Ïðèíàäëåæèò")
|
||||
else:
|
||||
print("Íå ïðèíàäëåæèò")
|
||||
[12]
|
||||
if y <= math.sin(x):
|
||||
if x <= 3.14/2:
|
||||
if y >= 0:
|
||||
[13]
|
||||
if y <= 1:
|
||||
if x >= 0:
|
||||
if y >= math.sin(x):
|
||||
[14]
|
||||
if y <= 0:
|
||||
if y >= -1:
|
||||
if y <= math.cos(x):
|
||||
[1-4][6][10][12-14]
|
||||
print("Ïðèíàäëåæèò")
|
||||
else:
|
||||
print("Íå ïðèíàäëåæèò")
|
||||
[5][7-9]
|
||||
print("Ïðèíàäëåæèò")
|
||||
else:
|
||||
print("Íå ïðèíàäëåæèò")
|
||||
[1-14]
|
||||
print("Ïðîãðàììà çàâåðøåíà")
|
||||
[15]
|
||||
c = float(input())
|
||||
if c > 0:
|
||||
print("íåò ðåøåíèé")
|
||||
else:
|
||||
print("x = %0.2f èëè x = %0.2f" % (math.sqrt(-c), -math.sqrt(-c)))
|
||||
[16-21]
|
||||
a = float(input())
|
||||
b = float(input())
|
||||
[16]
|
||||
if a == 0:
|
||||
if b == 0:
|
||||
print("ëþáîå ÷èñëî")
|
||||
else:
|
||||
print("íåò ðåøåíèé")
|
||||
else:
|
||||
if b == 0:
|
||||
print("x = 0.00")
|
||||
else
|
||||
print("x = %0.2f èëè x = %0.2f" % (b/a, -b/a))
|
||||
[17]
|
||||
if b == 0:
|
||||
print("x = 0.00")
|
||||
else:
|
||||
if a == 0:
|
||||
print("íåò ðåøåíèé")
|
||||
else:
|
||||
print("x = %0.2f" % -b/a)
|
||||
[18]
|
||||
if a == 0:
|
||||
if b > 0:
|
||||
print("ëþáîå ÷èñëî")
|
||||
else:
|
||||
print("íåò ðåøåíèé")
|
||||
else:
|
||||
print("x = %0.2f" % -b/a)
|
||||
[19]
|
||||
if b == 0:
|
||||
print("x > 0.00 èëè x < 0.00")
|
||||
else:
|
||||
if a > 0:
|
||||
print("x > 0.00 èëè x < %0.2f" % -b)
|
||||
else:
|
||||
print("%0.2f < x < 0.00" % -b)
|
||||
[20]
|
||||
if a == 0:
|
||||
if b > 0:
|
||||
print("íåò ðåøåíèé")
|
||||
else:
|
||||
print("x > 0.00 èëè x < 0.00")
|
||||
else:
|
||||
print("%0.2f < x < 0.00" % -a)
|
||||
[21]
|
||||
if b > 0:
|
||||
print("x > %0.2f èëè x < 0.00" % a)
|
||||
else:
|
||||
if a > 0:
|
||||
print("0.00 < x < %0.2f" % a)
|
||||
else:
|
||||
print("%0.2f < x < 0.00" % a)
|
||||
[22-30]
|
||||
N = int(input())
|
||||
[22]
|
||||
while N > 10:
|
||||
N = N % 10
|
||||
print(N)
|
||||
[23]
|
||||
while N > 10:
|
||||
N = N % 100
|
||||
print(N)
|
||||
[24]
|
||||
maxdigit = 10
|
||||
while N >= 10:
|
||||
digit = N % 10
|
||||
if maxdigit < digit:
|
||||
maxdigit = digit
|
||||
N = N // 10
|
||||
}
|
||||
print(maxdigit)
|
||||
[25]
|
||||
p = N % 10
|
||||
while N >= 10:
|
||||
digit = N % 10
|
||||
p = p * digit
|
||||
N = N // 10
|
||||
print(p)
|
||||
[26]
|
||||
s = 1
|
||||
while N > 1:
|
||||
if N % 10 != 0:
|
||||
s = N % 10
|
||||
N = N // 10
|
||||
print(s)
|
||||
[27]
|
||||
maxdigit = N % 10
|
||||
while N > 0:
|
||||
digit = N % 10
|
||||
if digit % 3 == 0:
|
||||
if digit > maxdigit:
|
||||
maxdigit = digit
|
||||
N = N // 10
|
||||
if maxdigit == 0:
|
||||
print("NO")
|
||||
else:
|
||||
print(maxDigit)
|
||||
[28]
|
||||
cnt = 0
|
||||
while N > 0:
|
||||
cnt = cnt + N % 2
|
||||
N = N // 10
|
||||
print(cnt)
|
||||
[29]
|
||||
R = 0
|
||||
T = 0
|
||||
while N > 0:
|
||||
d = N % 10
|
||||
if d != 2:
|
||||
R = R + d * T
|
||||
T += 1
|
||||
N = N // 10
|
||||
print(T)
|
||||
[30]
|
||||
m = 0
|
||||
while N > 0:
|
||||
d = N % 10
|
||||
if d > 1:
|
||||
m = d + m
|
||||
N = N // 10
|
||||
print(m)
|
||||
|
||||
104
ReleaseGenerators/PT4/Lib/PT4LinqBegin[PascalABC].txt
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
[4]
|
||||
// Абрамян М.Э. ТЕХНОЛОГИЯ LINQ НА ПРИМЕРАХ. М.: ДМК-Пресс, 2014.
|
||||
// Глава 5. Примеры решения задач из группы LinqBegin
|
||||
// 5.1. Поэлементные операции
|
||||
// LinqBegin4: правильное решение - 1 вариант (с.126)
|
||||
begin
|
||||
Task('LinqBegin4');
|
||||
var c := ReadChar;
|
||||
var a := ReadSeqString;
|
||||
try
|
||||
var r := a.SingleOrDefault(e -> (e.Length <> 0) and (e[e.Length] = c));
|
||||
write(r <> nil ? r : '');
|
||||
except
|
||||
write('Error');
|
||||
end;
|
||||
end.
|
||||
[15]
|
||||
// Абрамян М.Э. ТЕХНОЛОГИЯ LINQ НА ПРИМЕРАХ. М.: ДМК-Пресс, 2014.
|
||||
// Глава 5. Примеры решения задач из группы LinqBegin
|
||||
// 5.2. Операция агрегирования и генерирование последовательностей
|
||||
// LinqBegin15: правильное решение - 2 вариант (с.134, внизу)
|
||||
begin
|
||||
Task('LinqBegin15');
|
||||
var n := ReadInteger;
|
||||
var f := Range(1, n)
|
||||
.Aggregate(1.0, (a, e) -> a * e);
|
||||
write(f);
|
||||
end.
|
||||
[31]
|
||||
// Абрамян М.Э. ТЕХНОЛОГИЯ LINQ НА ПРИМЕРАХ. М.: ДМК-Пресс, 2014.
|
||||
// Глава 5. Примеры решения задач из группы LinqBegin
|
||||
// 5.3. Фильтрация, сортировка, теоретико-множественные операции
|
||||
// LinqBegin31: правильное решение - 1 вариант (с.145)
|
||||
begin
|
||||
Task('LinqBegin31');
|
||||
var k := ReadInteger;
|
||||
var a := ReadSeqString;
|
||||
var b := a.Take(k).Show('B');
|
||||
var c := a.Reverse()
|
||||
.TakeWhile(e ->not char.IsDigit(e[e.Length])).Show('C');
|
||||
b.Intersect(c).Show('D')
|
||||
.OrderBy(e -> e.Length).ThenBy(e -> e)
|
||||
.Write;
|
||||
end.
|
||||
[43]
|
||||
// Абрамян М.Э. ТЕХНОЛОГИЯ LINQ НА ПРИМЕРАХ. М.: ДМК-Пресс, 2014.
|
||||
// Глава 5. Примеры решения задач из группы LinqBegin
|
||||
// 5.4. Проецирование
|
||||
// LinqBegin43: правильное решение с отладочной печатью (с.151, внизу)
|
||||
begin
|
||||
Task('LinqBegin43');
|
||||
var k := ReadInteger;
|
||||
ReadSeqString
|
||||
.SelectMany((e, n) ->
|
||||
e.Where((c, i) -> i mod 2 = (n < k ? 0 : 1)).Show())
|
||||
.Reverse
|
||||
.Write;
|
||||
end.
|
||||
[52]
|
||||
// Абрамян М.Э. ТЕХНОЛОГИЯ LINQ НА ПРИМЕРАХ. М.: ДМК-Пресс, 2014.
|
||||
// Глава 5. Примеры решения задач из группы LinqBegin
|
||||
// 5.5. Объединение
|
||||
// LinqBegin52: правильное решение - 1 вариант (с.159, середина)
|
||||
begin
|
||||
Task('LinqBegin52');
|
||||
var a := ReadSeqString()
|
||||
.Where(e -> char.IsDigit(e[e.Length])).Show('A');
|
||||
var b := ReadSeqString()
|
||||
.Where(e -> char.IsDigit(e[e.Length])).Show('B');
|
||||
a.SelectMany(e1 -> b.Select(e2 -> e1 + '=' + e2))
|
||||
.OrderBy(e -> e.Split('=')[0])
|
||||
.ThenByDescending(e -> e.Split('=')[1])
|
||||
.Write;
|
||||
end.
|
||||
[54]
|
||||
// Абрамян М.Э. ТЕХНОЛОГИЯ LINQ НА ПРИМЕРАХ. М.: ДМК-Пресс, 2014.
|
||||
// Глава 5. Примеры решения задач из группы LinqBegin
|
||||
// 5.5. Объединение
|
||||
// LinqBegin54: правильное решение (с.170, середина)
|
||||
begin
|
||||
Task('LinqBegin54');
|
||||
ReadSeqString().GroupJoin(ReadSeqString(),
|
||||
e -> e[1], e -> e[1],
|
||||
(e1, ee2) -> ee2.DefaultIfEmpty('')
|
||||
.Select(e -> e1 + '.' + e))
|
||||
.SelectMany(e -> e).OrderBy(e -> e).Show()
|
||||
.Write;
|
||||
end.
|
||||
[60]
|
||||
// Абрамян М.Э. ТЕХНОЛОГИЯ LINQ НА ПРИМЕРАХ. М.: ДМК-Пресс, 2014.
|
||||
// Глава 5. Примеры решения задач из группы LinqBegin
|
||||
// 5.6. Группировка
|
||||
// LinqBegin60: правильное решение - 1 вариант (с.175, внизу)
|
||||
begin
|
||||
// ===ОШИБКА КОМПИЛЯЦИИ===
|
||||
Task('LinqBegin60');
|
||||
ReadSeqString().GroupBy(e -> e[1])
|
||||
.OrderByDescending(e -> e.Sum(s -> s.Length)).ThenBy(e -> e.Key)
|
||||
.Select(e -> e.Sum(s -> s.Length) + '-' + e.Key)
|
||||
.Write;
|
||||
end.
|
||||
|
||||
|
||||
|
||||
157
ReleaseGenerators/PT4/Lib/PT4LinqObj[PascalABC].txt
Normal file
|
|
@ -0,0 +1,157 @@
|
|||
[4]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 6. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqObj
|
||||
// 6.1. Ïðîñòîå çàäàíèå íà îáðàáîòêó îòäåëüíîé ïîñëåäîâàòåëüíîñòè
|
||||
// LinqObj4: ïðàâèëüíîå ðåøåíèå (ñ.191, âíèçó)
|
||||
begin
|
||||
// === ÎØÈÁÊÀ ÊÎÌÏÈËßÖÛÛ ===
|
||||
Task('LinqObj4');
|
||||
var r := ReadAllLines(ReadString)
|
||||
.Select(e ->
|
||||
begin
|
||||
var s := e.Split(' ');
|
||||
result := new class (
|
||||
hours := StrToInt(s[2]),
|
||||
code := StrToInt(s[3])
|
||||
);
|
||||
end)
|
||||
.GroupBy(e -> e.code,
|
||||
(k, ee) -> new class(k, sum := ee.Sum(c -> c.hours) ))
|
||||
.OrderByDescending(e -> e.sum).ThenBy(e -> e.k)
|
||||
.Select(e -> IntToStr(e.sum) + ' ' + IntToStr(e.k));
|
||||
WriteAllLines(ReadString, r);
|
||||
end.
|
||||
[41]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 6. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqObj
|
||||
// 6.2. Áîëåå ñëîæíûå çàäàíèÿ íà îáðàáîòêó îòäåëüíûõ ïîñëåäîâàòåëüíîñòåé
|
||||
// LinqObj41: ïðàâèëüíîå ðåøåíèå (ñ.196)
|
||||
begin
|
||||
// === ÎØÈÁÊÀ ÊÎÌÏÈËßÖÛÛ ===
|
||||
Task('LinqObj41');
|
||||
var m := ReadInteger;
|
||||
var r := ReadAllLines(ReadString)
|
||||
.Select(e ->
|
||||
begin
|
||||
var s := e.Split(' ');
|
||||
result := new class (
|
||||
brand := StrToInt(s[0]),
|
||||
street := s[1],
|
||||
price := StrToInt(s[3])
|
||||
);
|
||||
end)
|
||||
.Where(e -> e.brand = m)
|
||||
.GroupBy(e -> e.street,
|
||||
(k, ee) -> new class ( street := k, max := ee.Max(e -> e.price) ))
|
||||
.OrderBy(e -> e.max).ThenBy(e -> e.street)
|
||||
.Select(e -> IntToStr(e.max) + ' ' + IntToStr(e.street))
|
||||
.DefaultIfEmpty('Íåò');
|
||||
WriteAllLines(ReadString, r);
|
||||
end.
|
||||
[61]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 6. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqObj
|
||||
// 6.2. Áîëåå ñëîæíûå çàäàíèÿ íà îáðàáîòêó îòäåëüíûõ ïîñëåäîâàòåëüíîñòåé
|
||||
// LinqObj61: ïðàâèëüíîå ðåøåíèå (ñ.199-200)
|
||||
begin
|
||||
// === ÎØÈÁÊÀ ÂÐÅÌÅÍÈ ÂÛÏÎËÍÅÍÈß ===
|
||||
Task('LinqObj61');
|
||||
var subjects : array of string := ( 'Àëãåáðà', 'Ãåîìåòðèÿ', 'Èíôîðìàòèêà' );
|
||||
var culture := new System.Globalization.CultureInfo('en-US');
|
||||
var r := ReadAllLines(ReadString)
|
||||
.Select(e ->
|
||||
begin
|
||||
var s := e.Split(' ');
|
||||
result := new class
|
||||
(
|
||||
name := s[0] + ' ' + s[1],
|
||||
subj := s[3],
|
||||
mark := StrToInt(s[4])
|
||||
);
|
||||
end)
|
||||
.GroupBy(e -> e.name, (k, ee) -> new class
|
||||
(
|
||||
name := k,
|
||||
avrs := subjects
|
||||
.GroupJoin(ee, s -> s, e -> e.subj,
|
||||
(s1, ee1) -> ee1.Select(e1 -> e1.mark)
|
||||
.DefaultIfEmpty().Average())
|
||||
))
|
||||
.OrderBy(e -> e.name)
|
||||
.Select(e -> e.name + e.avrs.Aggregate('',
|
||||
(a, d) -> a + ' ' + d.ToString('f2', culture)));
|
||||
WriteAllLines(ReadString, r);
|
||||
end.
|
||||
[98]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 6. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqObj
|
||||
// 6.3. Îáðàáîòêà âçàèìîñâÿçàííûõ ïîñëåäîâàòåëüíîñòåé
|
||||
// LinqObj98: ïðàâèëüíîå ðåøåíèå (ñ.215, ââåðõó)
|
||||
begin
|
||||
Task('LinqObj98');
|
||||
var B := ReadAllLines(ReadString)
|
||||
.Select(e ->
|
||||
begin
|
||||
var s := e.Split(' ');
|
||||
result := new class
|
||||
(
|
||||
art := s[1],
|
||||
cat := s[2]
|
||||
);
|
||||
end);
|
||||
var C := ReadAllLines(ReadString)
|
||||
.Select(e ->
|
||||
begin
|
||||
var s := e.Split(' ');
|
||||
result := new class
|
||||
(
|
||||
discount := StrToInt(s[0]),
|
||||
code := s[1],
|
||||
shop := s[2]
|
||||
);
|
||||
end);
|
||||
var D := ReadAllLines(ReadString)
|
||||
.Select(e ->
|
||||
begin
|
||||
var s := e.Split(' ');
|
||||
result := new class
|
||||
(
|
||||
art := s[0],
|
||||
price := StrToInt(s[1]),
|
||||
shop := s[2]
|
||||
);
|
||||
end);
|
||||
var E := ReadAllLines(ReadString)
|
||||
.Select(e ->
|
||||
begin
|
||||
var s := e.Split(' ');
|
||||
result := new class
|
||||
(
|
||||
code := s[0],
|
||||
art := s[1],
|
||||
shop := s[2]
|
||||
);
|
||||
end);
|
||||
var discounts := E.Join(B, e1 -> e1.art, e2 -> e2.art,
|
||||
(e1, e2) -> new class ( e1.code, e1.art, e1.shop, e2.cat ))
|
||||
.Join(D, e1 -> e1.art + e1.shop, e2 -> e2.art + e2.shop,
|
||||
(e1, e2) -> new class ( e1.code, e1.shop, e1.cat, e2.price ))
|
||||
.GroupJoin(C, e1 -> e1.code + e1.shop, e2 -> e2.code + e2.shop,
|
||||
(e1, ee2) -> new class
|
||||
(
|
||||
cat_shop := e1.cat + ' ' + e1.shop,
|
||||
discount := ee2.Select(e -> e.discount)
|
||||
.FirstOrDefault() * e1.price div 100
|
||||
));
|
||||
var cats := B.GroupBy(e -> e.cat, (k, ee) -> k);
|
||||
var shops := E.GroupBy(e -> e.shop, (k, ee) -> k);
|
||||
var r := cats
|
||||
.SelectMany(e1 -> shops.Select(e2 -> e1 + ' ' + e2))
|
||||
.OrderBy(e -> e)
|
||||
.GroupJoin(discounts, e1 -> e1, e2 -> e2.cat_shop,
|
||||
(e1, ee2) -> e1 + ' ' +
|
||||
IntToStr(ee2.Select(e -> e.discount).DefaultIfEmpty(-1).Sum()));
|
||||
WriteAllLines(ReadString, r);
|
||||
end.
|
||||
|
||||
|
||||
185
ReleaseGenerators/PT4/Lib/PT4LinqXml[PascalABC].txt
Normal file
|
|
@ -0,0 +1,185 @@
|
|||
[10]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 7. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqXml
|
||||
// 7.1. Ñîçäàíèå XML-äîêóìåíòà
|
||||
// LinqXml10: ïðàâèëüíîå ðåøåíèå (ñ.227)
|
||||
begin
|
||||
Task('LinqXml10');
|
||||
var a := ReadAllLines(ReadString);
|
||||
var d := new XDocument(
|
||||
new XDeclaration(nil, 'windows-1251', nil),
|
||||
new XElement('root',
|
||||
a.Select(e -> e.StartsWith('data:') ?
|
||||
new XProcessingInstruction('instr', e.Substring(5)) as XNode:
|
||||
new XElement('line', e) as XNode)));
|
||||
d.Save(ReadString);
|
||||
end.
|
||||
[20]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 7. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqXml
|
||||
// 7.2. Àíàëèç ñîäåðæèìîãî XML-äîêóìåíòà
|
||||
// LinqXml20: ïðàâèëüíîå ðåøåíèå (ñ.235-236)
|
||||
begin
|
||||
Task('LinqXml20');
|
||||
var d := XDocument.Load(ReadString);
|
||||
foreach var e1 in d.Root.Elements do
|
||||
begin
|
||||
write(e1.Name.LocalName);
|
||||
var max := e1.Descendants
|
||||
.Select(e -> e.Attributes.Count())
|
||||
.DefaultIfEmpty(-1).Max;
|
||||
write(max);
|
||||
var a := e1.Descendants
|
||||
.Where(e -> e.Attributes.Count() = max)
|
||||
.Select(e -> e.Name.LocalName)
|
||||
.OrderBy(e -> e)
|
||||
.DefaultIfEmpty('no child');
|
||||
foreach var e in a do
|
||||
write(e);
|
||||
end
|
||||
end.
|
||||
[28]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 7. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqXml
|
||||
// 7.3. Ïðåîáðàçîâàíèå XML-äîêóìåíòà
|
||||
// LinqXml28: ïðàâèëüíîå ðåøåíèå (ñ.238)
|
||||
begin
|
||||
Task('LinqXml28');
|
||||
var name := ReadString;
|
||||
var d := XDocument.Load(name);
|
||||
d.Root.Elements().Elements().Elements()
|
||||
.Nodes().OfType&<XText>().Remove();
|
||||
d.Save(name);
|
||||
end.
|
||||
[32]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 7. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqXml
|
||||
// 7.3. Ïðåîáðàçîâàíèå XML-äîêóìåíòà
|
||||
// LinqXml32: ïðàâèëüíîå ðåøåíèå (ñ.242)
|
||||
begin
|
||||
Task('LinqXml32');
|
||||
var name := ReadString;
|
||||
var s1 := ReadString;
|
||||
var s2 := ReadString;
|
||||
var d := XDocument.Load(name);
|
||||
foreach var e in d.Root.Elements().Elements(s1) do
|
||||
e.AddBeforeSelf(new XElement(s2,
|
||||
e.LastAttribute, e.Elements().FirstOrDefault()));
|
||||
d.Save(name);
|
||||
end.
|
||||
[37]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 7. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqXml
|
||||
// 7.3. Ïðåîáðàçîâàíèå XML-äîêóìåíòà
|
||||
// LinqXml37: ðåøåíèå ñ èñïîëüçîâàíèåì âûðàæåíèÿ çàïðîñà (ñ.244)
|
||||
begin
|
||||
Task('LinqXml37');
|
||||
var name := ReadString;
|
||||
var d := XDocument.Load(name);
|
||||
var a := d.Root.Elements().Elements()
|
||||
.Where(e -> not e.IsEmpty);
|
||||
foreach var e in a do
|
||||
e.Value := e.Value;
|
||||
d.Save(name);
|
||||
end.
|
||||
[50]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 7. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqXml
|
||||
// 7.4. Ïðåîáðàçîâàíèå òèïîâ ïðè îáðàáîòêå XML-äîêóìåíòà
|
||||
// LinqXml50: ïðàâèëüíîå ðåøåíèå (ñ.254)
|
||||
begin
|
||||
Task('LinqXml50');
|
||||
var name := ReadString;
|
||||
var d := XDocument.Load(name);
|
||||
d.Root.AddFirst(new XElement('total-time',
|
||||
d.Root.Elements()
|
||||
.Select(e ->
|
||||
begin
|
||||
var a := e.Attribute('time');
|
||||
if a = nil then
|
||||
result := new TimeSpan(24, 0, 0)
|
||||
else
|
||||
result := TimeSpan(a);
|
||||
end)
|
||||
.Aggregate(TimeSpan.Zero, (a, e) -> a + e)));
|
||||
d.Save(name);
|
||||
end.
|
||||
[57]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 7. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqXml
|
||||
// 7.5. Ðàáîòà ñ ïðîñòðàíñòâàìè èìåí XML-äîêóìåíòà
|
||||
// LinqXml57: ïðàâèëüíîå ðåøåíèå (ñ.263)
|
||||
begin
|
||||
Task('LinqXml57');
|
||||
var name := ReadString;
|
||||
var s1 := ReadString;
|
||||
var s2 := ReadString;
|
||||
var d := XDocument.Load(name);
|
||||
d.Root.Add(new XAttribute(XNamespace.Xmlns + 'x', s1),
|
||||
new XAttribute(XNamespace.Xmlns + 'y', s2));
|
||||
var ns1 := XNamespace(s1);
|
||||
var ns2 := XNamespace(s2);
|
||||
foreach var e in d.Descendants() do
|
||||
begin
|
||||
var ns := e.Ancestors().Count() <= 1 ? ns1 : ns2;
|
||||
e.Name := ns + e.Name.LocalName;
|
||||
end;
|
||||
d.Descendants().Attributes('xmlns').Remove();
|
||||
d.Save(name);
|
||||
end.
|
||||
[61]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 7. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqXml
|
||||
// 7.6. Äîïîëíèòåëüíûå çàäàíèÿ íà îáðàáîòêó XML-äîêóìåíòîâ
|
||||
// LinqXml61: ïðàâèëüíîå ðåøåíèå (ñ.268, ââåðõó)
|
||||
begin
|
||||
Task('LinqXml61');
|
||||
var name := ReadString;
|
||||
var d := XDocument.Load(name);
|
||||
var ns := d.Root.Name.Namespace;
|
||||
d.Root.ReplaceNodes(d.Root.Elements()
|
||||
.Select(e -> new XElement(ns + 'time',
|
||||
new XAttribute('id', e.Element(ns + 'id').Value),
|
||||
new XAttribute('year',
|
||||
(DateTime(e.Element(ns + 'date'))).Year),
|
||||
new XAttribute('month',
|
||||
(DateTime(e.Element(ns + 'date'))).Month),
|
||||
e.Element(ns + 'time').Value)));
|
||||
d.Save(name);
|
||||
end.
|
||||
[82]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 7. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqXml
|
||||
// 7.6. Äîïîëíèòåëüíûå çàäàíèÿ íà îáðàáîòêó XML-äîêóìåíòîâ
|
||||
// LinqXml82: ïðàâèëüíîå ðåøåíèå (ñ.276)
|
||||
begin
|
||||
// ÎØÈÁÊÀ ÊÎÌÏÈËßÖÈÈ
|
||||
Task('LinqXml82');
|
||||
var name := ReadString;
|
||||
var d := XDocument.Load(name);
|
||||
var ns := d.Root.Name.Namespace;
|
||||
var a := d.Root.Elements()
|
||||
.Select(e ->
|
||||
begin
|
||||
var s := e.Name.LocalName.Substring(4).Split('-');
|
||||
result := new class
|
||||
(
|
||||
house := StrToInt(s[0]),
|
||||
floor := (StrToInt(s[1]) - 1) mod 36 div 4 + 1,
|
||||
debt := double(e)
|
||||
);
|
||||
end);
|
||||
var floors := Range(1, 9);
|
||||
d.Root.ReplaceNodes(a.OrderBy(e -> e.house)
|
||||
.GroupBy(e -> e.house,
|
||||
(k, ee) -> new XElement(ns + ('house' + k),
|
||||
floors.GroupJoin(ee, e1 -> e1, e2 -> e2.floor,
|
||||
(e1, ee2) -> new XElement(ns + ('floor' + e1),
|
||||
new XAttribute('count', ee2.Count()),
|
||||
new XAttribute('total-debt',
|
||||
Math.Round(ee2.Sum(e -> e.debt), 2)))))));
|
||||
d.Save(name);
|
||||
end.
|
||||
|
||||
|
||||
|
||||
9
ReleaseGenerators/PT4/Lib/PT4_.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
[=PascalABC]
|
||||
[0]
|
||||
uses PT4;
|
||||
[1-999]
|
||||
|
||||
begin
|
||||
Task('%{task}');
|
||||
|
||||
end.
|
||||
9
ReleaseGenerators/PT4/Lib/PT4_Exam.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
[=PascalABC]
|
||||
[0]
|
||||
uses PT4Exam;
|
||||
[1-999]
|
||||
|
||||
begin
|
||||
Task('%{task}');
|
||||
|
||||
end.
|
||||
23
ReleaseGenerators/PT4/Lib/PT4_LinqB.txt
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
[=PascalABC]
|
||||
[0]
|
||||
uses PT4, PT4Linq;
|
||||
|
||||
(*
|
||||
При решении задач группы LinqObj доступны следующие
|
||||
дополнительные методы, определенные в модуле PT4Linq:
|
||||
|
||||
ReadSeqInteger() - ввод числовой последовательности;
|
||||
ReadSeqString() - ввод строковой последовательности;
|
||||
Write() (метод расширения) - вывод последовательности;
|
||||
Show() и Show(cmt) (методы расширения) - отладочная печать
|
||||
последовательности, cmt - строковый комментарий;
|
||||
Show(e -> str) и Show(cmt, e -> str) (методы расширения) -
|
||||
отладочная печать строковых значений str, полученных
|
||||
из элементов e последовательности, cmt - строковый комментарий.
|
||||
*)
|
||||
[1-999]
|
||||
|
||||
begin
|
||||
Task('%{task}');
|
||||
|
||||
end.
|
||||
24
ReleaseGenerators/PT4/Lib/PT4_LinqO.txt
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
[=PascalABC]
|
||||
[0]
|
||||
uses PT4, PT4Linq;
|
||||
|
||||
(*
|
||||
При решении задач группы LinqObj доступны следующие
|
||||
дополнительные методы, определенные в модуле PT4Linq:
|
||||
|
||||
ReadAllLines(name) - функция, которая возвращает последовательность строк,
|
||||
содержащихся в текстовом файле с имененм name;
|
||||
WriteAllLines(name, seq) - процедура, которая записывает в текстовый файл
|
||||
с именем name последотвальеность строк seq;
|
||||
Show() и Show(cmt) (методы расширения) - отладочная печать
|
||||
последовательности, cmt - строковый комментарий;
|
||||
Show(e -> str) и Show(cmt, e -> str) (методы расширения) -
|
||||
отладочная печать строковых значений str, полученных
|
||||
из элементов e последовательности, cmt - строковый комментарий.
|
||||
*)
|
||||
[1-999]
|
||||
|
||||
begin
|
||||
Task('%{task}');
|
||||
|
||||
end.
|
||||
23
ReleaseGenerators/PT4/Lib/PT4_LinqX.txt
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
[=PascalABC]
|
||||
[0]
|
||||
{$reference System.Xml.Linq.dll}
|
||||
uses PT4, PT4Linq, System, System.Xml.Linq;
|
||||
|
||||
(*
|
||||
При решении задач группы LinqObj доступны следующие
|
||||
дополнительные методы, определенные в модуле PT4Linq:
|
||||
|
||||
ReadAllLines(name) - функция, которая возвращает последовательность строк,
|
||||
содержащихся в текстовом файле с имененм name;
|
||||
Show() и Show(cmt) (методы расширения) - отладочная печать
|
||||
последовательности, cmt - строковый комментарий;
|
||||
Show(e -> str) и Show(cmt, e -> str) (методы расширения) -
|
||||
отладочная печать строковых значений str, полученных
|
||||
из элементов e последовательности, cmt - строковый комментарий.
|
||||
*)
|
||||
[1-999]
|
||||
|
||||
begin
|
||||
Task('%{task}');
|
||||
|
||||
end.
|
||||
1
ReleaseGenerators/PT4/LinqBloadpabc.dat
Normal file
|
|
@ -0,0 +1 @@
|
|||
=|||%f|%x<0_LinqB>%X<0_LinqB>
|
||||
1
ReleaseGenerators/PT4/LinqOloadpabc.dat
Normal file
|
|
@ -0,0 +1 @@
|
|||
=|||%f|%x<0_LinqO>%X<0_LinqO>
|
||||
1
ReleaseGenerators/PT4/LinqXloadpabc.dat
Normal file
|
|
@ -0,0 +1 @@
|
|||
=|||%f|%x<0_LinqX>%X<0_LinqX>
|
||||
|
|
@ -18,4 +18,5 @@ P.ptCommentQuote{text-align:left;margin-left:120px;margin-top:0px;margin-bottom:
|
|||
P.ptCommentContinue{text-align:justify;}
|
||||
P.ptFooter{text-align:right;font-size:10pt;font-style:italic;margin-right:0px;}
|
||||
SPAN.ptSpecial{font-family:"Arial";}
|
||||
|
||||
PRE{font-family:"Courier New";text-align:left;font-size:10pt;text-indent:0px;margin-top:5px; margin-right:10px; margin-bottom:0px; margin-left:60px;}
|
||||
P.ptPicture{font-family:Arial, sans-serif;margin-top: 5px;margin-bottom: 5px;margin-left: 60px;font-size: small;color: #000080;text-indent: 0pt;text-align: justify}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
N“票ª|10PABC1 NC:\Program Files (x86)\PascalABC.NET\PT4 NV8Â˜í«·®®#"%'%&&*&$#"%'%&&*&6b3:'%&&*&$#"%'%8>>674;7?<?8<98<257566:643257566:6
|
||||
N“票ª|10PABC2 NC:\Program Files (x86)\PascalABC.NET\PT4 NV8Â˜í«·®®#"%'%&&*&$#"%'%&&*&6b3:'%&&*&$#"%'%8>>674;7?<?8<98<257566:643257566:6
|
||||
|
|
@ -19,7 +19,7 @@ loadver=4
|
|||
==cc|âëîæåííûå öèêëû|16
|
||||
==p|ïðîöåäóðû áåç ïàðàìåòðîâ|4
|
||||
==pp|ïðîöåäóðû ñ ïàðàìåòðàìè|18
|
||||
=|||%f.pas|uses PT4;%#%#begin%# Task('%f');%#%#end.
|
||||
=|||%f.pas|%x<0_>%X<0_>
|
||||
==Begin
|
||||
==Integer
|
||||
==For
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ loadver=4
|
|||
==cc|nested loops|16
|
||||
==p|procedures without parameters|4
|
||||
==pp|procedures with the parameters|18
|
||||
=|||%f.pas|uses PT4;%#%#begin%# Task('%f');%#%#end.
|
||||
=|||%f.pas|%x<0_>%X<0_>
|
||||
==Begin
|
||||
==Integer
|
||||
==For
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
!define VERSION '2.2.0.993'
|
||||
!define VERSION '2.2.0.995'
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
|
||||
|
||||
Section $(DESC_PT4) PT4
|
||||
SectionIn 1
|
||||
SetOutPath "$INSTDIR"
|
||||
|
|
@ -49,6 +48,12 @@ Section $(DESC_PT4) PT4
|
|||
${AddFile} "license-en.txt"
|
||||
File "PT4\license-ru.txt"
|
||||
${AddFile} "license-ru.txt"
|
||||
File "PT4\LinqBloadpabc.dat"
|
||||
${AddFile} "LinqBloadpabc.dat"
|
||||
File "PT4\LinqOloadpabc.dat"
|
||||
${AddFile} "LinqOloadpabc.dat"
|
||||
File "PT4\LinqXloadpabc.dat"
|
||||
${AddFile} "LinqXloadpabc.dat"
|
||||
|
||||
SetOutPath "$INSTDIR\PT4\Lib"
|
||||
File "PT4\Lib\PT4ExamBegin_ru.dll"
|
||||
|
|
@ -56,6 +61,40 @@ Section $(DESC_PT4) PT4
|
|||
File "PT4\Lib\PT4ExamTaskC_ru.dll"
|
||||
${AddFile} "PT4ExamTaskC_ru.dll"
|
||||
|
||||
File "PT4\Lib\PT4ExamCheck_ru.dll"
|
||||
${AddFile} "PT4ExamCheck_ru.dll"
|
||||
File "PT4\Lib\PT4LinqBegin.dll"
|
||||
${AddFile} "PT4LinqBegin.dll"
|
||||
File "PT4\Lib\PT4LinqObj.dll"
|
||||
${AddFile} "PT4LinqObj.dll"
|
||||
File "PT4\Lib\PT4LinqXml.dll"
|
||||
${AddFile} "PT4LinqXml.dll"
|
||||
File "PT4\Lib\PT4TMDemoAbc.dll"
|
||||
${AddFile} "PT4TMDemoAbc.dll"
|
||||
File "PT4\Lib\PT4_.txt"
|
||||
${AddFile} "PT4_.txt"
|
||||
File "PT4\Lib\PT4_Exam.txt"
|
||||
${AddFile} "PT4_Exam.txt"
|
||||
File "PT4\Lib\PT4_LinqB.txt"
|
||||
${AddFile} "PT4_LinqB.txt"
|
||||
File "PT4\Lib\PT4_LinqO.txt"
|
||||
${AddFile} "PT4_LinqO.txt"
|
||||
File "PT4\Lib\PT4_LinqX.txt"
|
||||
${AddFile} "PT4_LinqX.txt"
|
||||
File "PT4\Lib\PT4ExamBegin_ru.txt"
|
||||
${AddFile} "PT4ExamBegin_ru.txt"
|
||||
File "PT4\Lib\PT4ExamCheck_ru.txt"
|
||||
${AddFile} "PT4ExamCheck_ru.txt"
|
||||
File "PT4\Lib\PT4LinqBegin[PascalABC].txt"
|
||||
${AddFile} "PT4LinqBegin[PascalABC].txt"
|
||||
File "PT4\Lib\PT4LinqObj[PascalABC].txt"
|
||||
${AddFile} "PT4LinqObj[PascalABC].txt"
|
||||
File "PT4\Lib\PT4LinqXml[PascalABC].txt"
|
||||
${AddFile} "PT4LinqXml[PascalABC].txt"
|
||||
|
||||
SetOutPath "$INSTDIR\PT4\Lib\Graph"
|
||||
File "PT4\Lib\Graph\*.png"
|
||||
|
||||
SetOutPath "$INSTDIR"
|
||||
File "PT4\PT4Tools.dll"
|
||||
${AddFile} "PT4Tools.dll"
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
=|||%f|uses%# PT4Exam;%#%#begin%# Task('%f');%#%#end.
|
||||
=|||%f|%x<0_Exam>%X<0_Exam>
|
||||
BIN
bin/PT4/Lib/Graph/GExamCheck1.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
bin/PT4/Lib/Graph/GExamCheck10.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
bin/PT4/Lib/Graph/GExamCheck11.png
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
bin/PT4/Lib/Graph/GExamCheck12.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
bin/PT4/Lib/Graph/GExamCheck13.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
bin/PT4/Lib/Graph/GExamCheck14.png
Normal file
|
After Width: | Height: | Size: 9.8 KiB |
BIN
bin/PT4/Lib/Graph/GExamCheck2.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
bin/PT4/Lib/Graph/GExamCheck3.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
bin/PT4/Lib/Graph/GExamCheck4.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
bin/PT4/Lib/Graph/GExamCheck5.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
bin/PT4/Lib/Graph/GExamCheck6.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
bin/PT4/Lib/Graph/GExamCheck7.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
bin/PT4/Lib/Graph/GExamCheck8.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
bin/PT4/Lib/Graph/GExamCheck9.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
84
bin/PT4/Lib/PT4ExamBegin_ru.txt
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
[=Pascal][=PascalABC][=CPP][=Python][0]
|
||||
[~Îáðàáîòêà ñòàòèñòè÷åñêèõ äàííûõ]
|
||||
[text]
|
||||
Ïðè ðåøåíèè çàäà÷ äàííîé ïîäãðóïïû íåîáõîäèìî èñïîëüçîâàòü
|
||||
çàãîòîâêó, âêëþ÷àþùóþ îïèñàíèÿ ïåðåìåííûõ è ââîä
|
||||
èñõîäíûõ äàííûõ:
|
||||
[code]
|
||||
[=Pascal][=PascalABC]
|
||||
const
|
||||
N = 15;
|
||||
var
|
||||
a: array[1..N] of integer;
|
||||
i, j, k: integer;
|
||||
begin
|
||||
for i := 1 to N do
|
||||
read(a[i]);
|
||||
|
||||
|
||||
end.
|
||||
[=CPP]
|
||||
#define N 15
|
||||
int a[N];
|
||||
int i, j, k;
|
||||
for (i = 0; i < N; i++)
|
||||
cin >> a[i];
|
||||
[=Python]
|
||||
N = 15
|
||||
i = None
|
||||
j = None
|
||||
k = None
|
||||
a = [int(i) for i in input().split()]
|
||||
[=Pascal][=PascalABC][=CPP][=Python]
|
||||
[text]
|
||||
Òðåáóåòñÿ äîïîëíèòü ïðîãðàììó-çàãîòîâêó àëãîðèòìîì
|
||||
ðåøåíèÿ çàäà÷è, èñïîëüçóÿ òîëüêî òå ïåðåìåííûå, êîòîðûå óêàçàíû â òåêñòå
|
||||
çàãîòîâêè (âñå ïåðåìåííûå ìîæíî íå èñïîëüçîâàòü).
|
||||
[123-130]
|
||||
[-H]
|
||||
[text]
|
||||
Ïðåäëàãàåìàÿ çàãîòîâêà ñîäåðæèò îïèñàíèÿ ïåðåìåííûõ è ââîä
|
||||
èñõîäíûõ äàííûõ. Òðåáóåòñÿ äîïîëíèòü ïðîãðàììó-çàãîòîâêó àëãîðèòìîì
|
||||
ðåøåíèÿ çàäà÷è, èñïîëüçóÿ òîëüêî òå ïåðåìåííûå, êîòîðûå óêàçàíû â òåêñòå
|
||||
çàãîòîâêè (âñå ïåðåìåííûå ìîæíî íå èñïîëüçîâàòü).
|
||||
[code]
|
||||
[=Pascal][=PascalABC]
|
||||
const
|
||||
N = 15;
|
||||
var
|
||||
a: array[1..N] of integer;
|
||||
i, j, k: integer;
|
||||
begin
|
||||
[-W]
|
||||
Task('%{task}');
|
||||
[+W]
|
||||
for i := 1 to N do
|
||||
read(a[i]);
|
||||
|
||||
|
||||
end.
|
||||
[=CPP]
|
||||
[-W]
|
||||
void Solve()
|
||||
{
|
||||
Task("%{task}");
|
||||
[+W]
|
||||
#define N 15
|
||||
int a[N];
|
||||
int i, j, k;
|
||||
for (i = 0; i < N; i++)
|
||||
cin >> a[i];
|
||||
|
||||
[-W]
|
||||
}
|
||||
[=Python]
|
||||
def solve():
|
||||
task("%{task}")
|
||||
[+W]
|
||||
N = 15
|
||||
i = None
|
||||
j = None
|
||||
k = None
|
||||
a = [int(i) for i in input().split()]
|
||||
|
||||
|
||||
786
bin/PT4/Lib/PT4ExamCheck_ru.txt
Normal file
|
|
@ -0,0 +1,786 @@
|
|||
[=Pascal][=PascalABC][1-14]
|
||||
var x, y: real;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(x, y);
|
||||
[1]
|
||||
if x*x + y*y >= 4 then
|
||||
if x >= -2 then
|
||||
if y <= -x then
|
||||
[2]
|
||||
if x*x + y*y >= 4 then
|
||||
if y >= -2 then
|
||||
if y <= x then
|
||||
[3]
|
||||
if y >= x then
|
||||
if y >= 0 then
|
||||
if y <= 2 - x*x then
|
||||
[4]
|
||||
if y <= 2*x*x then
|
||||
if x >= -1 then
|
||||
if y >= 1 then
|
||||
[5]
|
||||
if y <= 1 then
|
||||
if y >= 0 then
|
||||
if x >= -1 then
|
||||
if y >= x*x then
|
||||
[6]
|
||||
if y <= x then
|
||||
if y <= -x then
|
||||
if y >= x*x - 2 then
|
||||
[7]
|
||||
if y <= 1 - x then
|
||||
if y >= 0 then
|
||||
if x >= 0 then
|
||||
if x*x + y*y <= 1 then
|
||||
[8]
|
||||
if y >= -1 then
|
||||
if y <= x then
|
||||
if y <= 0 then
|
||||
if x*x + y*y <= 1 then
|
||||
[9]
|
||||
if y <= 1 then
|
||||
if y >= x then
|
||||
if x >= -1 then
|
||||
if x*x + y*y <= 1 then
|
||||
[10]
|
||||
if y <= x + 2 then
|
||||
if x <= 0 then
|
||||
if x*x + y*y <= 25 then
|
||||
[11]
|
||||
if y >= x*x - 6 then
|
||||
begin
|
||||
if x*x + y*y <= 16 then
|
||||
writeln('Ïðèíàäëåæèò')
|
||||
end
|
||||
else
|
||||
if x >= 0 then
|
||||
writeln('Ïðèíàäëåæèò')
|
||||
else
|
||||
writeln('Íå ïðèíàäëåæèò');
|
||||
[12]
|
||||
if y <= sin(x) then
|
||||
if x <= 3.14/2 then
|
||||
if y >= 0 then
|
||||
[13]
|
||||
if y <= 1 then
|
||||
if x >= 0 then
|
||||
if y >= sin(x) then
|
||||
[14]
|
||||
if y <= 0 then
|
||||
if y >= -1 then
|
||||
if y <= cos(x) then
|
||||
[1-4][6][10][12-14]
|
||||
writeln('Ïðèíàäëåæèò')
|
||||
else
|
||||
writeln('Íå ïðèíàäëåæèò');
|
||||
[5][7-9]
|
||||
writeln('Ïðèíàäëåæèò')
|
||||
else
|
||||
writeln('Íå ïðèíàäëåæèò');
|
||||
[1-14]
|
||||
writeln('Ïðîãðàììà çàâåðøåíà');
|
||||
end.
|
||||
[15]
|
||||
var c: real;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(c);
|
||||
if c > 0 then
|
||||
write('íåò ðåøåíèé')
|
||||
else
|
||||
write('x = ', sqrt(-c):0:2, ' èëè x = ', -sqrt(-c):0:2);
|
||||
[16-21]
|
||||
var a, b: real;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(a, b);
|
||||
[16]
|
||||
if a = 0 then
|
||||
if b = 0 then
|
||||
write('ëþáîå ÷èñëî')
|
||||
else
|
||||
write('íåò ðåøåíèé')
|
||||
else
|
||||
if b = 0 then
|
||||
write('x = 0.00')
|
||||
else
|
||||
write('x = ', b/a:0:2,' èëè x = ', -b/a:0:2);
|
||||
[17]
|
||||
if b = 0 then
|
||||
write('x = 0.00')
|
||||
else
|
||||
if a = 0 then
|
||||
write('íåò ðåøåíèé')
|
||||
else
|
||||
write('x = ', -b/a:0:2);
|
||||
end.
|
||||
[18]
|
||||
if a = 0 then
|
||||
if b > 0 then
|
||||
write('ëþáîå ÷èñëî')
|
||||
else
|
||||
write('íåò ðåøåíèé')
|
||||
else
|
||||
write('x > ', -b/a:0:2);
|
||||
[19]
|
||||
if b = 0 then
|
||||
write('x > 0.00 èëè x < 0.00')
|
||||
else
|
||||
if a > 0 then
|
||||
write('x > 0.00 èëè x < ', -b:0:2)
|
||||
else
|
||||
write(-b:0:2, ' < x < 0.00') ;
|
||||
[20]
|
||||
if a = 0 then
|
||||
if b > 0 then
|
||||
write('íåò ðåøåíèé')
|
||||
else
|
||||
write('x > 0.00 èëè x < 0.00')
|
||||
else
|
||||
write(-a:0:2,' < x < 0.00');
|
||||
[21]
|
||||
if b > 0 then
|
||||
write('x > ', a:0:2,' èëè x < 0.00')
|
||||
else
|
||||
if a > 0 then
|
||||
write('0.00 < x < ', a:0:2)
|
||||
else
|
||||
write(a:0:2, ' < x < 0.00');
|
||||
[15-21]
|
||||
end.
|
||||
[22]
|
||||
var N: integer;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(N);
|
||||
while N > 10 do
|
||||
begin
|
||||
N := N mod 10;
|
||||
end;
|
||||
write(N);
|
||||
end.
|
||||
[23]
|
||||
var N: integer;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(N);
|
||||
while N > 10 do
|
||||
begin
|
||||
N := N mod 100;
|
||||
end;
|
||||
write(N);
|
||||
end.
|
||||
[24]
|
||||
var N, digit, maxdigit: integer;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(N);
|
||||
maxdigit := 10;
|
||||
while N >= 10 do
|
||||
begin
|
||||
digit := N mod 10;
|
||||
if maxdigit < digit then
|
||||
maxdigit := digit;
|
||||
N := N div 10;
|
||||
end;
|
||||
write(maxdigit);
|
||||
end.
|
||||
[25]
|
||||
var N, p, digit: integer;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(N);
|
||||
p := N mod 10;
|
||||
while N >= 10 do
|
||||
begin
|
||||
digit := N mod 10;
|
||||
p := p * digit;
|
||||
N := N div 10;
|
||||
end;
|
||||
writeln(p);
|
||||
end.
|
||||
[26]
|
||||
var N, s: integer;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(N);
|
||||
s := 1;
|
||||
while N > 1 do
|
||||
begin
|
||||
if N mod 10 <> 0 then
|
||||
s := N mod 10;
|
||||
N := N div 10;
|
||||
end;
|
||||
write(s);
|
||||
end.
|
||||
[27]
|
||||
var N, digit, maxdigit: integer;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(N);
|
||||
maxdigit := N mod 10;
|
||||
while N > 0 do
|
||||
begin
|
||||
digit := N mod 10;
|
||||
if digit mod 3 = 0 then
|
||||
if digit > maxdigit then
|
||||
maxdigit := digit;
|
||||
N := N div 10;
|
||||
end;
|
||||
if maxdigit = 0 then
|
||||
writeln('NO')
|
||||
else
|
||||
writeln(maxDigit)
|
||||
end.
|
||||
[28]
|
||||
var N, cnt: integer;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(N);
|
||||
cnt := 0;
|
||||
while N > 0 do
|
||||
begin
|
||||
cnt := cnt + N mod 2;
|
||||
N := N div 10;
|
||||
end;
|
||||
writeln(cnt)
|
||||
end.
|
||||
[29]
|
||||
var N, R, T, d: integer;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(N);
|
||||
R := 0;
|
||||
T := 0;
|
||||
while N > 0 do
|
||||
begin
|
||||
d := N mod 10;
|
||||
if d <> 2 then
|
||||
begin
|
||||
R := R + d * T;
|
||||
T := T + 1;
|
||||
end;
|
||||
N := N div 10;
|
||||
end;
|
||||
writeln(T);
|
||||
end.
|
||||
[30]
|
||||
var N, m, d: integer;
|
||||
begin
|
||||
[-HW]
|
||||
Task('%{task}');
|
||||
[+HW]
|
||||
readln(N);
|
||||
m := 0;
|
||||
while N > 0 do
|
||||
begin
|
||||
d := N mod 10;
|
||||
if d > 1 then
|
||||
begin
|
||||
m := d + m;
|
||||
end;
|
||||
N := N div 10;
|
||||
end;
|
||||
write(m);
|
||||
end.
|
||||
[-----------------------------------------------]
|
||||
[=CPP][12-15]
|
||||
[-HW]
|
||||
#include <cmath>
|
||||
using namespace std;
|
||||
[1-30]
|
||||
void Solve()
|
||||
{
|
||||
Task("%{task}");
|
||||
[+HW]
|
||||
[1-14]
|
||||
double x, y;
|
||||
cin >> x >> y;
|
||||
[1]
|
||||
if (x*x + y*y >= 4)
|
||||
if (x >= -2)
|
||||
if (y <= -x)
|
||||
[2]
|
||||
if (x*x + y*y >= 4)
|
||||
if (y >= -2)
|
||||
if (y <= x)
|
||||
[3]
|
||||
if (y >= x)
|
||||
if (y >= 0)
|
||||
if (y <= 2 - x*x)
|
||||
[4]
|
||||
if (y <= 2*x*x)
|
||||
if (x >= -1)
|
||||
if (y >= 1)
|
||||
[5]
|
||||
if (y <= 1)
|
||||
if (y >= 0)
|
||||
if (x >= -1)
|
||||
if (y >= x*x)
|
||||
[6]
|
||||
if (y <= x)
|
||||
if (y <= -x)
|
||||
if (y >= x*x - 2)
|
||||
[7]
|
||||
if (y <= 1 - x)
|
||||
if (y >= 0)
|
||||
if (x >= 0)
|
||||
if (x*x + y*y <= 1)
|
||||
[8]
|
||||
if (y >= -1)
|
||||
if (y <= x)
|
||||
if (y <= 0)
|
||||
if (x*x + y*y <= 1)
|
||||
[9]
|
||||
if (y <= 1)
|
||||
if (y >= x)
|
||||
if (x >= -1)
|
||||
if (x*x + y*y <= 1)
|
||||
[10]
|
||||
if (y <= x + 2)
|
||||
if (x <= 0)
|
||||
if (x*x + y*y <= 25)
|
||||
[11]
|
||||
if (y >= x*x - 6)
|
||||
{
|
||||
if (x*x + y*y <= 16)
|
||||
cout << "Ïðèíàäëåæèò" << endl;
|
||||
}
|
||||
else
|
||||
if (x >= 0)
|
||||
cout << "Ïðèíàäëåæèò" << endl;
|
||||
else
|
||||
cout << "Íå ïðèíàäëåæèò" << endl;
|
||||
[12]
|
||||
if (y <= sin(x))
|
||||
if (x <= 3.14/2)
|
||||
if (y >= 0)
|
||||
[13]
|
||||
if (y <= 1)
|
||||
if (x >= 0)
|
||||
if (y >= sin(x))
|
||||
[14]
|
||||
if (y <= 0)
|
||||
if (y >= -1)
|
||||
if (y <= cos(x))
|
||||
[1-4][6][10][12-14]
|
||||
cout << "Ïðèíàäëåæèò" << endl;
|
||||
else
|
||||
cout << "Íå ïðèíàäëåæèò" << endl;
|
||||
[5][7-9]
|
||||
cout << "Ïðèíàäëåæèò" << endl;
|
||||
else
|
||||
cout << "Íå ïðèíàäëåæèò" << endl;
|
||||
[1-14]
|
||||
cout << "Ïðîãðàììà çàâåðøåíà";
|
||||
[15-21]
|
||||
cout << fixed << setprecision(2);
|
||||
[15]
|
||||
double c;
|
||||
cin >> c;
|
||||
if (c > 0)
|
||||
cout << "íåò ðåøåíèé";
|
||||
else
|
||||
cout << "x = " << sqrt(-c):0:2, ' èëè x = ', -sqrt(-c):0:2);
|
||||
[16-21]
|
||||
double a, b;
|
||||
cin >> a >> b;
|
||||
[16]
|
||||
if (a == 0)
|
||||
if (b == 0)
|
||||
cout << "ëþáîå ÷èñëî";
|
||||
else
|
||||
cout << "íåò ðåøåíèé";
|
||||
else
|
||||
if (b == 0)
|
||||
cout << "x = 0.00";
|
||||
else
|
||||
cout << "x = " << b/a << " èëè x = " << -b/a;
|
||||
[17]
|
||||
if (b == 0)
|
||||
cout << "x = 0.00";
|
||||
else
|
||||
if (a == 0)
|
||||
cout << "íåò ðåøåíèé";
|
||||
else
|
||||
cout << "x = " << -b/a;
|
||||
[18]
|
||||
if (a == 0)
|
||||
if (b > 0)
|
||||
cout << "ëþáîå ÷èñëî";
|
||||
else
|
||||
cout << "íåò ðåøåíèé";
|
||||
else
|
||||
cout << "x > " << -b/a;
|
||||
[19]
|
||||
if (b == 0)
|
||||
cout << "x > 0.00 èëè x < 0.00";
|
||||
else
|
||||
if (a > 0)
|
||||
cout << "x > 0.00 èëè x < " << -b;
|
||||
else
|
||||
cout << -b << " < x < 0.00";
|
||||
[20]
|
||||
if (a == 0)
|
||||
if (b > 0)
|
||||
cout << "íåò ðåøåíèé";
|
||||
else
|
||||
cout << "x > 0.00 èëè x < 0.00";
|
||||
else
|
||||
cout << -a << " < x < 0.00";
|
||||
[21]
|
||||
if (b > 0)
|
||||
cout << "x > " << a << " èëè x < 0.00";
|
||||
else
|
||||
if (a > 0)
|
||||
cout << "0.00 < x < " << a;
|
||||
else
|
||||
cout << a << " < x < 0.00";
|
||||
[22]
|
||||
int N;
|
||||
cin >> N;
|
||||
while (N > 10)
|
||||
{
|
||||
N = N % 10;
|
||||
}
|
||||
cout << N;
|
||||
[23]
|
||||
int N;
|
||||
cin >> N;
|
||||
while (N > 10)
|
||||
{
|
||||
N = N % 100;
|
||||
}
|
||||
cout << N;
|
||||
[24]
|
||||
int N, digit, maxdigit;
|
||||
cin >> N;
|
||||
maxdigit = 10;
|
||||
while (N >= 10)
|
||||
{
|
||||
digit = N % 10;
|
||||
if (maxdigit < digit)
|
||||
maxdigit = digit;
|
||||
N = N / 10;
|
||||
}
|
||||
cout << maxdigit;
|
||||
[25]
|
||||
int N, digit, p;
|
||||
cin >> N;
|
||||
p := N % 10;
|
||||
while (N >= 10)
|
||||
{
|
||||
digit = N % 10;
|
||||
p = p * digit;
|
||||
N = N / 10;
|
||||
}
|
||||
cout << p;
|
||||
[26]
|
||||
int N, s;
|
||||
cin >> N;
|
||||
s = 1;
|
||||
while (N > 1)
|
||||
{
|
||||
if (N % 10 != 0)
|
||||
s = N % 10;
|
||||
N = N / 10;
|
||||
}
|
||||
cout << s;
|
||||
[27]
|
||||
int N, digit, maxdigit;
|
||||
cin >> N;
|
||||
maxdigit = N % 10;
|
||||
while (N > 0)
|
||||
{
|
||||
digit = N % 10;
|
||||
if (digit % 3 == 0)
|
||||
if (digit > maxdigit)
|
||||
maxdigit = digit;
|
||||
N = N / 10;
|
||||
}
|
||||
if (maxdigit == 0)
|
||||
cout << "NO";
|
||||
else
|
||||
cout << maxDigit;
|
||||
[28]
|
||||
int N, cnt;
|
||||
cin >> N;
|
||||
cnt = 0;
|
||||
while (N > 0)
|
||||
{
|
||||
cnt = cnt + N % 2;
|
||||
N = N / 10;
|
||||
}
|
||||
cout << cnt;
|
||||
[29]
|
||||
int N, R, T, d;
|
||||
cin >> N;
|
||||
R = 0;
|
||||
T = 0;
|
||||
while (N > 0)
|
||||
{
|
||||
d = N % 10;
|
||||
if (d != 2)
|
||||
{
|
||||
R = R + d * T;
|
||||
T++;
|
||||
}
|
||||
N = N / 10;
|
||||
}
|
||||
cout << T;
|
||||
[30]
|
||||
int N, m, d;
|
||||
cin >> N;
|
||||
m = 0;
|
||||
while (N > 0)
|
||||
{
|
||||
d = N % 10;
|
||||
if (d > 1)
|
||||
{
|
||||
m = d + m;
|
||||
}
|
||||
N = N / 10;
|
||||
}
|
||||
cout << m;
|
||||
[1-30]
|
||||
[-HW]
|
||||
}
|
||||
[+HW]
|
||||
[-----------------------------------------------]
|
||||
[=Python][12-15]
|
||||
[-HW]
|
||||
import math
|
||||
[1-30]
|
||||
def solve():
|
||||
task("%{task}")
|
||||
[+HW]
|
||||
[1-14]
|
||||
x = float(input())
|
||||
y = float(input())
|
||||
[1]
|
||||
if x*x + y*y >= 4:
|
||||
if x >= -2:
|
||||
if (y <= -x):
|
||||
[2]
|
||||
if x*x + y*y >= 4:
|
||||
if y >= -2:
|
||||
if y <= x:
|
||||
[3]
|
||||
if y >= x:
|
||||
if y >= 0:
|
||||
if y <= 2 - x*x:
|
||||
[4]
|
||||
if y <= 2*x*x:
|
||||
if x >= -1:
|
||||
if y >= 1:
|
||||
[5]
|
||||
if y <= 1:
|
||||
if y >= 0:
|
||||
if x >= -1:
|
||||
if y >= x*x:
|
||||
[6]
|
||||
if y <= x:
|
||||
if y <= -x:
|
||||
if y >= x*x - 2:
|
||||
[7]
|
||||
if y <= 1 - x:
|
||||
if y >= 0:
|
||||
if x >= 0:
|
||||
if x*x + y*y <= 1:
|
||||
[8]
|
||||
if y >= -1:
|
||||
if y <= x:
|
||||
if y <= 0:
|
||||
if x*x + y*y <= 1:
|
||||
[9]
|
||||
if y <= 1:
|
||||
if y >= x:
|
||||
if x >= -1:
|
||||
if x*x + y*y <= 1:
|
||||
[10]
|
||||
if y <= x + 2:
|
||||
if x <= 0:
|
||||
if x*x + y*y <= 25:
|
||||
[11]
|
||||
if y >= x*x - 6:
|
||||
if x*x + y*y <= 16:
|
||||
print("Ïðèíàäëåæèò")
|
||||
elif x >= 0:
|
||||
print("Ïðèíàäëåæèò")
|
||||
else:
|
||||
print("Íå ïðèíàäëåæèò")
|
||||
[12]
|
||||
if y <= math.sin(x):
|
||||
if x <= 3.14/2:
|
||||
if y >= 0:
|
||||
[13]
|
||||
if y <= 1:
|
||||
if x >= 0:
|
||||
if y >= math.sin(x):
|
||||
[14]
|
||||
if y <= 0:
|
||||
if y >= -1:
|
||||
if y <= math.cos(x):
|
||||
[1-4][6][10][12-14]
|
||||
print("Ïðèíàäëåæèò")
|
||||
else:
|
||||
print("Íå ïðèíàäëåæèò")
|
||||
[5][7-9]
|
||||
print("Ïðèíàäëåæèò")
|
||||
else:
|
||||
print("Íå ïðèíàäëåæèò")
|
||||
[1-14]
|
||||
print("Ïðîãðàììà çàâåðøåíà")
|
||||
[15]
|
||||
c = float(input())
|
||||
if c > 0:
|
||||
print("íåò ðåøåíèé")
|
||||
else:
|
||||
print("x = %0.2f èëè x = %0.2f" % (math.sqrt(-c), -math.sqrt(-c)))
|
||||
[16-21]
|
||||
a = float(input())
|
||||
b = float(input())
|
||||
[16]
|
||||
if a == 0:
|
||||
if b == 0:
|
||||
print("ëþáîå ÷èñëî")
|
||||
else:
|
||||
print("íåò ðåøåíèé")
|
||||
else:
|
||||
if b == 0:
|
||||
print("x = 0.00")
|
||||
else
|
||||
print("x = %0.2f èëè x = %0.2f" % (b/a, -b/a))
|
||||
[17]
|
||||
if b == 0:
|
||||
print("x = 0.00")
|
||||
else:
|
||||
if a == 0:
|
||||
print("íåò ðåøåíèé")
|
||||
else:
|
||||
print("x = %0.2f" % -b/a)
|
||||
[18]
|
||||
if a == 0:
|
||||
if b > 0:
|
||||
print("ëþáîå ÷èñëî")
|
||||
else:
|
||||
print("íåò ðåøåíèé")
|
||||
else:
|
||||
print("x = %0.2f" % -b/a)
|
||||
[19]
|
||||
if b == 0:
|
||||
print("x > 0.00 èëè x < 0.00")
|
||||
else:
|
||||
if a > 0:
|
||||
print("x > 0.00 èëè x < %0.2f" % -b)
|
||||
else:
|
||||
print("%0.2f < x < 0.00" % -b)
|
||||
[20]
|
||||
if a == 0:
|
||||
if b > 0:
|
||||
print("íåò ðåøåíèé")
|
||||
else:
|
||||
print("x > 0.00 èëè x < 0.00")
|
||||
else:
|
||||
print("%0.2f < x < 0.00" % -a)
|
||||
[21]
|
||||
if b > 0:
|
||||
print("x > %0.2f èëè x < 0.00" % a)
|
||||
else:
|
||||
if a > 0:
|
||||
print("0.00 < x < %0.2f" % a)
|
||||
else:
|
||||
print("%0.2f < x < 0.00" % a)
|
||||
[22-30]
|
||||
N = int(input())
|
||||
[22]
|
||||
while N > 10:
|
||||
N = N % 10
|
||||
print(N)
|
||||
[23]
|
||||
while N > 10:
|
||||
N = N % 100
|
||||
print(N)
|
||||
[24]
|
||||
maxdigit = 10
|
||||
while N >= 10:
|
||||
digit = N % 10
|
||||
if maxdigit < digit:
|
||||
maxdigit = digit
|
||||
N = N // 10
|
||||
}
|
||||
print(maxdigit)
|
||||
[25]
|
||||
p = N % 10
|
||||
while N >= 10:
|
||||
digit = N % 10
|
||||
p = p * digit
|
||||
N = N // 10
|
||||
print(p)
|
||||
[26]
|
||||
s = 1
|
||||
while N > 1:
|
||||
if N % 10 != 0:
|
||||
s = N % 10
|
||||
N = N // 10
|
||||
print(s)
|
||||
[27]
|
||||
maxdigit = N % 10
|
||||
while N > 0:
|
||||
digit = N % 10
|
||||
if digit % 3 == 0:
|
||||
if digit > maxdigit:
|
||||
maxdigit = digit
|
||||
N = N // 10
|
||||
if maxdigit == 0:
|
||||
print("NO")
|
||||
else:
|
||||
print(maxDigit)
|
||||
[28]
|
||||
cnt = 0
|
||||
while N > 0:
|
||||
cnt = cnt + N % 2
|
||||
N = N // 10
|
||||
print(cnt)
|
||||
[29]
|
||||
R = 0
|
||||
T = 0
|
||||
while N > 0:
|
||||
d = N % 10
|
||||
if d != 2:
|
||||
R = R + d * T
|
||||
T += 1
|
||||
N = N // 10
|
||||
print(T)
|
||||
[30]
|
||||
m = 0
|
||||
while N > 0:
|
||||
d = N % 10
|
||||
if d > 1:
|
||||
m = d + m
|
||||
N = N // 10
|
||||
print(m)
|
||||
|
||||
104
bin/PT4/Lib/PT4LinqBegin[PascalABC].txt
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
[4]
|
||||
// Абрамян М.Э. ТЕХНОЛОГИЯ LINQ НА ПРИМЕРАХ. М.: ДМК-Пресс, 2014.
|
||||
// Глава 5. Примеры решения задач из группы LinqBegin
|
||||
// 5.1. Поэлементные операции
|
||||
// LinqBegin4: правильное решение - 1 вариант (с.126)
|
||||
begin
|
||||
Task('LinqBegin4');
|
||||
var c := ReadChar;
|
||||
var a := ReadSeqString;
|
||||
try
|
||||
var r := a.SingleOrDefault(e -> (e.Length <> 0) and (e[e.Length] = c));
|
||||
write(r <> nil ? r : '');
|
||||
except
|
||||
write('Error');
|
||||
end;
|
||||
end.
|
||||
[15]
|
||||
// Абрамян М.Э. ТЕХНОЛОГИЯ LINQ НА ПРИМЕРАХ. М.: ДМК-Пресс, 2014.
|
||||
// Глава 5. Примеры решения задач из группы LinqBegin
|
||||
// 5.2. Операция агрегирования и генерирование последовательностей
|
||||
// LinqBegin15: правильное решение - 2 вариант (с.134, внизу)
|
||||
begin
|
||||
Task('LinqBegin15');
|
||||
var n := ReadInteger;
|
||||
var f := Range(1, n)
|
||||
.Aggregate(1.0, (a, e) -> a * e);
|
||||
write(f);
|
||||
end.
|
||||
[31]
|
||||
// Абрамян М.Э. ТЕХНОЛОГИЯ LINQ НА ПРИМЕРАХ. М.: ДМК-Пресс, 2014.
|
||||
// Глава 5. Примеры решения задач из группы LinqBegin
|
||||
// 5.3. Фильтрация, сортировка, теоретико-множественные операции
|
||||
// LinqBegin31: правильное решение - 1 вариант (с.145)
|
||||
begin
|
||||
Task('LinqBegin31');
|
||||
var k := ReadInteger;
|
||||
var a := ReadSeqString;
|
||||
var b := a.Take(k).Show('B');
|
||||
var c := a.Reverse()
|
||||
.TakeWhile(e ->not char.IsDigit(e[e.Length])).Show('C');
|
||||
b.Intersect(c).Show('D')
|
||||
.OrderBy(e -> e.Length).ThenBy(e -> e)
|
||||
.Write;
|
||||
end.
|
||||
[43]
|
||||
// Абрамян М.Э. ТЕХНОЛОГИЯ LINQ НА ПРИМЕРАХ. М.: ДМК-Пресс, 2014.
|
||||
// Глава 5. Примеры решения задач из группы LinqBegin
|
||||
// 5.4. Проецирование
|
||||
// LinqBegin43: правильное решение с отладочной печатью (с.151, внизу)
|
||||
begin
|
||||
Task('LinqBegin43');
|
||||
var k := ReadInteger;
|
||||
ReadSeqString
|
||||
.SelectMany((e, n) ->
|
||||
e.Where((c, i) -> i mod 2 = (n < k ? 0 : 1)).Show())
|
||||
.Reverse
|
||||
.Write;
|
||||
end.
|
||||
[52]
|
||||
// Абрамян М.Э. ТЕХНОЛОГИЯ LINQ НА ПРИМЕРАХ. М.: ДМК-Пресс, 2014.
|
||||
// Глава 5. Примеры решения задач из группы LinqBegin
|
||||
// 5.5. Объединение
|
||||
// LinqBegin52: правильное решение - 1 вариант (с.159, середина)
|
||||
begin
|
||||
Task('LinqBegin52');
|
||||
var a := ReadSeqString()
|
||||
.Where(e -> char.IsDigit(e[e.Length])).Show('A');
|
||||
var b := ReadSeqString()
|
||||
.Where(e -> char.IsDigit(e[e.Length])).Show('B');
|
||||
a.SelectMany(e1 -> b.Select(e2 -> e1 + '=' + e2))
|
||||
.OrderBy(e -> e.Split('=')[0])
|
||||
.ThenByDescending(e -> e.Split('=')[1])
|
||||
.Write;
|
||||
end.
|
||||
[54]
|
||||
// Абрамян М.Э. ТЕХНОЛОГИЯ LINQ НА ПРИМЕРАХ. М.: ДМК-Пресс, 2014.
|
||||
// Глава 5. Примеры решения задач из группы LinqBegin
|
||||
// 5.5. Объединение
|
||||
// LinqBegin54: правильное решение (с.170, середина)
|
||||
begin
|
||||
Task('LinqBegin54');
|
||||
ReadSeqString().GroupJoin(ReadSeqString(),
|
||||
e -> e[1], e -> e[1],
|
||||
(e1, ee2) -> ee2.DefaultIfEmpty('')
|
||||
.Select(e -> e1 + '.' + e))
|
||||
.SelectMany(e -> e).OrderBy(e -> e).Show()
|
||||
.Write;
|
||||
end.
|
||||
[60]
|
||||
// Абрамян М.Э. ТЕХНОЛОГИЯ LINQ НА ПРИМЕРАХ. М.: ДМК-Пресс, 2014.
|
||||
// Глава 5. Примеры решения задач из группы LinqBegin
|
||||
// 5.6. Группировка
|
||||
// LinqBegin60: правильное решение - 1 вариант (с.175, внизу)
|
||||
begin
|
||||
// ===ОШИБКА КОМПИЛЯЦИИ===
|
||||
Task('LinqBegin60');
|
||||
ReadSeqString().GroupBy(e -> e[1])
|
||||
.OrderByDescending(e -> e.Sum(s -> s.Length)).ThenBy(e -> e.Key)
|
||||
.Select(e -> e.Sum(s -> s.Length) + '-' + e.Key)
|
||||
.Write;
|
||||
end.
|
||||
|
||||
|
||||
|
||||
157
bin/PT4/Lib/PT4LinqObj[PascalABC].txt
Normal file
|
|
@ -0,0 +1,157 @@
|
|||
[4]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 6. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqObj
|
||||
// 6.1. Ïðîñòîå çàäàíèå íà îáðàáîòêó îòäåëüíîé ïîñëåäîâàòåëüíîñòè
|
||||
// LinqObj4: ïðàâèëüíîå ðåøåíèå (ñ.191, âíèçó)
|
||||
begin
|
||||
// === ÎØÈÁÊÀ ÊÎÌÏÈËßÖÛÛ ===
|
||||
Task('LinqObj4');
|
||||
var r := ReadAllLines(ReadString)
|
||||
.Select(e ->
|
||||
begin
|
||||
var s := e.Split(' ');
|
||||
result := new class (
|
||||
hours := StrToInt(s[2]),
|
||||
code := StrToInt(s[3])
|
||||
);
|
||||
end)
|
||||
.GroupBy(e -> e.code,
|
||||
(k, ee) -> new class(k, sum := ee.Sum(c -> c.hours) ))
|
||||
.OrderByDescending(e -> e.sum).ThenBy(e -> e.k)
|
||||
.Select(e -> IntToStr(e.sum) + ' ' + IntToStr(e.k));
|
||||
WriteAllLines(ReadString, r);
|
||||
end.
|
||||
[41]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 6. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqObj
|
||||
// 6.2. Áîëåå ñëîæíûå çàäàíèÿ íà îáðàáîòêó îòäåëüíûõ ïîñëåäîâàòåëüíîñòåé
|
||||
// LinqObj41: ïðàâèëüíîå ðåøåíèå (ñ.196)
|
||||
begin
|
||||
// === ÎØÈÁÊÀ ÊÎÌÏÈËßÖÛÛ ===
|
||||
Task('LinqObj41');
|
||||
var m := ReadInteger;
|
||||
var r := ReadAllLines(ReadString)
|
||||
.Select(e ->
|
||||
begin
|
||||
var s := e.Split(' ');
|
||||
result := new class (
|
||||
brand := StrToInt(s[0]),
|
||||
street := s[1],
|
||||
price := StrToInt(s[3])
|
||||
);
|
||||
end)
|
||||
.Where(e -> e.brand = m)
|
||||
.GroupBy(e -> e.street,
|
||||
(k, ee) -> new class ( street := k, max := ee.Max(e -> e.price) ))
|
||||
.OrderBy(e -> e.max).ThenBy(e -> e.street)
|
||||
.Select(e -> IntToStr(e.max) + ' ' + IntToStr(e.street))
|
||||
.DefaultIfEmpty('Íåò');
|
||||
WriteAllLines(ReadString, r);
|
||||
end.
|
||||
[61]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 6. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqObj
|
||||
// 6.2. Áîëåå ñëîæíûå çàäàíèÿ íà îáðàáîòêó îòäåëüíûõ ïîñëåäîâàòåëüíîñòåé
|
||||
// LinqObj61: ïðàâèëüíîå ðåøåíèå (ñ.199-200)
|
||||
begin
|
||||
// === ÎØÈÁÊÀ ÂÐÅÌÅÍÈ ÂÛÏÎËÍÅÍÈß ===
|
||||
Task('LinqObj61');
|
||||
var subjects : array of string := ( 'Àëãåáðà', 'Ãåîìåòðèÿ', 'Èíôîðìàòèêà' );
|
||||
var culture := new System.Globalization.CultureInfo('en-US');
|
||||
var r := ReadAllLines(ReadString)
|
||||
.Select(e ->
|
||||
begin
|
||||
var s := e.Split(' ');
|
||||
result := new class
|
||||
(
|
||||
name := s[0] + ' ' + s[1],
|
||||
subj := s[3],
|
||||
mark := StrToInt(s[4])
|
||||
);
|
||||
end)
|
||||
.GroupBy(e -> e.name, (k, ee) -> new class
|
||||
(
|
||||
name := k,
|
||||
avrs := subjects
|
||||
.GroupJoin(ee, s -> s, e -> e.subj,
|
||||
(s1, ee1) -> ee1.Select(e1 -> e1.mark)
|
||||
.DefaultIfEmpty().Average())
|
||||
))
|
||||
.OrderBy(e -> e.name)
|
||||
.Select(e -> e.name + e.avrs.Aggregate('',
|
||||
(a, d) -> a + ' ' + d.ToString('f2', culture)));
|
||||
WriteAllLines(ReadString, r);
|
||||
end.
|
||||
[98]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 6. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqObj
|
||||
// 6.3. Îáðàáîòêà âçàèìîñâÿçàííûõ ïîñëåäîâàòåëüíîñòåé
|
||||
// LinqObj98: ïðàâèëüíîå ðåøåíèå (ñ.215, ââåðõó)
|
||||
begin
|
||||
Task('LinqObj98');
|
||||
var B := ReadAllLines(ReadString)
|
||||
.Select(e ->
|
||||
begin
|
||||
var s := e.Split(' ');
|
||||
result := new class
|
||||
(
|
||||
art := s[1],
|
||||
cat := s[2]
|
||||
);
|
||||
end);
|
||||
var C := ReadAllLines(ReadString)
|
||||
.Select(e ->
|
||||
begin
|
||||
var s := e.Split(' ');
|
||||
result := new class
|
||||
(
|
||||
discount := StrToInt(s[0]),
|
||||
code := s[1],
|
||||
shop := s[2]
|
||||
);
|
||||
end);
|
||||
var D := ReadAllLines(ReadString)
|
||||
.Select(e ->
|
||||
begin
|
||||
var s := e.Split(' ');
|
||||
result := new class
|
||||
(
|
||||
art := s[0],
|
||||
price := StrToInt(s[1]),
|
||||
shop := s[2]
|
||||
);
|
||||
end);
|
||||
var E := ReadAllLines(ReadString)
|
||||
.Select(e ->
|
||||
begin
|
||||
var s := e.Split(' ');
|
||||
result := new class
|
||||
(
|
||||
code := s[0],
|
||||
art := s[1],
|
||||
shop := s[2]
|
||||
);
|
||||
end);
|
||||
var discounts := E.Join(B, e1 -> e1.art, e2 -> e2.art,
|
||||
(e1, e2) -> new class ( e1.code, e1.art, e1.shop, e2.cat ))
|
||||
.Join(D, e1 -> e1.art + e1.shop, e2 -> e2.art + e2.shop,
|
||||
(e1, e2) -> new class ( e1.code, e1.shop, e1.cat, e2.price ))
|
||||
.GroupJoin(C, e1 -> e1.code + e1.shop, e2 -> e2.code + e2.shop,
|
||||
(e1, ee2) -> new class
|
||||
(
|
||||
cat_shop := e1.cat + ' ' + e1.shop,
|
||||
discount := ee2.Select(e -> e.discount)
|
||||
.FirstOrDefault() * e1.price div 100
|
||||
));
|
||||
var cats := B.GroupBy(e -> e.cat, (k, ee) -> k);
|
||||
var shops := E.GroupBy(e -> e.shop, (k, ee) -> k);
|
||||
var r := cats
|
||||
.SelectMany(e1 -> shops.Select(e2 -> e1 + ' ' + e2))
|
||||
.OrderBy(e -> e)
|
||||
.GroupJoin(discounts, e1 -> e1, e2 -> e2.cat_shop,
|
||||
(e1, ee2) -> e1 + ' ' +
|
||||
IntToStr(ee2.Select(e -> e.discount).DefaultIfEmpty(-1).Sum()));
|
||||
WriteAllLines(ReadString, r);
|
||||
end.
|
||||
|
||||
|
||||
185
bin/PT4/Lib/PT4LinqXml[PascalABC].txt
Normal file
|
|
@ -0,0 +1,185 @@
|
|||
[10]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 7. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqXml
|
||||
// 7.1. Ñîçäàíèå XML-äîêóìåíòà
|
||||
// LinqXml10: ïðàâèëüíîå ðåøåíèå (ñ.227)
|
||||
begin
|
||||
Task('LinqXml10');
|
||||
var a := ReadAllLines(ReadString);
|
||||
var d := new XDocument(
|
||||
new XDeclaration(nil, 'windows-1251', nil),
|
||||
new XElement('root',
|
||||
a.Select(e -> e.StartsWith('data:') ?
|
||||
new XProcessingInstruction('instr', e.Substring(5)) as XNode:
|
||||
new XElement('line', e) as XNode)));
|
||||
d.Save(ReadString);
|
||||
end.
|
||||
[20]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 7. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqXml
|
||||
// 7.2. Àíàëèç ñîäåðæèìîãî XML-äîêóìåíòà
|
||||
// LinqXml20: ïðàâèëüíîå ðåøåíèå (ñ.235-236)
|
||||
begin
|
||||
Task('LinqXml20');
|
||||
var d := XDocument.Load(ReadString);
|
||||
foreach var e1 in d.Root.Elements do
|
||||
begin
|
||||
write(e1.Name.LocalName);
|
||||
var max := e1.Descendants
|
||||
.Select(e -> e.Attributes.Count())
|
||||
.DefaultIfEmpty(-1).Max;
|
||||
write(max);
|
||||
var a := e1.Descendants
|
||||
.Where(e -> e.Attributes.Count() = max)
|
||||
.Select(e -> e.Name.LocalName)
|
||||
.OrderBy(e -> e)
|
||||
.DefaultIfEmpty('no child');
|
||||
foreach var e in a do
|
||||
write(e);
|
||||
end
|
||||
end.
|
||||
[28]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 7. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqXml
|
||||
// 7.3. Ïðåîáðàçîâàíèå XML-äîêóìåíòà
|
||||
// LinqXml28: ïðàâèëüíîå ðåøåíèå (ñ.238)
|
||||
begin
|
||||
Task('LinqXml28');
|
||||
var name := ReadString;
|
||||
var d := XDocument.Load(name);
|
||||
d.Root.Elements().Elements().Elements()
|
||||
.Nodes().OfType&<XText>().Remove();
|
||||
d.Save(name);
|
||||
end.
|
||||
[32]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 7. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqXml
|
||||
// 7.3. Ïðåîáðàçîâàíèå XML-äîêóìåíòà
|
||||
// LinqXml32: ïðàâèëüíîå ðåøåíèå (ñ.242)
|
||||
begin
|
||||
Task('LinqXml32');
|
||||
var name := ReadString;
|
||||
var s1 := ReadString;
|
||||
var s2 := ReadString;
|
||||
var d := XDocument.Load(name);
|
||||
foreach var e in d.Root.Elements().Elements(s1) do
|
||||
e.AddBeforeSelf(new XElement(s2,
|
||||
e.LastAttribute, e.Elements().FirstOrDefault()));
|
||||
d.Save(name);
|
||||
end.
|
||||
[37]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 7. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqXml
|
||||
// 7.3. Ïðåîáðàçîâàíèå XML-äîêóìåíòà
|
||||
// LinqXml37: ðåøåíèå ñ èñïîëüçîâàíèåì âûðàæåíèÿ çàïðîñà (ñ.244)
|
||||
begin
|
||||
Task('LinqXml37');
|
||||
var name := ReadString;
|
||||
var d := XDocument.Load(name);
|
||||
var a := d.Root.Elements().Elements()
|
||||
.Where(e -> not e.IsEmpty);
|
||||
foreach var e in a do
|
||||
e.Value := e.Value;
|
||||
d.Save(name);
|
||||
end.
|
||||
[50]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 7. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqXml
|
||||
// 7.4. Ïðåîáðàçîâàíèå òèïîâ ïðè îáðàáîòêå XML-äîêóìåíòà
|
||||
// LinqXml50: ïðàâèëüíîå ðåøåíèå (ñ.254)
|
||||
begin
|
||||
Task('LinqXml50');
|
||||
var name := ReadString;
|
||||
var d := XDocument.Load(name);
|
||||
d.Root.AddFirst(new XElement('total-time',
|
||||
d.Root.Elements()
|
||||
.Select(e ->
|
||||
begin
|
||||
var a := e.Attribute('time');
|
||||
if a = nil then
|
||||
result := new TimeSpan(24, 0, 0)
|
||||
else
|
||||
result := TimeSpan(a);
|
||||
end)
|
||||
.Aggregate(TimeSpan.Zero, (a, e) -> a + e)));
|
||||
d.Save(name);
|
||||
end.
|
||||
[57]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 7. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqXml
|
||||
// 7.5. Ðàáîòà ñ ïðîñòðàíñòâàìè èìåí XML-äîêóìåíòà
|
||||
// LinqXml57: ïðàâèëüíîå ðåøåíèå (ñ.263)
|
||||
begin
|
||||
Task('LinqXml57');
|
||||
var name := ReadString;
|
||||
var s1 := ReadString;
|
||||
var s2 := ReadString;
|
||||
var d := XDocument.Load(name);
|
||||
d.Root.Add(new XAttribute(XNamespace.Xmlns + 'x', s1),
|
||||
new XAttribute(XNamespace.Xmlns + 'y', s2));
|
||||
var ns1 := XNamespace(s1);
|
||||
var ns2 := XNamespace(s2);
|
||||
foreach var e in d.Descendants() do
|
||||
begin
|
||||
var ns := e.Ancestors().Count() <= 1 ? ns1 : ns2;
|
||||
e.Name := ns + e.Name.LocalName;
|
||||
end;
|
||||
d.Descendants().Attributes('xmlns').Remove();
|
||||
d.Save(name);
|
||||
end.
|
||||
[61]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 7. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqXml
|
||||
// 7.6. Äîïîëíèòåëüíûå çàäàíèÿ íà îáðàáîòêó XML-äîêóìåíòîâ
|
||||
// LinqXml61: ïðàâèëüíîå ðåøåíèå (ñ.268, ââåðõó)
|
||||
begin
|
||||
Task('LinqXml61');
|
||||
var name := ReadString;
|
||||
var d := XDocument.Load(name);
|
||||
var ns := d.Root.Name.Namespace;
|
||||
d.Root.ReplaceNodes(d.Root.Elements()
|
||||
.Select(e -> new XElement(ns + 'time',
|
||||
new XAttribute('id', e.Element(ns + 'id').Value),
|
||||
new XAttribute('year',
|
||||
(DateTime(e.Element(ns + 'date'))).Year),
|
||||
new XAttribute('month',
|
||||
(DateTime(e.Element(ns + 'date'))).Month),
|
||||
e.Element(ns + 'time').Value)));
|
||||
d.Save(name);
|
||||
end.
|
||||
[82]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
// Ãëàâà 7. Ïðèìåðû ðåøåíèÿ çàäà÷ èç ãðóïïû LinqXml
|
||||
// 7.6. Äîïîëíèòåëüíûå çàäàíèÿ íà îáðàáîòêó XML-äîêóìåíòîâ
|
||||
// LinqXml82: ïðàâèëüíîå ðåøåíèå (ñ.276)
|
||||
begin
|
||||
// ÎØÈÁÊÀ ÊÎÌÏÈËßÖÈÈ
|
||||
Task('LinqXml82');
|
||||
var name := ReadString;
|
||||
var d := XDocument.Load(name);
|
||||
var ns := d.Root.Name.Namespace;
|
||||
var a := d.Root.Elements()
|
||||
.Select(e ->
|
||||
begin
|
||||
var s := e.Name.LocalName.Substring(4).Split('-');
|
||||
result := new class
|
||||
(
|
||||
house := StrToInt(s[0]),
|
||||
floor := (StrToInt(s[1]) - 1) mod 36 div 4 + 1,
|
||||
debt := double(e)
|
||||
);
|
||||
end);
|
||||
var floors := Range(1, 9);
|
||||
d.Root.ReplaceNodes(a.OrderBy(e -> e.house)
|
||||
.GroupBy(e -> e.house,
|
||||
(k, ee) -> new XElement(ns + ('house' + k),
|
||||
floors.GroupJoin(ee, e1 -> e1, e2 -> e2.floor,
|
||||
(e1, ee2) -> new XElement(ns + ('floor' + e1),
|
||||
new XAttribute('count', ee2.Count()),
|
||||
new XAttribute('total-debt',
|
||||
Math.Round(ee2.Sum(e -> e.debt), 2)))))));
|
||||
d.Save(name);
|
||||
end.
|
||||
|
||||
|
||||
|
||||
9
bin/PT4/Lib/PT4_.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
[=PascalABC]
|
||||
[0]
|
||||
uses PT4;
|
||||
[1-999]
|
||||
|
||||
begin
|
||||
Task('%{task}');
|
||||
|
||||
end.
|
||||
9
bin/PT4/Lib/PT4_Exam.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
[=PascalABC]
|
||||
[0]
|
||||
uses PT4Exam;
|
||||
[1-999]
|
||||
|
||||
begin
|
||||
Task('%{task}');
|
||||
|
||||
end.
|
||||
23
bin/PT4/Lib/PT4_LinqB.txt
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
[=PascalABC]
|
||||
[0]
|
||||
uses PT4, PT4Linq;
|
||||
|
||||
(*
|
||||
При решении задач группы LinqObj доступны следующие
|
||||
дополнительные методы, определенные в модуле PT4Linq:
|
||||
|
||||
ReadSeqInteger() - ввод числовой последовательности;
|
||||
ReadSeqString() - ввод строковой последовательности;
|
||||
Write() (метод расширения) - вывод последовательности;
|
||||
Show() и Show(cmt) (методы расширения) - отладочная печать
|
||||
последовательности, cmt - строковый комментарий;
|
||||
Show(e -> str) и Show(cmt, e -> str) (методы расширения) -
|
||||
отладочная печать строковых значений str, полученных
|
||||
из элементов e последовательности, cmt - строковый комментарий.
|
||||
*)
|
||||
[1-999]
|
||||
|
||||
begin
|
||||
Task('%{task}');
|
||||
|
||||
end.
|
||||
24
bin/PT4/Lib/PT4_LinqO.txt
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
[=PascalABC]
|
||||
[0]
|
||||
uses PT4, PT4Linq;
|
||||
|
||||
(*
|
||||
При решении задач группы LinqObj доступны следующие
|
||||
дополнительные методы, определенные в модуле PT4Linq:
|
||||
|
||||
ReadAllLines(name) - функция, которая возвращает последовательность строк,
|
||||
содержащихся в текстовом файле с имененм name;
|
||||
WriteAllLines(name, seq) - процедура, которая записывает в текстовый файл
|
||||
с именем name последотвальеность строк seq;
|
||||
Show() и Show(cmt) (методы расширения) - отладочная печать
|
||||
последовательности, cmt - строковый комментарий;
|
||||
Show(e -> str) и Show(cmt, e -> str) (методы расширения) -
|
||||
отладочная печать строковых значений str, полученных
|
||||
из элементов e последовательности, cmt - строковый комментарий.
|
||||
*)
|
||||
[1-999]
|
||||
|
||||
begin
|
||||
Task('%{task}');
|
||||
|
||||
end.
|
||||
23
bin/PT4/Lib/PT4_LinqX.txt
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
[=PascalABC]
|
||||
[0]
|
||||
{$reference System.Xml.Linq.dll}
|
||||
uses PT4, PT4Linq, System, System.Xml.Linq;
|
||||
|
||||
(*
|
||||
При решении задач группы LinqObj доступны следующие
|
||||
дополнительные методы, определенные в модуле PT4Linq:
|
||||
|
||||
ReadAllLines(name) - функция, которая возвращает последовательность строк,
|
||||
содержащихся в текстовом файле с имененм name;
|
||||
Show() и Show(cmt) (методы расширения) - отладочная печать
|
||||
последовательности, cmt - строковый комментарий;
|
||||
Show(e -> str) и Show(cmt, e -> str) (методы расширения) -
|
||||
отладочная печать строковых значений str, полученных
|
||||
из элементов e последовательности, cmt - строковый комментарий.
|
||||
*)
|
||||
[1-999]
|
||||
|
||||
begin
|
||||
Task('%{task}');
|
||||
|
||||
end.
|
||||
1
bin/PT4/LinqBloadpabc.dat
Normal file
|
|
@ -0,0 +1 @@
|
|||
=|||%f|%x<0_LinqB>%X<0_LinqB>
|
||||
1
bin/PT4/LinqOloadpabc.dat
Normal file
|
|
@ -0,0 +1 @@
|
|||
=|||%f|%x<0_LinqO>%X<0_LinqO>
|
||||
1
bin/PT4/LinqXloadpabc.dat
Normal file
|
|
@ -0,0 +1 @@
|
|||
=|||%f|%x<0_LinqX>%X<0_LinqX>
|
||||
|
|
@ -3,9 +3,9 @@ PCKey=
|
|||
RegNumber=0000000000000000000000
|
||||
RegLabel=
|
||||
[Packages]
|
||||
PABC1=1
|
||||
PABC1=0
|
||||
[EXE files]
|
||||
PABC1=D:\PascalABC.NET\!PABC_SVN\bin\PascalABCNET.exe
|
||||
PABC1=
|
||||
[Work Directory]
|
||||
Path=C:\PABCWork.NET
|
||||
Label=Ó÷åíèê
|
||||
|
|
|
|||
|
|
@ -18,4 +18,5 @@ P.ptCommentQuote{text-align:left;margin-left:120px;margin-top:0px;margin-bottom:
|
|||
P.ptCommentContinue{text-align:justify;}
|
||||
P.ptFooter{text-align:right;font-size:10pt;font-style:italic;margin-right:0px;}
|
||||
SPAN.ptSpecial{font-family:"Arial";}
|
||||
|
||||
PRE{font-family:"Courier New";text-align:left;font-size:10pt;text-indent:0px;margin-top:5px; margin-right:10px; margin-bottom:0px; margin-left:60px;}
|
||||
P.ptPicture{font-family:Arial, sans-serif;margin-top: 5px;margin-bottom: 5px;margin-left: 60px;font-size: small;color: #000080;text-indent: 0pt;text-align: justify}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
N“票ª|10PABC1 NC:\Program Files (x86)\PascalABC.NET\PT4 NV8Â˜í«·®®#"%'%&&*&$#"%'%&&*&6b3:'%&&*&$#"%'%8>>674;7?<?8<98<257566:643257566:6
|
||||
N“票ª|10PABC2 NC:\Program Files (x86)\PascalABC.NET\PT4 NV8Â˜í«·®®#"%'%&&*&$#"%'%&&*&6b3:'%&&*&$#"%'%8>>674;7?<?8<98<257566:643257566:6
|
||||
|
|
@ -19,7 +19,7 @@ loadver=4
|
|||
==cc|âëîæåííûå öèêëû|16
|
||||
==p|ïðîöåäóðû áåç ïàðàìåòðîâ|4
|
||||
==pp|ïðîöåäóðû ñ ïàðàìåòðàìè|18
|
||||
=|||%f.pas|uses PT4;%#%#begin%# Task('%f');%#%#end.
|
||||
=|||%f.pas|%x<0_>%X<0_>
|
||||
==Begin
|
||||
==Integer
|
||||
==For
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ loadver=4
|
|||
==cc|nested loops|16
|
||||
==p|procedures without parameters|4
|
||||
==pp|procedures with the parameters|18
|
||||
=|||%f.pas|uses PT4;%#%#begin%# Task('%f');%#%#end.
|
||||
=|||%f.pas|%x<0_>%X<0_>
|
||||
==Begin
|
||||
==Integer
|
||||
==For
|
||||
|
|
|
|||