![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
ЗАДАНИЕ:
Составить программу, которая читает построчно текст другой программы (ввести с клавиатуры) в MEMO на языке Pascal, подсчитывает количество ключевых слов “begin” и “end” и выводит на экран соответствующее сообщение. 1.правильно ли я решила что это надо делать через строковый массив?????? 2.как считать построчно массив из MEMO (если 1 пункт правильно)???? пожалуйста, помогите.......))))))) P.S. может есть другой способ для решения этой задачи????? |
|
#2
|
||||
|
||||
|
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i,b,e:integer;
begin
b:=0;
e:=0;
for i:=0 to memo1.Lines.Count-1 do
begin
if pos('end',memo1.Lines[i])<>0 then inc(e);
if pos('begin',memo1.Lines[i])<>0 then inc(b);
end;
showmessage('Begin count= '+inttostr(b)+' end count= '+inttostr(e));
end; |
|
#3
|
||||
|
||||
|
Цитата:
|
|
#4
|
|||
|
|||
|
имеется в виду в Memo должен вводиться код программы на языке паскаль......в котором и будут искаться слова
![]() |
|
#5
|
|||
|
|||
|
Цитата:
Твой алгоритм проверяет на жесткое нахождение хотя бы одного слова в строке, а если в строке два end-а? или два begin-а? |
|
#6
|
|||
|
|||
|
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i,b,a:integer;
begin
b:=0;
a:=0;
for i:=0 to memo1.Lines.Count-1 do
begin
if pos('end',memo1.Lines[i])>0 then a:=a+1;
if pos('begin',memo1.Lines[i])>0 then b:=b+1;
end;
showmessage('Begin count= '+(b)+' end count= '+a+');
end; |