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

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

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

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





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

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


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

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

Сообщение отредактировано: proldma/ - 10.04.2007 23:37
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 10.04.2007 23:43
Сообщение #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) гораздо лучше, но немного сложнее:
Динамические массивы и матрицы
 К началу страницы 
+ Ответить 
proldma/
сообщение 22.05.2007 21:24
Сообщение #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/ - 22.05.2007 22:39
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 22.05.2007 21:43
Сообщение #4


Гость






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

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


Пионер
**

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

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


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

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


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





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

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


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

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

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


Гуру
*****

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

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


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

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

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





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

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


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


Гость






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

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





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

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


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

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

 



- Текстовая версия 18.06.2025 22:41
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"