Naprogramování programu s prvočísly.

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
zezr
Level 4.5
Level 4.5
Příspěvky: 1852
Registrován: říjen 10
Pohlaví: Muž
Stav:
Offline

Naprogramování programu s prvočísly.

Příspěvekod zezr » 07 lis 2013 18:44

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
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

Reklama
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Naprogramování programu s prvočísly.

Příspěvekod faraon » 07 lis 2013 19:33

Příkaz for v Céčku je vlastně jen rozšířené while, takže když napíšeš:

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)

Uživatelský avatar
zezr
Level 4.5
Level 4.5
Příspěvky: 1852
Registrován: říjen 10
Pohlaví: Muž
Stav:
Offline

Re: Naprogramování programu s prvočísly.

Příspěvekod zezr » 07 lis 2013 20:48

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?

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

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Naprogramování programu s prvočísly.

Příspěvekod faraon » 07 lis 2013 21:01

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

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)

Uživatelský avatar
zezr
Level 4.5
Level 4.5
Příspěvky: 1852
Registrován: říjen 10
Pohlaví: Muž
Stav:
Offline

Re: Naprogramování programu s prvočísly.

Příspěvekod zezr » 07 lis 2013 21:14

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


  • 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ů