матрицы, выделение треугольника матрицы |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
матрицы, выделение треугольника матрицы |
Svetka |
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Женский Репутация: 0 |
Мне нужно
1) найти центр матрицы (7,7) и посчитать сумму нижнего треугольника.....как это сделать? 2)найти центр матрицы(5,5) и посчитать произведение левого бокового треугольника а правый треугольник заменить нулями.как найти эти треугольники? |
volvo |
Сообщение
#2
|
Гость |
Цитата(Svetka @ 7.05.05 10:25) 1) найти центр матрицы (7,7) и посчитать сумму нижнего треугольника.....как это сделать? middle := (n div 2) + 1; В твоем случае N = 7. |
volvo |
Сообщение
#3
|
Гость |
Цитата(Svetka @ 7.05.05 10:25) 2)найти центр матрицы(5,5) и посчитать произведение левого бокового треугольника а правый треугольник заменить нулями.как найти эти треугольники? function min(a, b: integer): integer; |
Svetka |
Сообщение
#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 |
Сообщение
#5
|
Гость |
for j := 1 to (n div 2) + 1 do |
Svetka |
Сообщение
#6
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Женский Репутация: 0 |
Цитата(volvo @ 7.05.05 18:13) for j := 1 to (n div 2) + 1 do пасибо))) и сразу потом выводиться результат?=) |
volvo |
Сообщение
#7
|
Гость |
Ну, да... А что еще нужно?
Только сначала матрицу не забудь заполнить |
Svetka |
Сообщение
#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 - |
volvo |
Сообщение
#9
|
Гость |
Цитата(Svetka @ 7.05.05 19:55) так получается?или не так?) :yes: Так... Только я не понял, зачем тебе n1:=0;? Ты же его не используешь... И, если можно, еще объясни, что за K ты передаешь в процедуру? Вроде по условию матрица квадратная, а не прямоугольная... |
Svetka |
Сообщение
#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 |
Сообщение
#11
|
Гость |
Svetka,
и все-таки... По условию - матрица квадратная. Алгоритм тоже будет работать ТОЛЬКО с квадратной матрицей. А при квадратной матрице K = N... Так что придется тебе убрать K из списка параметров процедуры... Чем меньше параметров передаешь - тем лучше. Еще один вопрос: Что функция возвращает? Возможно, ее стоило бы сделать процедурой. И убери "лишние" описания переменных... |
Svetka |
Сообщение
#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 |
Сообщение
#13
|
Гость |
Тебя как видно мои замечания и исправления не интересуют - так вот: твоя программа даже не компилируется. Ошибки есть как синтаксические, так и логические. Но, извини, искать их придется тебе самой... <_<
|
Svetka |
Сообщение
#14
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Женский Репутация: 0 |
Цитата(volvo @ 8.05.05 19:12) Тебя как видно мои замечания и исправления не интересуют - так вот: твоя программа даже не компилируется. Ошибки есть как синтаксические, так и логические. Но, извини, искать их придется тебе самой... <_< не.....интересуют........если ты про k говоришь......то она запускается(не именно эта-другие)......просто я так привыкла делать..... спасибо.........за помощь)))) |
Svetka |
Сообщение
#15
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Женский Репутация: 0 |
я сделала программу....она запускается.....только правельно ли она считает произведение......
|
klem4 |
Сообщение
#16
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
ты когда-нибудь слашала о контрольных примерах ? рисуешь на бумажке матрицу, считаешь произведение, затем вводишь туже матрицу в программу и сравниваешь результат, если не сошлось значит ошибка
Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
Сообщение
#17
|
Гость |
Однозначно сказать нельзя. Для данного примера она может отработать правильно, но в ней содержится одна очень нехорошая ошибка...
klem4 - не раскрывай сразу... |
Svetka |
Сообщение
#18
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Женский Репутация: 0 |
Цитата(volvo @ 8.05.05 20:52) в ней содержится одна очень нехорошая ошибка... я не могу найти ошибку.......программа не правельно считает произведение....других ошибок я не могу найти..... я не прошу её искать........всё-таки я сама должна её найти...... |
Svetka |
Сообщение
#19
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Женский Репутация: 0 |
Цитата(Svetka @ 8.05.05 21:18) я не могу найти ошибку.......программа не правельно считает произведение....других ошибок я не могу найти..... я не прошу её искать........всё-таки я сама должна её найти...... а может поможете найти ошибку если не трудно.......я не могу её найти....... :p2: |
volvo |
Сообщение
#20
|
Гость |
function pr(var d:matrix;n,k:integer):integer; А теперь, Svetka, подумай, почему то что я отметил не есть хорошо? |
Текстовая версия | 23.12.2024 19:58 |