Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Нужна помощ с массивами (Delphi 7)


Автор: Lansky 8.8.2005, 14:27
Народ помогите с задачей про массивы !

1) Нужно создать массив со 100 элементами;
2) Заполнить эти элементы случайными значениями;
3) Найти наиболшее и наименьшее значение, и по нажатию на кнопку виводить эти значения на экран;
4) Поменять наиболшее и наименьшее значение местами.

Первое и второе я уже сделал, тоесть заполнил элементы массива случайными номерами от 1 до 1000, а вот найти наибольшее и наименьшее значения и поменять их местами я немогу.
Обьесните мне пожалуйста как это сделать.

Автор: Dimannn 8.8.2005, 14:32

Начти наибольшее значение :

Код

function MaxIntValue(const Data: array of Integer): Integer;


(модуль Maths);

Аналогично И минимальное.

Автор: Lansky 8.8.2005, 14:35
Сапсибо smile

Автор: Bes 8.8.2005, 15:21
Интересно а если случайные значения не Integer а скажем Real эта функция сработает?

Автор: Rrader 8.8.2005, 15:34
Компилятор не разрешит, так как там массив из Integer. smile

Автор: Zero 8.8.2005, 15:38
Цитата(Bes @ 8.8.2005, 15:21)
Интересно а если случайные значения не Integer а скажем Real эта функция сработает?

Нет конечно... Сам посмотри:
Код

function MaxIntValue(...): Integer;

А также случайные величины, если они на рандоме, то тоже должны быть целыми...

Автор: Bes 8.8.2005, 15:47
Об том и речь.

Код

Randomize;
for i:=0 to length(MyArr)-1 do
MyArr[i]:=(random(20000)-10000)/100;
//так получим рэндомный "real"
// потому что в задании не стояло заполнить элементы интеджером


намекаю.... как быть? smile
человек вроде как учится программировать - зачем ему подсовывать заведомо легкие и в некотором смысле неправильные способы решения задачи (заметте задачи а не проблемы).

это мое конечно мнение

Автор: Zero 8.8.2005, 16:04
Цитата(Bes @ 8.8.2005, 15:47)
человек вроде как учится программировать - зачем ему подсовывать заведомо легкие

Ты сам ответил на свой вопрос... smile
Цитата(Bes @ 8.8.2005, 15:47)
учится


Добавлено @ 16:05
Цитата(Bes @ 8.8.2005, 15:47)
// потому что в задании не стояло заполнить элементы интеджером
Обычно когда говорят про случайные, то подразумевают рандомные и следовательно целые...

Автор: Dimannn 8.8.2005, 16:42
Для Real есть аналогичная функция:

Код

function MaxValue(const Data: array of Double): Double;

Автор: ФЫГ 8.8.2005, 17:16
Цитата(Bes @ 8.8.2005, 15:47)
MyArr[i]:=(random(20000)-10000)/100;
если массив интехеров, то здесь будет ошибка и не фиг говорить что так получим рэндомный рил

Автор: Dimannn 8.8.2005, 17:21
Цитата
если массив интехеров, то здесь будет ошибка и не фиг говорить что так получим рэндомный рил


Я посмотрел, вроде никто не говорил, что масив интехеров.(правда можт не увидел.)

Автор: ФЫГ 8.8.2005, 17:42
Dimannnизвиняюсь, у мня хорошее воображение smile
Lansky слабо свою хвункцию написать? значить, максимум:
Код

function GetMaxValue(cons Data: array of YourType): YourType;
var cnt:smallint;
begin
        Result:=Data[Low[Data]];
        for cnt:=0to High(Data) do if resulT<{для минимума вместо < пишешь >}Data[cnt] then reSUlT:=Data[cnt];
end;

Автор: Bes 9.8.2005, 06:23
Во-во об этом и говорим на кажном собранйи...
Человек писать учится а не решать.... хотя признаться я этих фунций не знал - тоже поучился.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)