Closed TopicStart new topicStart Poll

Страницы: (1) 1 
Aileen88
дата: [ i ]
  • *
  • Новичок
  • Репутация: нет
  • Статус: Давай пообщаемся!
  • Member OfflineЖенщинаСвободна
Народ, пожалуйста, помогите составить алгоритмы в паскале!!! Сама никак не разберусь... =(

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

2) Для получения результата составить функцию, исходными данными которой является массив у[1],y[2],...,y[n] с заданным числом n элементов. Кроме того, разработать программу для отладки составления функции: суммы отридцательных элементов массива y[1],y[2],...,y[n].

petya5
дата: [ i ]
  • *
  • Новичок
  • Репутация: 1
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
const RowCount = 5;
ColCount = 4;
type TMatrix = array [1..ColCount, 1..RowCount] 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[i, iRowNumber] > Matrix[1, iRowNumber]) then
Result := Result + Matrix[i, iRowNumber];

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 :)

Это ответ на первый вопрос.
Со вторым сложнее, поскольку не совсем понятно, что значит массив, являющийся исходными данными для функции. И уж совсем не понятно, что такое "программа для отладки составления функции". Хотелось бы получить пояснения...

Это сообщение отредактировал petya5 - 24-05-2007 - 10:48
maxdiversexnarod1
дата: [ i ]
  • *
  • Любитель
  • Репутация: 30
  • Статус:
  • Member OfflineМужчинаСвободен
petya5
Мда, по коду видно, что его ещё не компилили wink.gif
Вот это:
1) Evaluate() заменить на Evaluate
2) Result в паскале юзать нельзя
3) после if пишется then
4) возможно, что-то еще, т.к. сам тоже не компилил wink.gif
В общем, советую попробовать самому откомпилить и отдебажить. Раз уж помогать - так довести дело до конца.
maxdiversexnarod1
дата: [ i ]
  • *
  • Любитель
  • Репутация: 30
  • Статус:
  • Member OfflineМужчинаСвободен
QUOTE (petya5 @ 23.05.2007 - время: 18:17)
Со вторым сложнее, поскольку не совсем понятно, что значит массив, являющийся исходными данными для функции. И уж совсем не понятно, что такое "программа для отладки составления функции". Хотелось бы получить пояснения...

1) "исходные данные" - т.е. "параметры функции". По-моему, это очевидно
2) "программа для отладки составления функции" - видимо, некая программа, которая проверяет указанную функцию, вызывая её с параметрами, введёнными с клавиатуры/файла. Чтобы проверить, правильно ли она работает.
petya5
дата: [ i ]
  • *
  • Новичок
  • Репутация: 1
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
2 maxdiversexnarod1
Совершенно с тобой согласен! :) Result эо у меня от дельфы. Сам уже дома об этом вспомнил :) И то что then пишется и что () ненужны - это все от лукавого (то бишь от С/С++/С#) :)

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

P.S. Поправил предыдущий свой пост в связи с рекомендациями :)

Это сообщение отредактировал petya5 - 24-05-2007 - 10:50
petya5
дата: [ i ]
  • *
  • Новичок
  • Репутация: 1
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
QUOTE (maxdiversexnarod1 @ 23.05.2007 - время: 22:41)
QUOTE (petya5 @ 23.05.2007 - время: 18:17)
Со вторым сложнее, поскольку не совсем понятно, что значит массив, являющийся исходными данными для функции. И уж совсем не понятно, что такое "программа для отладки составления функции". Хотелось бы получить пояснения...

1) "исходные данные" - т.е. "параметры функции". По-моему, это очевидно
2) "программа для отладки составления функции" - видимо, некая программа, которая проверяет указанную функцию, вызывая её с параметрами, введёнными с клавиатуры/файла. Чтобы проверить, правильно ли она работает.

Вовсе не очевидно. По твоему получается, нужно написать функцию, у которой в параметрах с массив произвольной длинны. Но я не уверен, что такое Паскаль может .Сея фича, если только я не ошибаюсь, появилась в ДЕлфи, да и от не сразу. Или каждый элемент будут вводить по-почереди? В общем пускай все-таки "аффтар" уточнит, что бы нам не гадать. Как говорится ТЗ в студию! :)
maxdiversexnarod1
дата: [ i ]
  • *
  • Любитель
  • Репутация: 30
  • Статус:
  • Member OfflineМужчинаСвободен
2 petya5
Почему же именно массив переменной длины? В Паскале в таких случаях просто делают массив размером, скажем, в 100 или 1000 - с запасом. Так что всё нормально.

Когда все запрещено без 0, то СН не будет найден.

Это сообщение отредактировал defloratsia - 31-03-2009 - 01:15
petya5
дата: [ i ]
  • *
  • Новичок
  • Репутация: 1
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
QUOTE (maxdiversexnarod1 @ 24.05.2007 - время: 17:33)
2 petya5
Почему же именно массив переменной длины? В Паскале в таких случаях просто делают массив размером, скажем, в 100 или 1000 - с запасом. Так что всё нормально.

Не знаю, насколько это нормально, а нам за такое, еще во время учебы, отрывали ручки и вставляли вместо ножек, фигурально выражаясь. :)
maxdiversexnarod1
дата: [ i ]
  • *
  • Любитель
  • Репутация: 30
  • Статус:
  • Member OfflineМужчинаСвободен
QUOTE (petya5 @ 28.05.2007 - время: 15:06)
QUOTE (maxdiversexnarod1 @ 24.05.2007 - время: 17:33)
2 petya5
Почему же именно массив переменной длины? В Паскале в таких случаях просто делают массив размером, скажем, в 100 или 1000 - с запасом. Так что всё нормально.

Не знаю, насколько это нормально, а нам за такое, еще во время учебы, отрывали ручки и вставляли вместо ножек, фигурально выражаясь. :)

Хм, видимо всё зависит от уровня преподов wink.gif
Например, у меня был случай, когда пришлось переделывать задачку: я программу разделил по смыслу на несколько процедур, а препод сказал "Нельзя, давай переделывай!" - как будто сплошным кодом будет лучше, чем структурированно.
Так что обычно при выполнении д/з лучше сделать попроще, но безо всяких намеков на хороший стиль и устойчивость на больших входных данных.
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)

Страницы: (1) 1

Closed TopicStart new topicStart Poll0


Рекомендуем почитать также топики:

Украшения для XP, Vista, Seven

Фото юзеров состоящих в гильдии!!!

FLAC против LOSSY

FlatOut 2

Как это работает



>