![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Pirate |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Реальное имя: Лёха Репутация: ![]() ![]() ![]() |
Помогите пожалуйста
Есть стринг грид с такими значениями: - 600 600 1400 600 3000 - 1500 800 700 1000 4000 - 900 4800 700 600 7000 Вопрос: как поделить первые три столбца на последний т.е 600 на 3000 1500 на 4000 900 на 7000 также нужно поделить и остальные два,и как потом работать с полученными числами |
![]() ![]() |
мисс_граффити |
![]()
Сообщение
#2
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
циклами поэлементно...
не совсем понятно, в чем проблема. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Tan |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 559 Пол: Мужской Реальное имя: Бруно Репутация: ![]() ![]() ![]() |
Мне кажется тут речь о том, что Pirate не знает как обратиться к ячейкам StringGrid и получить оттуда нужные данные.
Form1.StringGrid1.Cells[i,j] - так ты обращаешься к элементу стрингрида, где i - номер столбика (0..n), а j - номер ряда (0..n) - заметь, что отличается от массивов. Так как ты работаешь со строкой, можешь объявить переменную типа string (например s) и присвоить ей значение ячейки StringGrid, например s := Form1.StringGrid1.Cells[0,0] - верхний левый элемент. Теперь, используя функцию StrToInt, ты можешь из строки получить число типа integer (с вещественными аналонично StrToFloat), а можно и сделать сразу a := StrToInt (Form1.StringGrid1.Cells[0,0]), где а - переменная типа integer. Теперь, используя цикл for, можно производить различные манипуляции с данными ячеек StringGrid, что тебе и требуется. Отредактировано -> см. пост Better Kind. Сообщение отредактировано: Tan - 14.01.2008 18:06 -------------------- Цитата Imagination is more important than knowledge. Albert Einstein |
Pirate |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Реальное имя: Лёха Репутация: ![]() ![]() ![]() |
Мне кажется тут речь о том, что Pirate не знает как обратиться к ячейкам StringGrid и получить оттуда нужные данные. Form1.StringGrid1.Cells[i,j] - так ты обращаешься к элементу стрингрида, где i - номер столбика (0..n), а j - номер ряда (0..n) - заметь, что отличается от массивов. Так как ты работаешь со строкой, можешь объявить переменную типа string (например s) и присвоить ей значение ячейки StringGrid, например s := Form1.StringGrid1.Cells[0,0] - верхний левый элемент. Теперь, используя функцию IntToStr, ты можешь из строки получить число типа integer, а можно и сделать сразу s := IntToStr (Form1.StringGrid1.Cells[0,0]); Теперь, используя цикл for, можно производить различные манипуляции с данными ячеек StringGrid, что тебе и требуется. Уважаемый Тан не могли бы вы мне привести примерчег с моими данными ,у меня при делении 600 на 3000 возникает ошибка.Как потом данные из каждого из столбоц занести в массив? |
Tan |
![]()
Сообщение
#5
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 559 Пол: Мужской Реальное имя: Бруно Репутация: ![]() ![]() ![]() |
Покажи как ты делаешь и станет понятнее откуда ошибка. Допустим мы хотим занести данные из 1го по счёту столбца в массив : for i := 1 to N do massiv[i] := StrToInt (Form1.StringGrid1.Cells[0,i - 1]); То есть проходим по строкам, а столбик константный, если же ты хочешь занести в массив одновременно несколько столбиков со значениями, необходим ещё внешний цикл по столбикам.
Сообщение отредактировано: Tan - 14.01.2008 12:55 -------------------- Цитата Imagination is more important than knowledge. Albert Einstein |
Better Kind |
![]()
Сообщение
#6
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 52 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Теперь, используя функцию IntToStr , ты можешь из строки получить число типа integer Вещественный тип надо использовать. Ну и разумеется внимательней смотрим, что пишем. Перевод строки в число делает StrToFloat, а не наоборот. -------------------- With best regards, Better Kind
|
Tan |
![]()
Сообщение
#7
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 559 Пол: Мужской Реальное имя: Бруно Репутация: ![]() ![]() ![]() |
Я просто показал пример как загнать данные в массив. Я же не использовал деление.
-------------------- Цитата Imagination is more important than knowledge. Albert Einstein |
Pirate |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Реальное имя: Лёха Репутация: ![]() ![]() ![]() |
Вообщем я понял что нужно - поделить 3 столбца на последний, а результаты загнать в массив и вывести в мемо - как? Ошибок не возникает, но как сделать деление циклами поочередно? |
Tan |
![]()
Сообщение
#9
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 559 Пол: Мужской Реальное имя: Бруно Репутация: ![]() ![]() ![]() |
Приведи пожалуйста пример исходных данных и данных на выходе, непонятно как заполнять массив. Допустим поделили все элементы первого столбика на последний, записали в массив. Потом поделил второй на последний, после этого продолжаем писать в тот же массив или создаём и заполняем новый?
-------------------- Цитата Imagination is more important than knowledge. Albert Einstein |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Цитата(Better Kind) Вещественный тип надо использовать. С чего бы это? Потому, что тебе так хочется? Неправильно хочется, значит... Содержимое ячеек - целочисленное, значит можно использовать StrToInt...Pirate, все очень просто: 2 вложенных цикла - внешний по строкам, внутренний - по столбцам грида (деление i-го элемента где i = 0 .. n-1 каждой строки на n-ый), и запись результатов в массив, разумеется (хотя можно и сразу записывать в Memo, это уже по желанию)... Ты бы привел хотя бы наброски своего кода, а то такое ощущение, что ты ждешь, когда все сделают за тебя и выложат здесь все на блюдечке... |
Better Kind |
![]()
Сообщение
#11
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 52 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Содержимое ячеек - целочисленное, значит можно использовать StrToInt... Пардон, повелительное наклонение слова "надо" можно отбросить.Проще всего избежать исключиния можно используя StrToIntDef. -------------------- With best regards, Better Kind
|
Pirate |
![]()
Сообщение
#12
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Реальное имя: Лёха Репутация: ![]() ![]() ![]() |
Вообщем я начал потихоньку разбираться, тип должен быть Реал т.к при StrToInt возникает ошибка Я со стринггридом не дружу честно говоря но и не жду пока сделают всё за меня как препдположил Volvo Набросков вот именно что нет, я не могу понять как всё это дело после деления присвоить массиву Volvo два вложенных цикла т.е For i:=0 to StringGrid.ColCount-1 do For i:=0 to StringGrid.RowCount-1 do Так ещё в чем проблема предпоследний столбец не используется,что делать? Добавлено через 9 мин. У меня это только первый пункт решения моей задачи Какой массив должен быть в результате : A= 0,2 0,375 0,12 0,13 0,2 0,68 0,2 0,25 0,85 100 Потом мне необходимо отнять получ массив от массива 010 т.е от еденичной матрицы и найти определитель 001 Помогите сделать хотя бы деление столбцов на последний |
Pirate |
![]()
Сообщение
#13
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Реальное имя: Лёха Репутация: ![]() ![]() ![]() |
Для заполнения
procedure TForm1.Button1Click(Sender: TObject); А можно сделать чтбы после запятой было две цифры т.е вместо 0,1333333333333333 было 0,13 и ещё как в мемо сделать вывод построчно чтобы Первая строка была равна a[i] вторая b[i] 3 c[i] |
Pirate |
![]()
Сообщение
#14
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Реальное имя: Лёха Репутация: ![]() ![]() ![]() |
var A:array [0..3,0..3] of real; |
![]() ![]() |
![]() |
Текстовая версия | 13.07.2025 23:47 |