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

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

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

> текст
KatushkA
сообщение 7.05.2005 23:46
Сообщение #1


Гость






Гении Паскаля, помогите пожалуста!!! Не могу найти ошибку в задаче...
выводит программа результат..но странный....я ввожу 3 слова, а она считает характеристику 19-ого, потом 25-ого...а всего-то нужно посчитать кол-во одинаковых символов в каждом слове....HELP! в чем ошибка???
вот текст модуля:
Код

UNIT  modul;
INTERFACE
  VAR
stroka: string;
max: integer;
i,k: integer;
Procedure obr_ka (k,i,max:integer);
IMPLEMENTATION
 Procedure obr_ka;
BEGIN
 Writeln ('Введите предложение, заканчивающееся точкой ');
Readln (stroka);
max:=0;
i:=1;
k:=0;
While stroka [i]<> '.' do
begin
if stroka [i]<> ' ' then
if stroka[i]=stroka [i+1] then inc (k)
else
  if k>max then begin
  max:=k;
 Writeln (' Характеристика ',i, '-го слова: ',k);
  k:=0;
  end;
  inc (i);
  end;
end;
END.

а вот основной программмы
Код

Program  zadacha_2;
Uses crt, modul;
Var
i,k,max:integer;
stroka: string;
Begin
clrscr;
obr_ka(k,i,max);
readln;
End.

:molitva:
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 10.05.2005 18:00
Сообщение #2


Гость






Тогда изменим процедуру obr_ka:

procedure obr_ka;
var
i, curr, j1, j2: byte;
ch: char;
begin
Writeln('Введите предложение, заканчивающееся точкой ');
Readln(stroka);
i := 1; num_word := 0;
while stroka[i] <> '.' do begin
curr := i;
while not (stroka[curr] in [' ', '.']) do inc(curr);
max := 0;

j1 := i;
while j1 <= pred(curr) do begin
ch := stroka[j1]; k := 0;
while stroka[j1] = ch do begin
inc(j1); inc(k);
end;
if k > max then max := k;
end;

writeln(' Характеристика ', num_word + 1, '-го слова: ', max);
inc(num_word);
i := curr;
if stroka[i] <> '.' then inc(i)
end;
end;

Вот так ...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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