Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2009, 00:26   #1
Stiff
 
Регистрация: 18.03.2009
Сообщений: 7
По умолчанию Задача на строки

Определить сколько раз в строке встречается буквосочетание: "JP".
Код:
program stroki;
var s:string; st:string; x:byte; q:integer;
begin
writeln ('Введите строку'); readln(s);
st:='JD';
x:pos(st,s);
q:=0;
if x<>0 then
q:=q+1;
writeln (q);
readln;
end.
В чем ошибка!
Stiff вне форума Ответить с цитированием
Старый 26.03.2009, 00:32   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Во-первых, могли бы хотя бы исправить синтаксические ошибки.
Во-вторых, вы ищете подстроку только один раз.
Код:
uses crt;
var s:string;
 st:string;
 x:byte;
 q,i:integer;
begin
clrscr;
writeln ('Введите строку');
readln(s);
st:='JD';
q:=0;
i := 1;
repeat
 x := pos(st,copy(s,i,length(s)));
 if x<>0 then inc(q);
 i := i + x;
until x=0;
writeln (q);
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.03.2009, 00:49   #3
Stiff
 
Регистрация: 18.03.2009
Сообщений: 7
По умолчанию

Спасибо Sazary.
Stiff вне форума Ответить с цитированием
Старый 26.03.2009, 21:24   #4
Stiff
 
Регистрация: 18.03.2009
Сообщений: 7
По умолчанию

Не поможете еще с задачкой по массиву:

Составьте алгоритм, выясняющий, является ли данное слово "перевертышем" (так называются слова, читающиеся одинаково слева направо и справо налево, например: ПОТОП, КАЗАК).

Последний раз редактировалось Stiff; 26.03.2009 в 21:27.
Stiff вне форума Ответить с цитированием
Старый 26.03.2009, 21:29   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

читаете слово.
В len пишете длину слова.
Еще имеем переменную (например, flag), например, типа boolean. Изначально присваиваем ей true.
Далее в цикле:
Код:
for i:=1 to (len div 2) do
 if s[i] = s[len-i+1] then
  begin
  flag := false;
  break;
  end;
После этого, если flag = true, то слово "перевертыш", иначе - нет.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.03.2009, 22:29   #6
Stiff
 
Регистрация: 18.03.2009
Сообщений: 7
По умолчанию

Можно подробнее про len, как записать длину слова.
Stiff вне форума Ответить с цитированием
Старый 26.03.2009, 22:47   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Можно подробнее про len, как записать длину слова.
Как видно, вы не разбирались в коде предыдущей задачи. Очень жаль.
Почитайте про функцию length.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на строки LaSeule Помощь студентам 2 31.01.2009 00:54
Задача на строки Juhn Паскаль, Turbo Pascal, PascalABC.NET 1 13.05.2008 16:10