![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Объясните, пожалуйста [D7]
Silica © (2005-12-18 20:25:00)function TForm1.WETP(St1:string):boolean;
var i:integer;
begin
wetp:=false;
for i:=1 to pp-1 do
if (st1=words_tab[i]) then wetp:=true
end;
Данная функция проверяет наличие слова st1 в массиве (в Memo). Объясните пожалуйста, что означает строчка
for i:=1 to pp-1 do
а именно pp-1.
Silica (2005-12-18 21:13:00) [1]Охрамедное спасибо!!! :)))
mfender (2005-12-18 21:02:00) [2]for i:=1 to pp-1 do - здесь pp-1 означает, что цикл будет работать с 1 до pp <минус> 1. Просто, если pp - количество элементов массива, то если не сделать pp-1, то в конце цикла курсор массива переместится на несуществующий элемент и вызовет критическую ошибку.
pp := pp+1 - это не добавление элемента. Это увеличение переменной pp на единицу.
Silica (2005-12-18 20:54:00) [3]А что тогда делает pp-1? Проверяет слова в обратном порядке в Memo?
А:
words_tab[Pp]:=ss;
pp:=pp+1;
pp:=pp+1 это добавление одного элемента в массив, вниз?
mfender (2005-12-18 20:38:00) [4]
> все переменные описаны в области var в начале модуля.
Это плохо. Вообще, глобальными переменными лучше вообще не пользоваться. Нехорошо это. Лучше передавать всё в процедуры и функции, а всё остальное писать в файлы.
pp, следует предположить, глобальный счётчик элементов массива words_tab.
Silica (2005-12-18 20:34:00) [5]В программе есть еще такая строчка:
words_tab[Pp]:=ss;
pp:=pp+1;
все переменные описаны в области var в начале модуля.
mfender (2005-12-18 20:30:00) [6]Из приведённого кода это неизвестно.
Вероятно, это находится в глобальной области.