IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Найти самое длинное приложение из текста., Функцыи
ronique
сообщение 7.12.2005 11:57
Сообщение #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



Сообщение отредактировано: volvo - 6.11.2006 16:16
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 1)
volvo
сообщение 7.12.2005 12:18
Сообщение #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.
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 26.07.2025 9:12
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"