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

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

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

 
 Ответить  Открыть новую тему 
> матрица с незаданными размерами, должно применяться к любой прямоугольной м.
сообщение
Сообщение #1





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

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


У меня ТР: Решить задачу (котарова 4.3.3) с использованием процедур. Эт ладно. Но впрос возникает в другом. Формулировка такая : "Найти максимальный среди отрицательных элементов прямоугольной матрицы и минимальный среди положительных. Если они отличаются...".
Т.е старым добрым for здесь не воспользуешься - матрица рандомна. какую захочет юзер такую её и задаст (((. Как назло в проге обязательно чтение из файла.Так как же удобней решать эту часть задачи? В начале проги как-то определить число строк и столбов? Но как?

Вобщем -- очень жду Ваших советов.

Сообщение отредактировано: proldma/ -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
Т.е старым добрым for здесь не воспользуешься
Еще как воспользуешься... Как бы юзер не хотел задать матрицу "без границ", Паскаль ему этого не позволит, в программе должно быть указано, какие размеры имеет матрица, а коли так - то можно использовать For...

Есть 2 пути решения этой задачи:
1) не очень хорошо, но очень просто:
const
max_n = 50;
max_m = 50;
var a: array[1 .. max_n, 1 .. max_m] of integer;

{
Дальше у пользователя запрашиваем N (1 <= n <= max_n) и
M (1 <= m <= max_m) и работаем с куском матрицы
}


2) гораздо лучше, но немного сложнее:
Динамические массивы и матрицы
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


А кто-нить может пояснить мне в этой процедуре :


FUNCTION INCR(VAR X,N:integer):Boolean;
type Matr=array[1..3,1..3] of real;
VAR FL:boolean;
I:integer;
Begin
Fl:=true;
For i:=2 to 3 do
if MATR(x)[i,j]<MATR(x)[i-1,j-1] then
fl:=false;
incr:=fl
end;



Что означает

MATR(x)[i,j]


и почему названию функции здесь присваивают знач простой переменной?

Что это за форма записи такая?

Сообщение отредактировано: proldma/ -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






А это что, работающая функция, чтобы ее комментировать? Мало ли, что я могу написать...

А если она компилируется - расскажи, ЧЕМ...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 60
Пол: Мужской
Реальное имя: Никита

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


Цитата(proldma/ @ 22.05.2007 22:24) *

и почему названию функции здесь присваивают знач простой переменной?


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





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

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


ЧЕМ? Не знаю. Какая разница. Мне не нужны коментарии к функции (я не знаю пашет ли она вообще).

Например про A[i,j] ты же можешь сказать, что это двумерный массив,i - номер строки, j- номер столба?..
Мне просто нужно знать, что в паскале означает формулировка MATR(x)[i,j] ?

Функцию я написал чтоб было ясно что есть МАТР и откуда берётся Х.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

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


Цитата(proldma/ @ 22.05.2007 23:13) *

Мне просто нужно знать, что в паскале означает формулировка MATR(x)[i,j] ?

Синтаксическую ошибку означает такая формулировка.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8





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

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


М(с)[i] где с-нетипизированный формальный параметр и ему может быть присвоено чё угодно(real, integer, ещё какие-нибудь массивы). Вот так. yes2.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Цитата
Вот так.
У тебя в функции НЕТ нетипизированного параметра X... Есть только X: Integer... Для того, чтобы он стал нетипизированным, надо:
Цитата
FUNCTION INCR(VAR X;N:integer):Boolean;
Так что, с заданным определением ЭТО - синтаксическая ошибка, а телепатов искать будешь на другом форуме, ибо КАК это вызывается тоже не видно...

Вот так... (С)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10





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

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


Рад что Вам понравилось. Спасибо, разобрался.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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