Π Π°Π±ΠΎΡΠ° Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌΠΈ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ, Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ, ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
ΠΠ½Π°ΡΠ°Π»Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, Π²Π²Π΅Π΄Π΅Π½ΠΎ Π»ΠΈ ΠΎΠ±ΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ. ΠΡΠ»ΠΈ Π²ΡΠ΅ ΠΎΠ½ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ, ΡΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΡΠ΅ΡΡ ΠΌΠ°ΡΠΈΠ½ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠ°ΡΠΊΠΈ. ΠΠ΅Π»Π°Π΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΊΠ»ΠΎΠ², ΡΡΠ΅Π΄ΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌ ΠΈΡ ΡΠΎ Π²ΡΠΎΡΡΠΌ. ΠΠ°ΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²ΡΠΎΡΠ³ΠΎ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΈ ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ Π·Π°Π½ΠΎΡΡΡΡΡ Π² Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠΈΠ². ΠΡΠ»ΠΈ ΡΠ΅ΠΊΡΡ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π Π°Π±ΠΎΡΠ° Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌΠΈ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ, Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ, ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
1 ΠΠ°Π΄Π°Π½ΠΈΠ΅ № 1.
1.1 ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
1.2 Π Π°Π±ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
2 ΠΠ°Π΄Π°Π½ΠΈΠ΅ № 2.
2.1 ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
2.2 Π Π°Π±ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
3 ΠΠ°Π΄Π°Π½ΠΈΠ΅ № 3.
3.1 ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
3.2 Π Π°Π±ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
4 ΠΠ°Π΄Π°Π½ΠΈΠ΅ № 4.
4.1 Π Π°Π±ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
5 ΠΠ°Π΄Π°Π½ΠΈΠ΅ № 5.
5.1 ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
5.2 Π Π°Π±ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
6 ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
7 Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ.
8 ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π
9 ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
10 ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
11 ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
12 ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
1 ΠΠ°Π΄Π°Π½ΠΈΠ΅ № 1
ΠΠΎΠ΄ΡΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»ΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΡΡ Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ Π±ΡΠΊΠ²Ρ ΠΈ ΠΎΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΠΈΡ ΡΡ ΡΠΈΡΡΠΎΠΉ. ΠΠ°ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΡΠ»ΠΎΠ²Π°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ Π·Π½Π°ΠΊ.
1.1 ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π Π°Π±ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΡΠ΅Π»ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Begin
ΠΠ°Π΄Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΠΎ Π½Π°Π»ΠΈΡΠΈΠΈ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΈ ΠΏΡΠΈΠ·Π½Π°ΠΊΠ° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Vvod:=False;
Cont:=True;
while Cont do
Begin
ΠΡΠΌΡΠ°Π΅ΠΌ ΡΠΊΡΠ°Π½ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π²Π²ΠΎΠ΄Π° ΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
clrscr;
ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΌΠ΅Π½Ρ Ρ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 1.
Π ΠΈΡΡΠ½ΠΎΠΊ 1 — Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΌΠ΅Π½Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
menu;
write ('Vvedite komandu: ');
Π‘ΡΠΈΡΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Rem.
readln (Rem);
Π Π°ΡΠΏΠΎΠ·Π½Π°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ Π²ΡΠ±Π΅ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π·Π½Π°ΠΊΠΎΠΌ.
case Rem of
'0': Cont:=False;
'1': begin
Π‘ΡΠΈΡΡΠ²Π°Π΅ΠΌ Π²Π²Π΅Π΄Π΅Π½Π½ΡΡ ΡΡΡΠΎΠΊΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Txt ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ Vvod Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ True, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Ρ, ΡΡΠΎ ΡΠ΅ΠΊΡΡ Π²Π²Π΅Π΄Π΅Π½.
writeln ('Text:');
readln (Txt);
Vvod:=True;
end;
'2': begin
ΠΡΠ»ΠΈ ΡΠ΅ΠΊΡΡ Π½Π΅ Π²Π²Π΅Π΄Π΅Π½ ΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ»ΠΎΠ²Π° Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π±ΡΠΊΠ², ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π² Π°Π»ΡΠ°Π²ΠΈΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
if Not Vvod then
writeln ('Ne vveden text')
else
alfslovo (Txt);
end;
'3': begin
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ, ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΡ ΡΠ»ΠΎΠ² Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ Π΄Π²Π° Π·Π½Π°ΠΊΠ°.
if Not Vvod then
writeln ('Ne vveden text')
else
colsimmslovo (Txt);
end;
'4': begin
ΠΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π΅ΡΠ»ΠΈ ΠΆΠ΅ ΠΎΠ½Π° Π½Π΅ Π²Π²Π΅Π΄Π΅Π½Ρ, Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
if Not Vvod then
writeln ('Ne vveden text')
else
writeln (Txt);
end
else
ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Rem Π½Π΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ, ΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ ΡΡΠΎ Π²Π²Π΅Π΄Π΅Π½Π° Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°.
writeln ('Neizvestnaya komanda');
end;
ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ΅ Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ ENTER Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ΄Π΅Ρ Π²Π²Π΅ΡΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
if Cont then
begin
write ('Nagmite ENTER dlya vvoda sleduyuschei komandy… ');
readln;
end
else
clrscr;
end;
end.
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ²Π° Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π±ΡΠΊΠ², Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΡ ΡΡ Π² Π°Π»ΡΠ°Π²ΠΈΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΠ½Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΡΡΠΎΠΊΡ S ΠΈ ΡΡΠΈΡΠ°Π΅Ρ Π² Π½Π΅ΠΉ ΡΠ»ΠΎΠ²Π°, Π² ΠΊΠΎΡΠΎΡΡΡ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠ΅ Π±ΡΠΊΠ²Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΠΏΠΎ Π°Π»ΡΠ°Π²ΠΈΡΡ ΠΈ ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ ΡΠ°ΠΊΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΡΠΊΠ².
procedure alfslovo (S: Stroka250);
var
ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ F ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ True, ΡΠΎ ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ.
F: boolean;
Len: Byte;
I: Byte;
Counter: Byte;
FSlovo, Buf: Slovo;
Index, L: Byte;
MaxCol: Byte;
begin
Len:=Length (S);
ΠΡΡΠ°Π²Π»ΡΠ΅ΠΌ Π² ΠΊΠΎΠ½Π΅Ρ ΡΡΡΠΎΠΊΠΈ ΠΏΡΠΎΠ±Π΅Π», Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ ΡΠ°ΠΌ Π½Π΅Ρ.
if S[Len]<>' ' then
begin
S:=S+' ';
Inc (Len);
end;
F:=False;
MaxCol:=0;
for I:=1 to Len do
if S[I]<>' ' then
begin
ΠΡΠ»ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ Π½Π°ΡΠ°Π»ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°, ΡΠΎΠ³Π΄Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°, Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ Π½ΠΎΠΌΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π½Π°ΡΠ°Π»Π° ΡΠ»ΠΎΠ²Π° Π² ΡΡΡΠΎΠΊΠ΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Index ΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ Π΄Π»ΠΈΠ½Ρ ΡΠ»ΠΎΠ²Π° Π² L.
if F=False then
begin
F:=True;
Index:=I;
L:=1;
end
else
Π£Π²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ Π΄Π»ΠΈΠ½Ρ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΠΏΡΠΎΠ±Π΅Π».
Inc (L);
end
else
ΠΡΠ»ΠΈ i-ΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΡΠΎΠ±Π΅Π», ΡΠΎ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΠΌ ΠΏΡΠΈΠ·Π½Π°ΠΊ ΡΠ»ΠΎΠ²Π°, ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ ΡΠ»ΠΎΠ²ΠΎ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Buf ΠΈ Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΎΠΊΠΈ Π² Π½ΡΠ»Π΅Π²ΡΡ ΡΡΠ΅ΠΉΠΊΡ.
if F=True then
begin
F:=False;
Buf:=Copy1(S, Index, L);
Buf[0]: =char (L);
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠ»ΠΎΠ²ΠΎ. ΠΡΠ»ΠΈ Π±ΡΠΊΠ²Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² Π°Π»ΡΠ°Π²ΠΈΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ True ΠΈΠ½Π°ΡΠ΅ False.
if alforder (Buf, Counter) then
begin
ΠΡΠ»ΠΈ Π² ΡΠ»ΠΎΠ²Π΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΠ΅ΠΌ Π² ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌ, ΡΠΎ Π·Π°Π½ΠΎΡΠΈΠΌ ΡΠ»ΠΎΠ²ΠΎ Π² Fslovo ΠΈ ΠΊΠΎΠ»Π»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΡΠΊΠ² Π² MaxCol.
if Counter>MaxCol then
begin
FSlovo:=Copy1(S, Index, L);
FSlovo[0]: =char (L);
MaxCol:=Counter;
end;
end;
end;
ΠΡΠ»ΠΈ ΡΠ°ΠΊΠΈΡ ΡΠ»ΠΎΠ² Π½Π΅Ρ ΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΡΡΠΎΠΌ, ΠΈΠ½Π°ΡΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ»ΠΎΠ²ΠΎ.
if MaxCol=0 then
writeln ('Net podhodyaschi slov v texte')
else
writeln (FSlovo, ' kol-vo bukv: ', MaxCol);
end;
Π€ΡΠ½ΠΊΡΠΈΡ alforder ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΡΡΠΎΠΊΡ S1, Π΅ΡΠ»ΠΈ Π² ΡΡΡΠΎΠΊΠ΅ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠ΅ Π±ΡΠΊΠ²Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΠΏΠΎ Π°Π»ΡΠ°Π²ΠΈΡΡ, ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π²Π΅ΡΠ½Π΅Ρ True ΠΈΠ½Π°ΡΠ΅ False. Count — ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΡ Π±ΡΠΊΠ² Π² ΡΡΡΠΎΠΊΠ΅.
function alforder (Sl: Slovo; var Count: Byte): Boolean;
var
I, L: Byte;
F: Boolean;
Buf: Char;
begin
L:=Length (Sl);
Π‘Π±ΡΠ°ΡΡΠ²Π°Π΅ΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΡΠΊΠ² Π² ΡΡΡΠΎΠΊΠ΅.
Count:=0;
ΠΠ°Ρ ΠΎΠ΄ΠΈΠΌ Π² ΡΠΈΠΊΠ»Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΡ Π±ΡΠΊΠ² Π² ΡΡΡΠΎΠΊΠ΅ ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌ Π²ΡΠ΅ Π·Π°Π³Π»Π°Π²Π½ΡΠ΅ Π±ΡΠΊΠ²Ρ ΠΊ ΡΡΡΠΎΡΠ½ΠΎΠΌΡ Π²ΠΈΠ΄Ρ.
for I:=1 to L do
begin
if (isletter (Sl[I])) then
Inc (Count);
if (Sl[I]>='A') and (Sl[I]<='Z') then
Sl[I]: =char (byte (Sl[I])+32);
end;
if Count=0 then
alforder:=False
else
if Count=1 then
alforder:=True
else
begin
F:=True;
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΠΌ Π²ΡΠ΅ Π±ΡΠΊΠ²Ρ ΡΡΡΠΎΠΊΠΈ Π² Π½Π°ΡΠ°Π»ΠΎ ΡΡΡΠΎΠΊΠΈ.
While F do
begin
F:=False;
for I:=1 to L-1 do
ΠΡΠ»ΠΈ i-ΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π½Π΅ Π±ΡΠΊΠ²Π°, Π° Π΅Π³ΠΎ ΡΠΎΡΠ΅Π΄ ΡΠΏΡΠ°Π²Π° — Π±ΡΠΊΠ²Π°, ΡΠΎ ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ.
if (Not isletter (Sl[I])) And (isletter (Sl[I+1])) then
begin
F:=True;
Buf:=Sl[I];
Sl[I]:=Sl[I+1];
Sl[I+1]:=Buf;
end;
end;
F:=true;
ΠΠ°Π»Π΅Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠΊΠ² ΠΏΠΎ Π°Π»ΡΠ°Π²ΠΈΡΡ.
for I:=1 to Count-1 do
if Sl[I]>Sl[I+1] then
begin
F:=False;
break;
end;
alforder:=F;
end;
end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° colsimmsolvo ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΡΡΠΎΠΊΡ S, ΠΈ ΡΡΠΈΡΠ°Π΅Ρ Π² Π½Π΅ΠΉ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΡΠ»ΠΎΠ²Π°, Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΡ ΡΠ»ΠΎΠ².
procedure colsimmslovo (S: Stroka250);
var
F: boolean;
Len: Byte;
I: Byte;
Counter: Byte;
Buf: Slovo;
Index, L: Byte;
MaxCol: Byte;
begin
Len:=Length (S);
ΠΠ°Π½ΠΎΡΠΈΠΌ Π² ΠΊΠΎΠ½Π΅Ρ ΡΡΡΠΎΠΊΠΈ ΠΏΡΠΎΠ±Π΅Π», Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ ΡΠ°ΠΌ Π½Π΅Ρ.
if S[Len]<>' ' then
begin
S:=S+' ';
Inc (Len);
end;
ΠΠ° F ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΠΌ ΡΠ»Π°Π³ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°, F=trueΠ½Π°ΠΉΠ΄Π΅Π½ΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ. Π ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΡ ΡΠ»ΠΎΠ².
F:=False;
Counter:=0;
writeln ('Spisok simmetrichnyh slov iz bolshe chem 2 znaka:');
ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ ΠΏΠΎΠΈΡΠΊ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΡ ΡΠ»ΠΎΠ² Π² ΡΡΡΠΎΠΊΠ΅.
for I:=1 to Len do
Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ i-ΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π½Π΅ ΠΏΡΠΎΠ±Π΅Π», ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ»Π°Π³ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°, Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ Π½Π°ΡΠ°Π»ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°, ΠΈ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Π½Ρ.
if S[I]<>' ' then
begin
if F=False then
begin
F:=True;
Index:=I;
L:=1;
end
else
Inc (L);
end
else
ΠΠ½Π°ΡΠ΅, Π΅ΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°, ΡΠΎ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ. ΠΡΠ»ΠΈ Π΄Π»ΠΈΠ½Π½Π° ΡΠ»ΠΎΠ²Π° Π±ΠΎΠ»ΡΡΠ΅ Π΄Π²ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΠΎ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ ΡΠ»ΠΎΠ²ΠΎ Π² Π±ΡΡΡΠ΅Ρ.
if F=True then
begin
F:=False;
if L>2 then
begin
Buf:=Copy (S, Index, L); {kopiruem slovo v Buf}
Buf[0]: =char (L);
ΠΠ°Π»Π΅Π΅ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΠ»ΠΎΠ²ΠΎ Π½Π° ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡ, ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ, ΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ ΡΡΠ΅ΡΡΠΈΠΊ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ, ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΡΠΎ ΡΠ»ΠΎΠ²ΠΎ Π½Π° ΡΠΊΡΠ°Π½.
if simmetr (Buf) then
begin
Inc (Counter);
writeln (Buf);
end;
end;
end;
writeln ('Kol-vo naidennyh slov: ', Counter);
end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ»ΠΎΠ²Π²Π° Π½Π° ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΡΡΡ.
function simmetr (S: Slovo):boolean;
var
L, I, R: Byte;
F: Boolean;
Begin
ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π½ΡΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»Ρ. ΠΡΠ»ΠΈ ΠΎΠ½ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ, ΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ True. ΠΡΠ»ΠΈ Ρ ΠΎΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΌΠ²ΠΎΠ» Π½Π΅ ΡΡ ΠΎΠ΄ΠΈΡΡΡ, ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· ΡΠΈΠΊΠ»Π° ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ False.
L:=Length (S);
R:=L div 2;
F:=True;
for I:=1 to R do
if S[I]<>S[L-I+1] then
begin
F:=False;
break;
end;
simmetr:=F;
end;
2 ΠΠ°Π΄Π°Π½ΠΈΠ΅ № 2
Π‘ΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ ΠΈ/ΠΈΠ»ΠΈ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ ΠΈ ΡΠΎΡΡΠΎΡΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· Π»Π°ΡΠΈΠ½ΡΠΊΠΈΡ Π±ΡΠΊΠ².
2.1 ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
2.2 Π Π°Π±ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΠ½Π°ΡΠ°Π»Π΅ Π·Π°Π΄Π°Π΅ΠΌ 2 ΡΠΈΠΏΠ°: ΡΠ°ΠΌΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ ΠΈ Π±ΡΡΡΠ΅ΡΠ°.
type
Matrix=array[1.20,1.20] of Integer;
type
Vector=array[1.80] of Integer;
Begin
ΠΠ΅Π»Π°Π΅ΠΌ ΠΎΡΠΈΡΡΠΊΡ ΡΠΊΡΠ°Π½Π° Π΄Π»Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ Π·Π°ΠΏΡΠΎΡ Π½Π° Π²Π²ΠΎΠ΄ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°, ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
clrscr;
ΠΠΎΠ²ΡΠΎΡΡΠ΅ΠΌ Π²Π²ΠΎΠ΄ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²Π²Π΅Π΄Π΅Π½ΠΎ ΡΠΈΡΠ»ΠΎ ΠΎΡ 12 Π΄ΠΎ 22.
repeat
write ('Razmer matricy (12.20): ');
readln (N);
until (N>=12) and (N<=20);
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡΡ Matr ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ N Π½Π° N ΡΡΠ΅Π΅ΠΊ. ΠΠ°ΡΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π΅Π΅ Π½Π° ΡΠΊΡΠ°Π½.
FormMatrix (Matr, N, N);
writeln ('Sformirovana matrica:');
PrintMatrix (Matr, N, N);
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° ΠΌΠ°ΡΡΠΈΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΌΠ°ΡΡΠΈΡΡ Π½Π° ΡΠΊΡΠ°Π½.
TurnMatrix (Matr, N);
writeln ('Matrica posle povorota');
PrintMatrix (Matr, N, N);
readln;
end.
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° FormMatrix
ΠΠ°Π½Π½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡ -99 Π΄ΠΎ 99 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΡΡ.
procedure FormMatrix (var A: Matrix; N, M: Integer);
var
I, J: Integer;
D: Integer;
R: Integer;
begin
randomize;
for I:=1 to N do
for J:=1 to M do
begin
ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π»ΡΠ±ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ 0 Π΄ΠΎ 99.
A[I, J]: =random (100);
ΠΡΠ»ΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΎΡ 0 Π΄ΠΎ 999 ΡΠ΅ΡΠ½ΠΎΠ΅, Π΄Π°Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ, ΠΈΠ½Π°ΡΠ΅ Π·Π½Π°ΠΊ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ.
if (random (1000) mod 2)=0 then
A[I, J]: =0-A[I, J];
end;
end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π²ΡΠ²ΠΎΠ΄Π° ΠΌΠ°ΡΡΠΈΡΡ Π½Π° ΡΠΊΡΠ°Π½.
procedure PrintMatrix (var A: Matrix; N, M: Integer);
var
I, J: Integer;
Begin
ΠΠ°Π΄Π°Π΅ΠΌ Π΄Π²Π° ΡΠΈΠΊΠ»Π°, ΠΎΠ΄ΠΈΠ½ Π΄Π»Ρ ΡΡΠΎΠ»Π±ΡΠΎΠ², Π²ΡΠΎΡΠΎΠΉ Π΄Π»Ρ ΡΡΡΠΎΠΊ ΠΈ ΠΏΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΡΠΎΠΊΠΈ. ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ.
for I:=1 to N do
begin
for J:=1 to M do
write (A[I, J]: 4);
writeln;
end;
end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° ΠΌΠ°ΡΡΠΈΡΡ Π½Π° 90 Π³ΡΠ°Π΄ΡΡΠΎΠ² Π½Π°ΠΏΡΠ°Π²ΠΎ.
procedure TurnMatrix (var A: Matrix; N: Integer);
var
Arr: Vector;
I, J, K, Ot, L: Integer;
R: Integer;
Revers: Integer;
Buf1, Buf2: Integer;
begin
R:=N div 2;
Π‘ΡΠ°Π²ΠΈΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΡΡΠΏΠ° Ot ΡΠ°Π²Π½ΡΠΌ Π½ΡΠ»Ρ.
Ot:=0;
for K:=1 to R do
begin
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ L ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Arr. Π‘ΡΠ°Π²ΠΈΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π²Π½ΠΎΠ΅ Π½ΡΠ»Ρ, Π° Π·Π°ΡΠ΅ΠΌ Π·Π°Π½ΠΎΡΠΈΠΌ Π² ΠΌΠ°ΡΡΠΈΠ² Arr ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΡΡ.
L:=0;
for J:=1+Ot to N-Ot do
begin
Inc (L);
Arr[L]: =A[1+Ot, J];
end;
for I:=2+Ot to N-1-Ot do
begin
Inc (L);
Arr[L]: =A[I, N-Ot];
end;
for J:=N-Ot downto 1+Ot do
begin
Inc (L);
Arr[L]: =A[N-Ot, J];
end;
for I:=N-1-Ot downto 2+Ot do
begin
Inc (L);
Arr[L]: =A[I, 1+Ot];
end;
ΠΠ°Ρ ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π²ΠΈΠ½ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² Arr.
Revers:=N-2*Ot-1;
ΠΠ°Π»Π΅Π΅, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΄Π²ΠΈΠ³Π°Π΅ΠΌ ΠΌΠ°ΡΡΠΈΠ² Arr ΠΈΠ· L ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π° Revers ΠΏΠΎΠ·ΠΈΡΠΈΠΉ Π²ΠΏΡΠ°Π²ΠΎ. Π Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠΈΠΉΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΠΌΠ°ΡΡΠΈΡΡ.
TurnArray (Arr, L, Revers);
L:=0;
for J:=1+Ot to N-Ot do
begin
Inc (L);
A[1+Ot, J]: =Arr[L];
end;
for I:=2+Ot to N-1-Ot do
begin
Inc (L);
A[I, N-Ot]: =Arr[L];
end;
for J:=N-Ot downto 1+Ot do
begin
Inc (L);
A[N-Ot, J]: =Arr[L];
end;
for I:=N-1-Ot downto 2+Ot do
begin
Inc (L);
A[I, 1+Ot]: =Arr[L];
end;
Π£Π²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΡΡΠΏΠ°.
Inc (Ot);
end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π° ΠΌΠ°ΡΡΠΈΠ²Π°.
procedure TurnArray (var V: Vector; NN: Integer; Rev: Integer);
var
Buf: Integer;
I, J: Integer;
Begin
for J:=1 to Rev do
begin
Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° V[NN] Π² Buf, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ΄Π²ΠΈΠ³Π°Π΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π° 1 ΠΏΠΎΠ·ΠΈΡΠΈΡ.
Buf:=V[NN];
for I:=NN downto 2 do
V[I]: =V[I-1];
V[1]:=Buf;
end;
end;
3 ΠΠ°Π΄Π°Π½ΠΈΠ΅ № 3
Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΄Π²Π° ΡΠ°ΠΉΠ»Π° Π² ΡΡΠ΅ΡΠΈΠΉ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠ΅ΡΡΡΡ ΡΠΈΡΠ»Π°-ΠΏΠ°Π»ΠΈΠ½Π΄ΡΠΎΠΌΡ.
3.1 ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
3.2 Π Π°Π±ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Begin
ΠΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½ ΠΌΠ΅Π½Ρ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.
Π ΠΈΡΡΠ½ΠΎΠΊ 2 — Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΌΠ΅Π½Ρ ΡΡΠ΅ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
menu;
ΠΠ°Π΄Π°Π΅ΠΌ ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²Π²ΠΎΠ΄Π΅ ΠΈΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΡΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ². Π Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
pf:=false;
vf:=false;
tf:=false;
cont:=true;
Π Π±ΡΠ΄ΡΡΠ΅ΠΌ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π΅ΡΠ΅ 2 ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , flag1 ΠΈ flag1, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΡΠ°ΠΉΠ»Π°Ρ .
flag1:=false;
flag2:=false;
while cont do
begin
writeln;
write ('Vvedite komandu: ');
Π‘ΡΠΈΡΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΏΡΠΎΡΠ΅Π΄ΡΡ.
readln (command);
case command of
'0': cont:=false;
'1': begin
write ('Vvedite imja pervogo faila: ');
readln (p);
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ Π²Π²ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°, ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ, ΡΠΎ ΡΠ»Π°Π³ Π²Π²ΠΎΠ΄Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ True. ΠΠ½Π°ΡΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ Π²Π²ΠΎΠ΄Π΅.
if check1(p)=true then
begin
pf:=true;
clrscr;
menu;
end
else
begin
clrscr;
menu;
writeln ('Error input');
end;
end;
'2': begin
write ('Vvedite imja vtorogo faila: ');
readln (v);
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ Π²Π²ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°, ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ, ΡΠΎ ΡΠ»Π°Π³ Π²Π²ΠΎΠ΄Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ True. ΠΠ½Π°ΡΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ Π²Π²ΠΎΠ΄Π΅.
if check1(v)=true then
begin;
vf:=true;
clrscr;
menu;
end
else
begin
clrscr;
menu;
writeln ('Error input');
end;
end;
'3': begin
write ('Vvedite imja tretego faila: ');
readln (t);
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ Π²Π²ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°, ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ, ΡΠΎ ΡΠ»Π°Π³ Π²Π²ΠΎΠ΄Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ True. ΠΠ½Π°ΡΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ Π²Π²ΠΎΠ΄Π΅.
if check1(t)=true then
begin
tf:=true;
clrscr;
menu;
end
else
begin
clrscr;
menu;
writeln ('Error input');
end;
end;
'4': begin
ΠΡΠ»ΠΈ Π²ΡΠ΅ ΡΡΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π° Π²Π²Π΅Π΄Π΅Π½Ρ Π²Π΅ΡΠ½ΠΎ, ΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΡΠ΄ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΏΠΎ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ ΡΠ°ΠΉΠ»Π°.
if (pf=true)and (vf=true)and (tf=true) then
begin
filepr;
ΠΠ°Π½Π½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠΌΠΎΡΡΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ Π² ΡΠ°ΠΉΠ»Π°Ρ ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅.
chmax;
ΠΡΠ»ΠΈ ΠΎΠ±Π° ΡΠ°ΠΉΠ»Ρ Π½Π΅ ΠΏΡΡΡΡΠ΅, ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΈΡΡΡΠΏΠ°Π΅Ρ ΠΊ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ»ΠΎΠ² ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΈΡ Π² ΡΡΠ΅ΡΠΈΠΉ ΡΠ°ΠΉΠ».
if check2=false then
begin
Π‘ΡΠ°Π²ΠΈΠΌ ΡΠΈΠΊΠ» Π΄ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΡΡΡΠΎΠΊ.
for l:=1 to m do
begin
slv;
obrslov (slova1,slova2,k1,k2,slova, k);
for g:=1 to k do
begin
write (third, slova[g]);
if g
end;
ΠΠ΄Π΅ΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΡΠΊΡ.
writeln (third,'');
end;
ΠΡΠ±ΠΈΡΠ°Π΅ΠΌ Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ² Π±ΠΎΠ»ΡΡΠ΅ ΡΡΡΠΎΠΊ ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
if m1<>m2 then
begin
if m1>m2 then for L:=m to m1 do
begin
readln (first, S1);
writeln (third, S1);
end
else
for L:=m to m2 do
begin
readln (second, S2);
Writeln (third, S2);
end;
end;
closing;
writeln ('Operacia zavershena');
end
else
ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° ΡΠ°ΠΉΠ»Π° Π½Π΅ ΠΏΡΠΎΡΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ, ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΊΠ°ΠΆΠ΅Ρ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΡΡΠΎΠΉ.
begin
if flag1=true then writeln ('Pervii fail pustoi');
if flag2=true then writeln ('Vtoroi fail pustoi');
end;
end
else
begin
ΠΡΠ»ΠΈ ΡΠ°ΠΉΠ» Π½Π΅ ΠΏΡΠΎΡΠ΅Π» ΠΏΠ΅ΡΠ²ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ, ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΊΠ°ΠΆΠ΅Ρ, ΠΈΠΌΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ² Π²Π²Π΅Π΄Π΅Π½ΠΎ Π½Π΅Π²Π΅ΡΠ½ΠΎ ΠΈΠ»ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ Π±ΡΠ»ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΎ.
if pf=false then writeln ('Ne vvedeno imja pervogo faila');
if vf=false then writeln ('Ne vvedeno imja vtorogo faila');
if tf=false then writeln ('Ne vvedeno imja tretego faila');
end;
end;
else
writeln ('Neizvestnaya komanda');
end;
end;
end.
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²Π²ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ².
function check1(x:string):boolean;
begin
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΠΏΡΡΡΠΎΠΉ Π²Π²ΠΎΠ΄, ΠΈ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°, Π½Π°ΡΠΈΠ½Π°ΡΡΠ΅Π΅ΡΡ Ρ ΠΏΡΠΎΠ±Π΅Π»Π°.
if length (x)>0 then begin
if x[1]<>' ' then
check1:=true;
end;
end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΈ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ².
procedure filepr;
begin
assign (first, p);
assign (second, v);
assign (third, t);
reset (first);
reset (second);
rewrite (third);
end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΡΡΠΎΠΊ Π² ΡΠ°ΠΉΠ»Π°Ρ .
procedure chmax;
begin
Π‘Π±ΡΠ°ΡΡΠ²Π°Π΅ΠΌ ΡΡΠ΅ΡΡΠΈΠΊ ΡΡΡΠΎΠΊ.
m1:=0;
m2:=0;
Π ΠΏΠΎΠΊΠ° Π½Π΅ ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π° ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅ΠΌ ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΏΡΠΈΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΏΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΠΊ ΡΡΠ΅ΡΡΠΈΠΊΡ.
while not eof (first) do
begin
readln (first, S1);
m1:=m1+1;
end;
ΠΠΎΠΊΠ° Π½Π΅ ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π° ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅ΠΌ ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΏΡΠΈΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΏΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΠΊ ΡΡΠ΅ΡΡΠΈΠΊΡ.
while not eof (second) do
Begin
readln (second, S2);
m2:=m2+1;
end;
Π ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ m.
if m1
ΠΠ°Π½ΠΎΠ²ΠΎ Π·Π°ΠΊΡΡΠ²Π°Π΅ΠΌ ΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ»Ρ.
close (first);
reset (first);
close (second);
reset (second);
end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠ°Π·Π±ΠΈΡΠΈΡ ΡΡΡΠΎΠΊΠΈ Π½Π° ΡΠ»ΠΎΠ²Π° ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ².
Procedure slv;
var
i, j: integer;
begin
Π‘ΡΠΈΡΡΠ²Π°Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΡΡΠΎΡΠΊΡ ΠΈΠ· ΠΎΠ±ΠΎΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΏΡΠΎΠ±Π΅Π» Π²Π½Π°ΡΠ°Π»Π΅ ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ.
Readln (first, S1);
readln (second, S2);
S1:=' '+S1+' ';
S2:=' '+S2+' ';
Π‘Π±ΡΠ°ΡΡΠ²Π°Π΅ΠΌ ΡΡΠ΅ΡΡΠΈΠΊ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ»ΠΎΠ².
k1:=0;
k2:=0;
ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅Π±ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅ΠΌ ΠΏΡΠΎΠ±Π΅Π». ΠΠ°Π»Π΅Π΅ ΡΠΌΠΎΡΡΠΈΠΌ, Π΅ΡΠ»ΠΈ ΡΠ»Π΅Π΄ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ±Π΅Π»Π°, ΡΠΎΠΆΠ΅ ΠΏΡΠΎΠ±Π΅Π», ΡΠΎ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ. ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ»ΠΎΠ²ΠΎ, ΡΠΎ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ Π΅Π³ΠΎ Π² ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΡΠ΅Π΅ΠΊ ΠΌΠ°ΡΡΠΈΠ²Π°.
for i:=1 to length (S1) do
begin
if s1[i]=' ' then
begin
for j:=i+1 to length (s1) do
if s1[i+1]<>' ' then
if s1[j]=' ' then begin
k1:=k1+1;
slova1[k1]: =copy (s1,i+1,j-i-1);
break;
end;
end;
end;
for i:=1 to length (S2) do
begin
if s2[i]=' ' then
begin
for j:=i+1 to length (s2) do
if s2[i+1]<>' ' then
if s2[j]=' ' then begin
k2:=k2+1;
slova2[k2]: =copy (s2,i+1,j-i-1);
break;
end;
end;
end;
end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ»ΠΎΠ².
procedure obrslov (a, b: arr;na, nb: integer; var c: arr; var nc: integer);
var i, j, k:integer;
begin
nc:=0;
ΠΠ΅Π»Π°Π΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΊΠ»ΠΎΠ², ΡΡΠ΅Π΄ΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌ ΠΈΡ ΡΠΎ Π²ΡΠΎΡΡΠΌ. ΠΠ°ΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²ΡΠΎΡΠ³ΠΎ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΈ ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ Π·Π°Π½ΠΎΡΡΡΡΡ Π² Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠΈΠ².
for i:=1 to na do
begin
k:=0;
for j:=1 to nb do
if a[i]=b[j] then k:=1;
if k=0 then
begin
nc:=nc+1;
c[nc]: =a[i];
end;
end;
for i:=1 to nb do
begin
k:=0;
for j:=1 to na do
if b[i]=a[j] then k:=1;
if k=0 then
begin
nc:=nc+1;
c[nc]: =b[i];
end;
end;
end;
Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
function check2: boolean;
begin
Π Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΡΠΌΠΎΡΡΠΈ, Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈ ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π° Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, ΠΈ Π΅ΡΠ»ΠΈ Ρ ΠΎΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» ΠΏΡΡΡΠΎΠΉ, ΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ False.
if eof (first)=true then flag1:=true else flag1:=false;
if eof (second)=true then flag2:=true else flag2:=false;
if (flag1=false)and (flag2=false) then check2:=false else check2:=true;
end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π·Π°ΠΊΡΡΡΠΈΡ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ².
procedure closing;
begin
close (first);
close (second);
close (third);
end;
4 ΠΠ°Π΄Π°Π½ΠΈΠ΅ № 4.
ΠΠ° ΡΠΊΡΠ°Π½Π΅ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΠΊΡΠΈΠ²ΡΡ (ΠΠΈΠΏΠΎΡΠΈΠΊΠ»ΠΎΠΈΠ΄Π°), Π·Π°Π΄Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ:
X=Aβ’cos (t)+Dβ’cos (Aβ’t); [0<=t<=2β’pi]
X=Aβ’sin (t)+Dβ’sin (Aβ’t);
ΠΡΡΠΏΠΏΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² A, D Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Π΄Π°Π½Π° Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅.
4.1 Π Π°Π±ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Begin
ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ t, ΠΈ ΡΠ»Π°Π³ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
t:=0;
menu;
cont:=true;
while cont do
begin
ΠΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅Π΅ΡΡ ΠΌΠ΅Π½Ρ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 3.
Π ΠΈΡΡΠ½ΠΎΠΊ 3 — ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ 4.
Writeln ('Vvedite komady: ');
Readln (command);
case command of
'0':cont:=false;
'1':
begin
writeln;
ΠΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°. ΠΠΌΡ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠΏΠ΅ΡΠ½Π°, ΡΠΎ ΠΈΠ· Π½Π΅Π³ΠΎ ΡΠΈΡΠ°ΡΡΡΡ Π΄Π²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ (Π ΠΈ D) ΠΈ ΡΠ°ΠΉΠ» ΡΡΠ°Π·Ρ ΠΆΠ΅ Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ.
writeln ('Vvedite imja faila: ');
Readln (name);
if check1 = true then begin
namef:=true;
read (fileg, a);
read (fileg, d);
close (fileg);
end else namef:=false;
end;
'2':
Begin
ΠΡΠ»ΠΈ ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΡΠΈΡΠ°Π»ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠ°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:
— ΠΡΠΈΡΡΠ°ΠΊΠ° ΠΎΠΊΠ½Π°.
— ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ.
— ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠ°.
— ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
if namef=false then
writeln ('Ne Vvedeno imja faila')
else
begin
clearwindow;
SetWindowSize (800,600);
mnoj;
graf;
cont:=false;
end;
end;
end;
end;
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ Π΄Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π³ΡΠ°ΡΠΈΠΊ Π΄ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ReDraw.
lockdrawing;
OnResize ΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π΅Π»Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΎΠΊΠ½Π°.
OnResize:=resize;
end.
Π€ΡΠ½ΠΊΡΠΈΡ Π£
function Yfunc (i: real): real;
begin
result:=A*sin (i)-D*sin (A*t);
end;
Π€ΡΠ½ΠΊΡΠΈΡ Π₯
function Xfunc (i:real):real;
begin
Xfunc:=A*cos (i)+D*cos (A*i);
end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° Π·Π°ΠΎΠ΄Π½ΠΎ ΠΈ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»Ρ.
procedure mnoj;
begin
t:=0;
ΠΠ°Π΄Π°Π΅ΠΌ ΡΠΈΠΊΠ» ΠΈ ΠΈΡΠ΅ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
while t <= 2*pi do
begin
xx:=trunc (Xfunc (t));
ifabs (xx)> maxx then maxx:=abs (xx);
yy:=trunc (Yfunc (t));
if abs (yy)> maxy then maxy:=abs (yy);
ΠΠ΄Π΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠΎΡΠ½ΠΎΡΡΡ ΠΏΠΎΠΈΡΠΊΠ°.
t:=t+0.001;
end;
ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΈΡΠ΅ΠΌ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ. ΠΠ½ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ : ΡΠΈΡΠΈΠ½Π°, Π²ΡΡΠΎΡΠ°, ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ.
if WindowWidth
if maxy>maxx then k:=(WindowHeight/2)/maxy else k:=(windowWidth/2)/maxx else
If maxx>maxy then k:=(windowheight/2)/maxx else k:=(windowWidth/2)/maxy;
end;
Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ°ΠΉΠ»Π° Π½Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ Π²Π²ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½ΠΈ ΠΈ Π½Π° Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π² Π½Π΅ΠΌ Π΄Π°Π½Π½ΡΡ .
function check1: boolean;
begin
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π΄Π»ΠΈΠ½Π½Ρ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°.
if length (name)>0 then
begin
assign (fileg, name);
reset (fileg);
if eof (fileg)=false then check1:= true else check1:=false;
end;
end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠ°.
procedure graf;
begin
Π£ΠΌΠ΅Π½ΡΡΠ°Π΅ΠΌ Π½Π°Ρ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ, ΡΡΠΎΠ±Ρ ΡΠΌΠ΅ΡΡΠΈΠ»ΠΈΡΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ.
k:=k-k*0.1;
ΠΠ°Π»Π΅Π΅ ΡΠ΅ΡΡΠΈΠΌ ΡΠΎΠ²Π½ΠΎ ΠΏΠΎ ΡΠ΅Π½ΡΡΡ ΠΎΡΠΈ Π₯ ΠΈ Π£. Π‘ΡΡΠ΅Π»ΠΎΡΠΊΠΈ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅. ΠΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π±Π΅ΡΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠΊΡΠ°Π½Π°, Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΊΠ°ΠΊ ΠΏΡΠΈ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠΌ, ΡΠ°ΠΊ ΠΈ ΠΏΡΠΈ Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.
moveto (1, windowHeight div 2);
lineto (WindowWidth, WindowHeight div 2);
moveto (WindowWidth div 2, 1);
lineto (WindowWidth div 2, WindowHeight);
moveto (trunc ((WindowWidth div 2)*0.98), trunc (0.04*WindowHeight));
Lineto ((Windowwidth div 2), 1);
lineto (trunc ((windowWidth div 2)*1.02), trunc (0.04*windowHeight));
moveto (trunc (windowwidth*0.96), trunc (0.98*(windowheight div 2)));
lineto (windowwidth, windowheight div 2);
lineto (trunc (windowwidth*0.96), trunc (1.02*(windowheight div 2)));
T:=0;
ΠΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΡΡΠ°ΡΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΡΠ΄Π° ΠΊΡΡΡΠΎΡ, Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ.
xx:=(WindowWidth div 2)+trunc (k*Xfunc (t));
yy:=(WindowHeight div 2)+trunc (k*Yfunc (t));
moveto (xx, yy);
ΠΠ°Π΄Π°Π΅ΠΌ ΡΠΈΠΊΠ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°ΠΌΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΡΡΠΈΡΡΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΈ ΡΠΈΡΠΎΠ²Π°ΡΡ Π³ΡΠ°ΡΠΈΠΊ.
while t<=2*pi do
begin
xx:=(WindowWidth div 2)+trunc (k*Xfunc (t));
yy:=(WindowHeight div 2)+trunc (k*Yfunc (t));
lineto (xx, yy);
Π§ΠΈΡΠ»ΠΎ Π½ΠΈΠΆΠ΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠΎΡΠ½ΠΎΡΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠ°. ΠΡΠΈ Π±ΠΎΠ»ΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ΅Π½Ρ Π΄ΠΎΠ»Π³ΠΎ ΡΡΡΠΎΠΈΡΡΡ, Π° ΠΏΡΠΈ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ Π³ΡΠ°ΡΠΈΠΊ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π΅ ΡΠΎΡΠ½Ρ ΠΈ ΡΠ³Π»ΠΎΠ²Π°ΡΡΠΉ.
t:=t+0.001;
end;
ΠΠ»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΡΡΠΈ Π³ΡΠ°ΡΠΈΠΊΠ°, ΠΏΡΠΈ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΡΠΈΡΡΠ΅ΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΠΊΡΡΠ²Π°ΡΡΡΡ.
If WindowWidth>400 then
If Windowheight>200 then
begin
textout (trunc (1.05*(windowWidth div 2)), trunc (0.01*(WindowHeight)),'Y');
Textout (trunc (0.95*WindowWidth), trunc ((WindowHeight div 2)*1.05),'X');
end;
end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΡΠΈΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΏΡΠΈ ΡΠΌΠ΅Π½Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ.
procedure resize;
begin
mnoj;
ClearWindow;
graf;
redraw;
lockdrawing;
end;
5 ΠΠ°Π΄Π°Π½ΠΈΠ΅ № 5
ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΡΠ°ΠΉΠ» Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ:
Type Vladelez=Record
Familia: String;
Adress:String;
Avto:lnteger;
Nomer:Integer;
End;
ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ: -ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠ°ΡΠΊΠΈ;
— Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΡΠ°ΡΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ;
— ΡΠ°ΠΌΠΈΠ»ΠΈΠΈ Π²Π»Π°Π΄Π΅Π»ΡΡΠ΅Π² ΠΈ Π½ΠΎΠΌΠ΅ΡΠ° Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ°ΡΠΊΠΈ.
5.1 ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
5.2 Π Π°Π±ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Begin
ΠΠ°Π΄Π°Π΅ΠΌ ΡΠΈΠΊΠ», ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ² ch, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ².
for i:=1 to 200 do
ch[i]: =false;
ΠΡΠΈΡΠ°Π΅ΠΌ ΡΠΊΡΠ°Π½ Π΄Π»Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°, ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΌΠ΅Π½Ρ Π½Π° ΡΠΊΡΠ°Π½, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 4.
Π ΠΈΡΡΠ½ΠΎΠΊ 5 — ΠΌΠ΅Π½Ρ ΠΏΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
clrscr;
menu;
ΠΠ°Π΄Π°Π΅ΠΌ Π΄Π²Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π·Π° Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
cont:=true;
fzap:=false;
while cont do
begin
write ('Vvedite komandu: ');
readln (command);
case command of
'0': cont := false;
'1':
Begin
ΠΠ°Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°, Π΅ΡΠ»ΠΈ Π·Π°ΠΏΠΈΡΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡ, ΡΠΎ fzap ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡΡ true.
Write ('Vvedite kol-vo zapisei (1.200): ');
readln (n);
if (n>0) and (n<=200) then
fzap:=true else fzap:=false;
end;
'2':
Begin
ΠΡΠ»ΠΈ Π±ΡΠ»ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΎ ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΡΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡΡ ΡΠΈΠΊΠ» Ρ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠ΅ΠΉΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ, Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄ΡΡ Π²Π²Π΅Π΄Π΅Π½Ρ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ²Π΅Π΄Π΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ Π½Π΅ Π²Π²Π΅Π΄Π΅Π½ΠΎ ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ.
if fzap=true then
begin
for i:=1 to n do
Ρhange (i, avtovl, ch);
clrscr;
menu;
end
else writeln ('Ne vvedeno kol-vo zapisei');
end;
'3':
Begin
ΠΡΠ»ΠΈ Π±ΡΠ»ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΎ ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ. ΠΡΠ»ΠΈ Π²Π²Π΅Π΄Π΅Π½ΠΎ ΡΠΈΡΠ»ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠΈΡΠ»Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΠΎΠ±ΡΠΈΡ ΠΎΡ ΠΎΡΠΈΠ±ΠΊΠ΅ Π²Π²ΠΎΠ΄Π°.
if fzap=true then
begin
write ('Vvedite nomer redaktiryemoi zapisi: ');
readln (i);
if i>n then writeln ('Wrong input')
else
begin
change (i, avtovl, ch);
clrscr;
menu;
end;
end
else Writeln ('Ne vvedeno obshee chislo zapisei');
end;
'4':
Begin
ΠΠ½Π°ΡΠ°Π»Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, Π²Π²Π΅Π΄Π΅Π½ΠΎ Π»ΠΈ ΠΎΠ±ΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ. ΠΡΠ»ΠΈ Π²ΡΠ΅ ΠΎΠ½ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ, ΡΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΡΠ΅ΡΡ ΠΌΠ°ΡΠΈΠ½ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠ°ΡΠΊΠΈ.
if fzap=true then
begin
for i:=1 to n do
if ch[i]=false then
begin
dzap:=false;
writeln ('Vvedeni ne vse zapisi');
end
else dzap:=true;
if dzap=true then
mark (avtovl);
end
else
Writeln ('Ne vvedeno obshee chislo zapisei');
end;
'5':
Begin
ΠΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ Π²Π°ΡΠΈΠ°Π½ΡΡ, Π½ΠΎ Π·Π΄Π΅ΡΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Ρ ΠΎΠ·ΡΠΈΠ½Π° ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΡΠ°ΡΠΎΠ³ΠΎ Π°Π²ΡΠΎ.
if fzap=true then
begin
for i:=1 to n do
if ch[i]=false then
begin
dzap:=false;
writeln ('Vvedeni ne vse zapisi');
end
else dzap:=true;
if dzap=true then
mostold (avtovl);
end
else
Writeln ('Ne vvedeno obshee chislo zapisei');
end;
'6':
Begin
ΠΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ Π²Π°ΡΠΈΠ°Π½ΡΡ, Π½ΠΎ Π·Π΄Π΅ΡΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΈΠ½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°.
if fzap=true then
begin
for i:=1 to n do
if ch[i]=false then
begin
dzap:=false;
writeln ('Vvedeni ne vse zapisi');
end
else dzap := true;
if dzap=true then
oprmarki (avtovl);
end
else
Writeln ('Ne vvedeno obshee chislo zapisei');
end;
end;
end;
end.
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° oprmarki;
procedure oprmarki (x: mas);
var
h:integer;
m:string;
begin
ΠΠ²ΠΎΠ΄ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΠΊΠΈ, ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠ΅ΡΠ΅Π±Π΅ΡΠ΅Ρ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΠΏΡΠΈ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΌΠ°ΡΠΊΠΈ Π²ΡΠ²Π΅Π΄Π΅Ρ Π½Π° ΡΠΊΡΠ°Π½ ΡΠ°ΠΌΠΈΠ»ΠΈΡ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΠΈ Π½ΠΎΠΌΠ΅Ρ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ.
Write ('Vvedite marku avto: ');
readln (m);
for h:=1 to n do
if x[h]. Avto=m then
writeln (x[h]. Familia, ' nomer-', x[h]. Nomer);
end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΡΠ°ΡΠΎΠ³ΠΎ Π°Π²ΡΠΎ
procedure mostold (x: mas);
var
min, nmin, h: integer;
begin
min:=x[1]. Vypusk;
nmin:=0;
ΠΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅ΠΌ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π³ΠΎΠ΄ Π²ΡΠΏΡΡΠΊΠ° Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ min, Π° Π½ΠΎΠΌΠ΅Ρ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ nmin. Π ΠΏΠΎΡΠ»Π΅ ΡΠΈΠΊΠ»Π° ΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½.
for h:=1 to n do
if x[h]. Vypusk
begin
min:=x[h]. Vypusk;
nmin:=h;
end;
Writeln (x[nmin].Familia, ' - ', min,' god vypuska');
end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠ°ΡΠΊΠΈ.
procedure mark (x: mas);
var
h, l, k: integer;
begin
for h := 1 to n do
begin
ΠΠ½Π°ΡΠ°Π»Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π°Π΄Π°Π΅ΠΌ ΠΏΡΡΡΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ. Π Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠΈΠΊΠ». ΠΡΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΌΠ°ΡΠΊΠΈ Π½Π΅Ρ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅, ΡΠΎΠ³Π΄Π° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π΅Π΅. Π Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π²ΡΠΎΡΠΎΠΉ ΡΠΈΠΊΠ», ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°Ρ Π½Π΅ Ρ Π΅Π΄ΠΈΠ½ΠΈΡΡ, Π° Ρ h-Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠ°ΡΠ΅ΠΌ Π΅ΡΠ»ΠΈ h-ΡΠΉ ΠΈ l-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ, ΠΏΡΠΈΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊ ΡΡΠ΅ΡΡΠΈΠΊΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ .Π Π² ΠΊΠΎΠ½ΡΠ΅ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠ±ΡΠ°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΡΠΊΡΠ°Π½.
if not (x[h]. avto in marki) = true then
begin
k := 0;
include (marki, x[h]. avto);
for l:=h to n do
if x[h]=x[l] then
if x[l]. avto in marki then
k:=k + 1;
writeln (x[h]. avto, '-', k);
end;
end;
end;
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ Π² Π·Π°ΠΏΠΈΡΡ.
procedure change (x: integer; var z: mas; var v: mas2);
begin
clrscr;
Π ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Π΄Π°Π½Π½Π°Ρ Π·Π°ΠΏΠΈΡΡ Ρ ΡΡΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π°.
v[x]: =true;
write ('Vvedite familiu: ');
readln (z[x]. familia);
write ('Vvedite adress: ');
readln (z[x]. adress);
write ('Vvedite marku avto: ');
readln (z[x]. avto);
write ('Vvedite nomer avto: ');
readln (z[x]. nomer);
z[x].Vypusk:= 0;
while (z[x]. Vypusk < 1900) or (z[x]. Vypusk > 2000) do
begin
write ('Vvedite god vipuska (1900.2000): ');
readln (z[x]. vypusk);
end;
end;
6 ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
Π Ρ ΠΎΠ΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΌΠ½ΠΎΡ Π±ΡΠ» ΠΈΠ·ΡΡΠ΅Π½ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠΎΠ²Π°Π½Π½ΠΈΡ Pascal. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π½Π°Π²ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌΠΈ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ, Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ, ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΈ Π·Π°ΠΏΠΈΡΡΠΌΠΈ.
7 ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π
ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ 1
program slova1;
uses crt;
type
Stroka250=string[250];
Slovo=string[20];
function Copy1(S: Stroka250; Start, Len: Integer):Stroka250;
var
Rez: Stroka250;
L: Integer;
I, J: Integer;
begin
L:=byte (S[0]);
if (L
Rez[0]: =char (0)
else
begin
if (Start+Len-1)>L then
Len:=L-Start+1;
J:=Start;
for I:=1 to Len do
begin
Rez[I]: =S[J];
Inc (J);
end;
Rez[0]: =char (Len);
end;
Copy1:=Rez;
end;
function isletter (C: Char): Boolean;
begin
if ((C>='A') and (C<='Z')) or ((C>='a') and (C<='z')) then
isletter:=True
else
isletter:=False;
end;
function alforder (Sl: Slovo; var Count: Byte): Boolean;
var
I, L: Byte;
F: Boolean;
Buf: Char;
begin
L:=Length (Sl);
Count:=0;
for I:=1 to L do
begin
if (isletter (Sl[I])) then
Inc (Count);
if (Sl[I]>='A') and (Sl[I]<='Z') then
Sl[I]: =char (byte (Sl[I])+32);
end;
{esli v slove net bukv}
if Count=0 then
alforder:=False
else
if Count=1 then
alforder:=True
else
begin
F:=True;
While F do
begin
F:=False;
for I:=1 to L-1 do
if (Not isletter (Sl[I])) And (isletter (Sl[I+1])) then
begin
F:=True;
Buf:=Sl[I];
Sl[I]: =Sl[I+1];
Sl[I+1]: =Buf;
end;
end;
F:=true;
for I:=1 to Count-1 do
if Sl[I]>Sl[I+1] then
begin
F:=False;
break;
end;
alforder:=F;
end;
end;
procedure alfslovo (S: Stroka250);
var
F: boolean;
Len: Byte;
I: Byte;
Counter: Byte;
FSlovo, Buf: Slovo;
Index, L: Byte;
MaxCol: Byte;
begin
Len:=Length (S);
if S[Len]<>' ' then
begin
S:=S+' ';
Inc (Len);
end;
F:=False;
MaxCol:=0;
for I:=1 to Len do
if S[I]<>' ' then
begin
if F=False then
begin
F:=True;
Index:=I;
L:=1;
end
else
Inc (L);
end
else
if F=True then
begin
F:=False;
Buf:=Copy1(S, Index, L);
Buf[0]: =char (L);
if alforder (Buf, Counter) then
begin
if Counter>MaxCol then
begin
FSlovo:=Copy1(S, Index, L);
FSlovo[0]: =char (L);
MaxCol:=Counter;
end;
end;
end;
if MaxCol=0 then
writeln ('Net podhodyaschi slov v texte')
else
writeln (FSlovo, ' kol-vo bukv: ', MaxCol);
end;
function simmetr (S: Slovo):boolean;
var
L, I, R: Byte;
F: Boolean;
begin
L:=Length (S);
R:=L div 2;
F:=True;
for I:=1 to R do
if S[I]<>S[L-I+1] then
begin
F:=False;
break;
end;
simmetr:=F;
end;
procedure colsimmslovo (S: Stroka250);
var
F: boolean;
Len: Byte;
I: Byte;
Counter: Byte;
Buf: Slovo;
Index, L: Byte;
MaxCol: Byte;
begin
Len:=Length (S);
if S[Len]<>' ' then
begin
S:=S+' ';
Inc (Len);
end;
F:=False;
Counter:=0;
writeln ('Spisok simmetrichnyh slov iz bolshe chem 2 znaka:');
for I:=1 to Len do
if S[I]<>' ' then
begin
if F=False then
begin
F:=True;
Index:=I;
L:=1;
end
else
Inc (L);
end
else
if F=True then
begin
F:=False;
if L>2 then
begin
Buf:=Copy (S, Index, L);
Buf[0]: =char (L);
if simmetr (Buf) then
begin
Inc (Counter);
writeln (Buf);
end;
end;
end;
writeln ('Kol-vo naidennyh slov: ', Counter);
end;
procedure menu;
begin
writeln;
writeln ('++++++++++++++++++++++++++++++++++++++++++++++++');
writeln ('+ Vvod texta —> 1 +');
writeln ('+ Slovo s max. kol. bukv v alf. poryadke —> 2 +');
writeln ('+ Simmetrichnye slova —> 3 +');
writeln ('+ Vyvod texta —> 4 +');
writeln ('+ +');
writeln ('+ Konec —> 0 +');
writeln ('++++++++++++++++++++++++++++++++++++++++++++++++');
writeln;
end;
var
Txt: Stroka250;
Vvod, Cont: Boolean;
Rem: Char;
begin
Vvod:=False;
Cont:=True;
while Cont do
begin
clrscr;
menu;
write ('Vvedite komandu: ');
readln (Rem);
case Rem of
'0': Cont:=False;
'1': begin
writeln ('Text:');
readln (Txt);
Vvod:=True;
end;
'2': begin
if Not Vvod then
writeln ('Ne vveden text')
else
alfslovo (Txt);
end;
'3': begin
if Not Vvod then
writeln ('Ne vveden text')
else
colsimmslovo (Txt);
end;
'4': begin
if Not Vvod then
writeln ('Ne vveden text')
else
writeln (Txt);
end
else
writeln ('Neizvestnaya komanda');
end;
if Cont then
begin
write ('Nagmite ENTER dlya vvoda sleduyuschei komandy… ');
readln;
end
else
clrscr;
end;
end.
8 ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ 2
program massiv1;
uses crt;
type
Matrix=array[1.20,1.20] of Integer;
type
Vector=array[1.80] of Integer;
procedure TurnArray (var V: Vector; NN: Integer; Rev: Integer);
var
Buf: Integer;
I, J: Integer;
begin
for J:=1 to Rev do
begin
Buf:=V[NN];
for I:=NN downto 2 do
V[I]: =V[I-1];
V[1]: =Buf;
end;
end;
procedure TurnMatrix (var A: Matrix; N: Integer);
var
Arr: Vector;
I, J, K, Ot, L: Integer;
R: Integer;
Revers: Integer;
Buf1, Buf2: Integer;
begin
R:=N div 2;
Ot:=0;
for K:=1 to R do
begin
L:=0;
for J:=1+Ot to N-Ot do
begin
Inc (L);
Arr[L]: =A[1+Ot, J];
end;
for I:=2+Ot to N-1-Ot do
begin
Inc (L);
Arr[L]: =A[I, N-Ot];
end;
for J:=N-Ot downto 1+Ot do
begin
Inc (L);
Arr[L]: =A[N-Ot, J];
end;
for I:=N-1-Ot downto 2+Ot do
begin
Inc (L);
Arr[L]: =A[I, 1+Ot];
end;
Revers:=N-2*Ot-1;
TurnArray (Arr, L, Revers);
L:=0;
for J:=1+Ot to N-Ot do
begin
Inc (L);
A[1+Ot, J]: =Arr[L];
end;
for I:=2+Ot to N-1-Ot do
begin
Inc (L);
A[I, N-Ot]: =Arr[L];
end;
for J:=N-Ot downto 1+Ot do
begin
Inc (L);
A[N-Ot, J]: =Arr[L];
end;
for I:=N-1-Ot downto 2+Ot do
begin
Inc (L);
A[I, 1+Ot]: =Arr[L];
end;
Inc (Ot);
end;
end;
procedure FormMatrix (var A: Matrix; N, M: Integer);
var
I, J: Integer;
D: Integer;
R: Integer;
begin
randomize;
for I:=1 to N do
for J:=1 to M do
begin
A[I, J]: =random (100);
if (random (1000) mod 2)=0 then
A[I, J]: =0-A[I, J];
end;
end;
procedure PrintMatrix (var A: Matrix; N, M: Integer);
var
I, J: Integer;
begin
for I:=1 to N do
begin
for J:=1 to M do
write (A[I, J]: 4);
writeln;
end;
end;
var
Matr: Matrix;
N: Integer;
begin
clrscr;
repeat
write ('Razmer matricy (12.20): ');
readln (N);
until (N>=12) and (N<=20);
FormMatrix (Matr, N, N);
writeln ('Sformirovana matrica:');
PrintMatrix (Matr, N, N);
TurnMatrix (Matr, N);
writeln ('Matrica posle povorota');
PrintMatrix (Matr, N, N); readln;
end.
9 ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ 3
program textfile;
uses
crt;
type
arr = array [1.83] of string;
var
slova1, slova2, slova: arr;
m, m1, m2, k1, k2, k, l, g: integer;
first, second, third: text;
command: char;
p, v, t, S1, S2: string;
pf, vf, tf, cont, flag1, flag2: boolean;
function check2: boolean;
begin
if eof (first) = true then flag1 := true else flag1 := false;
if eof (second) = true then flag2 := true else flag2 := false;
if (flag1 = false) and (flag2 = false) then check2 := false else check2 := true;
end;
procedure closing;
begin
close (first);
close (second);
close (third);
end;
procedure obrslov (a, b: arr; na, nb: integer; var c: arr; var nc: integer);
var
i, j, k: integer;
begin
nc := 0;
for i := 1 to na do
begin
k := 0;
for j := 1 to nb do
if a[i] = b[j] then k := 1;
if k = 0 then
begin
nc := nc + 1;
c[nc] := a[i];
end;
end;
for i := 1 to nb do
begin
k := 0;
for j := 1 to na do
if b[i] = a[j] then k := 1;
if k = 0 then
begin
nc := nc + 1;
c[nc] := b[i];
end;
end;
end;
procedure slv;
var
i, j: integer;
begin
Readln (first, S1);
readln (second, S2);
S1 := ' ' + S1 + ' ';
S2 := ' ' + S2 + ' ';
k1 := 0;
k2 := 0;
for i := 1 to length (S1) do
begin
if s1[i] = ' ' then
begin
for j := i + 1 to length (s1) do
if s1[i + 1] <> ' ' then
if s1[j] = ' ' then begin
k1 := k1 + 1;
slova1[k1] := copy (s1, i + 1, j — i — 1);
break;
end;
end;
end;
for i := 1 to length (S2) do
begin
if s2[i] = ' ' then
begin
for j := i + 1 to length (s2) do
if s2[i + 1] <> ' ' then
if s2[j] = ' ' then begin
k2 := k2 + 1;
slova2[k2] := copy (s2, i + 1, j — i — 1);
break;
end;
end;
end;
end;
procedure chmax;
begin
m1 := 0;
m2 := 0;
while not eof (first) do
begin
readln (first, S1);
m1 := m1 + 1;
end;
while not eof (second) do
begin
readln (second, S2);
m2 := m2 + 1;
end;
if m1 < m2 then m := m1 else m := m2;
close (first);
reset (first);
close (second);
reset (second);
end;
procedure filepr;
begin
assign (first, p);
assign (second, v);
assign (third, t);
reset (first);
reset (second);
rewrite (third);
end;
function check1(x: string): boolean;
begin
if length (x) > 0 then begin
if x[1] <> ' ' then
check1 := true;
end;
end;
procedure menu;
begin
writeln;
writeln ('++++++++++++++++++++++++++++++++++++++++++++++++');
writeln ('+ Vvod imeni pervogo faila —> 1 +');
writeln ('+ Vvod imeni vtorogo faila —> 2 +');
writeln ('+ Vvod imeni tretiego faila —> 3 +');
writeln ('+ Preobrazovat tretii fail —> 4 +');
writeln ('+ +');
writeln ('+ Konec —> 0 +');
writeln ('++++++++++++++++++++++++++++++++++++++++++++++++');
writeln;
end;
begin
menu;
pf := false;
vf := false;
tf := false;
cont := true;
flag1 := false;
flag2 := false;
while cont do
begin
writeln;
write ('Vvedite komandu: ');
readln (command);
case command of
'0': cont := false;
'1':
begin
write ('Vvedite imja pervogo faila: ');
readln (p);
if check1(p) = true then
begin
pf := true;
clrscr;
menu;
end
else
begin
clrscr;
menu;
writeln ('Error input');
end;
end;
'2':
begin
write ('Vvedite imja vtorogo faila: ');
readln (v);
if check1(v) = true then
begin;
vf := true;
clrscr;
menu;
end
else
begin
clrscr;
menu;
writeln ('Error input');
end;
end;
'3':
begin
write ('Vvedite imja tretego faila: ');
readln (t);
if check1(t) = true then
begin
tf := true;
clrscr;
menu;
end
else
begin
clrscr;
menu;
writeln ('Error input');
end;
end;
'4':
begin
if (pf = true) and (vf = true) and (tf = true) then
begin
filepr;
chmax;
if check2 = false then
begin
for l := 1 to m do
begin
slv;
obrslov (slova1, slova2, k1, k2, slova, k);
for g := 1 to k do
begin
write (third, slova[g]);
if g < k then write (third, ' ');
end;
writeln (third, '');
end;
if m1 <> m2 then
begin
if m1 > m2 then for L := m to m1 do
begin
readln (first, S1);
writeln (third, S1);
end
else
for L := m to m2 do
begin
readln (second, S2);
Writeln (third, S2);
end;
end;
closing;
writeln ('Operacia zavershena');
end
else
begin
if flag1 = true then writeln ('Pervii fail pustoi');
if flag2 = true then writeln ('Vtoroi fail pustoi');
end;
end
else
begin
if pf = false then writeln ('Ne vvedeno imja pervogo faila');
if vf = false then writeln ('Ne vvedeno imja vtorogo faila');
if tf = false then writeln ('Ne vvedeno imja tretego faila');
end;
end;
else
writeln ('Neizvestnaya komanda');
end;
end;
end.
10 ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ 4
program grafik;
uses
graphabc;
var
xx, yy, a, d, maxy, maxx: integer;
t, k: real;
fileg: text;
cont, namef: boolean;
command: char;
name: string;
function Yfunc (i: real): real;
begin
result := A * sin (i) — D * sin (A * t);
end;
function Xfunc (i: real): real;
begin
result := A * cos (i) + D * cos (A * i);
end;
procedure mnoj;
begin
t := 0;
while t <= 2 * pi do
begin
xx := trunc (Xfunc (t));
if abs (xx) > maxx then maxx := abs (xx);
yy := trunc (Yfunc (t));
if abs (yy) > maxy then maxy := abs (yy);
t := t + 0.001;
end;
if WindowWidth < WindowHeight then
if maxy > maxx then k := (WindowHeight / 2) / maxy else k := (windowWidth / 2) / maxx else
if maxx > maxy then k := (windowheight / 2) / maxx else k := (windowWidth / 2) / maxy;
end;
procedure graf;
begin
k := k — k * 0.1;
moveto (1, windowHeight div 2);
lineto (WindowWidth, WindowHeight div 2);
moveto (WindowWidth div 2, 1);
lineto (WindowWidth div 2, WindowHeight);
moveto (trunc ((WindowWidth div 2) * 0.98), trunc (0.04 * WindowHeight));
Lineto ((Windowwidth div 2), 1);
lineto (trunc ((windowWidth div 2) * 1.02), trunc (0.04 * windowHeight));
moveto (trunc (windowwidth * 0.96), trunc (0.98 * (windowheight div 2)));
lineto (windowwidth, windowheight div 2);
lineto (trunc (windowwidth * 0.96), trunc (1.02 * (windowheight div 2)));
T := 0;
xx := (WindowWidth div 2) + trunc (k * Xfunc (t));
yy := (WindowHeight div 2) + trunc (k * Yfunc (t));
moveto (xx, yy);
while t <= 2 * pi do
begin
xx := (WindowWidth div 2) + trunc (k * Xfunc (t));
yy := (WindowHeight div 2) + trunc (k * Yfunc (t));
lineto (xx, yy);
t := t + 0.0001;
end;
if WindowWidth > 400 then
if Windowheight > 200 then
begin
textout (trunc (1.05 * (windowWidth div 2)), trunc (0.01 * (WindowHeight)), 'Y');
Textout (trunc (0.95 * WindowWidth), trunc ((WindowHeight div 2) * 1.05), 'X');
end;
end;
function check1: boolean;
begin
if length (name) > 0 then
begin
assign (fileg, name);
reset (fileg);
if eof (fileg) = false then check1 := true else check1 := false;
end;
end;
procedure menu;
begin
writeln;
writeln ('++++++++++++++++++++++++++++++++++++++++++++++++');
writeln ('+ Vvod imeni faila s parametrami —> 1 +');
writeln ('+ Porstroenie grafika —> 2 +');
writeln ('+ Vihod —> 0 +');
writeln ('++++++++++++++++++++++++++++++++++++++++++++++++');
writeln;
end;
procedure resize;
begin
mnoj;
ClearWindow;
graf;
redraw;
lockdrawing;
end;
begin;
t := 0;
menu;
cont := true;
while cont do
begin
Writeln ('Vvedite komady: ');
Readln (command);
case command of
'0': cont := false;
'1':
begin
writeln;
writeln ('Vvedite imja faila: ');
Readln (name);
if check1 = true then begin
namef := true;
read (fileg, a);
read (fileg, d);
close (fileg);
end else namef := false;
end;
'2':
begin
if namef = false then
writeln ('Ne Vvedeno imja faila')
else
begin
clearwindow;
SetWindowSize (800, 600);
mnoj;
graf;
cont := false;
end;
end;
end;
end;
lockdrawing;
OnResize := resize;
end.
11 ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ 5
program zapisi;
uses
crt;
type
vladelez = record
Familia: string;
Adress: string;
Avto: string;
Nomer: string;
Vypusk: integer;
end;
mas2 = array [1.200] of boolean;
mas = array [1.200] of vladelez;
var
command: char;
cont, fzap, dzap: boolean;
avtovl: mas;
n: integer;
i: integer;
ch: mas2;
marki: set of string;
procedure oprmarki (x: mas);
var
h: integer;
m: string;
begin
Write ('Vvedite marku avto: ');
readln (m);
for h := 1 to n do
if x[h]. Avto = m then
writeln (x[h]. Familia, ' nomer-', x[h]. Nomer);
end;
procedure mostold (x: mas);
var
min, nmin, h: integer;
begin
min := x[1]. Vypusk;
nmin := 1;
for h := 1 to n do
if x[h]. Vypusk < min then
begin
min := x[h]. Vypusk;
nmin := h;
end;
Writeln (x[nmin]. Familia, ' - ', min, ' god vypuska');
end;
procedure mark (x: mas);
var
h, l, k: integer;
begin
for h := 1 to n do
begin
if not (x[h]. avto in marki) = true then
begin
k := 0;
include (marki, x[h]. avto);
for l := h to n do
if x[h] = x[l] then
if x[l]. avto in marki then
k := k + 1;
writeln (x[h]. avto, '-', k);
end;
end;
end;
procedure change (x: integer; var z: mas; var v: mas2);
begin
clrscr;
v[x] := true;
write ('Vvedite familiu: ');
readln (z[x]. familia);
write ('Vvedite adress: ');
readln (z[x]. adress);
write ('Vvedite marku avto: ');
readln (z[x]. avto);
write ('Vvedite nomer avto: ');
readln (z[x]. nomer);
z[x]. Vypusk := 0;
while (z[x]. Vypusk < 1900) or (z[x]. Vypusk > 2000) do
begin
write ('Vvedite god vipuska (1900.2000): ');
readln (z[x]. vypusk);
end;
end;
procedure menu;
begin
writeln;
Writeln ('+++++++++++++++++++++++++++++++++++++++++++++++++++++');
writeln ('+ Ykazat kolichestvo zapisei ->1 +');
writeln ('+ Izmenit vse zapisi ->2 +');
writeln ('+ Izmenit odny zapis ->3 +');
writeln ('+ Kolichestvo avtomobilei kazdoi marki ->4 +');
writeln ('+ Vladelec samogo starogo avtomobila ->5 +');
writeln ('+ Familii vladelcev i nomera avto dannoi marki ->6 +');
Writeln ('+ +');
writeln ('+ Konec ->0 +');
Writeln ('+++++++++++++++++++++++++++++++++++++++++++++++++++++');
writeln;
end;
begin
for i := 1 to 200 do
ch[i] := false;
clrscr;
menu;
cont := true;
fzap := false;
while cont do
begin
write ('Vvedite komandu: ');
readln (command);
case command of
'0': cont := false;
'1':
begin
Write ('Vvedite kol-vo zapisei (1.200): ');
readln (n);
if (n > 0) and (n <= 200) then
fzap := true else fzap := false;
end;
'2':
begin
if fzap = true then
begin
for i := 1 to n do
change (i, avtovl, ch);
clrscr; menu;
end
else writeln ('Ne vvedeno kol-vo zapisei');
end;
'3':
begin
if fzap = true then
begin
write ('Vvedite nomer redaktiryemoi zapisi: ');
readln (i);
if i > n then writeln ('Wrong input')
else
begin
change (i, avtovl, ch);
clrscr;
menu;
end;
end
else Writeln ('Ne vvedeno obshee chislo zapisei');
end;
'4':
begin
if fzap = true then
begin
for i := 1 to n do
if ch[i] = false then
begin
dzap := false;
writeln ('Vvedeni ne vse zapisi');
end
else dzap := true;
if dzap = true then
mark (avtovl);
end
else
Writeln ('Ne vvedeno obshee chislo zapisei');
end;
'5':
begin
if fzap = true then
begin
for i := 1 to n do
if ch[i] = false then
begin
dzap := false;
writeln ('Vvedeni ne vse zapisi');
end
else dzap := true;
if dzap = true then
mostold (avtovl);
end
else
Writeln ('Ne vvedeno obshee chislo zapisei');
end;
'6':
begin
if fzap = true then
begin
for i := 1 to n do
if ch[i] = false then
begin
dzap := false;
writeln ('Vvedeni ne vse zapisi');
end
else dzap := true;
if dzap = true then
oprmarki (avtovl);
end
else
Writeln ('Ne vvedeno obshee chislo zapisei');
end;
end;
end;
end.