IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Создать построчно матрицу., Решить с помощью директивы absolute
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 5
Пол: Женский

Репутация: -  1  +


Будьте так добры. Используя директиву absolute, создать построчно с помощью
подпрограммы матрицы 5х5 и 2х3.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


И в чем конкретно проблема?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 5
Пол: Женский

Репутация: -  1  +


проблема в том что я не понимаю какую функцию будет выполнять эта директива в программе и с чем она будет работать. если она совмещает адрес локальной переменной с адресом нетипизированного параматра то что и с чем она должна совмещать? помогите, оч нужна ваша помощь)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(дождинка @ 10.12.2009 19:08) *
помогите, оч нужна ваша помощь)
Если честно, я тоже не вполне понимаю. Задавая вопрос, я надеялся прояснить - но фиг. Я попытался придумать несколько схем с использованием absolute, но они все сильно притянуты за уши.. По всей видимости, тут не хватает какой-то ценной информации, которую ты недоговариваешь (надеюсь, не нарочно)). Попробуй "вспомнить все" (С) smile.gif. Любая мелочь может оказаться полезной.
Например, почему именно такие размеры - 5х5 и 2х3? и ты не сказала, какой тип элементов.. И почему именно построчно? Тут чувствуются какие-то намеки, но я не улавливаю их пока..
Откуда задача? Может, просто более точное воспроизведение условия поможет?
Попробуй нарыть еще хоть что-то.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 5
Пол: Женский

Репутация: -  1  +


вроде прогу написала, вот что вышло

program matr;
procedure MatrA(var z);
var
MasA:array [1..5,1..5] of integer absolute z;
i,j:integer;
begin
for i:=1 to 5 do
for j:=1 to 5 do
MasA[i,j]:=Random(10);
for i:=1 to 5 do
begin
for j:=1 to 5 do
write(masA[i,j], ' ');
end;
end;
procedure MatrB(var t);
var
MasB:array [1..2,1..3] of integer absolute t;
i,j:integer;
begin
for i:=1 to 2 do
for j:=1 to 3 do
MasB[i,j]:=Random(10);
for i:=1 to 2 do
begin
for j:=1 to 3 do
write(MasB[i,j] , ' ');
end;
end;
var
x:array [1..5,1..5] of integer;
y:array [1..2,1..3] of integer;
begin
writeln('matrix A 5*5');
writeln('----------------------------');
MatrA(x);
writeln('matrix B 2*3');
writeln('----------------------------');
MatrB(y);
readln
end.


Добавлено через 4 мин.
она работает)мне преподаватель задал на защиту переделать ее, чтобы подпрограмма только создавала матрицу, а выводила ее основная программа. помогите пожалуйста к завтрашнему дню)

М
Тэги!

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(дождинка @ 15.12.2009 20:37) *
переделать ее, чтобы подпрограмма только создавала матрицу, а выводила ее основная программа. помогите пожалуйста к завтрашнему дню)
дождинка, я искренне удивлен: если ты сама написала прогу, неужели тебе трудно переставить печать из процедуры в основную часть?.. blink.gif

Впрочем, посмотрев код, я понял, что имел в виду твой преподаватель.. Неправильно это - создавать отдельную процедуру для каждого размера. Вот тебе код, разбирайся. Тут одна процедура для создания матрицы и одна для печати. Размеры матрицы передаются в параметрах.

program Matrix;

procedure FillMatrix(var Matrix; n,m: integer);
var
x: array [1..$7FF0] of integer absolute Matrix; {примерно максимальный размер массива в TP/BP}
i,j: integer;
begin
for i:=1 to n do
for j:=1 to m do
x[(i-1)*m+j]:=Random(10) {вручную пересчитываем индексы}
end;


procedure ShowMatrix(var Matrix; n,m: integer);
var
x: array [1..$7FF0] of integer absolute Matrix;
i,j: integer;
begin
for i:=1 to n do begin
for j:=1 to m do write(x[(i-1)*m+j]:4);
WriteLn
end
end;


var
A: array [1..5,1..5] of integer;
B: array [1..2,1..3] of integer;

begin
writeln('matrix A 5*5');
writeln('----------------------------');
FillMatrix(A,5,5);
ShowMatrix(A,5,5);
WriteLn;
writeln('matrix B 2*3');
writeln('----------------------------');
FillMatrix(B,2,3);
ShowMatrix(B,2,3);
readln
end.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





Группа: Пользователи
Сообщений: 5
Пол: Женский

Репутация: -  1  +


нет, мне вовсе нетрудно было скопировать. к тому же я так и делала, но если бы у меня все работало, разве я к вам бы обратилась? тоже логику иметь надо. и еще. было же сказано, чтобы матрицы выводила основная программа, зачем создавать еще одну процедуру?? а про единственную подпрограмму создания матрицы спасибо. сама это поняла, но слишком поздно к сожалению. и почему вы так любите эту универсальность! я видимо вижу только то что на поверхности, а вы вглубь смотрите. все равно спасибо за ответ, хотя он мне ничем не помог.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(дождинка @ 16.12.2009 21:34) *
если бы у меня все работало, разве я к вам бы обратилась? тоже логику иметь надо.
Да, логика безупречная. Жаль только, одноуровневая..

Цитата
и еще. было же сказано, чтобы матрицы выводила основная программа, зачем создавать еще одну процедуру??
Она и выводит. Видела вызовы? Смысл в том, чтобы избавить процедуру, заполняющую матрицы, от ЛИШНЕЙ функциональности. Как организовать вывод - через процедуру или нет - не важно. Важно, чтобы иметь возможность это делать ОТДЕЛЬНО от заполнения. Не надо соединять функциональность с интерфейсом - это разные вещи, рано или поздно возникнет необходимость заполнить матрицу без вывода. Сейчас вывод делается в основной программе - хотя, ессно, посредством подпрограммы. Не путай категории "где" и "как". Вставь вызов процедуры Show в процедуру Fill - все, ты снова получишь старую ситуацию.

Цитата
а про единственную подпрограмму создания матрицы спасибо. сама это поняла, но слишком поздно к сожалению.
Ты молодец.

Цитата
и почему вы так любите эту универсальность!
Все программирование ЕСТЬ универсальность. Остальное - калькулятор.

Цитата
вы вглубь смотрите
стараемся..

Цитата
все равно спасибо за ответ, хотя он мне ничем не помог.
Он помог тебе, я это вижу. Не надо только относиться к помощи слишком меркантильно. Спасибо и тебе - я всегда рад учится от общения с людьми.

Оффтоп: дождинка, оставь свой сарказм и говори по-человечески. И, когда говоришь на форуме, будь готова, что люди будут не просто точно отвечать на твои вопросы, как первачки учителке. И постарайся видеть в ответах больше, чем кажется на первый взгляд. А если что непонятно - спрашивай дальше.
Успехов тебе.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9





Группа: Пользователи
Сообщений: 5
Пол: Женский

Репутация: -  1  +


спасибо за адекватный ситуации ответ) все ясно и понятно
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(дождинка @ 17.12.2009 17:58) *
спасибо за адекватный ситуации ответ) все ясно и понятно
Гуд )). Заходи еще.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 23.12.2024 22:21
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name