HELP!!!!!!!

Aileen88
5/23/2007, 8:34:31 PM
Народ, пожалуйста, помогите составить алгоритмы в паскале!!! Сама никак не разберусь... =(

1) Составить программу. Для матрицы В (5 строк, 4 столбца) вычислить выражение У=(С-1)^5 + (C-1)^4 +...+(C-1)^1 где С среднее арифметическое значение элементов в К-той строке матрицы В, значения которых превышают значение 1-го элемента в данной строке. Зам: для вычисления среднего арифм. в произвольной строке матрицы использовать процедуру

2) Для получения результата составить функцию, исходными данными которой является массив у,y,...,y с заданным числом n элементов. Кроме того, разработать программу для отладки составления функции: суммы отридцательных элементов массива y,y,...,y.
petya5
5/23/2007, 10:17:03 PM
const RowCount = 5;
ColCount = 4;
type TMatrix = array of Integer;
var Matrix: TMatrix;


function Power(value:Double, exponent: Integer):Double;
var i:Integer;
Result:Double;

begin
Result := value;
for i := 2 to exponent do
Result := Result * value;
Power := Result;
end;


function GetRowSum(iRowNumber: Inreger): Double;
var i:Integer;
Result:Double;

begin
for i:=1 to ColCount do
if (Matrix > Matrix) then
Result := Result + Matrix;

Result := Result / RowCount;
GetRowSum := Power(Result - 1, RowCount - iRowNumber + 1);
end;


function Evaluate: Double;
var i:Integer;
Result:Double;

begin
for i:=1 to RowNumber do
Result := Result + GetRowSum(i);

Evaluate := Result;
end;

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

Теперь этот код вставляете в тело основной программы и компилите. При компиляции возможно будут найдены синтаксические ошибки, типа пропущенного двоеточия или точки с запятой. Не обессудьте, я не компилил этот код, да и паскаля у меня нет. Все писалось в NotePad'e :)

Это ответ на первый вопрос.
Со вторым сложнее, поскольку не совсем понятно, что значит массив, являющийся исходными данными для функции. И уж совсем не понятно, что такое "программа для отладки составления функции". Хотелось бы получить пояснения...
maxdiversexnarod1
5/24/2007, 2:36:19 AM
petya5
Мда, по коду видно, что его ещё не компилили wink.gif
Вот это:
1) Evaluate() заменить на Evaluate
2) Result в паскале юзать нельзя
3) после if пишется then
4) возможно, что-то еще, т.к. сам тоже не компилил wink.gif
В общем, советую попробовать самому откомпилить и отдебажить. Раз уж помогать - так довести дело до конца.
maxdiversexnarod1
5/24/2007, 2:41:19 AM
(petya5 @ 23.05.2007 - время: 18:17) Со вторым сложнее, поскольку не совсем понятно, что значит массив, являющийся исходными данными для функции. И уж совсем не понятно, что такое "программа для отладки составления функции". Хотелось бы получить пояснения...
1) "исходные данные" - т.е. "параметры функции". По-моему, это очевидно
2) "программа для отладки составления функции" - видимо, некая программа, которая проверяет указанную функцию, вызывая её с параметрами, введёнными с клавиатуры/файла. Чтобы проверить, правильно ли она работает.
petya5
5/24/2007, 2:46:11 PM
2 maxdiverSxn1
Совершенно с тобой согласен! :) Result эо у меня от дельфы. Сам уже дома об этом вспомнил :) И то что then пишется и что () ненужны - это все от лукавого (то бишь от С/С++/С#) :)

Но с компиляцией у меня и правда будут траблы: нет у меня ни паскаля ни делфи. Песть компилит вопрошающий: главное по сути помочь. :)

P.S. Поправил предыдущий свой пост в связи с рекомендациями :)
petya5
5/24/2007, 2:55:32 PM
(maxdiverSxn1 @ 23.05.2007 - время: 22:41) (petya5 @ 23.05.2007 - время: 18:17) Со вторым сложнее, поскольку не совсем понятно, что значит массив, являющийся исходными данными для функции. И уж совсем не понятно, что такое "программа для отладки составления функции". Хотелось бы получить пояснения...
1) "исходные данные" - т.е. "параметры функции". По-моему, это очевидно
2) "программа для отладки составления функции" - видимо, некая программа, которая проверяет указанную функцию, вызывая её с параметрами, введёнными с клавиатуры/файла. Чтобы проверить, правильно ли она работает.
Вовсе не очевидно. По твоему получается, нужно написать функцию, у которой в параметрах с массив произвольной длинны. Но я не уверен, что такое Паскаль может .Сея фича, если только я не ошибаюсь, появилась в ДЕлфи, да и от не сразу. Или каждый элемент будут вводить по-почереди? В общем пускай все-таки "аффтар" уточнит, что бы нам не гадать. Как говорится ТЗ в студию! :)
maxdiversexnarod1
5/24/2007, 9:33:14 PM
2 petya5
Почему же именно массив переменной длины? В Паскале в таких случаях просто делают массив размером, скажем, в 100 или 1000 - с запасом. Так что всё нормально.

Когда все запрещено без 0, то СН не будет найден.
petya5
5/28/2007, 7:06:08 PM
(maxdiverSxn1 @ 24.05.2007 - время: 17:33) 2 petya5
Почему же именно массив переменной длины? В Паскале в таких случаях просто делают массив размером, скажем, в 100 или 1000 - с запасом. Так что всё нормально.
Не знаю, насколько это нормально, а нам за такое, еще во время учебы, отрывали ручки и вставляли вместо ножек, фигурально выражаясь. :)
maxdiversexnarod1
5/28/2007, 9:50:58 PM
(petya5 @ 28.05.2007 - время: 15:06) (maxdiverSxn1 @ 24.05.2007 - время: 17:33) 2 petya5
Почему же именно массив переменной длины? В Паскале в таких случаях просто делают массив размером, скажем, в 100 или 1000 - с запасом. Так что всё нормально.
Не знаю, насколько это нормально, а нам за такое, еще во время учебы, отрывали ручки и вставляли вместо ножек, фигурально выражаясь. :)
Хм, видимо всё зависит от уровня преподов wink.gif
Например, у меня был случай, когда пришлось переделывать задачку: я программу разделил по смыслу на несколько процедур, а препод сказал "Нельзя, давай переделывай!" - как будто сплошным кодом будет лучше, чем структурированно.
Так что обычно при выполнении д/з лучше сделать попроще, но безо всяких намеков на хороший стиль и устойчивость на больших входных данных.