Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2014, 21:21   #1
mishammm
Форумчанин
 
Регистрация: 21.09.2013
Сообщений: 232
По умолчанию поиск максимального элемента в столбце Stringgrid Delphi

Здравствуйте, у меня программа которая табулирует функцию в Stringgrid-е а потом выводит максимальное значение в Edit . Ну так вот в чём проблема, проблема в том, что оно макс. элемент ищет по всей таблице, а нужно только по 3 столбцу
Вот эта часть кода:
Код:
max:= strtofloat(stringgrid1.cells[3,1]);
   for i:=1 to Stringgrid1.ColCount do
   If    max<strtoint(stringgrid1.cells[3,i]) then
   max:=strtoint(stringgrid1.cells[3,i]);

    Edit3.Text:=FloatToStr(max);

P.S. проект прилагаю.
Помогите плиз отловить ошибку! Спасибо!
Вложения
Тип файла: rar PR_3_2.rar (198.8 Кб, 24 просмотров)
mishammm вне форума Ответить с цитированием
Старый 22.09.2014, 21:27   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Во-первых: to Stringgrid1.ColCount-1
Во-вторых: Быть не может чтоб оно пробегало по всем ячейкам...
Ты что-то путаешь.
Впрочем я свое видение покажу:
Код:
with StringGrid1.Cols[2] do begin
 max:=StrToIntDef(Strings[0],0);
 for i:=1 to Count-1 do
  if max<StrToIntDef(Strings[i],0) then max:=StrToIntDef(Strings[i],0);
end
P.S. Кстати тебе наверное не ColCount а RowCount нужно...
I'm learning to live...

Последний раз редактировалось Stilet; 22.09.2014 в 21:29.
Stilet вне форума Ответить с цитированием
Старый 22.09.2014, 21:39   #3
mishammm
Форумчанин
 
Регистрация: 21.09.2013
Сообщений: 232
По умолчанию

Код:
Вот полностью весь код:
unit tabl2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, Spin,Math;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    SpinEdit1: TSpinEdit;
    Button1: TButton;
    Edit3: TEdit;
    Label4: TLabel;
    Edit4: TEdit;
    Edit5: TEdit;
    Label5: TLabel;
    Label6: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  max,x,dx,y:real;
      n,i,j:integer;
begin





x:=StrToFloat(Edit1.Text);
dx:=StrToFloat(Edit2.Text);
n:=SpinEdit1.Value;


  Stringgrid1.Cells[0,0]:='n';
   Stringgrid1.Cells[1,0]:='x';
    Stringgrid1.Cells[2,0]:='y';

for i:=1 to n do
begin
StringGrid1.RowCount:=i+1;

y:=tan(0.5*x)/(power(x,3)+7.5);
StringGrid1.Cells[0,i]:=IntToStr(i);
StringGrid1.Cells[1,i]:=FloatToStr(x);
StringGrid1.Cells[2,i]:=FloatToStrF(y,ffFixed,7,3);
x:=x+dx;

end;


with StringGrid1.Cols[2] do begin
 max:=StrToIntDef(Strings[0],0);
 for i:=1 to RowCount-1 do
  if max<StrToIntDef(Strings[i],0) then max:=StrToIntDef(Strings[i],0);

   end;

    Edit3.Text:=FloatToStr(max);

end;


end.
макс теперь вообще в 0 выводит, я понять не могу ошибка где то в цыкле, или с присваиванием значения для переменной max
mishammm вне форума Ответить с цитированием
Старый 22.09.2014, 21:49   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Пусть горит в аду тот, кто учит школоту работать с массивами и вообще с числовыми данными через TStringGrid! Сплошные преобразования «строка» <----> «число»! Люди! Человеки! Ну зачем вам этот геморрой?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 22.09.2014, 21:51   #5
mishammm
Форумчанин
 
Регистрация: 21.09.2013
Сообщений: 232
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Пусть горит в аду тот, кто учит школоту работать с массивами и вообще с числовыми данными через TStringGrid! Сплошные преобразования «строка» <----> «число»! Люди! Человеки! Ну зачем вам этот геморрой?
школота? Студент 2 курса не хотите? И да, пожалуйста, не разводите оффтоп
mishammm вне форума Ответить с цитированием
Старый 22.09.2014, 21:59   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
школота? Студент 2 курса не хотите?
Хочу, поверь! Очень хочу!
Цитата:
И да, пожалуйста, не разводите оффтоп
Ну вот, блин, захочешь научить, как делать хорошо и не плодить себе проблем из ничего - обвиняют.

