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

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

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

 
 Ответить  Открыть новую тему 
> Текст, строки. Анализ буквенного состава предложения.
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Lerix

Репутация: -  0  +


а не моглибы и мне помочь?))) условие:"вводится текст из нескольких предложений. нужно найти то предложение, в котором встречается больше всего различных букв"
например:
"я люблю музыку. она очень хорошая."
в 1ом предложении ялюбмузык и того 9 разных букв.
во 2ом оначеьхршая и того 11 букв.

в принципе у меня получается, но использовал кучу различных счетчиков у функцию "go to" но как недавно узнал этот способ не подходит, во 1х долго работает если больше 5и предложений, во 2х "go to" ламерский метод blink.gif . когда доходит до точки виснет. и еще хотелось бы учесть различные символы ".!?" и если вдруг есть несколько предложений с одинаковым максимальным различных кол-вом букв
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
в принципе у меня получается, но использовал кучу различных счетчиков у функцию "go to"
Ух... А давай ты все-таки покажешь, КАК именно у тебя получалось (или не получалось)? А мы уже подправим, если что...

Кстати, зачем в чужой теме? Только потому, что она называется "Задача на строки"? (привет, Istari) Надо было свою тему создать...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Lerix

Репутация: -  0  +


Цитата(volvo @ 10.12.2008 17:57) *

Ух... А давай ты все-таки покажешь, КАК именно у тебя получалось (или не получалось)? А мы уже подправим, если что...

Кстати, зачем в чужой теме? Только потому, что она называется "Задача на строки"? (привет, Istari) Надо было свою тему создать...



ну да. так как строки.


var

i,k,t,s,m,n:integer;

tekst,alf:string;

bukvy: array [1..33] of char;

alf:='абвгдеежзийклмнопрстуфхцчшщъыьэюя';

m:=0;

begin

readln(tekst);

t:=length(tekst);

1: for i:=1 to 33 do begin

for k:=1 to t do begin

if alf[i]=tekst[k] then begin

for s:=1 to 33 do begin

if tekst[i]<>bykvy[s] then m:=m+1;

else go to: 1 end;

if m=33 then bukvy[i]:=copy(tekst,i,1);

end;

.................

в общем то идея такая но тут такой бардак получается blink.gif
у меня была идея сделать вот так:
проверяем каждую букву на наличие ее в алфавите(чтоб исключить различные не нужные символы) потом копируем ее в созданный массив (предварительно проверив нет ли такой уже) потом как только доходим до точки считаем сколько букв мы откопировали и присваиваем ее к какой нибудь переменной очищаем наш массив и начинаем все с нуля потом проверяем какое число различеых букв больше предыдущее или то что получилось при проверки следующего предложения. и так далее..........


короче получается полная бурда blink.gif

знаю что есть более простые способы решения, и хотелось бы их узнать)))) процедурамми и функциями вроде
П.С. я "Ломаносов"(самоучка);
покажите пожалуйста пример решения этой задачи)))) а дальше я как нибудь сам)))

М
При публикации кода используй теги.
Lapp

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Вот смотри, привожу пример решения задачи... Но ты обещал разобраться в нем... Разбирайся. Он прокомментирован, это будет легко сделать. Если будут какие-то вопросы, что-то непонятно - спрашивай. Не копируй бездумно...

const
s: string = 'music is my love. i very very like it.';

var
max_st, st: string; { Здесь будем хранить макс. строку и текущую строку }
i, count, max: integer;
letters: set of char; { разные буквы в текущем предложении }

begin
max_st := ''; st := ''; { Начальные установки - все обнуляем }
max := 0;
count := 0; letters := [];

i := 1;
{ идем по строке, и проверяем каждый символ: }
while i <= length(s) do begin
if (s[i] = '.') and (count > max) then begin
{
конец продложения и счетчик разных символов в этом
предложении больше, чем был во всех предыдущих?
}
{ обновим максимум и само предложение }
max := count; max_st := st;

{ и подготовимся к обработке след. предложения }
st := ''; count := 0; letters := [];
end { if }
else begin
{
не конец предложения, обычный символ?
проверим, присутствует ли он уже в Letters, надо ли его считать "разным"
}
if not (s[i] in letters) then begin
{ не присутствует, добавляем и увеличиваем счетчик "разных" символов }
letters := letters + [ s[i] ];
inc(count);
end;
{
и составляем текущее предложение, оно может пригодиться,
когда дойдем до символа '.'
}
st := st + s[i];
end; { else }
inc(i); { Все, переходим к следующему символу }
end; { while }
{ строка закончилась - печатаем самое длинное предложение }
writeln(max_st);
end.


Цитата
у меня была идея сделать вот так:
Ну, фактически это и есть то, что сделано у меня. За одним исключением: я не вижу, где здесь полная бурда...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Lerix

Репутация: -  0  +


Цитата(volvo @ 10.12.2008 19:30) *


Ну, фактически это и есть то, что сделано у меня. За одним исключением: я не вижу, где здесь полная бурда...

про бурду я имел в виду свое творениеsmile.gif
но сейчас посмотрел и все больше убеждаюсь. Все гениальное - просто, и наоборот все простое - гениально! Спасибо большееsmile.gif осталось еще полистать литературу разобраться и для закрепления че нить сделать на подобии, но с другими условиямиsmile.gif а может есть еще какие варианты решения??? Если есть напишите пожалуйста. Охотн знать куда больше чем знаю сейчас.smile.gif да и соображалка будет лучше работатьsmile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


М
Большая просьба не флудить своими вопросами в чужих темах.
Разделено. Дальше буду удалять.



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 19.04.2024 12:00
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name