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

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

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

 
 Ответить  Открыть новую тему 
> Слова в скобках, вывод всех слов
acid_burn
сообщение 2.05.2008 9:21
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской
Реальное имя: Серёга

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


Привет всем! Люди, помогите решить следущую задачу.
Дана строка. Вывести все символы, находящиеся в скобках.
Вот программка, но почему-то не хочет работать:
Код
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)

Сообщение отредактировано: acid_burn - 2.05.2008 9:29


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 2.05.2008 10:27
Сообщение #2


Гость






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
сообщение 2.05.2008 10:50
Сообщение #3


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Цитата
если только скобки не могут быть вложенными и расставлены правильно

тогда еще вот такой вариант:
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;


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
acid_burn
сообщение 2.05.2008 14:19
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской
Реальное имя: Серёга

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


Спасибо всем. Помогите решить следущую задачку. Дано предложение. Между словами ровно один пробел. Выделить в нём все слова.
P.S Люди, почему у меня никому рейтинг поднимать нельзя???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 2.05.2008 14:48
Сообщение #5


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Цитата
Помогите решить следущую задачку. Дано предложение. Между словами ровно один пробел. Выделить в нём все слова.


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



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

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

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


недостаточно сообщений на форуме.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 20.07.2025 6:43
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"