i (i<256) . 0.
set_byte 0 255. Z. Z .
, Z, . . , Z.
, , 10.1.
Program p10_1;
type set_byte=set of byte;
var z: set_byte; { }
m:byte; { }
k: integer;{ }
begin writeln(' :');
read(m); { }
z:=[]; { }
while m <>0 do
begin z:= z+[m];
{ }
read(m) { }
End;
k:=0;
writeln(' :');
for m:= 255 downto 1 do
if m in z then begin write(m,' '); inc(k) end;
Writeln;
writeln(' : ',k)
End.
15 3 18 20 4 2 8 3 2 0, , 10.1a.
:
20 18 15 8 4 3 2
: 7
, . , , .
. , , , , . , , .
, , . . , , .
, , , , , .
: , , . . . . , , . , , . 10.2.
|
|
{ , . - , . , , . }
Program p10_2;
type Set_let = set of char; { }
var let, { , }
sg,{ }
all: set_let;{ }
c: char; { }
sh: boolean; { }
begin { }
let:=['A'..'Z','a'..'z'];
sg:= ['0'..'9'];
all:= let+sg;
writeln(' :');
read (c); { }
sh:= c in let;
read (c); { }
while (c <> ' ') and sh do
begin sh:= c in all;
Read (c)
End;
If sh then
writeln(' - ')
Else
writeln (' ')
End.
. , N. , , .
, . 2 N, , .
, . . , resheto simple ( 10.3a)
onst N = 255;
type resheto = set of 2..N;
var simple: resheto; { }
simple:=[2..N] simple 2..N. . , 2.
. simple , , , , .
SQRT(N+1) simple . , 10.3, .
{ , . , " ". .}
Program p10_3;
|
|
const n = 40; { }
type resheto = set of 2..n;
var simple: resheto;{ }
i, { , }
k, { }
l: integer; { n}
Begin writeln;
writeln (' , ',n, ' ');
simple:=[2..n];
{ , }
l:= trunc(sqrt(n+1));
k:= 1;
while k <= l do
begin repeat k:= k+1 until k in simple;
{ }
write(k:3,' ');
for i:= 2 to n div k do
{ ,
k}
simple:= simple - [k*i]
End;
for k:= k+1 to n do
if k in simple then write(k:3,' ')
End.
n 40, :
40: 2 3 5 7 11 13 17 19 23 29 31 37.
, , . 10.4 , .
{ , .}
Program p10_4;
var m, { }
n: word; { }
i: integer; { }
l: boolean; { }
{ eqf false, }
function eqf (n: word): boolean;
var p, s, q: word;
z: set of 0..9; { 0 9}
begin p:= n;{ }
eqf:= false;
z:=[]; {, }
while p <> 0 do
begin s:= p div 10; {}
q:= p-s*10; {, }
if q in z then begin eqf:= true; exit end
else z:= z+[q];
p:= s
End;
End;
Begin writeln;
writeln (' :'); readln(m,n);
writeln(', : ');
l:= false;
for i:= m to n do
If not eqf(i)
then begin write(i,' '); l:= true end;
if not l then writeln(' ')
End.
. , . , , . , , .
332 345, :
, : 340 341 342 345.
, , , .. . .
, M , , MM , . M MM , , .. . M1.
, (M1) M MM.
, . 10.5 , .
{ , .. , }
|
|
Program p10_5;
type set_let = set of char;
var m1,{ , }
m, { , }
Mm: set_let;
{ , }
s: string; { }
c: char; { }
i: byte; { }
Begin
writeln(' :');
Readln(s);
{ }
m:=[]; mm:=[];
for i:= 1 to length(s)
do begin c:= s[i];
If c in m
then { }
mm:= mm+[c]
else { }
m:= m+[c]
End;
m1:= m-mm; { }
writeln(' :');
if m1 = [] then writeln ('')
Else
for c:= chr(0) to chr (255)
do if c in m1 then write(c,' ');
Writeln;
End.
, , . , s m, . 10.6.
, |
procedure settex (var s: string; var m: set_let);
var i: byte;
begin m:=[];
for i:= 1 to length (s) do
m:= m + [s[i]]
End
, . .
, . , .
, , , .
, , . mlat - , mrus - , m - . , , , m*(mrus+mlat). , , 10.7.
Program p10_7;
type set_let = set of char;
var mlat, { }
mrus, { }
m: set_let;{ }
s: string; { }
c: char; { }
{ }
procedure settex (var s: string; var m: set_let);
var i: byte;
begin m:=[];
for i:= 1 to length (s) do m:= m + [s[i]]
End;
Begin
mlat:= ['A'..'Z','a'..'z'];
mrus:= [''..'',''..''];
writeln; writeln(' :'); readln(s);
Settex(s,m);
writeln(' :');
for c:= chr(0) to chr (255) do