Язык программирования Pascal. Строки и записи. Васильев В.В - 7 стр.

UptoLike

7
then
if osnova[length(osnova)-1] in ['ч','ш','щ']
then mnogo:=copy(osnova,1,length(osnova)-1)+'ата'
else mnogo:=copy(osnova,1,length(osnova)-1)+'ята';
writeln(slovo,' - ',mnogo);
end;
i:=i+1
end;
readkey
End.{Multi}
Операции отношения =, <>, <, >, >=, <= можно выполнять над строками.
Строки сравниваются посимвольно слева направо. Из двух строк больше та, где
обнаруживается символ , код которого больше кода соответствующего символа
другой строки. Если сравниваемые строки разной длины, то недостающие сим-
волы более короткой строки заменяются значением chr(0).
Сравнение строк используется в задачах , связанных с сортировкой . Рас-
смотрим такую задачу.
Задача 3. Пусть текст представляет собой последовательность строк. На
каждой строке находится фамилия, имя и отчество. Распечатайте текст, содер-
жащий строки, состоящие только из фамилий и имен, а также все отчества по
алфавиту.
Строки текста будем считать элементами одномерного массива а . Выде-
лим из каждой строки подстроку, содержащую фамилию и имя. Для этого в пе-
ременной s будем накапливать символы из строки a[i] до тех пор , пока не встре-
тится второй пробел. Количество обнаруженных пробелов будем считать в пе-
ременной f (флаг).
Выведем на экран фамилию и имя, а затем удалим данную подстроку из
строки a[i]. В строке останется только отчество. Упорядочим массив из отчеств
методом сортировки выбором. Распечатаем упорядоченный массив.
Program Stroki;
Uses crt;
Const n=3;
Var a:array [1..n] of string[100];
max, s: string[100]; p,f,i,j:byte;
Begin
Textbackground(7); Textcolor(blue); Clrscr;
writeln('Введите фамилии,имена и отчества:');
for i:=1 to n do readln(a[i]);
{Вывод текста из фамилий и имен}
for i:=1 to n do
begin
s:=''; f:=0; j:=1;
repeat
s:=s+copy(a[i],j,1);