IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> Сложение матриц в оконном режиме Delphi
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 25
Пол: Мужской
Реальное имя: Василий

Репутация: -  0  +


здрасьте)
вы даете советы по оконному режиму delphi?
вопрос такой
нужно сложить две матрицы
сложность заключается в том как это все реализовать через стринггриды, как сделать обращение к ним
по идее должно быть три окна stringgrid( 1ая матрица , 2ая матрица, результат сложения)
так же хотелось бы узнать как осуществить ввод в эти самые стринггриды

Сообщение отредактировано: BananaMan -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 25
Пол: Мужской
Реальное имя: Василий

Репутация: -  0  +


короче в drkb того что мне нужно нету(((
надо сложить две матрицы используя stringgrid
а ничего в голову не приходит... =(
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Чего тебе не приходит? Как заполнять StringGrid-ы, знаешь? Заполняй... Две штуки... Заполнил - проходи в цикле по строкам и столбцам по обоим заполненным StringGrid-ам, и складывай соотв. элементы. Результат сложения пишешь в третий StringGrid... Вот и вся программа.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 25
Пол: Мужской
Реальное имя: Василий

Репутация: -  0  +


посмотрите пжлст
я чего то делаю не так или я все делаю не так?


Прикрепленные файлы
Прикрепленный файл  prog.rar ( 3.42 килобайт ) Кол-во скачиваний: 185
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


вообще-то мог бы exe-файл не прикреплять....

по программе.
что сразу не понравилось: размер изменяется только при нажатии на кнопку, то есть когда стринггриды должны быть уже заполнены.
кроме того, для задания кол-ва строк и столбцов лучше использовать spinedit (закладка samples).

ну и основная ошибка - циклов должно быть не так до фига, а два вложенных.
вот все, что должно быть в процедуре Button1Click
for i:=1 to StringGrid1.ColCount-1 do
for j:=1 to StringGrid1.RowCount-1 do
begin
i1:=StrToInt(StringGrid1.Cells[i,j]);
i2:=StrToInt(StringGrid2.Cells[i,j]);
i3:=i1+i2;
StringGrid3.Cells[i,j]:=IntToStr(i3);
end;

зачем нужны строковые переменные - я не поняла...


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 25
Пол: Мужской
Реальное имя: Василий

Репутация: -  0  +


так
ок
строковые переменные я выбросил
сделал все так как ты сказала
НО не пойму почему, не складываются матрицы 2*3, 3*2 и тд...
почему? :-(
в чем подвох то

Сообщение отредактировано: BananaMan -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Ну, а процедуру, которая у тебя ТЕПЕРЬ получилась, показать нельзя? Тогда ошибка в 17-ой строке...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 25
Пол: Мужской
Реальное имя: Василий

Репутация: -  0  +


программу прикрепляю (интерфейс немного переделан)
(пока там только сложение, в разделе действия)


Прикрепленные файлы
Прикрепленный файл  prog.rar ( 7.51 килобайт ) Кол-во скачиваний: 181
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


не прикрепляй ты exe-шники!
ну сколько раз повторять?!
просто выкладывай код!!!

итак, чтобы не пришлось скачивать...
что имеется в программе:

procedure TForm2.Button2Click(Sender: TObject);
var i,j,i1,i2,i3,m,n:integer;
begin
for m:=1 to StringGrid1.RowCount-1 do
if (StringGrid1.Cells[i,j]='') or (StringGrid2.Cells[i,j]='') then
begin
ShowMessage('Матрицы имеют незаполненные ячейки');
break;
end
else
for n:=1 to StringGrid1.ColCount-1 do
begin
if (StringGrid1.Cells[i,j]='') or (StringGrid2.Cells[i,j]='') then
begin
ShowMessage('Матрицы имеют незаполненные ячейки');
break;
end
else
begin
i1:=StrToInt(StringGrid1.Cells[i,j]);
i2:=StrToInt(StringGrid2.Cells[i,j]);
i3:=i1+i2;
StringGrid3.Cells[i,j]:=IntToStr(i3);
StringGrid3.Visible:=True;
end;
end;

очень логично запустить циклы по m и n, а обращаться к ячейкам i и j.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 25
Пол: Мужской
Реальное имя: Василий

Репутация: -  0  +


может и не логично, но ошибка не в этом =(

for j:=1 to StringGrid1.RowCount-1 do
if (StringGrid1.Cells[i,j]='') or (StringGrid2.Cells[i,j]='') then
begin
ShowMessage('Матрицы имеют незаполненные ячейки');
break;
end
else
for i:=1 to StringGrid1.ColCount-1 do
begin
if (StringGrid1.Cells[i,j]='') or (StringGrid2.Cells[i,j]='') then
begin
ShowMessage('Матрицы имеют незаполненные ячейки');
break;
end
else
begin
i1:=StrToInt(StringGrid1.Cells[i,j]);
i2:=StrToInt(StringGrid2.Cells[i,j]);
i3:=i1+i2;
StringGrid3.Cells[i,j]:=IntToStr(i3);
StringGrid3.Visible:=True;
end;

эффект тот же
в чем же ошибка?

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


for j:=1 to StringGrid1.RowCount-1 do
if (StringGrid1.Cells[i,j]='') or (StringGrid2.Cells[i,j]='') then


чему, молодой человек, по Вашему мнению в этом месте равно i?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Новичок
*

Группа: Пользователи
Сообщений: 25
Пол: Мужской
Реальное имя: Василий

Репутация: -  0  +


blink.gif 4381712 ???

я это число не с потолка взял, через watches посмотрел...
или может я что то неправильно сделал?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


да уж наверное....
а вот теперь подумайте, какие ячейки здесь будут проверяться:

if (StringGrid1.Cells[i,j]='') or (StringGrid2.Cells[i,j]='') then 

и тогда ли, когда надо, будет выдаваться сообщение об ошибке.

если говорить честно - нефиг страдать ерундой.
я привела работающую процедуру. почему надо делать из нее что-то невообразимое?
ну добавил проверку - и все!


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 25
Пол: Мужской
Реальное имя: Василий

Репутация: -  0  +


гм
странно
а откуда берется это число?
просто я пытаюсь сделать курсовую
и эта проверка это что то вроде защиты от дурака)
ну если там кто нить забудет ввести матрицу, чтобы фатал ерор не вылетал
вот :-[
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


ну ты же не задаешь, чему i равно. задашь - оно не будет браться с потолка.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Новичок
*

Группа: Пользователи
Сообщений: 25
Пол: Мужской
Реальное имя: Василий

Репутация: -  0  +


ок спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 21.08.2017 9:41
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"