![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Kreaman |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Vlad Репутация: ![]() ![]() ![]() |
Здравствуйте, уважаемые форумчане....У меня вот проблемка, я уже раза завалил экзамен по программированию, никак не получается у меня с массивами и строками...
Кто может пожалуйста напишете решение....заранее очень благодарен)... 2. Сделать программу. Ввести строку. Заменить все знаки умножения "*" знаком процента "%". Если знака умножения нет, то вывести об этом сообщение. |
Michael_Rybak |
![]()
Сообщение
#2
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: ![]() ![]() ![]() |
посмотри в справке функцию pos.
|
Yevgeny |
![]()
Сообщение
#3
|
![]() The matrix has me!!! ![]() ![]() Группа: Пользователи Сообщений: 74 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
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 - -------------------- "Брать производную можно научить даже обезьяну" - мой препод по матану! :-)
|
volvo |
![]()
Сообщение
#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 - |
Yevgeny |
![]()
Сообщение
#5
|
![]() The matrix has me!!! ![]() ![]() Группа: Пользователи Сообщений: 74 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Спасибо, volvo, так это получается, что при каждом обращении к функции pos в p записывается новый номер, причём больше, чем предыдущий? То есть идёт автоматический переход по стороке к новой звёздочке? А я думал, что если найдёт, то обращайся - не обращайся, всё равно там и останется!!!
Сообщение отредактировано: Yevgeny - -------------------- "Брать производную можно научить даже обезьяну" - мой препод по матану! :-)
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Комментарии добавлены...
|
Yevgeny |
![]()
Сообщение
#7
|
![]() The matrix has me!!! ![]() ![]() Группа: Пользователи Сообщений: 74 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Спасибо, volvo, ещё раз, я что-то ступил на счёт счётчика... Исправил, но видимо поздно, за то теперь всё понятно
![]() -------------------- "Брать производную можно научить даже обезьяну" - мой препод по матану! :-)
|
![]() ![]() |
![]() |
Текстовая версия | 15.04.2025 15:39 |