Помогите пожалуйста решить задачу! Завтра показывать!
Ввести ФИО как одно данное строкового типа.
Вывести имя и количество букв в фамилии!
В каком порядке расположены? Что может быть разделителем?
"Ева Мария Тереза Петровна Иванова" - это корректные входные данные? (имя - Ева Мария Тереза)
Порядок расположения: Владимир Владимирович Путин (в качестве примера) Фамалия->Имя->Отчество
Разделитеь: обычный пробел
1. Копируешь часть строки до первого пробела - это имя.
writeln(copy(fio,1,pos(' ',fio)-1));
Respect, но выводится фамилия,не подскажешь как вывести ИМЕННО ИМЯ,а то парюсь никак не выходит! Ответьте,PLZ!
ты посмотри, что написал:
Ой,приношу свои глубочайшие извинения за свою невнимательность!!!!!
Я хотел написать Путин Владимир Владимирович.
Что делать в таком случае?
Можно тогда, например, так: удаляем фамилию вместе с пробелом (предварительно сообщив ее длину), а потом с именем - так, как я предложила.
разумеется, если можно нарушать исходную строку.
Ну, в принципе, можно также одной строкой сделать:
writeln(
copy( copy(fio, pos(' ', fio) + 1, length(fio)),
1,
pos(' ', copy(fio, pos(' ', fio) + 1, length(fio)))
)
);
Убийственно! Круто! Работает! Огромный респект вам за помощь! Препод завтра офигеет
Ну а как быть с фамилией? Вывести количество букв в фамилии! (Вы уж извините,очень плохо разбираюсь в языках программирования).
определить положение первого пробела можешь?
В общем никак не могу въехать,хоть убейте!
Добавлено через 11 мин.
Я сделал так,т.е. ввел новую переменную,скопировал фамилию,определил её длину но не думаю что это целесообразно и рационально! Нельзя ли по другому?
.
Program name;
uses crt;
Var s:string;
i:byte;
d:string;
x:byte;
Begin
textbackground(4);
clrscr;
textbackground(4);
textcolor(15);
writeln('vvedite fio');Readln(s);
d:=(copy(s,1,pos(' ',s)-1));
x:=length(d);
writeln (x);
end.
ты мое сообщение проигнорировал?
на вопрос не отвечаешь?
Ну первый пробел идет после Фамилии.
значит, перед первым пробелом ровно столько символов, сколько в фамилии, правда?
вот и определяй его положение с помощью pos
А!!!! Понял,вроде! Написал вот так:
.
i:=((pos(' ',s))-1);