Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/14: Рейтинг темы: голосов - 14, средняя оценка - 4.71
5 / 5 / 2
Регистрация: 22.10.2010
Сообщений: 44
1

Процедура для определения вхождения символа в строку

17.02.2011, 07:59. Показов 2782. Ответов 4
Метки нет (Все метки)

Цитата Сообщение от Задание
Составить процедуру, позволяющую определить позицию самого правого вхождения заданного символа в исходную строку. Если строка не содержит символа, результатом работы процедуры должна быть -1. Составить программу для проверки работы процедуры.
я составил такую процедуру и программу
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
procedure TForm1.btn1Click(Sender: TObject);
  var
    s,v:string;
    c:Char;
    f:Integer;
procedure fin(s1:string; c1:Char; var f1:Integer);
var i,r:Integer;
 begin
  r:=-1;
  for i:=Length(s1) downto 1 do
    if s1[i]=c1 then
      begin
         r:=i;
         Break;
      end;
  f1:=r;
 end;
begin
  s:=edt1.text;
  v:=edt2.Text;
  c:=v[1];
  fin(s,c,f);
  edt3.text:=inttostr(f);
end;
Но преподаватель уперся чтобы я сделал эту процедуру через рекурсию, это вот мне и не удается, прошу помощи =)

Добавлено через 12 часов 20 минут
Неужели никто не может помочь?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.02.2011, 07:59
Ответы с готовыми решениями:

Определить позицию самого правого вхождения заданного символа в строку
Здраствуйте! Помогите пожалуйста решить задачи. Проблема с процедурами, не могу понять их....

Процедура: определить позицию самого правого вхождения заданного символа в исходную строку
Задание: Составить процедуру, позволяющую определить позицию самого правого вхождения заданного...

Процедура. Определить позицию самого первого вхождения заданного символа в исходную строку

Процедура, позволяющая определить позицию первого вхождения в заданную строку какого-либо символа из второй
Помогите составить процедуру, позволяющую определить позицию первого вхождения в заданную строку...

4
134 / 47 / 11
Регистрация: 27.05.2008
Сообщений: 246
17.02.2011, 09:18 2
Вот функция.
Под процедуру сам переделай (надо будет добавить одну переменную, через которую возвращать результат)...

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function rightPos(const s: string; const sym: char): integer;
  var prom_res: integer;
  begin
  if s='' then result:=-1
  else
    begin
    prom_res:=rightpos(copy(s,2,length(s)),sym);
    if prom_res<>-1 then
      result:=prom_res+1
    else
      if s[1]=sym then result:=1
      else result:=-1;
    end;
  end;
1
5 / 5 / 2
Регистрация: 22.10.2010
Сообщений: 44
18.02.2011, 19:59  [ТС] 3
Цитата Сообщение от Просто_Юлия Посмотреть сообщение
Вот функция.
Под процедуру сам переделай (надо будет добавить одну переменную, через которую возвращать результат)...

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function rightPos(const s: string; const sym: char): integer;
  var prom_res: integer;
  begin
  if s='' then result:=-1
  else
    begin
    prom_res:=rightpos(copy(s,2,length(s)),sym);
    if prom_res<>-1 then
      result:=prom_res+1
    else
      if s[1]=sym then result:=1
      else result:=-1;
    end;
  end;
Сделал по другому, но все равно спасибо =)
0
134 / 47 / 11
Регистрация: 27.05.2008
Сообщений: 246
19.02.2011, 11:13 4
выложил бы
может, кому еще пригодится
0
5 / 5 / 2
Регистрация: 22.10.2010
Сообщений: 44
21.02.2011, 20:52  [ТС] 5
Цитата Сообщение от Просто_Юлия Посмотреть сообщение
выложил бы
может, кому еще пригодится
Ну может действительно кому-то пригодится =)
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.btn1Click(Sender: TObject);
  var
    s,v:string;
    c:Char;
    f:Integer;
procedure find(s1:string; c1:Char; var f1:Integer);
 begin
  f1:=-1;
  if length(s1)=0 then exit;
  if s1[length(s1)]=c1 then f1:=length(s1)
    else find(copy(s1,0,length(s1)-1),c1,f1);
 end;
begin
s:=edt1.text;
v:=edt2.Text;
c:=v[1];
find(s,c,f);
edt3.text:=inttostr(f);
end;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.02.2011, 20:52

Ввод строки S и символа С. Результат: число повторений символа С и порядковые позиции вхождения этого символа в строку
Нужно составить программу, в которой пользователь вводит вручную строку S и символ C. Результатом...

Написать функцию для определения вхождения в строку слова
Дана строка символов. Написать функцию для определения входят ли в эту строку слова, с количеством...

Замена символа в строке на число соответствующему номеру по порядку вхождения этого символа в строку
В заданной строке заменить каждый символ «*» числом, соответствующим номеру по порядку вхождения...

Напишите процедуру, которая сканирует строку для поиска первого вхождения ограничивающего символа
Напишите процедуру, которая сканирует строку для поиска первого вхождения ограничивающего символа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru