Delphi 7 - výpočty s náhodnými čisly
Ahoj , můžu se zeptat jak udělat tenhle program?
Vypiš do Mema 20 náhodných čísel z intervalu 10;30 a dále spočítej a vypiš do Mema jejich
MIN, AVG (průměr - na 2 DM) a počet a součet čísel, dělitelných 5.
Vůbec si s tím nevím rady, konkrétně jak napsat Min,avg,počet,součet a dělitelné čísla 5, zároveň do programu. Díky za případné odpovědi...
A umíš to jednotlivě?
Takhle, součet počet v pohodě(pravděpodobně i zároveň), ale :
1)náhodné čísla se vygenerují, ale nezobrazí se mi tam, nevím jak je vypsat
2) nevím jak a kam vypsat ten zbytek(PK,PZ...)
Čo takto sem dať ten Tvoj kód, nech vidíme ako to máš spracované...
Ty sa pýtaš na veľa všeobecných vecí naraz a konkrétne čo nevieš si nenapísal. Ak nevieš nič, potom sorry...
Skratky ako PK,PZ... nepoznám a netuším čo tým myslíš.
Pokud umíš počet i součet, tak umíš i průměr. Minimum a maximum je taky primitivní.
Co je PK, PZ?
procedure TForm1.Button1Click(Sender: TObject);
var soucet,i,pocet,x,min:integer ;
avg:real;
begin
randomize;
memo1.Clear; soucet:=0 ;
pocet:=0;
min:=x ;
for i:=1 to 20 do begin
x:=random(21)+10;
soucet:=soucet+x;
pocet:=pocet+1;
if x<min then min:=x;
end;
memo1.lines.add('soucet je : '+inttostr(soucet));
memo1.lines.add('pocet je : '+inttostr(pocet));
memo1.lines.add('minimum je: '+inttostr(min));
end;
end.
AVG je soucet/pocet, ale nevim jak ho vypsat memo1.lines.add('avg je: '+inttostr(?? + aby bylo na 2 desetinná mista));
Dale pak u dělitelnosti 5. Myslím že to bude nějak takhle if x mod 5=0 then ??
V podstate by mi stacili tyhle dve informace.
Za PK,PZ se omlouvám, myslel jsem tím počet kladnych a počet zapornych cisel, ale to se tohoto programu netyka a je to taky jednoduche...
jeste jsem zapomněl doplnit, ze nevim jak mam udelat aby se tech dvacet nahodnych cisel vypsalo...
Přece úplně stejně, jak vypisuješ ty ostatní údaje. Prostě je přidej jako řádek do memo... Nejlépe tak, že si je nejdřív po jednom nasázíš do řetězce a pak je tam najednou vložíš...
A ten program má nějakou nápovědu? Nebo si to všechno cucáš z prstu? IntToStr - není to náhodou převod celého čísla na řetězec? Co třeba pohledat převod reálného čísla na řetězec ??? Žeby třeba FloatToStr? A nebude u něj v nápovědě i nějaký příklad a odkaz na případné formátování na daný počet desetinných míst?
1. Neinicializuješ premennú x /soucet:=0, pocet:=0, min:=x - akú hodnotu má X ???
2. inttostr nemôžeš použiť pretože sa nejedná o celé čísla !!! Vypíš to napr. takto: FormatFloat('0.00',avg);
3. if x mod 5 = 0 then je správne...
Všechno, na co se ptáš jsou základní algoritmy, které se učí na školách už od od Basicu na IQ151 a liší se jen tím odkud se to čte a kam se to vypisuje.
Takže všechny tyto postupy jsou už zpracovány milionkrát, popsány a vysvětleny stotisíckrát a nejlépe se je naučíš tak, že si je sám projdeš a pochopíš.
Takže zeptat se můžeš a odpověď na otázku "jak udělat tenhle program" zní - hlavou vymyslet, rukama naťukat, různými zadáními otestovat a hotové odevzdat.
Přičemž nebudeš dělat všechno najednou a zároveň, ale začneš od nejjednoduššího a postupně budeš přidávat to složitější.
Takže začni a až narazíš na něco konkrétního, co opravdu sám ani po několika hodinách zkoumání a hledání nezlomíš, tak se znovu zeptej.