матрицы, выделение треугольника матрицы |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
матрицы, выделение треугольника матрицы |
Svetka |
7.05.2005 10:25
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Женский Репутация: 0 |
Мне нужно
1) найти центр матрицы (7,7) и посчитать сумму нижнего треугольника.....как это сделать? 2)найти центр матрицы(5,5) и посчитать произведение левого бокового треугольника а правый треугольник заменить нулями.как найти эти треугольники? |
volvo |
7.05.2005 10:45
Сообщение
#2
|
Гость |
Цитата(Svetka @ 7.05.05 10:25) 1) найти центр матрицы (7,7) и посчитать сумму нижнего треугольника.....как это сделать? middle := (n div 2) + 1; В твоем случае N = 7. |
volvo |
7.05.2005 12:45
Сообщение
#3
|
Гость |
Цитата(Svetka @ 7.05.05 10:25) 2)найти центр матрицы(5,5) и посчитать произведение левого бокового треугольника а правый треугольник заменить нулями.как найти эти треугольники? function min(a, b: integer): integer; |
Svetka |
7.05.2005 15:57
Сообщение
#4
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Женский Репутация: 0 |
Цитата(volvo @ 7.05.05 13:45) function min(a, b: integer): integer; спасибо большое,а полегче нельзя левый и правый треугольники выделить....... просто я пишу Код function pr(var d:matrix:n,k:integer):integer; var i.j:integer; p1:integer; begin p1:=1; а дальше что б шёл сразу цикл? также и с обнулением правого треугольника |
volvo |
7.05.2005 17:13
Сообщение
#5
|
Гость |
for j := 1 to (n div 2) + 1 do |
Svetka |
7.05.2005 19:38
Сообщение
#6
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Женский Репутация: 0 |
Цитата(volvo @ 7.05.05 18:13) for j := 1 to (n div 2) + 1 do пасибо))) и сразу потом выводиться результат?=) |
volvo |
7.05.2005 19:50
Сообщение
#7
|
Гость |
Ну, да... А что еще нужно?
Только сначала матрицу не забудь заполнить |
Svetka |
7.05.2005 19:55
Сообщение
#8
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Женский Репутация: 0 |
Цитата(volvo @ 7.05.05 20:50) Ну, да... А что еще нужно? Только сначала матрицу не забудь заполнить да........ я заполнила ......пасиба большое))) а если сделать две функции 1 для произведения Код function pr(var d:matrix:n,k:integer):integer; var i.j:integer; p1:integer; begin p1:=1; for j := 1 to (n div 2) + 1 do for i := j to n - j + 1 do begin p := p * a[i, j]; { Левый треугольник } другая для нулей Код function nul(var d:matrix:n,k:integer):integer; var i.j:integer; n1:integer; begin n1:=0; for j := 1 to (n div 2) + 1 do for i := j to n - j + 1 do begin a[i, n - j + 1] := 0; { Правый треугольник } так получается?или не так?) Сообщение отредактировано: Svetka - 8.05.2005 13:44 |
volvo |
8.05.2005 16:21
Сообщение
#9
|
Гость |
Цитата(Svetka @ 7.05.05 19:55) так получается?или не так?) :yes: Так... Только я не понял, зачем тебе n1:=0;? Ты же его не используешь... И, если можно, еще объясни, что за K ты передаешь в процедуру? Вроде по условию матрица квадратная, а не прямоугольная... |
Svetka |
8.05.2005 17:32
Сообщение
#10
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Женский Репутация: 0 |
Цитата(volvo @ 8.05.05 17:21) :yes: Так... Только я не понял, зачем тебе n1:=0;? Ты же его не используешь... И, если можно, еще объясни, что за K ты передаешь в процедуру? Вроде по условию матрица квадратная, а не прямоугольная... точно......я просто думала n это количество ненулевых а мне просто надо нулями заменить значит Код function nul(var d:matrix:n,k:integer):integer; var i.j:integer; n1:integer; begin for j := 1 to (n div 2) + 1 do for i := j to n - j + 1 do begin a[i, n - j + 1] := 0; { Правый треугольник } n кол-во строк а k кол-во столбцов) |
volvo |
8.05.2005 17:51
Сообщение
#11
|
Гость |
Svetka,
и все-таки... По условию - матрица квадратная. Алгоритм тоже будет работать ТОЛЬКО с квадратной матрицей. А при квадратной матрице K = N... Так что придется тебе убрать K из списка параметров процедуры... Чем меньше параметров передаешь - тем лучше. Еще один вопрос: Что функция возвращает? Возможно, ее стоило бы сделать процедурой. И убери "лишние" описания переменных... |
Svetka |
8.05.2005 18:04
Сообщение
#12
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Женский Репутация: 0 |
Цитата(volvo @ 8.05.05 18:51) Svetka, и все-таки... По условию - матрица квадратная. Алгоритм тоже будет работать ТОЛЬКО с квадратной матрицей. А при квадратной матрице K = N... Так что придется тебе убрать K из списка параметров процедуры... Чем меньше параметров передаешь - тем лучше. Еще один вопрос: Что функция возвращает? Возможно, ее стоило бы сделать процедурой. И убери "лишние" описания переменных... Код program xxx; uses crt; type matrix=array[1..5,1..5] of integer; f:matrix; p:integer; procedure input(var d:matrix;n,k:integer); var i,j:integer; begin clrscr; randomize; for i:=1 to n do begin for j:1 to k do d[i,j]:=random(5); end; end; procedure output(var d:matrix;n,k:integer); var i,j:integer; begin for i:=1 to n do begin for j:1 to k do write(d[i,j:4); writeln; end; end; function pr(var d:matrix:n,k:integer):integer; var i.j:integer; p1:integer; begin p1:=1; for j := 1 to (n div 2) + 1 do for i := j to n - j + 1 do begin p1 := p1 * f[i, j]; { Левый треугольник } end; pr:=p1; function nul(var d:matrix:n,k:integer):integer; var i.j:integer; begin for j := 1 to (n div 2) + 1 do for i := j to n - j + 1 do begin a[i, n - j + 1] := 0; { Правый треугольник } у меня получилось вот так) а когда выводишь матрицу input(f,5,5) она выводица уже заменённая нулями? |
volvo |
8.05.2005 18:12
Сообщение
#13
|
Гость |
Тебя как видно мои замечания и исправления не интересуют - так вот: твоя программа даже не компилируется. Ошибки есть как синтаксические, так и логические. Но, извини, искать их придется тебе самой... <_<
|
Svetka |
8.05.2005 18:17
Сообщение
#14
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Женский Репутация: 0 |
Цитата(volvo @ 8.05.05 19:12) Тебя как видно мои замечания и исправления не интересуют - так вот: твоя программа даже не компилируется. Ошибки есть как синтаксические, так и логические. Но, извини, искать их придется тебе самой... <_< не.....интересуют........если ты про k говоришь......то она запускается(не именно эта-другие)......просто я так привыкла делать..... спасибо.........за помощь)))) |
Svetka |
8.05.2005 18:36
Сообщение
#15
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Женский Репутация: 0 |
я сделала программу....она запускается.....только правельно ли она считает произведение......
|
klem4 |
8.05.2005 19:48
Сообщение
#16
|
Perl. Just code it! Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
ты когда-нибудь слашала о контрольных примерах ? рисуешь на бумажке матрицу, считаешь произведение, затем вводишь туже матрицу в программу и сравниваешь результат, если не сошлось значит ошибка
Сообщение отредактировано: klem4 - 8.05.2005 19:49 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
8.05.2005 19:52
Сообщение
#17
|
Гость |
Однозначно сказать нельзя. Для данного примера она может отработать правильно, но в ней содержится одна очень нехорошая ошибка...
klem4 - не раскрывай сразу... |
Svetka |
8.05.2005 20:18
Сообщение
#18
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Женский Репутация: 0 |
Цитата(volvo @ 8.05.05 20:52) в ней содержится одна очень нехорошая ошибка... я не могу найти ошибку.......программа не правельно считает произведение....других ошибок я не могу найти..... я не прошу её искать........всё-таки я сама должна её найти...... |
Svetka |
11.05.2005 19:05
Сообщение
#19
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Женский Репутация: 0 |
Цитата(Svetka @ 8.05.05 21:18) я не могу найти ошибку.......программа не правельно считает произведение....других ошибок я не могу найти..... я не прошу её искать........всё-таки я сама должна её найти...... а может поможете найти ошибку если не трудно.......я не могу её найти....... :p2: |
volvo |
11.05.2005 19:11
Сообщение
#20
|
Гость |
function pr(var d:matrix;n,k:integer):integer; А теперь, Svetka, подумай, почему то что я отметил не есть хорошо? |
Текстовая версия | 24.09.2024 18:20 |