Kezdőoldal » Számítástechnika » Programozás » Delphiben hogyan tudok szórást...

Delphiben hogyan tudok szórást számolni? Bővebben

Figyelt kérdés

5 értékem van ezek szám[1],szám[2],szám[3],szám[4],szám[5] átlaguk is megvan és egy Label-be kellene kiiratni a szórást de folyamatosan valami problémája van hogy nem valós szám, nem jó formátum stb..


Matematikailag a szórás kiszámításának lépései:


1. Kiszámítjuk az adatok átlagát.

2. Kiszámítjuk az adatok eltérését az átlagtól

(adat - átlag)

3. Vesszük ezeknek az eltéréseknek a négyzetét.

4. Kiszámítjuk ezeknek az "eltérés négyzeteknek" az átlagát.

5. Végül ebből négyzetgyököt vonunk.



#Delphi #szoras
2015. máj. 8. 20:18
1 2
 1/13 ejbenjaro ***** válasza:
Leírtad a számítás menetét. Azt kell lekódolni. Nálad szerintem a kiíratással lesz a probléma. Egy számot Labelbe kiírni többnyire csak átalakítás után lehet, mivel a Label caption-je String szerű adatot tud tárolni. Szóval nézd meg, hogy mi a pontos hibaüzenet.
2015. máj. 8. 21:24
Hasznos számodra ez a válasz?
 2/13 SimkoL ***** válasza:

FloatToStr vagy FloatToStrF függvényeknek nézz utána.

[link]

[link] F

2015. máj. 8. 21:36
Hasznos számodra ez a válasz?
 3/13 A kérdező kommentje:

osszeg:=szam[1]+szam[2]+szam[3]+szam[4]+szam[5];

label1.caption:='',+FloatToStr(osszeg/5); {átlagot számolja}

label2.caption:='',FloatToStr(szam[1]-StrToInt(Label1.caption));


ezzel számolnál első lépésben az átlagtól való eltéréseket(csak az átlagot meg is csinálja rendesen), le is fut a program de a buttonclick után ez a hibaüzenet van

valami ötlet?:D


Project Project1.exe raised exception class EConverterError with message "1,8" is not a valid integer value'.

Process stopped.

Use Step or Run to contiune.

2015. máj. 8. 21:48
 4/13 SimkoL ***** válasza:

Hát mindjárt oda szúrom a rozsdást ahol legjobban fáj :(

StrToFloat kicsi lelkem, nem StrToInt, picit gondolkozz már.

2015. máj. 8. 21:55
Hasznos számodra ez a válasz?
 5/13 A kérdező kommentje:

szép és jó csak az "int" nem fogja kiírni a számokat tizedesjeggyel

átlagot is csak a float tipus segítségével írta ki mert ott is tizedesvessző van

2015. máj. 8. 22:00
 6/13 A kérdező kommentje:
ja várj hülyeséget írtam, próbálkozok :D
2015. máj. 8. 22:02
 7/13 SimkoL ***** válasza:

unit Unit1;


interface


uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Math;


type

TForm1 = class(TForm)

Button1: TButton;

Label1: TLabel;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;


var

Form1: TForm1;

atlag : real;

osszeg : real;

szam : array [1..5] of real;

elt : array [1..5] of real;


implementation


{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);

var i : byte;

begin

osszeg := 0;

szam[1] := 1.1;

szam[2] := 1.2;

szam[3] := 1.3;

szam[4] := 1.4;

szam[5] := 1.5;

for i := 1 to 5 do osszeg := osszeg + szam[i];

atlag := osszeg / 5;

for i := 1 to 5 do elt[i] := Power(atlag - szam[i],2);

osszeg := 0;

for i := 1 to 5 do osszeg := osszeg + elt[i];

Label1.Caption := FloatToStr(Sqrt(osszeg));

end;


end.


Tegyél fel egy Button1-es és egy Label1-et a formra és kész.

2015. máj. 8. 22:02
Hasznos számodra ez a válasz?
 8/13 A kérdező kommentje:
Remek megvan! :))
2015. máj. 8. 22:03
 9/13 A kérdező kommentje:
Amit viszont elküldtél nem ír ki semmit!
2015. máj. 8. 22:12
 10/13 SimkoL ***** válasza:
Beállítottad a Button1 onClick eventjét Button1Click - re ?
2015. máj. 8. 22:20
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!