Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sito Eratostenesa - Pomoc w wyjasnieniu zasady działania programu

Ostatnio zmodyfikowano 2014-05-16 18:15
Autor Wiadomość
MurzynPG
Temat założony przez niniejszego użytkownika
Sito Eratostenesa - Pomoc w wyjasnieniu zasady działania programu
» 2014-05-12 18:12:41
Witam !
Mam do was nietypową prośbę, mam problem ze zrozumieniem gotowego programu, który mam z podręcznika, to co rozumiem dopisałem w komentarzu niestety z resztą nie potrafię się połapać, a zależy mi na tym by to rozumieć bo przepisać gotowiec to nie sztuka, a wiem że jutro będziemy z tego odpytywani ;) Proszę o dopisanie w odpowiednich linijkach kodu w komentarzu co one wykonują i doczego są potrzebne oraz poprawienie jeśli źle interpretuję daną linijkę kodu ;)
Z góry dziękuję i pozdrawiam :D
C/C++
#include <iostream>
#include <stdlib.h>
using namespace std;

void generuj( int T[], int n ) // generowanie tablicy
{
    int i, m;
    for( i = 2; i <= n; i++ ) T[ i ] = 1; // nadanie wartoœci pocz¹tkowej tablicy 1
   
    i = 2; // przypisanie najmniejsz¹ liczbê pierwsz¹
    while( i <= n )
    {
        m = 2 * i;
        while( m <= n )
        {
            T[ m ] = 0; // wyzerowanie tablicy
            m = m + i;
        }
        do i++;
        while( T[ i ] == 0 && i <= n );
       
    }
}

main()
{
    const int MAX = 10000; // zdefinowanie maxymalnej stalej
    int n, T[ MAX ];
    cout << "podaj liczbe naturalna: ";
    cin >> n;
    generuj( T, n );
    for( int i = 2; i <= n; i++ )
         if( T[ i ] == 1 ) cout << i << "\t";
   
    cout << endl;
    system( "pause" );
    return 0;
}
P-109816
Jacob99
» 2014-05-16 18:15:18
C/C++
#include <iostream>
#include <stdlib.h>
using namespace std; // w całym programie używamy przestrzeni nazw std::

void generuj( int T[], int n ) // generowanie tablicy
{
    int i, m;
    for( i = 2; i <= n; i++ ) T[ i ] = 1; // nadanie wartości początkowej tablicy 1
   
    i = 2; // przypisanie najmniejszej liczby pierwszej
    while( i <= n ) // dopóki i jest mniejsze od n
    {
        m = 2 * i; //za każdym obiegiem pętli
        while( m <= n )
        {
            T[ m ] = 0; // wyzerowanie tablicy
            m = m + i;
        }
        do i++;
        while( T[ i ] == 0 && i <= n );
       
    }
}

main()
{
    const int MAX = 10000; // zdefinowanie maxymalnej stalej
    int n, T[ MAX ]; //stworzenie nowej tablicy o wymiarze 10000
    cout << "podaj liczbe naturalna: ";
    cin >> n;
    generuj( T, n );
    for( int i = 2; i <= n; i++ )
         if( T[ i ] == 1 ) cout << i << "\t"; // jeżeli i-ty element tablicy jest równy 1 to wypisujemy, który to element
   
    cout << endl;
    system( "pause" ); //wstrzymujemy system przed zamknięciem okna z wynikiem
    return 0;
}
P-110131
« 1 »
  Strona 1 z 1