Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 2 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.09.20
Prihlásený: 11.07.21
Príspevky: 31
Témy: 10
Príspevok NapísalOffline : 22.12.2020 16:42

Ahojte, prosim o pomoc s tymto prikladom. Spravil som ho po svojom, ale chcel by som ho spravit podla zadania, co sa mi akosi nedari. Zvlast pre tuto vetu:
Citácia:
Použite podobný algoritmus ako Eratostenovo sito, iba namiesto poľa logických hodnôt použite pole hodnôt typu int,
A obvzlast pre slovo:
Citácia:
iba

Mozno sa az moc zaoberam podrobnostami, ale o tom to je, ci? Inak chapem to dobre, ze pole logickych hodnot su tie booly?

Tu je zadanie:

V tomto príklade využijeme podobný postup ako Eratostenovo sito, aby sme pre každé číslo z rozsahu 2 až n zistili, koľkými rôznymi prvočíslami je deliteľné. Napríklad číslo 12 má delitele 1, 2, 3, 4, 6, a 12. Z toho iba 2 a 3 sú prvočísla, je teda deliteľné dvomi rôznymi prvočíslami. Na vstupe je číslo n, pričom platí, že 2 ≤ n ≤ 1000. Pre každé číslo od 2 po n vypíšte na výstup počet jeho prvočísených deliteľov vo formáte podľa príkladu.

Algoritmus:
Použite podobný algoritmus ako Eratostenovo sito, iba namiesto poľa logických hodnôt použite pole hodnôt typu int, v ktorom si pre každé číslo i pamätáte, koľko ste doteraz našli jeho prvočíselných deliteľov. Keď potom nejaké číslo vyhlásite za prvočíslo, namiesto “škrtania” jeho násobkov im zvýšte počítadlo prvočíselných deliteľov o 1.
Programy, ktoré použijú iný postup, nezískajú plný počet bodov.
Príklad vstupu: 30
Príklad výstupu: 2:1 3:1 4:1 5:1 6:2 7:1 8:1 9:1 10:2 11:1 12:2 13:1 14:2 15:2 16:117:1 18:2 19:1 20:2 21:2 22:2 23:1 24:2 25:1 26:2 27:1 28:2 29:1 30:3

Tu je Eratostenovo sito:
Kód:
#include <iostream>
using namespace std;

int main() {
    const int n = 30;
    bool a[n + 1];

    for (int i = 2; i <= n; i++) {
        a[i] = true;
    }
    for (int i = 2; i <= n; i++) {
        if (a[i]) {
            cout << i << " ";
            for (int j = 2 * i; j <= n; j = j + i) {
                a[j] = false;
            }
        }
    }
    cout << endl;
}

vystup: 2 3 5 7 11 13 17 19 23 29, cize naslo vsetky prvocisla od 2 po n.

A moj program, ktory pracuje, ale spravil som ho inak ako je pisane v zadani:

Kód:
#include <iostream>
using namespace std;

int main()
{
    int n;

    cout << "Zadajte cislo 'n' od 2 po 1000: ";
    cin >> n;

    while (n < 2 || n > 1000)
    {
       cout << "Zadali ste nespravne cislo 'n'! " << endl;
       cout << "Zadajte znovu cislo 'n' od 2 po 1000: ";
       cin >> n;
    }

    bool a[n + 1];
    int pole[n + 1] = {0};

    for (int i = 2; i <= n; i++)
    {
        a[i] = true;
    }
    for (int i = 2; i <= n; i++)
    {
        if (a[i])
        {
           for (int k = 2; k <= n; k++)
           {
              if (k % i == 0)
              {
                     pole[k] += 1;
              }
           }

            for (int j = 2 * i; j <= n; j = j + i)
            {
                a[j] = false;
            }
        }
        cout << i << " : " << pole[i] << "  ";
    }
    cout << endl;

    return 0;
}


Dakujem za rady, som zaciatocnik.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.09.20
Prihlásený: 11.07.21
Príspevky: 31
Témy: 10
Príspevok Napísal autor témyOffline : 28.12.2020 12:29

Ahojte, takze nikto nepise, tak som na to pozrel este sam a myslim, ze som sa posunul blizsie.
Splnil som toto zadanie:
Citácia:
keď potom nejaké číslo vyhlásite za prvočíslo, namiesto “škrtania” jeho násobkov im zvýšte počítadlo prvočíselných deliteľov o 1.

