mc_12
Мастер
(2448)
15 лет назад
str:='тра та та'
iskSlovo:='та'
for i:=1 to length(str) do
if str=iskSlovo[1] then
begin
if str[i+1]=iskSlovo[2]
then
begin
writeln('slovo naideno ',iskSlovo)
break
end
end
точки с запятыми сам расставишь надеюсь, это очень черновой вариант поиска по 2-ум буквам
P.S.
все подробности на мыле
LEXSUS
Гуру
(3959)
15 лет назад
ну.. . я бы сделал так:
разделил бы всю строку на отдельные слова (т. е. нашёл бы порядковые номера пробелов, занёс их в массив... ) потом сравнивал бы с искомым словом, те части строки, которые заключены между пробелами
как то так....
anton vЗнаток (267)
1 год назад
Иногда те кто дают такие задания могут дать строку Laz12trem542nzks, и слово "12", например, так что лучше делать проверку не опираясь на пробелы
anton v
Знаток
(267)
1 год назад
program str1;
var
str, word, newWord: string;
i, j, number, correctWord : integer;
isIdenticaly: boolean;
begin
correctWord := 0;
writeln ('Введите строку');
readln(str);
writeln ('Введите cлово');
readln(word);
//количество возможных слов и соответственно итераций цикла
number:= Length(str)-(Length(word)-1);
//Тут мы запускаем цикл, который повторится столько раз, сколько возможно получить слов такой же длины, как искомое слово
for i:=1 to number do
begin
isIdenticaly:= true; //Это переменная которая изначально равна true, но меняет значение на false если символ искомого слова не соответствует символу нового слова
//тут запускаем цикл внутри цикла, который проверяет каждую букву нового слова на соответствие символу искомого слова
for j:=0 to (Length(word)-1) do
begin
if (str[i+j] <> word[j+1]) then
begin
isIdenticaly:= false; //В этом месте мы меняем true на false если хоть один символ слова отличается от искомого
break;
end;
end;
if (isIdenticaly = true) then // Тут мы проверяем, если эта переменная осталась true до этого момента, значит все символы соответствуют
begin
correctWord:= correctWord + 1;
end;
end;
writeln(correctWord); //выводим количество найденных подходящих слов
end.