Součet hodnot a vypočítání aritmetického průměru – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Součet  hodnot a vypočítání aritmetického průměru – Delphi – Fórum – Programujte.comSoučet hodnot a vypočítání aritmetického průměru – Delphi – Fórum – Programujte.com

 

xy30000
Newbie
17. 6. 2010   #1
-
0
-

Ahoj, prosím o pomoc. Mám následující zdrojový kód. Pracuje tak že v intervalu mezi dvěma zadanými čísly vypočte prvočísla. Potřeboval bych ho ale upravit tak aby mě všechna nalezená prvočísla sečetl a posléze vypočítal a zobrazil jejich aritmetický průměr. Díky za pomoc.

uses
SysUtils;

var i,m,n:integer;

function prvo(p:integer):boolean;
Var I,del : Integer;
Begin
Del:=0;
For I:=2 to Trunc(Sqrt(p)) do {Hledame delitele}
if P mod I = 0 then
Del:=Del+1;
if (Del = 0) and (P>1) then prvo:=true
else prvo:=false;
end;

begin
write('Zadej cislo m: ');
readln(m);
write('Zadej cislo n: ');
readln(n);

for i:=m to (n-2) do
if prvo(i) and prvo(i+2) then
write(i,' ',i+2,' ');
readln;
end.

Nahlásit jako SPAM
IP: 81.19.35.–
liborb
~ Redaktor
+18
Guru
18. 6. 2010   #2
-
0
-

Funkci na test prvočísla máš. Ten cyklus, ze kterého s volá, moc nechápu - proč je tam prvo(i) and prvo(i+2) ? Pokud by tam bylo jen prvo(i), tak to bych chápal.

A teď k té úpravě ... do toho cyklu za tu podmínku místo vypsání nebo k němu přidej sčítání nalezených prvočísel a počítání jejich počtu. nebo-li budeš mít nějakou proměnou S a P, které budou na začátku 0. Do S budeš přičítat prvočísla a do P budeš přičítat 1 za každé nalezené prvočíslo. Po skončení cyklu vypočítáš průměr jako S / P, takže si musíš dát pozor, když se žádné prvočíslo nenajde, aby si nedělil 0.

Nahlásit jako SPAM
IP: 85.207.166.–
Honzc0
Stálý člen
18. 6. 2010   #3
-
0
-

Já sice vidím, že program vypisuje ne všechna prvočísla, ale tzv. prvočíselná dvojčata,
nicméně úprava dle tvého požadavku je celkem jednoduchá.

sekci var upravíš takto:
var i,m,n,sum,poc: Integer;
prum: String;
dále smažeš toto:
for i:=m to (n-2) do
if prvo(i) and prvo(i+2) then
write(i,' ',i+2,' ');
a místo toho tam dáš toto:
sum := 0;
poc := 0;
for i := m to n do
if Prvo(i) then
begin
sum := sum+i;
poc := poc+1;
Write(i,' ');
end;
prum := FloatToStr(sum/poc);
WriteLn;
WriteLn('Prumer z prvocisel od '+IntToStr(m)+' do '+IntToStr(n)+' je ',prum);

Nahlásit jako SPAM
IP: 93.181.78.–
xy30000
Newbie
18. 6. 2010   #4
-
0
-

Safryš jaký dvojčata?

Nahlásit jako SPAM
IP: 81.19.35.–
Krychlik
~ Anonymní uživatel
195 příspěvků
18. 6. 2010   #5
-
0
-

To Honzc : Jedna drobnost-muze nastat deleni nulou, chtelo by to osetrit.

Nahlásit jako SPAM
IP: 78.128.199.–
Honzc0
Stálý člen
21. 6. 2010   #6
-
0
-

To xy3000. Prvočíselná dvojčata jsou taková 2 (po sobě jdoucí) prvočísla, jejichž rozdíl je 2.
Např. 3,5; 5,7; 11,13; 17,19
To Krychlik.
Máš pravdu, konec upravit třeba takto:
if poc<>0 then
begin
prum := FloatToStr(sum/poc);
WriteLn;
WriteLn('Prumer z prvocisel od '+IntToStr(m)+' do '+IntToStr(n)+' je ',prum);
end
else
begin
WriteLn;
WriteLn('V cislech od '+IntToStr(m)+' do '+IntToStr(n)+' neni zadne prvocislo');
end;

Nahlásit jako SPAM
IP: 93.181.78.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

Podobná vlákna

Součet hodnot. — založil Luckaa

Součet hodnot — založil baryman

MySQL - součet hodnot — založil Kouky27

Součet některých hodnot pole — založil anakondatra

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý