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

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Паскаль, строки (http://www.tehnari.ru/f41/t75441/)

metorok 27.06.2012 14:24

Паскаль, строки
 
ребят, помогите 2 задачки сделать пожалуйста!:tehnari_ru_942:

1)Дана строка символов. Дано слово. Удалить из строки все вхождения этого слова.

2)Дана строка символов, содержащая текст, заканчивающийся точкой. Вывести на экран те слова, которые содержат хотя бы одну букву s

Vladimir_S 27.06.2012 15:14

Цитата:

Сообщение от metorok (Сообщение 755342)
ребят, помогите 2 задачки сделать пожалуйста!

Да без проблем!
Цитата:

Сообщение от metorok (Сообщение 755342)
1)Дана строка символов. Дано слово. Удалить из строки все вхождения этого слова.

Код:

Var
 S,S1:String;
 p:Byte;
Begin
 Writeln('Enter the string:');
 Readln(S);
 Writeln('Enter the word:');
 Readln(S1);
 Repeat
  p:=pos(S1,S);
  If p>0 then Delete(S,p,Length(S1));
 Until p=0;
 Writeln(S);
 Readln
End.

Цитата:

Сообщение от metorok (Сообщение 755342)
2)Дана строка символов, содержащая текст, заканчивающийся точкой. Вывести на экран те слова, которые содержат хотя бы одну букву s

Код:

Var
 S,S1:String;
 i,j:Byte;
 b:boolean;
Begin
 Repeat
  Writeln('Enter the string:');
  Readln(S);
  If S[Length(S)]<>'.' then Writeln('Last symbol must be "."!');
 Until S[Length(S)]='.';
 i:=0;
 Repeat
  Inc(i);
  If (i=1) or ((i>1) and (S[i-1]=' ')) then
  begin
    S1:='';
    repeat
    S1:=S1+S[i];
    inc(i);
    until (S[i]=' ') or (S[i]='.');
    j:=0;
    b:=false;
    repeat
    inc(j);
    If S1[j]='s' then b:=true;
    until b or (j=length(S1));
    If b then write(S1+' ');
  end;
  Until S[i]='.';
 Readln;
End.


metorok 27.06.2012 19:34

Владимир. не могли бы вы посмотреть еще 2 задачи?
1) Упорядочить символы строки, стоящие на местах с чётными номерами, в алфавитном порядке, стоящие на местах с нечётными номерами – в порядке, обратном алфавитному.

2)Дана строка, содержащая предложения, разделенные точкой. Вывести те из них, которые содержат заданное слово.

Vladimir_S 27.06.2012 20:04

Цитата:

Сообщение от metorok (Сообщение 755532)
1) Упорядочить символы строки, стоящие на местах с чётными номерами, в алфавитном порядке, стоящие на местах с нечётными номерами – в порядке, обратном алфавитному.

Код:

Const
 N=60;
Var
 S:String;
 i,j:Byte;
 C:Char;
Begin
 Randomize;
 S:='';
 For i:=1 to N do
  S:=S+Chr(97+Random(26));
 Writeln(S);
 Writeln;
 For i:=1 to (N div 2) do
  For j:=1 to (N div 2)-i do
  If ((j*2+2)<=Length(S)) and (S[j*2]>S[j*2+2]) then
    begin
    C:=S[j*2+2];
    S[j*2+2]:=S[j*2];
    S[j*2]:=C;
    end;
 For i:=1 to (N div 2) do
  For j:=1 to (N div 2)-i do
  If ((j*2+1)<=Length(S)) and (S[j*2-1]<S[j*2+1]) then
    begin
    C:=S[j*2+1];
    S[j*2+1]:=S[j*2-1];
    S[j*2-1]:=C;
    end;
 Writeln(S);
 Readln
End.


Vladimir_S 27.06.2012 20:23

Цитата:

Сообщение от metorok (Сообщение 755532)
2)Дана строка, содержащая предложения, разделенные точкой. Вывести те из них, которые содержат заданное слово.

Код:

Var
 S,S1,W:String;
 i,p:Byte;
Begin
 Repeat
  Writeln('Enter the string:');
  Readln(S);
  If S[Length(S)]<>'.' then Writeln('Last symbol must be "."!');
 Until S[Length(S)]='.';
 Writeln('Enter the word:');
 Readln(W);
 i:=0;
 Repeat
  Inc(i);
  If (i=1) or ((i>1) and (S[i-1]='.')) then
  begin
    S1:='';
    repeat
    S1:=S1+S[i];
    inc(i);
    until S[i]='.';
    p:=Pos(W,S1);
    If p>0 then
    begin
      if S1[1]=' ' then Delete(S1,1,1);
      Writeln(S1);
    end;
  end;
  Until i=Length(S);
 Readln;
End.


metorok 27.06.2012 20:45

спасибо вам огромное Владимир!)))


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

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