![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
ronique |
![]()
Сообщение
#1
|
|||
Гость ![]() |
Найти самое длинное приложение из текста и вывести его на печать.Решить зада с помощю ФУНКЦЫИ. Сщитаем что все приложения заканчиваються на точку.
Вот что я смог зделать, дальше чтото не знаю как... Помогите пожалуйста. program funki;
var
str:string;
k,i,r:integer;
function f(st:string):integer;
var
p,g,k:integer;
begin
for i:=1 to length(st) do
if st[i]='.' THEN
begin
p:=i;
for k:=p+1 to length(st) do
if st[k]='.' then
g:=k;
if k<>p then
f:=g-p
else
f:=p;
end;
end;
begin
read(str);
r:=f(str);
writeln( r );
end.
Сообщение отредактировано: volvo - 6.11.2006 16:16 |
|||
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
ronique,
если ВСЕ предложения находятся в одной строке, то так: function get_next(var s: string): string;
var p: byte;
begin
p := pos('.', s);
if p <> 0 then begin
get_next := copy(s, 1, p - 1);
delete(s, 1, p);
end
else begin
get_next := s;
s := '';
end;
end;
var
s, next, max_s: string;
begin
write('text = '); readln(s);
max_s := '';
while s <> '' do begin
next := get_next(s);
if length(next) > length(max_s) then max_s := next;
end;
writeln('max = ', max_s);
end.
|
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 9:12 |