Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2010, 11:29   #1
ilyas22
Пользователь
 
Регистрация: 04.11.2009
Сообщений: 17
Сообщение Множества, объясните как работает программа

var CountMax,CountCurrent,i,lng:byte;
s:String;
a:set of '0'..'9';
begin
cls;
writeln('введите строку');
readln(S);
countmax:= 0;
CountCurrent:= 0;
{непонятно с этой части}
for i:=1 to length(S) do
if s[i] in ['0'..'9']
then
CountCurrent:= CountCurrent + 1
else
begin
if CountCurrent> CountMax
then CountMax:= CountCurrent; CountCurrent:= 0;
end;
if CountCurrent> CountMax
then CountMax:= CountCurrent;
{до этой}
Writeln('максимальное количество цифр идущих подряд - ' ,CounTMax);
end.
ilyas22 вне форума Ответить с цитированием
Старый 06.06.2010, 11:49   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Код:
var CountMax,CountCurrent,i,lng:byte;
s:String;
a:set of '0'..'9'; //непонятно зачем обьявляли
begin
cls;
writeln('введите строку');
readln(S);
countmax:= 0;
CountCurrent:= 0;
{непонятно с этой части}
for i:=1 to length(S) do// цикл от 1 до (количества символов в строке s)
if s[i] in ['0'..'9'] // если символ с порядковым номером i входит в ['0'..'9']ну то есть является цифрой
then // тогда
CountCurrent:= CountCurrent + 1 //добавляем 1 к переменной CountCurrent 
else //иначе 
begin//начало выполнения условия
if CountCurrent> CountMax //если переменная CountCurrent больше  переменной CountMax
then CountMax:= CountCurrent; CountCurrent:= 0; // тогда присваиваем переменной CountMax значение переменной CountCurrent и обнуляем CountCurrent
end;//конец выполнения условия
if CountCurrent> CountMax //тут тоже самое
then CountMax:= CountCurrent;//тут тоже самое
{до этой}
Writeln('максимальное количество цифр идущих подряд - ' ,CounTMax);
end.
если по простому то начинаем сверять с 1 символа, если символ цифра, то к счётчику добавляем 1 если не цифра, то сверяем с сохранённым ранее максимальным количеством, и если больше, то записываем если нет то не записываем, но всё равно счётчик обнуляем
ну а ещёраз сверяем с максимальным количеством после цикла, потому что строка могла закончится цифрой.
vovk вне форума Ответить с цитированием
Старый 06.06.2010, 11:52   #3
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Код:
var CountMax,CountCurrent,i,lng:byte;
s:String;
a:set of '0'..'9';
begin
cls;
writeln('введите строку');
readln(S);
countmax:= 0;
CountCurrent:= 0;
{непонятно с этой части}
for i:=1 to length(S) do// порходим по всем символам строки
if s[i] in ['0'..'9'] // если символ число
then
CountCurrent:= CountCurrent + 1 // то переменное CountCurrent присваиваем +1, т.е. здесь считаем кол-во подряд идущих символов.
else // если не число
begin
if CountCurrent> CountMax // тогда сверяем длину полученнай последовательности чисел с максимальной предыдущей, если текущая длина больше
then CountMax:= CountCurrent; CountCurrent:= 0;// то записываем ее в CountMax и обнуляем CountCurrent для последующего подщета длины подряд идущих символов 
end;
if CountCurrent> CountMax //
then CountMax:= CountCurrent; // а вот это вообще не понятно для чего.
//а нет, все правильно, поледний if нужен для того, если сторка будет заканчиваться числом, то он не будет всерятся с CountMax  в цикле программы.
{до этой}
Writeln('максимальное количество цифр идущих подряд - ' ,CounTMax);
end.
Жми на весы!!!

Последний раз редактировалось Chudo4258; 06.06.2010 в 11:55.
Chudo4258 вне форума Ответить с цитированием
Старый 06.06.2010, 11:55   #4
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Цитата:
Сообщение от Chudo4258 Посмотреть сообщение
Код:
if CountCurrent> CountMax //
then CountMax:= CountCurrent; // а вот это вообще не понятно 
end.
а если строка цифрой закончилась?
vovk вне форума Ответить с цитированием
Старый 06.06.2010, 12:17   #5
ilyas22
Пользователь
 
Регистрация: 04.11.2009
Сообщений: 17
Сообщение

Спасибо парни, без вашей помощи не разобрался бы
ilyas22 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разборка кода программы, как работает программа marsel989 Помощь студентам 29 17.06.2010 16:57
Как работает программа и что делает dragun4ik Помощь студентам 0 23.05.2010 15:51
Объясните как работает PaintBox. NIQK Компоненты Delphi 1 11.12.2009 17:46
Паскаль. рекурсия. числа. объясните, как работает код [silver beast] Помощь студентам 2 21.01.2009 05:00
Объясните, как работает функция strlen() TheWanderer Общие вопросы C/C++ 9 25.11.2008 22:46