Форум: "Начинающим";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];
ВнизПомогите сделать простую программку, пожалуйста. Найти похожие ветки
← →
Groof © (2006-02-25 21:28) [0]Надо реалиховать ф-ую по обмену двух значений (макс.и мин элементов массива, т.е. их надо поменять местами в массиве и затем отобразить его).Если кому может пригодиться, то вот она для с++:
void obmen(char *a, unsigned max, unsigned min)
{
char temp = a[min];
a[min] = a[max];
a[max] = temp;
}
...
int main ()
{
.....
obmen(a,maxElem,minElem);
cout<<sta("Izmenennii massiv: ");
for (k=0;k<n;k++)
cout<<(a[k])<<" ";cout<<endl;
}
и для дельфи(с формой):
...
var
Form1: TForm1;
max,min,temp:string;
a:array of string;
l:boolean=false;
n,i:Integer;
implementation
{$R *.dfm}
function exist(n:Integer;a:array of string):boolean;
begin
result:=False;
for i:=0 to n-1 do
if a[0]<>a[i] then
result:=True;
end;
function max_el(n:Integer;a: array of string):string;
var
pos: string;
begin
max:=a[0];
for i:=0 to n-1 do
if max<a[i] then
begin
max:=a[i];
pos:=FloatToStr(i);
end;
result:=pos;
end;
function min_el(n:Integer;a:array of string):string;
var
pos: string;
begin
min:=a[0];
for i:=0 to n-1 do
if min>a[i] then
begin
min:=a[i];
pos:=FloatToStr(i);
end;
result:=pos;
end;
function obmen(max,min:integer;a:array of string):string;
var
temp:string;
begin
temp:=a[min];
a[min]:=a[max];
a[max]:=temp;
// result:=b[i];
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
n:=StrToInt(Edit1.Text);
if n<=0 then
MessageDlg("Ââåäåíî íåâåðíîå êîë-âî ýëåìåíòîâ!"#10"Ïîâ&# 242;îðèòå ââîä!",mtWarning,[mbOk],0)
else
begin
BitBtn2.Enabled:=true;
SetLength(a,n);
for i:=0 to n-1 do
a[i]:=Inputbox("Ââåäèòå ýëåìåíò ¹"+FloatToStr(i+1),"Ââîä:","1");
end;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Label5.Enabled:=true;
Label6.Enabled:=true;
Label7.Enabled:=true;
Label8.Enabled:=true;
Label9.Enabled:=true;
Label10.Enabled:=true;
Label3.Enabled:=true;
Label4.Caption:="";
Label10.Caption:="";
if (exist(n,a)) then
begin
max:=max_el(n,a);
min:=min_el(n,a);
Label7.Caption:=(max);
Label8.Caption:=(min);
for i:=0 to n-1 do
Label4.caption:=label4.caption+" "+(a[i]);
{
a[i]:=obmen(a,min,max);
for i:=0 to n-1 do
begin
Label10.caption:=label10.caption+" "+(a[i]);
end;
}
end
else
MessageDlg("×èñëà ðàâíû!",mtError,[mbOk],0);
end;
end.
Спасибо!
← →
Virgo_Style © (2006-02-25 21:40) [1]А где вопрос?
← →
Groof © (2006-02-25 21:59) [2]вопрос в том, чтобы доделать эту задачу..надо дописать ф-ую для дельфи, чтобы она поизводила обмен значений...макс. и мин...
← →
Virgo_Style © (2006-02-25 22:15) [3]А-а. Ну я, наверное, рискну ответить за всех, что мы не возражаем. Даже более того, будут возникать вопросы - спрашивай, ответим.
И даже сразу совет дам - код стОит форматировать, больше шансов, что его прочтут.
← →
Palladin © (2006-02-25 22:25) [4]
Procedure ExchgMM(Var a:Array of String);
Var
strMin,strMax:String;
i,iMin,iMax:Integer;
Begin
If Length(a)=0 Then Exit;
strMin:=a[0]; iMin:=0;
strMax:=a[0]; iMax:=0;
For i:=0 to Length(a)-1 Do If a[i]>strMax Then
Begin
strMax:=a[i];
iMax:=i;
End Else If a[i]<strMin Then
Begin
strMin:=a[i];
iMin:=i;
End;
a[iMax]:=strMin;
a[iMin]:=strMax;
End;
теперь осталось продумать вопрос о существовании более чем одного минимального/максимального элемента массива
← →
PZ (2006-02-26 09:06) [5]> теперь осталось продумать вопрос о существовании более чем одного > минимального/максимального элемента массива
Минимум, он всегда - один, также, как максимум
← →
Groof © (2006-02-26 09:10) [6]Хорошо, это процедура, а как ее теперь надо запускать по нажитию кнопки bitbtn2Click.?
← →
Рамиль © (2006-02-26 10:45) [7]
> Groof © (26.02.06 09:10) [6]
Можно еще по Button1Click
← →
evvcom © (2006-02-26 12:21) [8]
> Минимум, он всегда - один, также, как максимум
У, какой ты умный! Значение одно, а вот аргументов может быть несколько.
← →
Virgo_Style © (2006-02-26 13:20) [9]PZ (26.02.06 9:06) [5]
1, 1, 1, 1, 2.
где здесь минимальный элемент?
← →
Галинка © (2006-02-26 16:08) [10]Palladin © (25.02.06 22:25) [4]
Легче всего, поставить условие на "неввод" двух одинаковых значений ))) Либо если заранее известно, что двух или более одинаковых значений быть не может.
← →
Groof © (2006-02-26 17:47) [11]Да такие мелочи пока не особо нужны..Лучше напиши код для bitbtn2, чтобы эта ф-ия по обмену значений работала..
← →
PZ (2006-02-26 18:14) [12]> Virgo_Style © (26.02.06 13:20) [9]
> где здесь минимальный элемент?
Уговорил
← →
Anatoly Podgoretsky © (2006-02-26 19:14) [13]Virgo_Style © (26.02.06 13:20) [9]
А зачем где, нужно какое
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.013 c