![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Andrewshkovskii |
![]()
Сообщение
#1
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 222 Пол: Мужской Реальное имя: Andrew Репутация: ![]() ![]() ![]() |
Доброго времени суток всем
![]() Задание : "Удалить задданую строку из матрицы 3х4 и уплотнить матрицу" проблема в том,что я не понимаю как обратить к i+1 элементу матрицы через ptr?.. вот код.. program z1; |
![]() ![]() |
мисс_граффити |
![]()
Сообщение
#2
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
![]() сам же пользуешься конструкцией PR:=ptr(seg(p^),ofs(p^)+((i-1)*n+(j-1))*SI); просто ставь вместо i - i+1 или в чем проблема? а присваивать так нельзя не из-за +1 -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Andrewshkovskii |
![]()
Сообщение
#3
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 222 Пол: Мужской Реальное имя: Andrew Репутация: ![]() ![]() ![]() |
не пойму..извините,Просто целый день ешё другу писал программу,просто у него задолжность ввиде практики,не сдаст завтра задание - отчислят..Вот выживаю.Динамические сктруктуры сделал,а с этим опять застрял.
Я меняю i-1 на i+1,но не пойму как надо потом обратиться ,что бы заменились строки?.. Код function PR(var P:pointer):pint; begin PR:=ptr(seg(p^),ofs(p^)+((i+1)*n+(j-1))*SI); end; begin si:=sizeof(integer); writeln('Vvedite stroky kot. hotite ydalit'); readln(k); for i:=k to n do begin for j:=1 to m do pr(pa)^:=ptr(seg(p^),ofs(p^)+((i+1)*n+(j-1))*SI); end; пробывал так,ошибку пишет,что не известе ему p^... Сообщение отредактировано: Andrewshkovskii - 15.11.2007 1:03 |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Так не проще:
program z1; ? |
Lapp |
![]()
Сообщение
#5
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
не понимаю как обратить к i+1 элементу матрицы через ptr?.. Не понимаю, почему ты вдруг затруднился.. Ты же уже сделал то же самое в теле функции Pa! function PR(P:pointer):pint; Нужно сделать точно так же: взять сегмент и оффсет и прибавить SI к оффсету. Важное замечание: Когда производишь действия над указателями, нужно следить, чтоб оффсет оставался в пределах нормы, то есть от 0 до 65535. Если сумма (или разность) вышла за эти границы, то нужно подкорректировать значение сегмента. Каждая единица в сегменте соответствует 16 в оффсете. Иначе говоря, вот эти адреса эвивалентны: (10 : 40) = (11 : 24) = (12 : 8) В данном твоем случае выхода за границы скорее всего не произойдет, поскольку указатели в массиве обычно нормированы. Но я бы на это не надеялся. Рекомендую перед сложением производить нормировку адреса (приводить к виду с максимальным значением сегмента). И еще одно: почему бы не воспользоваться move? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Lapp |
![]()
Сообщение
#6
|
|||
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Я извиняюсь меред коллегами, каким-то образом я не заметил, что тема дублирована, и ответил в нее, хотя все уже было отвечено..
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
|||
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 6:23 |