Цитата:
Сообщение от Aestetik
1)Написать функцию function Test(word:string): boolean принимающую значение True, если последнее слово строки входит в нее еще раз.
2)Текст задан строкой: var St: string
Напечатать текст, составленный из последних литер всех слов.
3)Написать функцию для нахождения расстояния |a[i]-a[j]| между двумя наиболее близких по значению элементами вектора.
4)Const n=20; Type vector= array[1..n] of integer; Напишите программу, которая вычисляет для вектора x:
x[1] 2+x[3] 2+...+x[последнее нечетное] 2.
|
Получите. Только сразу и по существу: все 4 программы отлажены и оттестированы в среде Free Pascal, а за возможные глюки этого идиотизма по имени АВС я не отвечаю и, соответственно, вопли типа "выдает ошибку!!!" не принимаются.
Код:
Var
S:String;
Function Test(St:String):Boolean;
Var
Sx:String;
W:Array[1..100] of String;
Nw,i:Byte;
b:boolean;
begin
Sx:=St;
Nw:=1;
i:=0;
W[Nw]:='';
Repeat
Inc(i);
If (Sx[i]<>' ') and (i<=Length(Sx)) then
W[Nw]:=W[Nw]+Sx[i]
else
If Sx[i]=' ' then
begin
repeat
Inc(i);
until Sx[i]<>' ';
Dec(i);
Inc(Nw);
W[Nw]:='';
end;
Until i>Length(Sx);
b:=false;
i:=Nw;
Repeat
Dec(i);
if W[i]=W[Nw] then b:=true;
Until b or (i=1);
Test:=b;
end;
Begin
Writeln('Enter the string:');
Readln(S);
Writeln(Test(S));
Readln;
End.
Код:
Var
S:String;
W:Array[1..100] of String;
Nw,i:Byte;
Begin
Writeln('Enter the string:');
Readln(S);
Nw:=1;
i:=0;
W[Nw]:='';
Repeat
Inc(i);
If (S[i]<>' ') and (i<=Length(S)) then
W[Nw]:=W[Nw]+S[i]
else
If S[i]=' ' then
begin
repeat
Inc(i);
until S[i]<>' ';
Dec(i);
Inc(Nw);
W[Nw]:='';
end;
Until i>Length(S);
For i:=1 to Nw do
Write(W[i][Length(W[i])]);
Readln;
End.
Код:
Const
N=20;
Type
Vector=Array[1..N] of Integer;
Var
a:Vector;
k:Integer;
Function Dif(b:Vector):Integer;
Var
df,i,j:Integer;
begin
df:=10000;
For i:=1 to N-1 do
For j:=i+1 to N do
If Abs(b[i]-b[j])<df then df:=Abs(b[i]-b[j]);
Dif:=df;
end;
Begin
Randomize;
For k:=1 to N do
begin
a[k]:=random(100);
write(a[k]:4);
end;
Writeln;
Writeln;
Writeln('Result: ',Dif(a));
Readln;
End.
Код:
Const
N=20;
Type
Vector=Array[1..N] of Integer;
Var
a:Vector;
i:Integer;
Sum:Real;
Begin
Randomize;
For i:=1 to N do
begin
a[i]:=random(100);
write(a[i]:4);
end;
Writeln;
Writeln;
Sum:=0;
for i:=1 to (N div 2) do Sum:=Sum+Sqr(a[2*i-1]);
Writeln('Result: ',Sum:0:0);
Readln;
End.