процедуры ввода и вывода, а можно ли? |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
процедуры ввода и вывода, а можно ли? |
Anastacia Adesso |
18.10.2006 15:16
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 92 Пол: Мужской Реальное имя: Stanislav Репутация: 0 |
Вот такой вопрос появтлся.
Нужно вводить например 2 (или больше) двумерных массива. Код procedure readmatrix( var a: matrix; var n, m :integer); var i,j : integer; begin repeat write('Ievadi rindu skaitu: ');readln(n) until (n>0) and (n<=nn); repeat write('Ievadi kolonnu skaitu: ');readln(m) until (m>0) and (m<=mm); for i:=1 to n do begin for j:=1 to m do begin writeln('A[',i,j,']= '); readln(a[i,j]) end end end; procedure printmatrix(a :matrix; n,m: integer); var i,j,k: integer; begin for i:=1 to n do begin for j:=1 to m do write(a[i,j]:6); writeln; end end; можно ли эти 2 процедуры сделать так, чтоб поменяв чтото при их вызове типа readmatrix(a,n,m), например а, она ещё и выполняла чтение другой матрицы? Брр так сложно написано Ну то есть в разделе описания будет одна процедура, а при вызове 2 раза, прочитает 2 матрицы -------------------- Ben sensiz yaşayamam
|
volvo |
18.10.2006 15:20
Сообщение
#2
|
Гость |
Ну, она и так будет читать столько матриц, сколько нужно:
procedure readmatrix(var a: matrix; var n, m :integer); В чем проблема? |
Anastacia Adesso |
18.10.2006 15:35
Сообщение
#3
|
Пионер Группа: Пользователи Сообщений: 92 Пол: Мужской Реальное имя: Stanislav Репутация: 0 |
В том что в дальнейшем эти матрицы надо перемножить.
А не получается. Мож я чтото не то делаю. Вроде уже всё что можно туда сунула UZD4.PAS ( 1.47 килобайт ) Кол-во скачиваний: 309 -------------------- Ben sensiz yaşayamam
|
volvo |
18.10.2006 15:39
Сообщение
#4
|
Гость |
Исходные матрицы какие?
|
Anastacia Adesso |
18.10.2006 15:46
Сообщение
#5
|
Пионер Группа: Пользователи Сообщений: 92 Пол: Мужской Реальное имя: Stanislav Репутация: 0 |
Вводятся с клавы первые две типа pirma и otra (ну массивы такие).
-------------------- Ben sensiz yaşayamam
|
volvo |
18.10.2006 16:02
Сообщение
#6
|
Гость |
Нельзя напрямую сделать так, чтобы одна и та же процедура заполняла два массива разных типов. Нужен трюк:
{Programma sareizina divas matricas} А если еще точнее, чем написано в комментарии - то ты вообще не должна вводить размерность матриц, потому что не каждые 2 матрицы можно перемножить (только сцепленные), а ты при перемножении нигде не проверяешь, являются ли матрицы сцепленными ... Размерности у тебя уже указаны константами... |
Anastacia Adesso |
18.10.2006 16:06
Сообщение
#7
|
Пионер Группа: Пользователи Сообщений: 92 Пол: Мужской Реальное имя: Stanislav Репутация: 0 |
Хе хе...Так и думала что тут какая то фишка должна быть!!!
Попробую.. Тока сначала с другими разберусь -------------------- Ben sensiz yaşayamam
|
Anastacia Adesso |
18.10.2006 16:32
Сообщение
#8
|
Пионер Группа: Пользователи Сообщений: 92 Пол: Мужской Реальное имя: Stanislav Репутация: 0 |
Гмм компилирует даже
а вот такой прикол если матрацы 2х2 ввести и (1 2 3 4) * (5 6 7 8)=(19 22 22 26) на самом деле.. А Паскаль говорит что (19 22 43 50) непорядок -------------------- Ben sensiz yaşayamam
|
volvo |
18.10.2006 16:43
Сообщение
#9
|
Гость |
Цитата если матрацы 2х2 ввести и (1 2 3 4) * (5 6 7 8)=(19 22 22 26) на самом деле.. С чего бы? Что я неправильно делаю? |
мисс_граффити |
18.10.2006 16:44
Сообщение
#10
|
просто человек Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
если матрацы 2х2 ввести и (1 2 3 4) * (5 6 7 8)=(19 22 22 26) на самом деле.. А Паскаль говорит что (19 22 43 50) непорядок он же того... умер. давно. в 1662 году. а программулина правильно насчитала. во всяком случае, мне кажется, что 3*5+4*7=15+28=43 3*6+4*8=18+32=50 могу ошибаться. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Anastacia Adesso |
18.10.2006 16:54
Сообщение
#11
|
Пионер Группа: Пользователи Сообщений: 92 Пол: Мужской Реальное имя: Stanislav Репутация: 0 |
Вы правильно посчитали.. А я не знаю зачем какимто методом считаю.. Бррр Спасибо -------------------- Ben sensiz yaşayamam
|
Текстовая версия | 28.04.2024 8:01 |