24.11.2010, 20:37 | #1 (permalink) |
Новичок
Регистрация: 24.11.2010
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Отладить программу, строковый тип данных (Паскаль)
Program Pr1; uses crt; var s:string; i:byte; begin clrscr; writeln('vvedite stroku'); readln(s); if pos('(',s)<>0 then delete(s,pos('(',s)+1,pos(')',s)-pos('(',s)-1); write(s); readln; end. Программа не работает, например, если перед парными скобками стоит одиночная закрывающая ghjghjgh)ghjghjg(ghjghjg) то строка остается такой же!также не работает если строка например ghjghjgj((ghjghjgjh))ghjgjhgj!должн ы остаться только внешние скобки!подскажите,что нужно изменить? |
24.11.2010, 20:37 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Если воспользоваться поиском, то можно найти много полезной информации Помогите составить программу на турбо паскаль Помогите отладить программу |
24.11.2010, 22:14 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Могу предложить такой вариант:
Код:
Program Pr1; uses crt; var s:string; i,i1,d:byte; BEGIN clrscr; writeln('Vvedite stroku:'); readln(s); i:=0; Repeat Repeat Inc(i); Until (S[i]='(') or (i=Length(S)); If (S[i]='(') and (i<Length(S)) then begin i1:=i; Repeat Inc(i); Until ((i<Length(S)) and (S[i]=')') and (S[i+1]<>')')) or (i=Length(S)); If (i<Length(S)) or ((i=Length(S)) and (S[i]=')')) then begin d:=i-i1-1; Delete(S,i1+1,d); Dec(i,d); end; end; Until i=Length(S); WriteLn(S); ReadLn; END. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|