Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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("&#194;&#226;&#229;&#228;&#229;&#237;&#238; &#237;&#229;&#226;&#229;&#240;&#237;&#238;&#229; &#234;&#238;&#235;-&#226;&#238; &#253;&#235;&#229;&#236;&#229;&#237;&#242;&#238;&#226;!"#10"&#207;&#238;&#226;&# 242;&#238;&#240;&#232;&#242;&#229; &#226;&#226;&#238;&#228;!",mtWarning,[mbOk],0)
  else
  begin
  BitBtn2.Enabled:=true;
  SetLength(a,n);
  for i:=0 to n-1 do
     a[i]:=Inputbox("&#194;&#226;&#229;&#228;&#232;&#242;&#229; &#253;&#235;&#229;&#236;&#229;&#237;&#242; &#185;"+FloatToStr(i+1),"&#194;&#226;&#238;&#228;:","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("&#215;&#232;&#241;&#235;&#224; &#240;&#224;&#226;&#237;&#251;!",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
8-1127967967
Mad_Unlocker
2005-09-29 08:26
2006.03.12
Векторная графика


15-1140002176
Rentgen
2006-02-15 14:16
2006.03.12
Для каждого юзера своя строка.


8-1128425545
Eugene_T
2005-10-04 15:32
2006.03.12
Конвертирование mp3 -> wav


15-1139824556
Гарри Поттер
2006-02-13 12:55
2006.03.12
VPN+Outlook+Exchange


2-1140528763
DDS
2006-02-21 16:32
2006.03.12
Перемешивание!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский