Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

DNK
I. DNK
Баллы: 5

Подробнее »



Вопрос # 1 708

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Подскажите, пожалуйста, как работает следующая программа?

Приложение:
  1. unit s_found_;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7. StdCtrls, Grids;
  8.  
  9. type
  10. TForm1 = class(TForm)
  11. Label1: TLabel;
  12. Label2: TLabel;
  13. Button1: TButton;
  14. Edit2: TEdit;
  15. StringGrid1: TStringGrid;
  16. procedure Button1Click(Sender: TObject);
  17. private
  18. { Private declarations }
  19. public
  20. { Public declarations }
  21. end;
  22.  
  23. var
  24. Form1: TForm1;
  25.  
  26. implementation
  27.  
  28. {$R *.DFM}
  29.  
  30.  
  31. procedure TForm1.Button1Click(Sender: TObject);
  32. const
  33. SIZE=5;
  34. var
  35. a: array[1..SIZE] of integer;
  36. obr: integer;
  37. found: boolean;
  38. i: integer;
  39.  
  40. begin
  41.  
  42. for i:=1 to SIZE do
  43. a[i] := StrToInt(StringGrid1.Cells[i-1,0]);
  44.  
  45. obr := StrToInt(edit2.text);
  46.  
  47.  
  48. found := FALSE;
  49. i := 1;
  50. repeat
  51. if a[i] = obr
  52. then found := TRUE
  53. else i := i+1;
  54. until (i > SIZE) or (found = TRUE);
  55.  
  56. if found
  57.  
  58.  
  59.  
  60. end;
  61.  
  62. end.


Железов Феликс Андреевич Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Железов Феликс Андреевич (статус: Посетитель)
Вопрос отправлен: 18 июня 2008, 20:26
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: ANBsoft

Здравствуйте, Железов Феликс Андреевич!
А что собственно непонятно?
procedure TForm1.Button1Click(Sender: TObject);
const
SIZE=5;
var
a: array[1..SIZE] of integer;
obr: integer;
found: boolean;
i: integer;

begin

for i:=1 to SIZE do
a[i] := StrToInt(StringGrid1.Cells[i-1,0]);//Данные из StringGrid преобразуются в целое и вносятся в массив

obr := StrToInt(edit2.text); //Определяется что нужно искать


found := FALSE; //Признак того, что элемент нашли
i := 1;
repeat
if a[i] = obr //если элемент массива (из ячейки StringGrid) совпадает с запросом
then found := TRUE // то установить признак того что элемент найден
else i := i+1; //иначе увеличить счетчик индекса
until (i > SIZE) or (found = TRUE); //Выполнять пока не переберем весь массив или пока не найдем

if found // если нашли
then ShowMessage('Совпадение с элементом номер ' // вывести сообщение
+IntToStr(i)+#13+'Поиск успешен.')
else ShowMessage('Совпадений с образцом нет.'); //иначе вывести что ничего не нашли
end;

Вроде все понятно.

Ответ отправил: ANBsoft (статус: Студент)
Время отправки: 18 июня 2008, 20:40
Оценка за ответ: 5

Комментарий к оценке: Спасибо.
Просто возникли мелкие трудности с самой оболочкой.

Мини-форум вопроса

Мини-форум пуст.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 21 августа 2017, 14:59
Выполнено за 0.03 сек.
Рейтинг@Mail.ru