Страница 1 из 1

Turbo Pascal????

СообщениеДобавлено: 30.12.2003 (Вт) 19:52
serix
Нужна помощь c Turbo Pascal
Нам типа задачу задали: даны 2 массива 5x5 и 6x6 и еще один одномерный массив из 12 элементов. Так вот нужно найти сумму максимальных элементов двумерных массивов, и в тому же чтоб эти элементы были меньше нуля, а также меньше среднего арифметического элементов одномерного массива. И нужно процедуру поиска элемента соответствующего заданным условиям оформить в виде подпрограммы, т.е. одна подпрограмма с разными входными параметрами все делает сама.
Впринципе это элементарно, и задача легкая, но как сделать эту подпрограмму работающей для 2 массивов с разными размерностями....
Помогите, кто может пожалуйста :cry: :cry: :cry: ...

СообщениеДобавлено: 31.12.2003 (Ср) 9:14
GSerg
Могу говорить только о Дельфи...
Там есть функция High, применительно к массивам возвращает и х верхнюю границу. Если в турбо нет такой функции, то передавай размер массива как параметр.

СообщениеДобавлено: 31.12.2003 (Ср) 18:24
serix
Про функцию high не слышал, надо проверить...
Если задать размер массива как параметр, то Pascal не хочет запускать прогу и пишет
Can not evaluate this expression

Я вот подумал, может стоит в процедуре задать массив с максимальными границами, если в него загружаются элементы массива с меньшими границами, то сделать чтоб цикл доходил только до конца этих границ.
Не знаю может получится :arrow: ...
В любом случае спасибо...

СообщениеДобавлено: 01.01.2004 (Чт) 18:25
Kurt
serix, тебе на когда это надо?
И надо ли еще?

СообщениеДобавлено: 02.01.2004 (Пт) 0:12
serix
Мне в принципе без разницы когда, главное - правильный вариант решения :wink: ...
P.S. Спасибо что тратите время на мою проблему :lol: ...

СообщениеДобавлено: 02.01.2004 (Пт) 17:49
Kurt
Слухай, а через классы не пойдет?

СообщениеДобавлено: 03.01.2004 (Сб) 17:37
serix
В паскале я не силен СОВСЕМ... так что ничего сказать не могу.
P.S. Что такое классы??? :roll:

СообщениеДобавлено: 07.01.2004 (Ср) 22:37
Unstat
Серый ты же уже решил эту задачу так скажи же всем не нервирую народю.

СообщениеДобавлено: 08.01.2004 (Чт) 14:12
Vitaly1
Я, так и не понял, нужен код или нет?

Kurt писал(а):Слухай, а через классы не пойдет?

Какие классы в Паскале, вы чего ребята, белины объелись :)

СообщениеДобавлено: 08.01.2004 (Чт) 19:57
serix
Vitaly1, если он уже готов, то выкладывай, посмотрим, все равно интересно, если же не готов, то можешь не мучаться.
Я в принципе сделал, только не знаю есть ли более оптимальное решение,
Код: Выделить всё
Program BFS;
type AR=array[1..6,1..6] of real;
Max=real;
var i,j:integer;
S,SA{,Amax,Bmax}:real;
A,B:AR;
Amax,Bmax:Max;
C:array[1..12] of real;
n,m:integer;
Procedure Search(var Z:AR;n,m:integer;var Max:Max);
begin
for i:=1 to n do
begin
for j:=1 to m do
begin
if (Z[i,j]<0) And (Z[i,j]<SA) and (Z[i,j]>Max) then Max:=Z[i,j];
end;
end;
end;
BEGIN
Amax:=-10000000;
Bmax:=-10000000;
S:=0;
{ЗДЕСЬ ДОЛЖЕН БЫТЬ ВВОД ЭЛЕМЕНТОВ МАССИВОВ A,B,C,D, НО Я ЕГО ПИСАТЬ НЕ БУДУ, СЛИШКОМ ОН ДЛИННЫЙ}
for i:=1 to 12 do
begin
SA:=SA+c[i]/12;
end;
search(A,5,5,Amax);
search(B,6,6,Bmax);
S:=Amax+Bmax;
writeln(S);
readln;
end.

Спасибо...

СообщениеДобавлено: 09.01.2004 (Пт) 14:03
Vitaly1
Ну все путем, хотя в разделе описания можно было описать не типизированные константы:
const Amax=-10000000, Bmax=-10000000;

кроме того их можно было сделать и типизированными, в Паскале есть длинное целое, к сожалению сейчас нет Паскаля на компьютере, но помойму там одно из двух LongInteger или Long.
const Amax:longInteger =-10000000;

Посмотрю, подправлю.

При вычислении среднего значения разумне сделать так:
SA:=0;
for i:=1 to 12 do
begin
SA:=SA+c[i];
end;
SA:=SA/12;
или даже так :
SA:=c[1];
for i:=2 to 12 do
begin
SA:=SA+c[i];
end;
SA:=SA/12;

ну вот, если это полезно, то хорошо :)
П.С.
В Паскале нет гарантии что начально значение переменной равно 0, поэтому при вычислении среднего значения необходимо обнулять переменную в которой происходит вычесления!

СообщениеДобавлено: 09.01.2004 (Пт) 15:06
serix
Vitaly1, спасибо за подсказку, как раз думал что по-левому организовано вычисление среднего значения... :D

СообщениеДобавлено: 10.01.2004 (Сб) 22:43
FaKk2
Longint... :roll: