Помощь - Поиск - Пользователи - Календарь
Полная версия: задача со строками
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Кристина
Опять преподы закидали angry.gif , помогите

1. Текст задан строкой var St: string;
Напечатать все слова, удалив из них все предыдущие вхождения последней буквы каждого слова.


2. Написать функцию function Test(word:string): boolean принимающую значение True, если количество руских букв в строке превосходит количество латинских.
BlackShadow
2).
Код

Function Test(Word:String):Boolean;
Var
 i,r,e:Integer;
Begin
 r:=0;
 e:=0;
 For i:=1 To Length(s) Do
   Case s[i] Of
     'а'..'п','р'..'я','А'..'П','Р'..'Я':Inc®;
     'a'..'z','A'..'Z':Inc(e)
   End;
 Test:=r>e
End;
APAL
® - это ( r ) без пробелов
Кристина
А первую совсем ни как??? sad.gif
BlackShadow
1). Я так понял надо из слов удалять последние буквы предыдущих слов.
Тогда примерно так:
Код

Const
 Separators:Set Of Char = [' ',',','.','!','?',';'];  {Добавишь чего, если захочешь}
Var
 s:String;
 i,j:Integer;

Begin
 Write('Enter String: ');
 ReadLn(s);
 While s<>'' Do
 Begin
   While (s<>'') And (s[1] In Separators) Do
     Delete(s,1,1);
   If s='' Then
     Break;
   i:=2;
   While (i<=Length(s)) And (Not(s[i] In Separators)) Do
     Inc(i);
   If i>Length(s) Then
   Begin
     WriteLn(s);
     Break
   End;
   j:=i+1;
   While j<=Length(s) Do
     If s[j]=s[i-1] Then
       Delete(s,j,1)
     Else
       Inc(j)
   WriteLn(Copy(s,1,i-1));
   Delete(s,1,i)
 End
End.

Или что-то похожее...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.