PDA

Просмотр полной версии : С++\Нахождение max и min в одномерном. вещ. массиве в об.ориентир. ср.



xsix
07.11.2008, 21:12
Добрый вечер!
Народ, у меня конечно же проблема. :)
Нужно решить задачу на нахождение максимума и минимума в одномерном вещественном массиве в объектно-ориентированной среде. Дело совсем туго как с массивами так и с объектно-ориентированным программирование. Если вы можете мне помочь, то пожалуйста, напишите код программы, если хоть не в объектно-ориентированной среде, то в императивной, чтобы мне было откуда плясать. Заранее благодарю за вашу помощь.

xsix
08.11.2008, 09:59
Народ, ну где-же ваша помощь??? Помогите пожалуйста!!!

Хыиуду
08.11.2008, 14:37
Раздел "Алгоритмы", тема "Нахождение максимума"

xsix
09.11.2008, 11:56
Хыиуду: "Раздел "Алгоритмы", тема "Нахождение максимума""- конечно спасибо, но вопрос в объектно-ориентированной среде так и остался не решённым! Ну вот, мы имеем массив и нам надо найти максимум, на какие тут классы можно разбить эту задачу, я не понимаю???

Naeel Maqsudov
09.11.2008, 12:40
Может вместо массивов использовать коллекции?

xsix
09.11.2008, 17:18
Коллекциии??? Это что ещё? P.S. Блин, всё труба.........

Хыиуду
10.11.2008, 23:41
Класс - массив. Метод класса - найти максимум. Еще один метод класса - найти минимум.

xsix
11.11.2008, 10:13
Хорошо, осталось пошевелить мозгами. :0

kirillik_mod
12.11.2008, 18:00
Program prog;
Const lmax=20;
Type mass=array[1..lmax] of real;
Var B,D,A:mass;
i,k,n,nmax:integer;
x,z1,z2,x1,max:real;
begin
writeln('Vvesti dlinny massiva B ot 1 do',lmax);
read(k);
writeln('Vvedite massiv B iz ',k:3,' eiementov');
for i:=1 to k do
read (b[i]);
writeln ('Vvedite x');
read(x);
nmax:=0;
max:=0;
for i:=1 to k do
if (abs(b[i])<x) and (abs (b[i])>=abs(max)) then
Begin
max:=b[i];
nmax:=i;
end;
{analiz}
if nmax=0 then
writeln ('net maximyma')
else
writeln ('max=',max:10:3,'nmax=',nmax:3);

writeln ('Vvedite z1, z2 (z1<=z2)');
repeat
read (z1,z2);
until (z1<=z2);
n:=0;{Dlinna Massiva}
for i:=1 to k do
if (z1<b[i]) and (b[i]<z2) then
Begin
n:=n+1;
d[n]:=-b[i];
end;

if n=0 then
writeln ('net massivov D i A')
else
begin
Writeln('massiv D iz',n:3,'elementov');
for i:=1 to n do
writeln (D[i]:10:3);
writeln;
writeln ('vvedite x1');
read(x1);
for i:=1 to n do
if d[i]>x1 then
a[i]:=d[i]
else
a[i]:=-d[i]/2;
writeln ('massiv A iz',n,'ilimentov');
for i:=1 to n do
write(A[i]:10:3);
writeln;
end;
end.

Может Поможет)

xsix
13.11.2008, 10:28
kirillik_mod - наврятли :)

Apokal
13.11.2008, 16:43
Класс - массив. Метод класса - найти максимум. Еще один метод класса - найти минимум.

Или более извращенно, но зато защищенно)))



class element
{
public:
int GetValue() { return value; }
int SetValue(int a) { value=a; }
private:
int value;
};

class massiv
{
public:
void FindMax()
{ max=mas[0].GetValue();
for(int i=1;i<10;i++)
if(mas[i].GetValue()>max)
max=mas[i].GetValue();
else continue;
};
void FindMin()
{ min=mas[0].GetValue();
for(int i=1;i<10;i++)
if(mas[i].GetValue()<min)
min=min[i].GetValue();
else continue;
};
int GetMax() { return max; }
int GetMin() { return min; }
int ShowElement(int index) { return mas[index].GetValue(); }
void SetElement(int index,int value) { mas[index].SetValue(value); }
private:
element mas[10]; int max,min;
}