úkol – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

úkol – Pascal – Fórum – Programujte.comúkol – Pascal – Fórum – Programujte.com

 

Jan Koláčný
~ Anonymní uživatel
2 příspěvky
5. 1. 2009   #1
-
0
-

Dobrý den.

Rád bych zde někoho poprosil, jestli by mi nemohl vyřešit tento příklad s následujícím zadáním:

{Zadani:
Generujte prvnich n prvociselnych dvojcat. Prvociselnym
dvojcetem rozumime dvojici prvocisel (p1,p2) takovou, ze p2=p1+2.
Priklad: (3,5),(5,7),(11,13),...
}
program prvociselna_dvojcata;

function je_prvocislo(cislo: integer): boolean;


begin

end;

var
kolik: integer;
begin
write('Kolik dvojcat hledat: ');
readln(kolik);
{doplnte cyklus pro nalezeni "kolik" dvojic tak, ze podminka dvojice
pro testovane cislo "n" je:
je_prvocislo(n) and je_prvocislo(n+2)
}
end.

je to to poslední, co potřebuji do zápočtu a nevím, co s tím...

Děkuji.

Nahlásit jako SPAM
IP: 89.102.21.–
Grungy0
Super člen
5. 1. 2009   #2
-
0
-

Predpokladám že tam nebude treba dbať na pamäťovú náročnosť tak si ti dovolím predostrieť takéto teoretické riešenie.
Najprv si budeš musieť doplniť funkciu je_prvočíslo ktorá bude veľmi užitočná. Takže poučka hovorí že prvočíslo je číslo ktoré je deliteľné iba sebou samým a jednotkou. Z toho vyplýva že na začiatku budeš predpokladať že je to prvočíslo. Potom tam vložíš cyklus ktorý pôjde od dvojky po zadané číslo mínus jedna. V cykle budeš testovať či je zadané číslo deliteľné niektorým týmto číslo v intervale <2 .. zadanécislo-1> a ak áno tak číslo nie je prvočíslo čiže vráti hodnotu FALSE.

No a teraz sa pustíme do hlavného programu. Načítanie požadovaného počtu prvočísených párov už máš. takže ti stačí iba doplniť cyklus v ktorom ich nájdeš. Takže kedže nevieš počet opakovaní tak si musíš vybrať medzi while alebo repeat to už nechám na teba. Dôležité je aby si však ešte pred samotným cyklom vytvoril premenné pocitadlo ktorá ti bude hovoriť koľko párov si našiel a premennú ktorá ti bude hovoriť ktoré číslo testuješ( nazvem si ju napr. "i"). Pocitadlu priradíš nulu keďže si ešte žiaden pár nenašiel a premennej i priradíš dvojku keďže jednotka nie je prvočíslo. Teraz sa môžeš pustiť do samotného cyklu kde budeš testovať či je i a i+2 prvočíslo(na to nám je dobrá tá funkcia), ak áno našiel si dvojicu a môžeš ju vypísať a zároveň nezabudni zvýšiť hodnotu premennej o jedna pretože si práve našiel jeden pár. Ku koncu cyklu samozrejme nezabudni zakaždým zvýšiť aj hodnotu premennej i (o koľko nechám na teba ... existuje viac možností ), aby si v kuse netestoval tie iste hodnoty. No a cyklus sa ti samozrejme musí skončiť keď nájdeš požadovaný počet párov, takže to tam pri písaní cyklu niekde daj:-).

Dúfam že som na nič nezabudol ale malo by to fungovať.

Nahlásit jako SPAM
IP: 213.215.118.–
Prvý náznak hlúposti, je pocit geniality.
Jan Koláčný
~ Anonymní uživatel
2 příspěvky
5. 1. 2009   #3
-
0
-

ja s tim nechci otravovat, ale uz mi de hlava kolem z uceni ke zkouskam a este mam programovat tohle... moc by mi pomohlo, kdybys mi spis ten programek napsal... :-/ mam to jako nepovinej predmet a uz se k nemu nikdy nevratim a funkce a tohle uz trosku nechapu... :( ale jak rikam no, nechci otravovat, ale moc by mi to pomohlo..

Nahlásit jako SPAM
IP: 89.102.21.–
Grungy0
Super člen
5. 1. 2009   #4
-
0
-

No vidíš a ja sa mám tiež učiť na skúšky a okrem toho píšem ešte iné projekty, takže na teba časť nemám, ale aspoň tu máš návod tak sa posnaž :-)

Nahlásit jako SPAM
IP: 213.215.118.–
Prvý náznak hlúposti, je pocit geniality.
retriwr
~ Anonymní uživatel
169 příspěvků
5. 1. 2009   #5
-
0
-

To Grungy :
Je zbytečné procházet čísla tak daleko, stačí do půlky. Těžko asi najdeš menšího dělitele než 2 (s výjimkou 1, ale ta dělí i prvočísla, takže ji neuvažuji) a pokud jím vydělíš zadané číslo, dostaneš právě tu půlku. Každé vyšší číslo už musí být pro dosažení zadaného vynásobeno (reálným) číslem menším než 2, tedy se nejedná o dělitele (kromě samotného čísla, které ale neuvažuji ze stejného důvodu jako číslo 1).
Možná se to lépe vysvětlí na příkladě - pokud mám zadané číslo 100, můžu dojít k rozkladům (1*100) 2*50, 4*25, 5*20, 10*10, od 51 do 99 tam není vůbec nic.
Možná někdo vymyslí i další vylepšení, ale myslím, že už by to potřebovalo složitější úvahy a nějaké podmínky, toto je celkem jednoduché a ušetří polovinu výpočtů.
Jinak při tomto zadání se mi matně vybaví pojem "Erastenovo síto", bohužel už vůbec netuším, oč jde a zdali se to týká tématu, ale pokud si chce někdo zagooglit, třeba to pomůže.

Nahlásit jako SPAM
IP: 89.24.30.–
Mircosoft+1
Věrný člen
6. 1. 2009   #6
-
0
-

To Jan Koláčný : Jedna funkce testující prvočíselnost se válí tady, stačí kliknout: http://mircosoft.ic.cz/download/prvocisla.zip. Zbytek ti dost podrobně vysvětlil Grungy a jestli jsi během semestru dával alespoň trošku pozor, měl bys mít prográmek hotový za pět minut ;-).

Nahlásit jako SPAM
IP: 86.49.83.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Grungy0
Super člen
6. 1. 2009   #7
-
0
-

To retriwr : No to som vedel ale nechcel som ho zbytočne zaťažovať niečím takým. Okrem toho myslím že tam stačí hladať delitele len do druhej odmocniny zadaného čísla, ale to by zas pre neho bolo zbytočné skomplikovanie.

Nahlásit jako SPAM
IP: 213.215.118.–
Prvý náznak hlúposti, je pocit geniality.
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, 10 hostů

Podobná vlákna

Úkol 5 — založil Jarda

úkol — založil gandalf555

Ukol — založil adelka17

Ukol — založil Filip

Úkol 5 — založil Filip

Moderátoři diskuze

 

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