Помощь - Поиск - Пользователи - Календарь
Полная версия: Слова в скобках
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
acid_burn
Привет всем! Люди, помогите решить следущую задачу.
Дана строка. Вывести все символы, находящиеся в скобках.
Вот программка, но почему-то не хочет работать:
Код
Program mnogo_scobok;
Uses Crt;
var
s,s1:string;
p1,p2,i:byte;
begin
    clrscr;
    write('Please, input string >');
    readln(s);
    s1:='';
    p1:=pos('(',s);
    p2:=pos(')',s);
    while (p1 and p2)<>0 do
     begin
         for i:=p1+1 to p2-1 do
            s1:=s1+s[i];
         delete(s,p1,p2-p1+1);
         p1:=pos('(',s);
         p2:=pos(')',s);
     end;
    writeln;
    writeln(s1);
    writeln;
    writeln('Press any key...');
    readkey;
end.

Вот ещё алгоритм, на котором, как мне кажется, можно легко понять работу программы.


И вот эту задачку, а то что-то даже в голову не идёт:
Определить имеются ли в двумерном массиве элементы со значениями, содержащими цифру «1» (например, 105)
volvo
Program mnogo_scobok;
Uses Crt;
var
s, s1: string;
inside: boolean;
i: byte;
begin
clrscr;
(*
write('Please, input string >');
readln(s);
*)
s := 'this (is) the test (of) (input) string';

s1 := ''; inside := false;
for i := 1 to length(s) do
case s[i] of
'(': inside := true;
')': inside := false;
else
if inside then s1 := s1 + s[i];
end;

writeln(s1);
writeln;
writeln('Press any key...');
readkey;
end.

Так будет гораздо проще (если только скобки не могут быть вложенными и расставлены правильно)...

Насчет второй задачи - насколько я понимаю, речь о двумерном массиве чисел? Так в FAQ-е есть алгоритм разбиения числа на цифры без перевода в строку, вот и разбиваешь, следя за тем, есть ли среди полученных цифр 1, или нет...
klem4
Цитата
если только скобки не могут быть вложенными и расставлены правильно

тогда еще вот такой вариант:
procedure Print(s: string);
var
p, q: byte;
begin
p := pos('(', s);
if p > 0 then begin
q := pos(')', s);
writeln(copy(s, p + 1, q - p - 1));
Print(copy(s, q + 1, 255));
end;
end;
acid_burn
Спасибо всем. Помогите решить следущую задачку. Дано предложение. Между словами ровно один пробел. Выделить в нём все слова.
P.S Люди, почему у меня никому рейтинг поднимать нельзя???
klem4
Цитата
Помогите решить следущую задачку. Дано предложение. Между словами ровно один пробел. Выделить в нём все слова.


М
6. Одна тема - один вопрос (задача)



Разбиение на слова. Все способы.

В следующий раз используй поиск.

Цитата
Люди, почему у меня никому рейтинг поднимать нельзя???


недостаточно сообщений на форуме.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.