Примеры задач
Строки символов
Напишите процедуру 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.