![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Ввести одномерный массив a={ 2,35 -4,15 0 -3,1 7,8 6,3 -3,05 1,5}.
Найти и вывести среднее геометрическое положительных элементов массива a и индекс элемента, наиболее близкого к среднему геометрическому. Затем упорядочить массив по убыванию. (В оконном режиме) Возникла сложность!!!! С этой процедурой! Помогите пожалуйста!! Найти и вывести среднее геометрическое положительных элементов массива a и индекс элемента, наиболее близкого к среднему геометрическому Даю исходный код программы! тот блок который закомментирован, это набросок процедуры нахождения средн. геометр! Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) GroupBox1: TGroupBox; Memo1: TMemo; Button3: TButton; Memo2: TMemo; Edit1: TEdit; Button1: TButton; GroupBox2: TGroupBox; Label1: TLabel; Button2: TButton; Edit2: TEdit; procedure Button3Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} var v:array of real; procedure OutPutMas_Memo(v:array of real;Memo:Tmemo); var i:integer; begin Memo.Lines.Clear; for i:=0 to Length(v)-1 do Memo.Lines.Add(FloatToStr(v[i])); end; procedure WriteIzMemo(var a:array of real; Memo:TMemo); var k,i,n:integer; begin k:=0 ; for i:=0 to Length(a)-1 do a[i]:=StrToFloat(Memo.Lines[i]); end; procedure TForm1.Button3Click(Sender: TObject); var n:integer; begin n:=memo1.Lines.Count; setLength(v,n); writeIzMemo(v,Memo1); OutPutMas_Memo(v,Memo2); Button1.Enabled:=True; end; {procedure sred_geom (a:array of real; var sred:real; pribl:integer); var i:integer; x,k,p:real; begin p:=1; k:=0; for i:=0 to 7 do if a[i]>0 then k:=k+1; p=p+a[i]; end; sred:=exp((1/k)+ln(p)); } procedure sort(var a:array of real); var k,t,m:integer; x:real; begin for k:= 0 to 6 do begin m:=k; x:=a[k]; for t:=k+1 to 7 do if a[t]<x then begin m:=t; x:=a[m]; end; a[m]:=a[k]; a[k]:=x; end; end; procedure vivod_sort(a:array of real); var i:integer; begin Form1.Edit1.Text:=''; for i:=0 to 7 do Form1.Edit1.Text:=Form1.Edit1.Text+' '+FloatToStr(a[i]); end; procedure TForm1.Button1Click(Sender: TObject); begin sort(v); vivod_sort(v); end; end. Последний раз редактировалось Admin, 13.12.2011 в 21:11. |
#2
|
||||
|
||||
![]() PHP код:
PHP код:
![]() |