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

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

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

 
 Ответить  Открыть новую тему 
> Задачка на строки
сообщение
Сообщение #1





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

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


Здравствуйте, уважаемые форумчане....У меня вот проблемка, я уже раза завалил экзамен по программированию, никак не получается у меня с массивами и строками...

Кто может пожалуйста напишете решение....заранее очень благодарен)...

2. Сделать программу.
Ввести строку. Заменить все знаки умножения "*" знаком процента "%". Если знака умножения нет, то вывести об этом сообщение.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Michael_Rybak
*****

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

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


посмотри в справке функцию pos.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


The matrix has me!!!
**

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

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


Program stroka;
Uses max_crt;
Var
str:string;
res:boolean;
Function Poisk(var s:string):boolean;
Var
i:integer;
l:boolean;
Begin
i:=1;
l:=false;
While i <= length(s) do
Begin
if s[i]='*' then
Begin
s[i]:='%';
l:=true;
end;
i:=i+1;
end;
poisk:=l;
end;

Begin
clrscr;
Write('vvedite stroky:'); Readln(str);
Writeln('isxodnaya: ',str);
res:=poisk(str);
if res then Writeln('===',str) else Writeln('false');
readln;
End.

а вот только не понимаю, а pos то тут зачем? тут же нужно одновременно и заменять символ, если он "*", а не просто проверять наличие хотя бы одной звёздочки... Может кто-нить пояснит, если не трудно, плиз!

Сообщение отредактировано: Yevgeny -


--------------------
"Брать производную можно научить даже обезьяну" - мой препод по матану! :-)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
Может кто-нить пояснит
Сравни со своим кодом:
var
s: string;
p, count: integer;

begin
s := 'start*finish*begin*end';
count := 0; { <--- счетчик замененных символов }
repeat
p := pos('*', s); { <--- находим позицию звездочки }
if p > 0 then begin { если звездочка есть, (p <> 0) то }
s[p] := '%'; inc(count);
{ заменяем соответствующий символ на процент }
{ и увеличиваем счетчик произведенных замен }
end;
until p = 0; { выполнять, пока звездочка будет находиться функцией pos }

if count = 0 then writeln('false') { <--- Замен не было? Значит, не было звездочек }
else writeln(s);
end.



Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


The matrix has me!!!
**

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

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


Спасибо, volvo, так это получается, что при каждом обращении к функции pos в p записывается новый номер, причём больше, чем предыдущий? То есть идёт автоматический переход по стороке к новой звёздочке? А я думал, что если найдёт, то обращайся - не обращайся, всё равно там и останется!!!

Сообщение отредактировано: Yevgeny -


--------------------
"Брать производную можно научить даже обезьяну" - мой препод по матану! :-)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Комментарии добавлены...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


The matrix has me!!!
**

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

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


Спасибо, volvo, ещё раз, я что-то ступил на счёт счётчика... Исправил, но видимо поздно, за то теперь всё понятно smile.gif


--------------------
"Брать производную можно научить даже обезьяну" - мой препод по матану! :-)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 18.01.2021 9:02
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name