Программа для линейного поиска слова - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток друзья. Возникла 2 проблемы. Туплю по конкретному конечно. Есть программа. По линейному поиску слова в строке. Вот код:
Листинг программы
  1. program z1;
  2. var
  3. S: string;
  4. i, j: integer;
  5. Arr: array[1..100] of string;
  6. begin
  7. WriteLn('Vvedite stroku: ');
  8. Readln(S);
  9. j := 1;
  10. //Записываем в массив по одному слову
  11. for i := 1 to length(s) do
  12. begin //как учесть несколько пробелов? Проблема 1
  13. if S[i] <> ' ' then
  14. Arr[j] := Arr[j] + S[i];
  15. //Вывод слова
  16. if (S[i] = ' ') or (i = length(s)) then
  17. begin
  18. writeln;
  19. writeln(Arr[j]);
  20. inc(j);
  21. continue;
  22. end;
  23. end;
  24. Writeln;
  25. writeln('Vvedite Iskomoe slovo: ');
  26. readln(S);
  27. //Проблема 2
  28. For i := 1 to j do
  29. if arr[i] = S then
  30. writeln('Iskomoe slovo nahoditcya na ',i,' pozicii')
  31. else
  32. writeln('iskomoe slovo ne naideno');
  33. end.
Проблемы две. 1) Как мне учесть, что бы между словами программа учитывала как ввод одного пробела,так и нескольких.(Грубо говоря,как удалять лишние пробелы и записать в массив одно слово,не смотря на то сколько там пробелов до другого слова) 2)Как сделать грамотное условие в цикле for(Надо именно цикл for) Что бы при нахождении слова выводилось сообщение,что слово найдено(С этим проблем нет).И как сделать,что бы условие выводилось всего один раз,если слово не найдено(В этом собственно и проблема)

Решение задачи: «Программа для линейного поиска слова»

textual
Листинг программы
  1. while pos('  ',s)>0 do//в апострофах 2 пробела
  2. delete(s,pos('  ',s),1);/1 удаляем

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.636 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы