![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
вот такая задачка:
вводится строка: фамилия, имя, отчество; получить строку, содержащую фамилию полностью и начальные буквы инициалов.(из стандартного можно использовать length, ord, char) вот что, получилось
program hgkf;
uses crt;
function slovo(const s:string; var i:byte):string;
var w:string;
begin
w:='';
while (s[i]<>' ') do
begin
w:=w+s[i];
i:=i+1;
end;
slovo:=w;
end;
function slovo1(const s1:string; var i:byte):string;
var w1:string; begin
w1:='';
while (s1[i]<>' ') and (i<=length(s1)) do
begin
w1:=w1+s1[i];
i:=i+1;
end;
slovo1:=w1;
end;
VAR
s,s1,s2,w,w1:string;
i:byte;
BEgIN
clrscr;
writeln ('vvedite stroky');
readln (s);
w:=slovo(s,i); s1:='';
s1:=s1+(s-w); { здесь я хочу получить строчку, содерж. только имя и отчество, но компилятор не пропускает}
w1:=slovo1(s1,i);
while i<-length(s1) do
begin
w1[0]:=w1[1];
w1:=w1+1;
end;
s2:=w+' '+char(ord(w[0]));
writeln(s2);
readln;
readln;
end.
|
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
![]() Так пойдет ?) const
n = 3;
P: array [1..n] of String = (
'Иванов Иван Петрович',
'Петров Сергей Сергеевич',
'Сидоров Николай Валентинович'
);
var
i: Integer;
begin
for i := 1 to n do
writeln( Copy(P[i], 1, Pos(' ', P[i])), ' ',
Copy(P[i], Pos(' ', P[i]) + 1, 1), '.', Copy(P[i] ,
Pos(' ', P[i]) + 1 + Pos(' ', Copy(P[i], Pos(' ', P[i]) + 1,255)), 1));
end.
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Цитата из стандартного можно использовать length, ord, char ![]() Я бы вот так делал: uses crt;
function slovo(const s: string; var i: byte): string;
var w: string;
begin
w := ''; i := 1;
while s[i] <> ' ' do begin
w := w + s[i];
i := i + 1;
end;
slovo := w;
end;
function letter(const s: string; var i: byte): string;
begin
while s[i] <> ' ' do
i := i + 1;
while s[i] = ' ' do
i := i + 1;
letter := s[i];
end;
var
s, w: string;
i: byte;
begin
clrscr;
writeln('vvedite stroky');
readln(s);
w := slovo(s,i) + ' ';
w := w + letter(s, i) + '.';
w := w + letter(s, i) + '.';
writeln(w);
readln;
end.
|
18192123 |
![]()
Сообщение
#4
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
|
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Смысл? Она вытаскивает из строки первый символ после пробела, начиная с той позиции, которая передана в переменной i... При этом, по окончании работы этой функции i содержит позицию возвращенного символа... Таким образом, если мы вызываем эту функцию 2 раза подряд, то она вернет первые буквы двух подряд идущих слов... Что тебе и нужно
![]() |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 9:08 |