Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Задача с функцыей на Паскале.Помогите.

12K
06 декабря 2005 года
ronique
6 / / 22.11.2005
Нужно решить такую задачу: Найти самое длинное приложение в тексте и вывести его на печать.(Искать конец приложения можно только по крапке).Задачу надо решить с помощью ФУНКЦИИ!
Вот все к чему я смог додуматься,но ничего не выходит.

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='.' 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.
13K
06 декабря 2005 года
ODRI
8 / / 03.12.2005
Цитата:
Originally posted by ronique
Нужно решить такую задачу: Найти самое длинное приложение в тексте и вывести его на печать.(Искать конец приложения можно только по крапке).Задачу надо решить с помощью ФУНКЦИИ!
Вот все к чему я смог додуматься,но ничего не выходит.

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='.' 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.



Если признок конца и начала предложения есть ".", то можно так, наверное,
program funki;
uses CRT;
var st:string;
k, i1, i2, x, max, max1, max2 : integer;
function f (var i1, i2 : integer) : integer;
var s : integer;
begin
s := 0;
i1 := k; {к - глобальная}
while (k <= length (st)) and
(st [k] <> '.') do
begin
inc (s); {s := s + 1}
inc (k); {k := k + 1}
end;
i2 := k;
inc (k);
f := s
end;
begin
clrscr;

writeln ('ВВЕДИТЕ ТЕКСТ');
READ (st);

while k <= length (st) do
begin
x := f (i1, i2);
if x > max
then begin
max := x;
max1 := i1;
max2 := i2
end
end;

writeln ('САМОЕ ДЛИННОЕ ПРЕДЛОЖЕНИЕ - ',COPY (st, max1, max2 - max1 + 1));

repeat until keypressed
end.
Ну, все это, конечно, на копьютере никто на проверял, поэтому четр знает, как это работает...
Короче говоря, смысл в том, что функция ищет длину очередного предложения и возвращает с какой позиции оно начинается и на какой заканчивается.....ВОТ!

7.0K
07 декабря 2005 года
qw1
25 / / 27.07.2004
Цитата:
Originally posted by ODRI
Если признок конца и начала предложения
...
...
skipped

За искключением того, что в самом начале (после Read(st)) нужно инициализировать k(:=1) и max(:=0), прога правильна.

12K
08 декабря 2005 года
ronique
6 / / 22.11.2005
Всем огромное спосибо,програма работает.
13K
08 декабря 2005 года
ODRI
8 / / 03.12.2005
Цитата:
Originally posted by qw1
За искключением того, что в самом начале (после Read(st)) нужно инициализировать k(:=1) и max(:=0), прога правильна.



Ты прав, прав и там, там, в смысле во всем...:D :D :D

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог