Ahoj
Asi jako každý student mám za domácí úkol:Navrhněte algoritmus, který vypíše všechna prvočísla menší, než zadané číslo.
No upřímně není problém program napsat ale já jsem nepochopil jak funguje for
Byl by tu někdo tak ochotný a napsal by mi zcela jasně jak to funguje? Programujeme v C.
Prosím nepište sem že na netu je.... prostě jsem to nepochopil ani z netu ani od učitele. Děkuji
zezr
Naprogramování programu s prvočísly.
Naprogramování programu s prvočísly.
Svět ztrácí genie. Einstein umřel ,Mozart umřel a mě je taky nějak špatně!
CPU: Ryzen 5 3600 , MB: Asus Crosshair VI EXTREME, GPU: MSI ARMOR GTX 1070 Ti , Ram: Cruicial 32GB @3733MHz Zdroj: CX 550M
HDD: Segate 7200.14 2TB SSD: OCZ-ARC100 256GB, Kingston A1000 512GB
CPU: Ryzen 5 3600 , MB: Asus Crosshair VI EXTREME, GPU: MSI ARMOR GTX 1070 Ti , Ram: Cruicial 32GB @3733MHz Zdroj: CX 550M
HDD: Segate 7200.14 2TB SSD: OCZ-ARC100 256GB, Kingston A1000 512GB
Re: Naprogramování programu s prvočísly.
Příkaz for v Céčku je vlastně jen rozšířené while, takže když napíšeš:
je to úplně to samé jako bys napsal tohle:
A pro upřesnění, máš tam tři bloky oddělené středníky. To co je v prvním bloku se provede před spuštěním cyklu. To co je v druhém bloku je podmínka, dokud platí, cyklus se opakuje. A to co je ve třetím bloku je činnost, která se provede na konci každé iterace, předtím než se testuje podmínka. Kterýkoliv z těch bloků může být prázdný, a když vynecháš všechny, vytvoříš nekonečný cyklus:
Ještě nějaká nejasnost?
Kód: Vybrat vše
for (i=0;i<10;++i)
printf("%d\n",i);
je to úplně to samé jako bys napsal tohle:
Kód: Vybrat vše
i=0;
while (i<10)
{
printf("%d\n",i);
++i;
}
A pro upřesnění, máš tam tři bloky oddělené středníky. To co je v prvním bloku se provede před spuštěním cyklu. To co je v druhém bloku je podmínka, dokud platí, cyklus se opakuje. A to co je ve třetím bloku je činnost, která se provede na konci každé iterace, předtím než se testuje podmínka. Kterýkoliv z těch bloků může být prázdný, a když vynecháš všechny, vytvoříš nekonečný cyklus:
Kód: Vybrat vše
for (;;)
{
...
}
Ještě nějaká nejasnost?
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
Re: Naprogramování programu s prvočísly.
Dobře takže to co v tom je tak v základu je "i" rovno 2 a pak se přidává a přidává po 1 dokud nebude "i" to číslo které jsem si zvolil. Po té co je toto číslo stejné jako to co jsem si zvolil se začne dít co?(Pokud ti tento kod příjde povědomí tak je od tebe(částečně) pardon za vypůjčení
ale já potřebuji jasnej příklad.)
edit1 A ten druhej for generuje čísla zase od 2-našeho čísla a pak se to mezi sebou dělí a zjištujě to jestli to číslo má nějakej dělitel bezezbytku a pak to vypíše výsledky ne?
ale já potřebuji jasnej příklad.)
edit1 A ten druhej for generuje čísla zase od 2-našeho čísla a pak se to mezi sebou dělí a zjištujě to jestli to číslo má nějakej dělitel bezezbytku a pak to vypíše výsledky ne?
Kód: Vybrat vše
#include <stdio.h>
int main()
{
int i,j,cislo;
printf("\n Zadej hodnotu maximalniho CELEHO cisla");
scanf("%i",&cislo);
for (i=2;i<cislo;++i)
{
for (j=2;j<i;++j)
if (i%j==0)
break;
if (i==j)
printf("%d\n",i);
}
return 0;
}
Svět ztrácí genie. Einstein umřel ,Mozart umřel a mě je taky nějak špatně!
CPU: Ryzen 5 3600 , MB: Asus Crosshair VI EXTREME, GPU: MSI ARMOR GTX 1070 Ti , Ram: Cruicial 32GB @3733MHz Zdroj: CX 550M
HDD: Segate 7200.14 2TB SSD: OCZ-ARC100 256GB, Kingston A1000 512GB
CPU: Ryzen 5 3600 , MB: Asus Crosshair VI EXTREME, GPU: MSI ARMOR GTX 1070 Ti , Ram: Cruicial 32GB @3733MHz Zdroj: CX 550M
HDD: Segate 7200.14 2TB SSD: OCZ-ARC100 256GB, Kingston A1000 512GB
Re: Naprogramování programu s prvočísly.
Cyklus i bere všechna čísla od 2 až po číslo o 1 menší než zadané. Jakmile se dostane až k němu, program skončí.
Cyklus j testuje jestli je i prvočíslo, prostě se ho pokusí vydělit všemi čísly od 2 až po číslo o 1 menší než i, a pokud mu to vyjde beze zbytku, ví že to není prvočíslo.
Pozor na jeden rozdíl! Když budeš mít cyklus
tak ti napočítá od 1 do 9. Ale když uděláš
tak napočítá od 1 do 10! Vidíš v čem je ten rozdíl?
Cyklus j testuje jestli je i prvočíslo, prostě se ho pokusí vydělit všemi čísly od 2 až po číslo o 1 menší než i, a pokud mu to vyjde beze zbytku, ví že to není prvočíslo.
Pozor na jeden rozdíl! Když budeš mít cyklus
Kód: Vybrat vše
for (i=1;i<10;++i)
tak ti napočítá od 1 do 9. Ale když uděláš
Kód: Vybrat vše
for (i=1;i<=10;++i)
tak napočítá od 1 do 10! Vidíš v čem je ten rozdíl?
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
Re: Naprogramování programu s prvočísly.
Jo rozdíl vidím. Jsem moc rád že jsi mi to vysvětlil. Opravdu děkuji.
Svět ztrácí genie. Einstein umřel ,Mozart umřel a mě je taky nějak špatně!
CPU: Ryzen 5 3600 , MB: Asus Crosshair VI EXTREME, GPU: MSI ARMOR GTX 1070 Ti , Ram: Cruicial 32GB @3733MHz Zdroj: CX 550M
HDD: Segate 7200.14 2TB SSD: OCZ-ARC100 256GB, Kingston A1000 512GB
CPU: Ryzen 5 3600 , MB: Asus Crosshair VI EXTREME, GPU: MSI ARMOR GTX 1070 Ti , Ram: Cruicial 32GB @3733MHz Zdroj: CX 550M
HDD: Segate 7200.14 2TB SSD: OCZ-ARC100 256GB, Kingston A1000 512GB
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
-
Panely otevřených programů na hlavním panelu Příloha(y)
od Prorock » 20 říj 2024 15:00 » v Windows 11, 10, 8... - 28
- 7896
-
od Prorock
Zobrazit poslední příspěvek
02 lis 2024 13:41
-
Zpět na “Programování a tvorba webu”
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 6 hostů