ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π Π°Π±ΠΎΡ‚Π° с тСкстовыми строками, Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами, Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ структурами Π΄Π°Π½Π½Ρ‹Ρ…

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π’Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° провСряСт, Π²Π²Π΅Π΄Π΅Π½ΠΎ Π»ΠΈ ΠΎΠ±Ρ‰Π΅Π΅ число элСмСнтов. Π—Π°Ρ‚Π΅ΠΌ провСряСт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ. Если всС ΠΎΠ½ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹, Ρ‚ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ся выполнятся ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΡ‡Π΅Ρ‚Ρƒ машин ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠ°Ρ€ΠΊΠΈ. Π”Π΅Π»Π°Π΅ΠΌ нСсколько Ρ†ΠΈΠΊΠ»ΠΎΠ², срСди ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ элСмСнты ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ массива ΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Π΅ΠΌ ΠΈΡ… ΡΠΎ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ. Π—Π°Ρ‚Π΅ΠΌ элСмСнты Π²Ρ‚ΠΎΡ€Π³ΠΎ с ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ заносятся Π² Π½ΠΎΠ²Ρ‹ΠΉ массив. Если тСкст… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π±ΠΎΡ‚Π° с тСкстовыми строками, Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами, Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ структурами Π΄Π°Π½Π½Ρ‹Ρ… (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

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.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