![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Пожалуйста, ответьте на несколько вопросов:
1) На форме имеется поле Memo. При запуске программы слово "Memo1" отображается в поле. Как его убрать??? 2) Имеются функции, вычисляющие среднее арифметическое и среднее геометрическое: Код:
function SrArifm:Real; begin Result:=(StrToInt(Form1.MaskEdit1.Text)+StrToInt(Form1.MaskEdit2.Text))/2 end; function SrGeom:Real; begin Result:=Sqrt(StrToInt(Form1.MaskEdit1.Text)*StrToInt(Form1.MaskEdit2.Text)) end; При выводе ответа на поле Memo, среднее арифметическое получается дробное число с 12-ю знаками после запятой и ответ неправильный. Как это исправить??? Пожалуйста, помогите. Заранее благодарен))) Последний раз редактировалось Andrew1266, 12.12.2010 в 06:13. |
#2
|
|||
|
|||
![]() 1) Очистить свойство Lines в инспекторе объектов
2) Для начала - пользуемся тегами (иначе будет бан). А что ты хотел. Компьютер считает приблизительно. Особенно, при использовании старого типа real. а) Измени тип функций на Double. б) Подключи модуль Math и воспользуйся функцией RoundTo для округления до каког-нить разумного знака (например, до 1 знака посде запятой для ср. арифметического). Вообще, можно и руками округлить: Код:
function SrArifm:Double; begin Result:=(StrToInt(Form1.MaskEdit1.Text)+StrToInt(Form1.MaskEdit2.Text))/2; Result := Round(Result*10)/10; end; |
#3
|
||||
|
||||
![]() имеется подобная задача.
дано натуральное число. найти среднее арифметическое значение нечетных чифр числа. |
#4
|
||||
|
||||
![]() Цитата:
Код:
function Average(InputVal: Integer): Real; var Sum, Temp, Count: integer; begin Sum := 0; Count := 0; repeat Temp := InputVal mod 10; InputVal := InputVal div 10; if ((Temp mod 2) <> 0) then begin Sum := Sum + Temp; Inc(Count); end; until (InputVal = 0); Result := RoundTo(Sum / Count, -2); end; Меня греют ваши плюсы к моей репутации... |
#5
|
|||
|
|||
![]() C Round - выдаёт ошибку!
А как подключить модуль Math??? Как воспользоваться функцией Format??? |
#6
|
|||
|
|||
![]() Посмотрите, вот код, может быть найдёте ошибку? Заранее благодарен.
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,ExtCtrls, ComCtrls, StdCtrls, Mask, Buttons; type TForm1 = class(TForm) MaskEdit1: TMaskEdit; MaskEdit2: TMaskEdit; Button1: TButton; RadioGroup1: TRadioGroup; RadioButton1: TRadioButton; RadioButton2: TRadioButton; Label1: TLabel; Button2: TButton; Memo1: TMemo; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function SrArifm: double; begin result:= (StrToInt(Form1.MaskEdit1.Text)+StrToInt(Form1.MaskEdit2.Text) )/2 end; function SrGeom: double; begin result:=sqrt(StrToInt(Form1.MaskEdit1.Text)*StrToInt(Form1.MaskEdit2.Text)) end; procedure count; begin if Form1.RadioGroup1.ItemIndex=0 then Form1.Memo1.Lines.Append(FloatToStr(SrArifm)) else Form1.Memo1.Lines.Append(FloatToStr(SrGeom)) end; procedure TForm1.Button1Click(Sender: TObject); begin count; MaskEdit1.Clear; MaskEdit2.Clear; end; procedure TForm1.Button2Click(Sender: TObject); begin Form1.Close; end; end. Последний раз редактировалось Admin, 14.12.2010 в 21:27. |
#7
|
||||
|
||||
![]() Цитата:
Код:
uses Windows, Messages, ..., ..., Math; Цитата:
P.S. Теги где??? Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#8
|
|||
|
|||
![]() Что такое теги??? Как их использовать??
|
#9
|
||||
|
||||
![]() Цитата:
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#10
|
||||
|
||||
![]() Задача:
Дано натуральное число, найти среднее арифметическое значение цифр числа, стоящих на нечетных местах. немного набросил. постоянно выдает 0. примечание: массив тут НУЖЕН(мне нужен) Код:
var b,c,i,z: integer; val: real; a: array of integer; ....... if radiobutton5.Checked=true then begin SetLength(a, strtoint(edit8.Text)); if length(edit8.Text) mod 2=1 then c:=1 else c:=2; i:=c; while i<length(edit8.Text) do begin a[i]:=z mod 10; z:=z div 100; i:=i+2; b:=b+1; val:=val+a[i]; end; val:=val / b; val:= Round(val*100)/100; listbox3.Items.Add(floattostr(val)); end; укажите мою ошибку |