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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2008, 19:13   #1
Nostalgia
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 44
По умолчанию символы

помогите пожалуйста доработать програмку!
дан текст; нужно найти найбольшее количество цифр, которое идёт в нём подряд.
program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;
const
n=10;
var
S:array[1..n] of char;
i:byte;
begin
writeln ('input string S');
for i:=1 to n do
read (S[i]);
for i:=1+i to n do
begin
if(S[i]>='0') and (S[i]<='9') then
writeln ('S=',S);
readln;
readln;
end;
{ TODO -oUser -cConsole Main : Insert code here }
end.
Nostalgia вне форума Ответить с цитированием
Старый 29.12.2008, 19:26   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
var s:string;
    i,max,temp:integer;
    flag:boolean;
begin
  readln(s);
  max:=0;
  temp:=0;
  flag:=false;
  i:=0;
  repeat
  inc(i);
  if flag and (s[i] in ['0'..'9']) then inc(temp);
  if flag and not(s[i] in ['0'..'9']) then begin
                                            if temp>max then max:=temp;
                                            flag:=false;
                                           end;
 if not flag and (s[i] in ['0'..'9']) then begin
                                             temp:=1;
                                             flag:=true;
                                            end;
  until i=length(s);
  if temp>max then max:=temp;
  writeln(max);
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 29.12.2008, 19:35   #3
Nostalgia
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 44
По умолчанию

код почемуто не работает. пишет ошибку roject2.exe raised exception class EInOutError wirh message 'I/O error6'. Process stoped. Use Step or Run to continue.
Nostalgia вне форума Ответить с цитированием
Старый 29.12.2008, 19:36   #4
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Это все под Паскаль!
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 29.12.2008, 19:37   #5
Nostalgia
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 44
По умолчанию

ну так он мне и нужен.
Nostalgia вне форума Ответить с цитированием
Старый 29.12.2008, 19:40   #6
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Все работает. Проверено на последовательности
dsfghjgf09898789dg7d97fg9d7fg987f
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 29.12.2008, 19:42   #7
Nostalgia
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 44
По умолчанию

так у меня даже окно для ввода не появляется из-за этой ошибки. я на delphi7 проверяю
Nostalgia вне форума Ответить с цитированием
Старый 29.12.2008, 19:44   #8
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Так я и пишу что это на Паскале. Вы же делаете консольное приложение в Delphi
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 29.12.2008, 19:49   #9
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

У Вас должно быть что-то такое(к сожалению Delphi под рукой нет)

Код:
program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;

var s:string;
    i,max,temp:integer;
    flag:boolean;
begin
  readln(s);
  max:=0;
  temp:=0;
  flag:=false;
  i:=0;
  repeat
  inc(i);
  if flag and (s[i] in ['0'..'9']) then inc(temp);
  if flag and not(s[i] in ['0'..'9']) then begin
                                            if temp>max then max:=temp;
                                            flag:=false;
                                           end;
 if not flag and (s[i] in ['0'..'9']) then begin
                                             temp:=1;
                                             flag:=true;
                                            end;
  until i=length(s);
  if temp>max then max:=temp;
  writeln(max);
end;

end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 29.12.2008, 19:52   #10
Nostalgia
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 44
По умолчанию

да.......но при вводе строки выводятся цыфры,которых даже нет в строке
Nostalgia вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки и символы 111111 Общие вопросы C/C++ 2 16.12.2008 18:18
СИМВОЛЫ - помогите решить задачу на символы kiko Паскаль, Turbo Pascal, PascalABC.NET 5 30.11.2008 16:09
Специальные символы HunterMan Win Api 5 05.06.2008 00:17
символы Rend1 Общие вопросы Delphi 1 10.04.2008 01:39
Даны символы S1......... Artem1987 Помощь студентам 1 10.11.2007 14:59