|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.10.2007, 18:33 | #1 |
Форумчанин
Регистрация: 26.10.2007
Сообщений: 124
|
Задача с матрицей на Delphi
Короче такая задача: Даны матрицы A(n,k), B(k,m). Умножить матрицы.
Исходные данные в объектах TMemo. Мучаюсь уже больше недели, осталось прямо чусть и всё будет ок, но не могу ( Прикладываю скрин (см. как прикреплённый файл) как это должно выглядеть и программный код кнопки "Вычислить", который написан на данный момент: procedure TForm1.Button9Click(Sender: TObject); var a:array [1..10,1..10] of integer; b:array [1..10,1..10] of integer; i,j,i1,j1,k,k1,rez,l,i2,j2:integer; str,s,s1:string; begin str:=Memo1.text; S:=Memo2.Text; S1:=Memo4.Text; for i:=1 to strtoint(edit2.text) do begin for j:=1 to strtoint(edit2.text) do begin for i1:=1 to strtoint(edit6.Text) do begin for j1:=1 to strtoint(edit6.Text) do begin k:=pos(' ',str); k1:=pos(' ',S1); a[i,j]:=StrToInt(copy(str,1,k-1)); b[i1,j1]:=StrToInt(copy(S1,1,k1-1)); rez:=a[i,j] * b[i1,j1]; delete(str,1,k); delete(S1,1,k1); end; delete(str,1,2); delete(S1,1,2); end; Memo3.Clear; For i:=1 to strtoint(edit2.text) do for i1:=1 to strtoint(edit6.text) do begin S:=''; for j:=1 to strtoint(edit2.Text) do for j1:=1 to strtoint(edit6.text) do S:=S+inttostr(rez)+' '; memo3.Lines.Add(s); end; end; end; end; При попытке запуска программа выдаёт следующие ошибки : [Error] Unit1.pas(202): Assignment to FOR-Loop variable 'i' [Error] Unit1.pas(206): Assignment to FOR-Loop variable 'j' [Fatal Error] Project1.dpr(6): Could not compile used unit 'Unit1.pas' Ребята, очень прошу, помогите мне справиться с этим, пожалуйста... |
26.10.2007, 20:37 | #2 | |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Цитата:
Введи дополнительные переменные для вложенных циклов.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
|
26.10.2007, 21:00 | #3 | |
Форумчанин
Регистрация: 26.10.2007
Сообщений: 124
|
Цитата:
Ребят, у кого стоит Delphi 7 , пожалуйста попробуйте у себя позапускать.. Это займёт у вас меньше времени, чем отписываение на форуме.. Последний раз редактировалось POPOV; 26.10.2007 в 21:02. |
|
26.10.2007, 23:48 | #4 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
а это ошибка несовпадения типов, нужно интегер а присваивается чего-то другое
p.s. щас попробую у себя скомпилировать p.p.s. кажется я понял, там у тебя данные из Editов бурутся, и вероятно один из них (или все) пустой либо в нем не число, если хочешь избежать ошибки вместо StrToInt используй StrToIntDef (в ней можно указать число по умолчанию, на случай если в строке не интегер) ну и проверь все ли данные правильно введены
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог Последний раз редактировалось mutabor; 27.10.2007 в 00:08. |
27.10.2007, 01:05 | #5 |
Форумчанин
Регистрация: 26.10.2007
Сообщений: 124
|
Не втыкнул (я тупой) что именно делать с этим StrToIntDef. Попробовал тупо впихнуть вместо всех StrToInt и не помогло, какая-то новая ошибка:
[Error] Unit1.pas(206): Not enough actual parameters [Fatal Error] Project1.dpr(6): Could not compile used unit 'Unit1.pas' Как понять все ли данные правльно введены ? Если ты про ввод данных в запущенном приложении, то там делаю всё правильно : После каждого числа ставлю пробел, в конце строки также ставлю пробел. Я ПРИКРЕПИЛ СВОЮ ПРОГУ НА ВСЯКИЙ СЛУЧАЙ, вдруг кому не влом посмотреть будет.. Это задание в закладке Memo в проге. Последний раз редактировалось POPOV; 27.10.2007 в 01:50. |
27.10.2007, 03:47 | #6 | |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Цитата:
посмотрю исходник ближе к вечеру, там скорее всего ты не в те эдиты не те данные вводишь (кстати пробелы не надо)
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
|
27.10.2007, 14:43 | #7 | |
Форумчанин
Регистрация: 26.10.2007
Сообщений: 124
|
Цитата:
Тут ещё вспомни ,что матрицы умножаются вообще по другому в математике и совсем поник ( Мне бы хоть так сделать |
|
27.10.2007, 16:16 | #8 |
Форумчанин
Регистрация: 15.10.2007
Сообщений: 147
|
Для procedure Button9Click ::
Добавь переменные: A_r,A_c,B_r,B_c:Integer; И код кнопки замени(вредыдущий свой код можешь пока закомментировать - поставь перед ним- { и после него- }) на: Код:
В эдиты вписываешь размерности без пробелов через запятую. Например "2,3" и "3,7" (без кавычек). TMemo заполняешь целымы числами через пробел ("1 1 1 1 1 1" и "2 3 4 5 6 7 4 5 3 4 4 5 4 6 4 5 6 4 5 6 4") Жмёшь "Вычислить" - получаешь результат: "11 11 14 13 16 17 14 11 11 14 13 16 17 14" Если решать на бумаге, то выглядеть будет так: |1 1 1| |2 3 4 5 6 7 4| |11 11 14 13 16 17 14| |1 1 1|x |5 3 4 4 5 4 6| = |11 11 14 13 16 17 14| |4 5 6 4 5 6 4| |
27.10.2007, 16:47 | #9 |
Форумчанин
Регистрация: 26.10.2007
Сообщений: 124
|
Боже мой !!!! Работает , ураааааааааааааааааа!!!!
Ток единственное, можно ли сделать так чтобы в TMemo данные вводились по строкам и столбцам, ну тоесть как на бумаге. А то в одну строку можно запутаться.. Ну вообщем и на том огромное человеческое спасибо ) |
27.10.2007, 17:00 | #10 |
Форумчанин
Регистрация: 15.10.2007
Сообщений: 147
|
Можно конечно =)
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача,опять же с матрицей | groth88 | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 16.04.2008 13:22 |
Задача с матрицей. Ломаю голову уже неделю | Damokl | Помощь студентам | 6 | 19.12.2007 03:20 |
Задача с матрицей | H[o][o]K | Помощь студентам | 1 | 15.12.2007 16:51 |
Задача с матрицей(нужна помощь) | VDK23RUS | Помощь студентам | 5 | 14.06.2007 12:55 |
Задача с матрицей, Паскаль | Integra | Помощь студентам | 1 | 25.04.2007 16:14 |