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

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

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

> Строки
сообщение
Сообщение #1


Гость






Программа выводит только длину слова... что необходимо добавить, чтобы выводилось все слово?
препод вот что написала:
если S[i]<>' ', то B:=B+copy(s,i,1)
n=1
если s[i]=' ' то n:=n

я никак не пойму, что она имела в виду..
заранее спасибо!!

var

i,n,max:integer;

s:string;

function wordlen(i:integer):integer;

var

n:integer;

begin

n:=0;

while (s[i]<>’ ‘) and (i<=length(s)) do

begin

i:=i+1; n:=n+1;

end;

wordlen:=n;

end;


begin

write(‘vvedite stroky:’);

readln(s);

i:=1; n:=0; max:=0;

while (i<=length(s)) do

begin

if s[i]<>’ ‘ then

begin

n:=n+1;

if wordlen(i)>max then max:=wordlen(i);

i:=i+wordlen(i);

end

else i:=i+1;

end;

writeln(max);

readln;

end.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 13)
сообщение
Сообщение #2


Бывалая
***

Группа: Пользователи
Сообщений: 290
Пол: Женский
Реальное имя: Анютка

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


Может я чего не понимаю, но что мешает написать
writeln (s);
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата
что мешает написать
writeln (s);
То, что тогда будет распечатана вся строка, а нужно - только самое длинное слово...

Flo, нужно запоминать позицию, с которой начинается слово, если его длина больше текущей максимальной:
var

i, n, max, start:integer;
s: string;

function wordlen(i:integer):integer;
var
n:integer;

begin
n:=0;
while (s[i]<>' ') and (i<=length(s)) do begin
i:=i+1; n:=n+1;
end;
wordlen:=n;
end;


begin
write('vvedite stroky:'); readln(s);
i:=1; n:=0; max:=0;

while (i<=length(s)) do begin
if s[i]<>' ' then begin
n:=n+1;
if wordlen(i)>max then begin
max:=wordlen(i); start := i;
end;
i:=i+wordlen(i);
end
else i:=i+1;

end;

writeln(max, ' --> ', copy(s, start, max));

readln;

end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






спасибо, теперь все получается
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






а не подскажете алгоритм решения вот какой задачки.. определить какие символы и сколько раз встречаются в тексте? что за чем мне нужно сделать
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Нужно зайти вот сюда и посмотреть:
Задача на обработку текста
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






а если мне не нужен массив? как тогда?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Цитата
определить какие символы и сколько раз встречаются в тексте?
Или используешь массив и делаешь задание просто, или ... Ну, скажем, идешь и начинаешь изобретать свой велосипед...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






должно получится примерно такое?
const
s: string = 'btuukdsfghkkkkkkl';
var
counter: array[char] of byte;
max: byte;
var i: integer;
begin
max := 0;
for i := 1 to length(s) do
begin
inc(counter[s[i]]);
if max < counter[s[i]] then
max := counter[s[i]]
end;
for i := 1 to 255 do
if counter[chr(i)] = max then
write(chr(i), ' ');
writeln(max);
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






По ссылке, которую я привел, находится полностью работоспособная программа. Как только в ту программу начинают вноситься изменения - это уже не моя программа, и в правильности/неправильности ее работы разбирайтесь сами...

Тем более, что спрашивалось -
Цитата
определить какие символы и сколько раз встречаются в тексте?
О том, какой символ встречается максимальное число раз не было и речи... Сначала решаем, ЧТО делать, и только потом - КАК...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






Спасибо, только не мог бы ты объяснить мне кое-что.. не совсем понимаю, что происходит здесь:
 for ch := #32 to #255 do
for i := 1 to cnt[ch] do write(ch);
почему начинаем с 32, а не с 1?
и что мне надо добавить, чтобы он мне не просто выводил символы, но еще и их количество?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Помогите, плиз!!!!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Бывалая
***

Группа: Пользователи
Сообщений: 290
Пол: Женский
Реальное имя: Анютка

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


Попробуй в паскале ввести этот код и запустить:
Var I : Integer;
Begin
For I:=0 To 255 Do Write(Chr(I));
End.

Посмотри какие символы стоят до #32. Сразу всё понятно станет smile.gif.

Чтобы выводило кол-во символов - включи счётчик good.gif

inc(J)


Сообщение отредактировано: Анна -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Perl. Just code it!
******

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

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


Ну ты и придумала ... blink.gif volvo же сказал что велосипед изобретать - это плохо ..


var
cnt: array[char] of integer;
s: string;
i: integer;
ch: char;
begin
s := 'sdj;alskjdf;laskjdf;laksjd;lkjf;lsdk;gjlskd;jgskgf';
for i := 1 to length(s) do
inc(cnt[s[i]]);
for ch := #32 to #255 do
if cnt[ch] <> 0 then writeln(ch,' ',cnt[ch]);
end.


а символы с кодами #0..#31 - упрявляющие.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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