Примеры задач

Строки символов


Напишите процедуру splite(name:string; var first,last:string) которая из параметра name хранящего фамилию и имя человека извлекает их в переменные first и last. Предусмотрите обработку некорректных данных.

Методика решения

Используемые переменные:
A,b,c – строки,
Prob – номер позиции, на которой в строке находится пробел,
P – логические переменные.

Для реализации данной программы понадобятся следующие стандартные функции для работы со строками:
Функция pos(s, c) определяет номер позиции, начиная с которой строка s первый раз входит в строку с;
Функция copy(s, n, k) – из строки s выделяет k символов, начиная с n -го символа.
С помощью функции pos(‘ ‘,name) определяем на какой позиции в строке name находится пробел. Если номер позиции равен нулю, то в строке нет пробела. В этом случае выводим на экран сообщение об ошибке. Если пробел в строке есть, то переходим к дальнейшим действиям.
Далее с помощью функций copy(name, 1, prob-1) и copy(name, prob+1, length(name)) извлекаем из строки name первое и второе слово и помещаем соответственно в строки first и last .
В основной программе считываем с экрана строку, вызываем процедуру splite и выводим результат её выполнения на экран.

Листинг программы

Program ex4_3;
Uses crt;
Var
a,b,c:string;
Procedure splite (name:string;Var first,last:string);
Var
i,j,prob:integer;
Begin
prob:=pos(' ',name);
if prob=0 then
Begin
WriteLn('Текст не содержит пробелов');
first:='error';
Last:='error';
End
Else
Begin
first:=copy(name,1,prob-1);
last:=copy(name,prob+1,length(name));
End;
End;
Begin
Clrscr;
WriteLn('Введите текст');
ReadLn(a);
Writeln;
Splite(a,b,c);
WriteLn(b,'_',c);
Readln;
End.

Запустить программу






Назад

Закрыть