Turbo Pascal????

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
serix
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 177
Зарегистрирован: 09.11.2002 (Сб) 17:54
Откуда: Russia

Turbo Pascal????

Сообщение serix » 30.12.2003 (Вт) 19:52

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

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.12.2003 (Ср) 9:14

Могу говорить только о Дельфи...
Там есть функция High, применительно к массивам возвращает и х верхнюю границу. Если в турбо нет такой функции, то передавай размер массива как параметр.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

serix
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 177
Зарегистрирован: 09.11.2002 (Сб) 17:54
Откуда: Russia

Сообщение serix » 31.12.2003 (Ср) 18:24

Про функцию high не слышал, надо проверить...
Если задать размер массива как параметр, то Pascal не хочет запускать прогу и пишет
Can not evaluate this expression

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

Kurt
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 105
Зарегистрирован: 05.01.2003 (Вс) 23:25

Сообщение Kurt » 01.01.2004 (Чт) 18:25

serix, тебе на когда это надо?
И надо ли еще?
Последний раз редактировалось Kurt 02.01.2004 (Пт) 17:38, всего редактировалось 1 раз.
Для корабля, который не знает куда плыть, нет попутного ветра...

serix
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 177
Зарегистрирован: 09.11.2002 (Сб) 17:54
Откуда: Russia

Сообщение serix » 02.01.2004 (Пт) 0:12

Мне в принципе без разницы когда, главное - правильный вариант решения :wink: ...
P.S. Спасибо что тратите время на мою проблему :lol: ...
ZU

Kurt
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 105
Зарегистрирован: 05.01.2003 (Вс) 23:25

Сообщение Kurt » 02.01.2004 (Пт) 17:49

Слухай, а через классы не пойдет?
Для корабля, который не знает куда плыть, нет попутного ветра...

serix
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 177
Зарегистрирован: 09.11.2002 (Сб) 17:54
Откуда: Russia

Сообщение serix » 03.01.2004 (Сб) 17:37

В паскале я не силен СОВСЕМ... так что ничего сказать не могу.
P.S. Что такое классы??? :roll:
ZU

Unstat
Реальный басяк
Реальный басяк
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 07.01.2004 (Ср) 22:19
Откуда: Нижний Новгород

Сообщение Unstat » 07.01.2004 (Ср) 22:37

Серый ты же уже решил эту задачу так скажи же всем не нервирую народю.

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 08.01.2004 (Чт) 14:12

Я, так и не понял, нужен код или нет?

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

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

serix
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 177
Зарегистрирован: 09.11.2002 (Сб) 17:54
Откуда: Russia

Сообщение serix » 08.01.2004 (Чт) 19:57

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.

Спасибо...
ZU

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 09.01.2004 (Пт) 14:03

Ну все путем, хотя в разделе описания можно было описать не типизированные константы:
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, поэтому при вычислении среднего значения необходимо обнулять переменную в которой происходит вычесления!

serix
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 177
Зарегистрирован: 09.11.2002 (Сб) 17:54
Откуда: Russia

Сообщение serix » 09.01.2004 (Пт) 15:06

Vitaly1, спасибо за подсказку, как раз думал что по-левому организовано вычисление среднего значения... :D
ZU

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 10.01.2004 (Сб) 22:43

Longint... :roll:
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 80

    TopList