![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Selena |
![]() ![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 39 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Помогите решить задачи по строковым типам:
1.Дан текст, подсчетать в нем количество букв начинающихся и заканчивающихся на одну и туже букву. 2. Дан текст "'В киоске продают газеты стоимостью 5 руб. и журнал, стоимостью 50 руб.", нужно сформировать из этого текста текст: "'В киоске продают газеты стоимостью 10 руб. и 2 журнала, стоймостью 100 руб.". В принципи я это зделала: st1:='10'; st2:='2 журнала'; st3:='100'; begin tekst:=t;m:=Length(tekst); delete(tekst,36,1); delete(tekst,44,6); delete(tekst,57,2); End Else WriteLn(f,'Слово "стоимость" не содержится в тексте 2 раза'); Insert(st1,tekst,36); Insert(st2,tekst,46); Insert(st3,tekst,68); WriteLn(f,'Преобразованный текст:');WriteLn(f,tekst); Но оказалось что это надо делать с помощью цикла For. Подскажите как! Спасибо огромноеЙ :yes: |
![]() ![]() |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
по поводу второй не понимаю смысл задания ;)
а в первой все просто! uses crt;
const limits=[#0..#32,'.',',',';','!','?'];
var s:string;
i,bword,count:integer;
Begin
clrscr;
write('s='); readln(s);
i:=1; count:=0;
while i<=length(s) do
begin
while(i<=length(s))and(s[i] in limits) do
inc(i);
if i<=length(s) then
begin
bword:=i;
while(i<=length(s))and(not(s[i] in limits)) do
inc(i);
if s[bword]=s[pred(i)] then
inc(count);
end;
end;
writeln('count=',count);
readln;
end.
;) -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
klem4, на всякий случай я бы сделал так:
if upcase(s[bword])=upcase(s[pred(i)]) then inc(count);
:yes: Selena, это только в том случае если "T" и "t" нужно считать одной буквой. Если нет - все оставляй по-прежнему... |
klem4 |
![]()
Сообщение
#4
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
все что пришло в голову :
2) uses crt;
var
s,s1:string;
i:integer;
Begin
clrscr;
s:='В киоске продают газеты стоимостью 5 руб. и журнал стоимостью 50 руб.';
writeln(s);
s1:='5 руб. и журнал стоимостью 50 руб.';
i:=1;
if pos(s1,s)<>0 then
begin
while copy(s,i,length(s1))<>s1 do
inc(i);
delete(s,i,length(s1));
insert('10 руб. и 2 журнала стоимостью 100 руб.',s,i);
end;
writeln(s);
readln;
end.
;) Сообщение отредактировано: klem4 - 26.05.2005 17:50 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Selena |
![]()
Сообщение
#5
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 39 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Спасибо огромное!!!!!
:hi: |
Selena |
![]()
Сообщение
#6
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 39 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Смысла, во 2 вообще нет. Это у нас такая лаба.
|
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 9:26 |