Teda este mi chyba splnit:
Citácia:
keď potom nejaké číslo vyhlásite za prvočíslo

Pozeral som si to a ono to naozaj funguje, ked v tom prvom 'for' cykle dam nie 'i' od 2 po n, ale len prvocisla od 2 po n. Skusal som to cez nejaku podmienku, ale akosi to nejde.
Myslim, ze to zadanie je celkom matuce, pretoze neviem, ako moc sa ma ten program podobat na eratostenovo sito a co si mozem spravit podla seba.

Kód:
#include <iostream>
using namespace std;

int main()
{
    const int n = 30;
    int a[n + 1] = {0};


    for (int i = 2; i <= n; i++)
    {
         
            a[i] += 1;
            for (int j = 2 * i; j <= n; j = j + i)
            {
                a[j] += 1;
            }

            cout << i << " : " << a[i] << "  ";
    }
    cout << endl;
    return 0;
}


// Spojený príspevok 28.12.2020 17:26

Tak som to spravil podla zadania, myslim. Aj ked teda tu podmienku na prvocisla som si nasiel na internete.
Inak cital som si pravidla a ja nie som student a nerobim ulohy do skoly, aj ked je pravda, ze tieto ulohy, ktore som nasiel su na internete pre studentov skoly a preto by zase asi nebolo uplne dobre aby to tu maly uz vypracovane, takze ak chcete v pohode tuto temu zmazte. To necham na Vas.
Spravil som si nejake kurzy C++ a teraz sa ucim aj vdaka roznym uloham, ktore najdem na internete. Ako som uz pisal som zaciatocnik a obcas, ked si neviem rady, tak som to dal sem.

Kód:
#include <iostream>
using namespace std;

int main()
{
   int n;
   cout << "Zadajte cislo 'n'od 2 do 1000: ";
   cin >> n;

   while (n < 2 || n > 1000)
   {
      cout << "Zadali ste nespravne cislo 'n'! ";
      cout << "Zadajte znovu cislo 'n' od 2 do 1000: ";
      cin >> n;
   }

    int a[n + 1] = {0};

    for (int i = 2; i <= n; i++)
    {
       for (int k = 2; k <= i; k++)
       {
            if (!(i % k) && (i != k)) {break;}
            if (k == i)
            {
               a[i] += 1;
            for (int j = 2 * i; j <= n; j = j + i)
            {
                a[j] += 1;
            }
            }
       }
            cout << i << " : " << a[i] << "  ";
    }
    cout << endl;
    return 0;
}


Odpovedať na tému [ Príspevkov: 2 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. priklad v C++

v Assembler, C, C++, Pascal, Java

4

369

06.12.2020 14:26

Jur_3 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zadanie v C++ priklad na elektrotechniku, pomozte mi pliiis

v Assembler, C, C++, Pascal, Java

4

1604

09.06.2006 14:40

Harlequin Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. prvocisla

v Assembler, C, C++, Pascal, Java

10

5564

16.01.2011 16:31

Lukasito Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. delitele cisla

v Assembler, C, C++, Pascal, Java

3

1910

18.11.2006 10:17

audiotrack Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Príklad

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Vzdelanie, štúdium, škola

50

3004

20.11.2007 16:28

nZL Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Priklad

v Assembler, C, C++, Pascal, Java

1

1253

17.03.2008 16:27

HT Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Príklad

v PHP, ASP

22

1208

08.11.2007 15:33

pitrik1 Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. Priklad Delphi

v Delphi, Visual Basic

3

506

25.01.2017 8:46

focko Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Delphi - príklad

v Delphi, Visual Basic

2

714

07.11.2010 23:16

majso Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Java Príklad

v Assembler, C, C++, Pascal, Java

9

695

21.04.2012 15:51

nBXXL Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. priklad z fyziky

v Vzdelanie, štúdium, škola

8

1257

15.03.2008 15:19

petos Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Príklad z Fyziky

v Vzdelanie, štúdium, škola

3

427

13.12.2014 19:29

Daron Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Priklad z fyziky

v Vzdelanie, štúdium, škola

18

1727

06.05.2008 22:07

molotow Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Príklad z fyziky

v Vzdelanie, štúdium, škola

4

319

14.05.2013 22:10

InVader Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. Priklad pre hlavicky

v Vzdelanie, štúdium, škola

17

843

09.05.2010 18:08

eXistenZ Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Theveninova veta - priklad

v Elektronika

2

3722

03.01.2008 18:42

sike9 Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra