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

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

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

Delphi.int.ru Expert

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

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

#   

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


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

Подробнее »



Вопрос # 2 238

Раздел: Delphi » Прочее
/ вопрос открыт /

Приветствую, уважаемые эксперты!
пожалуйста,помогите разобраться,подпешите пожалуйста по шагово каждое действие этой программы.
ОЧень Надо!

Приложение:
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7. Dialogs, StdCtrls, Grids, Math;
  8.  
  9. type
  10. TForm1 = class(TForm)
  11. StringGrid1: TStringGrid;
  12. Button1: TButton;
  13. Edit1: TEdit;
  14. Label1: TLabel;
  15. Label2: TLabel;
  16. StringGrid2: TStringGrid;
  17. Label3: TLabel;
  18. procedure Button1Click(Sender: TObject);
  19. private
  20. { Private declarations }
  21. public
  22. { Public declarations }
  23. end;
  24.  
  25. var
  26. Form1: TForm1;
  27.  
  28. implementation
  29.  
  30. {$R *.dfm}
  31.  
  32. const n=5;
  33. var i:integer;
  34. type mas=array[1..n] of real;
  35.  
  36. procedure TForm1.Button1Click(Sender: TObject);
  37.  
  38. var i:integer;
  39. S:real;
  40. M:real;
  41. y,c:mas;
  42. begin
  43.  
  44. for i:=1 to n do
  45. begin;
  46. y[i]:=strtofloat(stringgrid1.Cells[i,0]);
  47. if (y[i]<0) then stringgrid2.cells[i,0]:=floattostr(1)
  48. else stringgrid2.Cells[i,0]:=floattostr(0);
  49. end;
  50. S:=0;
  51. M:=0;
  52. for i:=1 to n do
  53. begin
  54. c[i]:=strtofloat(stringgrid2.Cells[i,0]);
  55. if c[i]=1 then S:=S+c[i] else
  56. begin
  57. if S>M then M:=S; S:=0;
  58. end;
  59. end;
  60. if S>M then M:=S;
  61. edit1.text:=floattostr(M);
  62.  
  63. end;
  64. end.
  65.  


Якакутов Евгений Михайлович Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Якакутов Евгений Михайлович (статус: Посетитель)
Вопрос отправлен: 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™

min@y™ (статус: Доктор наук), 27 декабря 2008, 19:21 [#1]:

Откуда взялся такой безбашенный исходник?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Якакутов Евгений Михайлович

Якакутов Евгений Михайлович (статус: Посетитель), 27 декабря 2008, 19:45 [#2]:

Да написал друг,а я разобраться не мог никак!))
min@y™

min@y™ (статус: Доктор наук), 27 декабря 2008, 19:52 [#3]:

Дай ему денег, пусть купит книжку по программированию для чайников.
С моими комментами ты видишь, какую хрень он наваял?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 27 декабря 2008, 19:53 [#4]:

Я бы за такое форматирование кода расстреливал голыми руками без суда и следствия!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Якакутов Евгений Михайлович

Якакутов Евгений Михайлович (статус: Посетитель), 27 декабря 2008, 19:55 [#5]:

))понимаю тебя!большое спасибо тебе,очень выручил!

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

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:54
Выполнено за 0.03 сек.