![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
plafon |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Репутация: ![]() ![]() ![]() |
Помогите пожалуста
Произведение матриц. Требуется написать программу, вычисляющую произведение матриц A и B. Как исходные матрицы A и B, так и результат (матрица C=AxB) находятся в текстовых файлах (это могут быть, например, файлы ‘Input.txt’ и ’Output.txt’). Формат файла ‘Input.txt’ следующий: 2 3 1 2 0 4 5 1 3 4 1 0 2 3 3 0 9 2 3 4 3 1 Здесь описаны две матрицы. В первой строке файла записано число строк и столбцов для первой матрицы, затем приводятся ее элементы. Далее (строки 4-7) описана вторая матрица. Аналогичный формат имеет выходной файл (одна матрица). При объявлении типов файлов используйте указатель Text. |
![]() ![]() |
Алексей |
![]()
Сообщение
#2
|
Группа: Пользователи Сообщений: 3 Репутация: ![]() ![]() ![]() |
Приветик. Эта задача считает произведение матрицы на строку. Эта простенькая задача позволяет решить твою задачу. А вывод и чтение текстовых документов - всего лишь цикл. Думай...
Код unitMain; type TForm1 = class(TForm) StringGrid1: TStringGrid; StringGrid2: TStringGrid; StringGrid3: TStringGrid; Button1: TButton; procedure Button1Click(Sender: TObject); function MyStrToInt (s: string): integer; procedure StringGrid1GetEditMask(Sender: TObject; ACol, ARow: Integer; var Value: String); procedure StringGrid2GetEditMask(Sender: TObject; ACol, ARow: Integer; var Value: String); procedure FormActivate(Sender: TObject); procedure StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String); procedure StringGrid2SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String); private { Private declarations } public { Public declarations } end; procedure TForm1.Button1Click(Sender: TObject); begin close; end; procedure TForm1.StringGrid1GetEditMask(Sender: TObject; ACol, ARow: Integer; var Value: String); begin value:='0000;1; '; end; procedure TForm1.StringGrid2GetEditMask(Sender: TObject; ACol, ARow: Integer; var Value: String); begin value :='00000;1; '; end; procedure TForm1.FormActivate(Sender: TObject); var i,j: byte; begin with stringgrid1 do for i:=0 to Colcount-1 do for j:=0 to RowCount-1 do cells[i,j]:='0'; with stringGrid2 do for i:=0 to rowcount-1 do cells[0,i]:='0'; end; function Tform1.MyStrToInt (s: string): integer; var k,code: integer; begin while (s<>'') and (s[length(s)]=' ') do delete (s,length(s),1); if s<>'' then begin Val (s,k,code); if code=0 then MYSTRTOINT:=k else MyStrToInt:=0; end else MyStrToInt:=0; end; procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String); var i,j,sum: integer; begin for j:=0 to stringGrid1.RowCount-1 do begin sum:=0; for i:=0 to StringGrid1.ColCount-1 do begin sum:=sum+mystrtoint (stringgrid1.cells[i,j])*mystrtoint (stringgrid2.cells[0,i]); end; stringgrid3.Cells[0,j]:=inttostr(sum); end; end; procedure TForm1.StringGrid2SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String); var i,j,sum: integer; begin for j:=0 to stringGrid1.RowCount-1 do begin sum:=0; for i:=0 to StringGrid1.ColCount-1 do begin sum:=sum+mystrtoint (stringgrid1.cells[i,j])*mystrtoint (stringgrid2.cells[0,i]); end; stringgrid3.Cells[0,j]:=inttostr(sum); end; end; end. Пожалуйста, заключайте код в соответствующий тег! Oleg_Z Сообщение отредактировано: Oleg_Z - 26.05.2004 6:39 |
APAL |
![]()
Сообщение
#3
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
Про работу с матрицами в разделе "Задачи" есть соответствующая тема "Важно: решения: МАТРИЦЫ, МАССИВЫ. задачи"
-------------------- |
APAL |
![]()
Сообщение
#4
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
to Алексей
Этот раздел для TP, а не для Delphi... ;) -------------------- |
Алексей |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 3 Репутация: ![]() ![]() ![]() |
Sorry. Ошибся.
![]() |
plafon |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Репутация: ![]() ![]() ![]() |
пожалуйста всё таки помогите решить
|
Altair |
![]()
Сообщение
#7
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Значит вот код, он работает. "Перемножение матриц" лабораторная работа.
Цитата Эта простенькая задача позволяет решить твою задачу. А вывод и чтение текстовых документов - всего лишь цикл. Думай... Ну здесь тоже нет чтение из файла. { ”б«®ўЁҐ: Текст в кодировке DOS (кодовая страница 866) -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Guest |
![]()
Сообщение
#8
|
Гость ![]() |
народ все конечно круто, а не кто на поможет решить задачу с перемножение к матриц размером MxN за время nlogn ?
помогите очень надо!!! и желательно поскорее!!! пасиба. p.s. говорят както через динамичесоке програмирование решается!!! Вот хотелось бы узнать ка!! ![]() |
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 0:29 |