• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Паскаль, строки

  • Автор темы Автор темы metorok
  • Дата начала Дата начала

metorok

Ученик
Регистрация
27 Июн 2012
Сообщения
8
Реакции
0
Баллы
0
Паскаль, строки

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

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

2)Дана строка символов, содержащая текст, заканчивающийся точкой. Вывести на экран те слова, которые содержат хотя бы одну букву s
 
ребят, помогите 2 задачки сделать пожалуйста!
Да без проблем!
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.
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.
 
Владимир. не могли бы вы посмотреть еще 2 задачи?
1) Упорядочить символы строки, стоящие на местах с чётными номерами, в алфавитном порядке, стоящие на местах с нечётными номерами – в порядке, обратном алфавитному.

2)Дана строка, содержащая предложения, разделенные точкой. Вывести те из них, которые содержат заданное слово.
 
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.
 
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.
 
спасибо вам огромное Владимир!)))
 
Назад
Сверху