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

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

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

> Работа с символьными и строковыми переменными
сообщение
Сообщение #1





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

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


Помогите решить задачу.
Дан текст, каждый символ которого может быть малой буквой, цифрой или одним из знаков +, -,*. Группой букв будем называть такую совокупность последовательно расположенных букв, которой непосредственно не предшествует и непосредственно не следует буква. Аналогично определим группу цифр и группу знаков. Выяснить, верно ли, что в данном тексте больше групп букв, чем групп знаков.
Неполучается определить группу букв и цифр, уже низнаю что делать, а завтра сдавать...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
Closed Topic Открыть новую тему 
Ответов
сообщение
Сообщение #2





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

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


Условие которое должно выполнятся программой невыполняется, все время пишет True. Может я просто что то делаю не так, а именно неправельно вызываю функцию?
program q4;
var
st:string;
a:boolean;

function IsOk(const s: String): Boolean;
const
letters = ['a'..'z'];
signs = ['*', '-', '+'];
digits = ['0'..'9'];
var
limits: set of char;
WCount, SCount, i: Byte;
begin
i := 1;
WCount := 0;
SCount := 0;
while (i <= Length(s)) do begin
while (i <= Length(s)) and (s[i] in digits) do inc(i);
if i <= Length(s) then begin
if s[i] in letters then begin
limits := letters;
inc(WCount);
end else begin
limits := signs;
inc(SCount);
end;
while (i <= Length(s)) and (s[i] in limits) do inc(i);
end
end;
IsOk := (WCount > SCount);
end;

begin
write('vvedite stroky> ');
readln(st);
a:=isok(st);
writeln('групп букв больше чем групп знаков: ',a);
end.


М
теги ...



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

Сообщений в этой теме
VoRPaX   Работа с символьными и строковыми переменными   24.01.2007 23:29
klem4   function IsOk(const s: String): Boolean; const l…   25.01.2007 0:02
VoRPaX   Условие которое должно выполнятся программой невып…   25.01.2007 1:42
volvo   Может быть, наконец, будет приведена строка, с кот…   25.01.2007 1:46
arhimag   клем могу привести тест при котором использовать т…   25.01.2007 1:48
VoRPaX   насколько я понял группа букв это "1qqq1…   25.01.2007 1:51
klem4   архимагу: Что-то я не понял, и в чем проблема ? Дл…   25.01.2007 1:52
arhimag   но это один текст!!! Добавлено: здесь…   25.01.2007 1:56
klem4   Результат верный - true, что тебе не нравится - то…   25.01.2007 1:58
VoRPaX   в первом случае две группы букв и одна группа ЗНАК…   25.01.2007 1:58
klem4   На сколько я понял, знаки и цифры для вас одно и т…   25.01.2007 2:00
arhimag   Клем а что твоя программа на ТУРБО ПАСКАЛе выведе…   25.01.2007 2:11
klem4   К твоему глубочайшему сожалению сообщаю: В перемен…   25.01.2007 2:11
arhimag   но ведь в условии нет ограничения на длину а   25.01.2007 2:12
klem4   А когда тебе дуют задачу, в которой сказано: Дано …   25.01.2007 2:15
volvo   arhimag, ну, может, хватит? :mad: Блин, ни в одно…   25.01.2007 2:18


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

 





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