| 
| 
 | Вопрос # 2 238/ вопрос открыт / | 
 |  Приветствую, уважаемые эксперты!пожалуйста,помогите разобраться,подпешите пожалуйста по шагово каждое действие этой программы.
 ОЧень Надо!
 Приложение:Переключить в обычный режим unit Unit1; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls, Grids, Math; type  TForm1 = class(TForm)    StringGrid1: TStringGrid;    Button1: TButton;    Edit1: TEdit;    Label1: TLabel;    Label2: TLabel;    StringGrid2: TStringGrid;    Label3: TLabel;    procedure Button1Click(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end; var  Form1: TForm1; implementation {$R *.dfm} const n=5;var i:integer;type mas=array[1..n] of real; procedure TForm1.Button1Click(Sender: TObject); var i:integer;    S:real;    M:real;    y,c:mas;  begin     for i:=1 to n do    begin;    y[i]:=strtofloat(stringgrid1.Cells[i,0]);    if (y[i]<0) then stringgrid2.cells[i,0]:=floattostr(1)    else stringgrid2.Cells[i,0]:=floattostr(0);  end;   S:=0;   M:=0;   for i:=1 to n do   begin    c[i]:=strtofloat(stringgrid2.Cells[i,0]);    if c[i]=1 then S:=S+c[i] else    begin    if S>M then M:=S; S:=0;    end;   end;    if S>M then M:=S;    edit1.text:=floattostr(M); end;end. 
|  |   Вопрос задал: Якакутов Евгений Михайлович (статус: Посетитель)Вопрос отправлен: 27 декабря 2008, 17:32
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: min@y™ unit Unit1; // имя модуля
 
interface // интерфейсная часть
 
uses // ссылки на используемые модули
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, Math;
 
type
  // Форма
  TForm1 = class(TForm)
    StringGrid1: TStringGrid; // Таблица
    Button1: TButton;         // кнопка
    Edit1: TEdit;             // эдит
    Label1: TLabel;           // метка
    Label2: TLabel;           // метка
    StringGrid2: TStringGrid; // ещё одна таблица
    Label3: TLabel;           // метка
    procedure Button1Click(Sender: TObject); // обработчик события тыка на кнопку
  private
    { Private declarations } // приватные декларации :))
  public
    { Public declarations }  // публичные декларации :))
  end;
 
var
  Form1: TForm1; // Указатель на экземпляр формы
 
implementation // исполнительная часть
 
{$R *.dfm} // прицеп - ресурс формы
 
const
  n = 5; // Длина массива
 
var
  i: integer; // неиспользуемая переменная
 
type
  mas = array[1..n] of real; // тип нафиг никому ненужных массивов
 
procedure TForm1.Button1Click(Sender: TObject);
 
var
  i: integer; // индекс цикла
  S: real;    // сумма
  M: real;    // максимум
  y, c: mas;  // нафиг никому ненужные массивы
begin
  // Перевод из строк в числа и забивка в массив значений, введённых в ячейки нулевого столбца stringgrid1
  for i:=1 to n do
    begin;
      // Перевод значения из строки в число. Херовая, без отлова исключений try ... except
      y[i]:= strtofloat(stringgrid1.Cells[i, 0]);
 
      if (y[i] < 0) // при отрицательном значении числа в ячейке
        then stringgrid2.cells[i, 0]:= floattostr(1) // в эту ячейку заносится 1
        else stringgrid2.Cells[i, 0]:= floattostr(0);// иначе - 0
 
      // Не понимаю, что за ламер это писал. Зачем тут массив?
      // Он же дальше нигде не используется!
    end;
 
  S:= 0; // Инициализация
  M:= 0; // каких-то переменных :) (суммы и максимума)
 
  for i:= 1 to n do
    begin
      // Перевод из строк в числа и забивка в массив значений, введённых в ячейки нулевой строки stringgrid1
      c[i]:= strtofloat(stringgrid2.Cells[i, 0]);
 
      if c[i] = 1 // Если в ячейке "1" (херовое сравнение, числа-то вещественные!)
        then S:= S + c[i] // то увеличение S (суммы?) на 1.0
        else begin // иначе...
               if S > M  // если сумма S больше числа M
                 then M:= S; // то числу M присвается значение суммы S (поиск максимального значения количества
повторяющихся единиц)
 
               S:= 0; // Сумма обнуляется, цикл продолжается
             end;
 
      // crtl+C / ctrl+V:
      // Не понимаю, что за ламер это писал. Зачем тут массив?
      // Он же дальше нигде не используется!
    end;
 
  if S > M  // Просмотр последнего значения S
    then M:= S; // crtl+C / ctrl+V
 
  edit1.text:= floattostr(M); // Развязка детектива: ВЫВОД максимума в EDIT!
  // Жуть какая!!! (это я ЗДЕСЬ так написал. Знали бы вы, что я вслух сказал!)
end;
 
end. // конец мегамодуля :)
|  | Ответ отправил: min@y™ (статус: Доктор наук)Время отправки: 27 декабря 2008, 19:00
 Оценка за ответ: 5
 Комментарий к оценке: Огромнейшее спасибо! |  
 Мини-форум вопросаВсего сообщений: 5; последнее сообщение — 27 декабря 2008, 19:55; участников в обсуждении: 2. 
|   | min@y™ (статус: Доктор наук), 27 декабря 2008, 19:21 [#1]:Откуда взялся такой безбашенный исходник? Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 27 декабря 2008, 19:52 [#3]:Дай ему денег, пусть купит книжку по программированию для чайников. С моими комментами ты видишь, какую хрень он наваял?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 27 декабря 2008, 19:53 [#4]:Я бы за такое форматирование кода расстреливал голыми руками без суда и следствия! Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |