Вот, то что сделал:
Насчет задачи с треугольной матрицей: ее я решать не буду, матрицы заданы в лоб, надеюсь догадаешься.
И в первой задаче итерационный алгоритм либо коряво написан, либо я еще пьян, либо чего-то не догоняю...
Все задачи раскиданы по процедурам.
Код
Uses
Crt;
Type
FIO = record
Name:String;
Year:Word;
Month:Byte;
Day:Byte;
end;
{‘в㤥вл}
Students = record
Name:String;
Z:array [1..10] of Boolean; {Џ®бҐйҐЁп}
Zz:array[1..10] of Byte; {ЋжҐЄЁ § § ¤ зЁ}
end;
Const
N:LongInt = 1234567;
S:String = ' ';
FIOCnt = 20;
G:Set of Char = ['Ђ','Ћ','…','“','ќ','ћ','џ','‰','›','?'];
Alfa = 0.03;
Beta = 0.004;
Gamma = 0.01;
Var
F,Q:File;
Ok:Boolean;
i,j:LongInt;
C:Char;
R:array[1..FIOCnt] of FIO;
Rr:FIO;
Code:Integer;
Z:array[1..FIOCnt] of Students;
Pr,Rz:Byte;
Sa,O4:Word;
St:String;
A:array[1..5] of Double;
B:array[1..8] of Double;
Cc:array[1..6] of Double;
X,Y:Real;
{----------------------------------------------------------}
{?§ Є ЄЁе жЁда б®бв®Ёв 楫®Ґ зЁб«® N Ё Є®«ЁзҐбвў® нвЁе жЁда}
Procedure DigitsCount;
begin
Str(N,S);
WriteLn('—Ёб«® N б®бв®Ёв Ё§ ',Ord(S[0]),' жЁда - "',S,'"');
end;
{----------------------------------------------------------}
Procedure ReplaceA;
{‡ ¬ҐЁвм ЎгЄўл Ђ Ћ, Ё Ї®бв ўЁвм !}
begin
Assign(F,'F');
Reset(F,1);
Assign(Q,'Q');
ReWrite(Q,1);
C:='!';
BlockWrite(Q,C,1);
WriteLn('ЏҐаҐ§ ЇЁблў Ґ¬ д ©«...');
For i:=1 to FileSize(F)-2 do
begin
GotoXY(1,3); Write('ќ«Ґ¬Ґв ®¬Ґа ',i+1);
BlockRead(F,C,1);
If C='A' then C:='O';
BlockWrite(Q,C,1);
end;
C:='!';
BlockWrite(Q,C,1);
Close(F);
Close(Q);
end;
Procedure After18;
begin
Write(#13#10'‚ўҐ¤ЁвҐ ¤ вг ў д®а¬ ⥠(„„.ЊЊ.ѓѓѓѓ) Ё«Ё, Ґб«Ё § Ї ¤«®'#13#10+
+' ЎЁа вм, ¦¬ЁвҐ ‚ў®¤ (Ї® 㬫з. 12.08.1985): ');
ReadLn(S);
If S='' then S:='12.08.1985';
{}
Val(Copy(S,1,Pos('.',S)-1),Rr.Day,Code);
Delete(S,1,Pos('.',S));
Val(Copy(S,1,Pos('.',S)-1),Rr.Month,Code);
Delete(S,1,Pos('.',S));
Val(S,Rr.Year,Code);
Dec(Rr.Year,18);
{‡ Ї®«пҐ¬ Ї®«п}
For i:=1 to FIOCnt do
With R[i] do
begin
S[0]:=Chr(Random(3)+10);
S[1]:=Chr(Random(32)+128); {128-159}
For j:=2 to Ord(S[0]) do
S[j]:=Chr(Random(15)+160); {160-175}
Name:=S;
Year:=Random(50)+1956;
Month:=Random(12)+1;
Day:=Random(25)+1; { ўбпЄЁ© б«гз © :)}
end;
TextColor(White);
WriteLn('‘ЇЁб®Є б®ўҐа襮«ҐвЁе:');
TextColor(LightGray);
For i:=1 to FIOCnt do
begin
Ok:=False;
If R[i].Year<Rr.Year then Ok:=True
else
If R[i].Year=Rr.Year then
If R[i].Month<Rr.Month then Ok:=True
else
If R[i].Month=Rr.Month then
If R[i].Day<=Rr.Day then Ok:=True;
If Ok then
begin
WriteLn(R[i].Name,': ',R[i].Day,':',R[i].Month,':',R[i].Year);
end;
end;
end;
Procedure PureStudents;
begin
For i:=1 to FIOCnt do
With Z[i] do
begin
{‘«гз ©®Ґ "Ё¬п"}
S[0]:=Chr(10);
S[1]:=Chr(Random(32)+128); {128-159}
For j:=2 to Ord(S[0]) do
S[j]:=Chr(Random(15)+160); {160-175}
Name:=S;
For j:=1 to 10 do
If Random(50)<25 then
begin
Z[j]:=True;
Zz[j]:=Random(2)+3;
end
else
begin
Z[j]:=False;
Zz[j]:=Random(3)+3;
end
end;
{‚®®ЎйҐ, Ў«пвм, гб«®ўЁҐ ¬®Ј Ўл Ё ®а¬ «м® ®д®а¬Ёвм #(}
{’ Ў«Ёж : - ”?Ћ - Љ®«-ў® Їа®ЇгбЄ®ў - ЋЎйЁ© Ў «« - Љ®«-ў® § ¤ з - ‡ з/Ґ§.}
{Љ®«-ў® аҐиҐле § ¤ з п в Є Ї®Ё¬ о??}
{‘Є®аҐ© ўбҐЈ® ЁдЁЈ Ґ в Є, ® Є Є ®д®а¬Ё«, в Є Ё Ї®«гз ©...}
{‘«гз © б ¤ҐбпвЄ ¬Ё б ¬ ўла ўЁў ©, в ¬ Ї аг бва®зҐЄ ¤®Ў ўЁвм}
WriteLn(& #39;ЙНННННННННННННННННЛННННННННННЛНННННННН
ННННННННЛННННННННННННННЛННННННН»');
WriteLn('є ”?Ћ є Џа®ЇгбЄЁ є ‘।Ё© Ў «« є Љ®«-ў® § ¤ з є ‡ зҐв є');
WriteLn(& #39;МНННННННННННННННННОННННННННННОНННННННН
ННННННННОННННННННННННННОННННННН№');
For i:=1 to FIOCnt do
With Z[i] do
begin
S:='є '+Name+' є ';
Pr:=0; Rz:=0;
Sa:=0; O4:=0;
For j:=1 to 10 do
begin
If not Z[j] then Inc(Pr);
Inc(Sa,Zz[j]);
If Zz[j]>2 then Inc(Rz);
If Zz[j]>=4 then Inc(O4);
end;
Str(Pr,St); {Љ®«-ў® Їа®ЇгбЄ®ў}
S:=S+' '+St+' є';
Str(Sa DIV 10,St); {‘।Ё© Ў ««}
S:=S+' '+St+' є';
Str(Rz,St); {Љ®«-ў® аҐиҐле § ¤ з}
S:=S+' '+St+' є';
If (Zz[9]>=4) and (Zz[10]>=4) and (Rz>=8) and (Pr<=5) and (O4>4) then
S:=S+' „Ђ є' else S:=S+' Ќ…’ є';
WriteLn(S);
end;
WriteLn(& #39;ИНННННННННННННННННКННННННННННКНННННННН
ННННННННКННННННННННННННКНННННННј');
end;
Procedure AOE;
begin
S:='„ ⥪бв Ё§ б«®ў а §¤Ґ«Ґле Їа®Ё§ў®«мл¬ зЁб«®¬ Їа®ЎҐ«®ў.'+
+' ‚뢥бвЁ б«®ў б Ё¤гйЁ¬Ё Ї®¤ап¤ ¤ўг¬п Ј« бл¬Ё. „«Ё®иҐҐҐ... ¦Ёў®в®Ґ.';
{“ЎЁа Ґ¬ "«ЁиЁҐ" Їа®ЎҐ«л}
S:=S+' '; {Џа®ЎҐ« ў Є®жҐ бва®ЄЁ, ®Ўп§ в.}
While Pos(' ',S)<>0 do Delete(S,Pos(' ',S),1);
{„Ґ« Ґ¬ ЎгЄ®ўЄЁ Ў®«миЁ¬Ё}
For i:=1 to Length(S) do
If (Ord(S[i])>159) and (Ord(S[i])<176) then S[i]:=Chr(Ord(S[i])-32)
else
If (Ord(S[i])>223) and (Ord(S[i])<240) then S[i]:=Chr(Ord(S[i])-80);
While Length(S)>1 do
begin
St:=Copy(S,1,Pos(' ',S)-1);
Ok:=False;
i:=1;
While (i<Ord(St[0])) and (not Ok) do
begin
If (St[i] in G) and (St[i+1] in G) then Ok:=True;
Inc(i);
end;
If Ok then
begin
Write(Copy(St,1,i-2));
TextColor(White);
Write(Copy(St,i-1,2));
TextColor(LightGray);
WriteLn(Copy(St,i+1,Length(S)));
end;
Delete(S,1,Pos(' ',S));
end;
end;
Procedure ThirdWordA;
begin
S:='„ ⥪бв Ё§ б«®ў а §¤Ґ«Ґле Їа®Ё§ў®«мл¬ зЁб«®¬ Їа®ЎҐ«®ў.'+
+' ЋЇаҐ¤Ґ«Ёвм зЁб«® б«®ў, зЁ ойЁебп вг ¦Ґ ЎгЄўг, зв® Ё ваҐвмҐ б«®ў®. ?и Є. ?¬г®¤ҐдЁжЁв.';
{“ЎЁа Ґ¬ "«ЁиЁҐ" Їа®ЎҐ«л}
S:=S+' '; {Џа®ЎҐ« ў Є®жҐ бва®ЄЁ, ®Ўп§ в.}
While Pos(' ',S)<>0 do Delete(S,Pos(' ',S),1);
{„Ґ« Ґ¬ ЎгЄ®ўЄЁ Ў®«миЁ¬Ё}
For i:=1 to Length(S) do
If (Ord(S[i])>159) and (Ord(S[i])<176) then S[i]:=Chr(Ord(S[i])-32)
else
If (Ord(S[i])>223) and (Ord(S[i])<240) then S[i]:=Chr(Ord(S[i])-80);
{“¤ «пҐ¬ ЇҐаўлҐ ¤ў б«®ў }
Delete(S,1,Pos(' ',S));
Delete(S,1,Pos(' ',S));
C:=S[1];
{“¤ «пҐ¬ ваҐвмҐ}
Delete(S,1,Pos(' ',S));
Rz:=0;
While Length(S)>1 do
begin
St:=Copy(S,1,Pos(' ',S)-1);
If St[1]=C then
begin
Inc(Rz);
WriteLn(St);
end;
Delete(S,1,Pos(' ',S));
end;
WriteLn('Љ®«ЁзҐбвў® б«®ў а ў® ',Rz);
end;
Procedure IterationCount;
{
‚ўҐ¤Ґл ваЁ ¬ ббЁў Ї®«®¦ЁвҐ«мле ўҐйҐб⢥ле зЁбҐ« Ђ[1:5] B[1:8] C[1:6]
§ ¤ Ґвбп в®з®бвм E:
E=alfa ¤«п н«Ґ¬в®ў ¬ ббЁў Ђ;
E=betta ¤«п н«Ґ¬Ґв®ў ¬ ббЁў ‚;
E=gamma ¤«п н«Ґ¬Ґв®ў ¬ ббЁў C;
Ј¤Ґ alfa,betta,gamma -- Їа®Ё§ў®«м® § ¤ лҐ зЁб« .
¤«п Є ¦¤®Ј® н«Ґ¬Ґв Є ¦¤®© ¬ ваЁжл ўлзЁб«повбп § 票п (Є®аҐм ваҐв쥩
б⥯ҐЁ Ё§ ) , (Є®аҐм ваҐв쥩 б⥯ҐЁ Ё§ ў) , (Є®аҐм ваҐв쥩 б⥯ҐЁ Ё§ б)
б«Ґ¤гойЁ¬ ЁвҐа жЁ®л¬ «Ј®аЁв¬®¬:
1. Y0=x
2. Y1=Y0-((Y0 ў ЄгЎҐ)-X)/3*Y0
3. ЇаЁ |Y1-Y0|>E, Yo=Y1; Ї®ўв®аҐЁҐ б Ї.2;
ЇаЁ |Y1-Y0|<=E, Y1=Y0.
’ॡгҐвбп ¤«п Є ¦¤®Ј® ¬ ббЁў ®ЇаҐ¤Ґ«Ёвм ®¬Ґа н«Ґ¬Ґв , ¤«п
Є®в®а®Ј® зЁб«® ЁвҐа жЁ© Ўл«® ¬ЁЁ¬ «мл¬.
ЋвЇҐз в вм н«Ґ¬Ґвл в®Ј® ¬ ббЁў , ¤«п Є®в®а®Ј® ўлз¬б«Ґл© ®¬Ґа
®Є § «бп ЁЎ®«миЁ¬.
}
begin
For i:=1 to 5 do A[i]:=Random(10);
For i:=1 to 8 do B[i]:=Random(20);
For i:=1 to 6 do Cc[i]:=Random(30);
Sa:=0;
A[1]:=27;
For i:=1 to 5 do
begin
Y:=A[i];
X:=Y-(Y*Y-1)/3;
Rz:=0;
Repeat
Inc(Rz);
Y:=X;
X:=Y-((Y*Y*Y)-A[i])/3*Y;
Until Abs(X-Y)<Alfa;
If Rz>Sa then Sa:=Rz;
end;
end;
Begin
ClrScr;
Randomize;
DigitsCount;
ReplaceA;
After18;
PureStudents;
AOE;
ThirdWordA;
IterationCount;
End.