Цитата:
макс теперь вообще в 0 выводит, я понять не могу ошибка где то в цыкле, или с присваиванием значения для переменной max
Код:
for i:=1 to n do
begin
StringGrid1.RowCount:=i+1;

y:=tan(0.5*x)/(power(x,3)+7.5);
StringGrid1.Cells[0,i]:=IntToStr(i);
StringGrid1.Cells[1,i]:=FloatToStr(x);
StringGrid1.Cells[2,i]:=FloatToStrF(y,ffFixed,7,3); // вещественное ---> строка (3 знака после запятой)
x:=x+dx;

end;


with StringGrid1.Cols[2] do begin
 max:=StrToIntDef(Strings[0],0); // строка ---> целое
 for i:=1 to RowCount-1 do
  if max<StrToIntDef(Strings[i],0) // строка ---> целое
    then max:=StrToIntDef(Strings[i],0); // строка ---> целое

   end;

    Edit3.Text:=FloatToStr(max);

end;
А хранил бы данные в памяти, вообще бы такая проблема не возникла. А говоришь оффтоп. Эх, школота...
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 22.09.2014 в 22:11.
min@y™ вне форума Ответить с цитированием
Старый 22.09.2014, 22:13   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Студент 2 курса не хотите?
Тогда мотай на ус: StringGrid да и вообще все визуальные компоненты предназначены в первую очередь для отображения данных
Хочешь хранить массивы делай это как полагается: array of <тип>.
Преобразования из строк в числа к добру не доведут если работаешь с массивами данных. Если тебя этому учит преподаватель настраивайся сразу писать быдлокоды. Хорошему такой препод или такие методички не научат.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.09.2014, 22:24   #8
mishammm
Форумчанин
 
Регистрация: 21.09.2013
Сообщений: 232
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Тогда мотай на ус: StringGrid да и вообще все визуальные компоненты предназначены в первую очередь для отображения данных
Хочешь хранить массивы делай это как полагается: array of <тип>.
Преобразования из строк в числа к добру не доведут если работаешь с массивами данных. Если тебя этому учит преподаватель настраивайся сразу писать быдлокоды. Хорошему такой препод или такие методички не научат.
полностью с вами согласен, преподы вообще ничему не учат, только самообучение спасает, спасибо вам за совет

Цитата:
Сообщение от min@y™ Посмотреть сообщение


А хранил бы данные в памяти, вообще бы такая проблема не возникла. А говоришь оффтоп. Эх, школота...
извините, я не хотел вас обвинять, я просто немного устал, ну и вы со стороны не правы, насчёт школоты. спасибо за пояснение

Последний раз редактировалось Stilet; 23.09.2014 в 08:17.
mishammm вне форума Ответить с цитированием
Старый 22.09.2014, 22:40   #9
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
ну и вы со стороны не правы, насчёт школоты
Пока будешь публично быдлокодить, так школотой и останешься, будь ты хоть профессором. Шутка юмора.
А я фигню не посоветую.
Глянь, конфетка какая! Угадай, какой компонент используется.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 23.09.2014, 08:19   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
вы со стороны не правы, насчёт школоты
Прав. Потому что тебе тоже самое скажет твой работодатель, когда ты какой-то проект вот таким напичкаешь. Да еще и в суд подаст за нарушения ТЗ.
Поверь, я прекрасно знаю что такое быдлокод, потому что мне приходится такие программы в техподдержке обслужвать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПОиск максимального элемента oleg866 Помощь студентам 2 29.03.2014 22:40
Двумерный массив (поиск максимального элемента в каждом столбце) abstractionhawk Помощь студентам 10 24.06.2013 14:24
Поиск максимального значения в каждом столбце Mikl___ Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 18.11.2011 05:57
Двухмерный массив данных - поиск максимального, сумма по строкам (используя StringGrid в Delphi) Ленуся)) Помощь студентам 1 21.06.2011 13:21
Поиск максимального (минимального) элемента массива в Delphi ICE1589 Помощь студентам 0 08.04.2011 13:32