Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Pascal ABC (http://www.tehnari.ru/f43/t82763/)

Aestetik 22.12.2012 16:00

Pascal ABC
 
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.

Aestetik 22.12.2012 20:18

Пожалуйста помогите,уж очень надо:tehnari_ru_837:

Vladimir_S 22.12.2012 21:05

Цитата:

Сообщение от Aestetik (Сообщение 837242)
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.


Aestetik 23.12.2012 15:41

Глюков нет,проверил!
 
Спасибо вам,огромное)


Часовой пояс GMT +4, время: 00:24.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.