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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2013, 15:00   #1
azhigalieva
 
Регистрация: 18.10.2013
Сообщений: 8
По умолчанию Из функции в процедуру в Delphi

Delphi.
Даны N предложений, в которых имеется буква ш. Найти, в каком из них эта буква имеет больший порядковый номер (при счете от начала предложения). Если в предложении имеется несколько букв ш, то должна быть учтена последняя из них. (Определить функцию для нахождения порядкового номера последнего вхождения в предложение некоторой буквы.)

Функция у меня получилась, ниже код программы. Теперь нужно эту функцию mem переделать в процедуру.
Подскажите, как это сделать?
Вот код программы с функцией:

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Memo: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}

function mem(s:string):integer;
var i,a:integer;
begin
a:=0;
for i:= length(s) downto 1 do
begin
if s[i]='ш' then
begin
a:=i;
break;
end;
end;
mem:=a;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i,max,j,a,b: integer;
s,s4:string;
begin
s:=memo.text;
max:=0;
b:=-1;

for j := 0 to Memo.Lines.Count-1 do
begin
s4:=memo.lines[j];
a:=mem(s4);

if a>max then
begin
max:=a;
b:=j;
end;
end;
label1.Caption:=label1.Caption+intt ostr(b+1);
end;
end.

Последний раз редактировалось azhigalieva; 18.10.2013 в 15:05.
azhigalieva вне форума Ответить с цитированием
Старый 18.10.2013, 17:17   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Код:
Procedure mem(s:string; var a : Integer)
var i:integer;
begin
for i:= length(s) downto 1 do
begin
if s[i]='ш' then
begin
a:=i;
break;
end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  a : Integer;
Begin
  a := 0;
  Mem(s4, a);
End;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
процедуры и функции: Описать процедуру RectPS (x1,y1,x2,y2,P,S), вычисляющую периметр P и площадь S прямоугольника (Pascal ABC) Ivanacats Помощь студентам 10 03.10.2012 17:50
Описать процедуру Lifehouse Общие вопросы C/C++ 3 05.06.2012 20:13
Написать процедуру, заменяющую стандартную процедуру Insert Andi5 Паскаль, Turbo Pascal, PascalABC.NET 2 24.11.2011 17:57
Задача на процедуру. Буханкин Помощь студентам 1 19.11.2011 20:48
Как подменить адрес возврата функции func на адрес функции f используя переполнение буфера buf и функции gets dmitrii6120 Помощь студентам 6 14.11.2011 20:10