Obsah fóra
PravidláRegistrovaťPrihlásenie




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

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

Registrovaný: 18.11.10
Prihlásený: 04.12.10
Príspevky: 8
Témy: 2
Príspevok NapísalOffline : 18.11.2010 14:06

zdravim.. mam problem ohledne vypsani prvocisel z intervalu 0-N.. program mi vypise zatim vsechna cisla,ale nevim jak vlozit podminku aby misto neprvocisla dal 0 nebo mezernik.. prikladam zdrojak

#include <iostream>
using namespace std;

int main() {

int pocet;
cout<<"kolika prvkove pole chces udelat?:\n";
cin>>pocet;
pocet=pocet +1;
int *pole=new int[pocet];// alokujeme cele pole int hodnot, operator new se stara o alokaci dostatecneho prostoru
int i=0; // a vraceni ukazatele pole na jeho zacatek
while(i<pocet){
pole[i]=i+(int) i/100;
cout <<pole[i]<<endl;
i++; }
// podminka( if (i%2||i%3)
// i=0;)

delete [] pole;

system("pause");
return 0;
}


Offline

Skúsený užívateľ
Skúsený užívateľ
eratosthenovo sito

Registrovaný: 11.01.09
Prihlásený: 20.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 18.11.2010 17:18

Drobná inšpirácia ( v c++ je ten kód na stránke trocha zložitejší, tak ak mu nerozumieš, tak kľudne prepíš kód z pascalu, syntax pascalu by mala byť každému pochopiteľná ). Ak sa aj tak nebudeš vedieť pohnúť ďalej, tak napíš.


Offline

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

Registrovaný: 18.11.10
Prihlásený: 04.12.10
Príspevky: 8
Témy: 2
Príspevok Napísal autor témyOffline : 18.11.2010 20:04

v pascalu to neresi jak bych chtel ja.... muj zdrojak je skoro hotovy, ale chybi podminka "jestli je cislo delitelne 2 a 3 a vyjde bez zbytku, tak je to prvocislo


Offline

Užívateľ
Užívateľ
eratosthenovo sito

Registrovaný: 16.02.08
Prihlásený: 08.12.10
Príspevky: 235
Témy: 13
Príspevok NapísalOffline : 18.11.2010 21:22

Fico píše:
Drobná inšpirácia ( v c++ je ten kód na stránke trocha zložitejší, tak ak mu nerozumieš, tak kľudne prepíš kód z pascalu, syntax pascalu by mala byť každému pochopiteľná ). Ak sa aj tak nebudeš vedieť pohnúť ďalej, tak napíš.


Pre ..., to je neco strasne... Uplne zbytocne std::set<int>, strasne plytvanie pamatetou, logaritmicky cas, nove alokacie... Ten kod pisal idiot... Keby mi tak niekto napisal eratostenovo sito, tak ho vyhodim ihned... Hm, mozno to bude dobre zahratie na pohovor :)

tu mas kod, co som napisal za 3 minuty... Nepisal som komentare, lebo nie je to nic tazke, a hold, naviac sa naucis citam zdrojakov...

Kód:
/*
 * Erastonovo sito
 *
 * main.cpp
 *
 *  Created on: Nov 18, 2010
 *      Author: ado21
 */

#include <iostream>
#include <cmath>

using namespace std;

int main(void)
{
   cout << "Zadate cislo, po ake, vratane,sa maju vypisat prvocisla: ";
   int N;
   cin >> N;
   bool pole[N + 11];
   for (int i = 0; i <= N ; i++) pole[i] = true;
   for (int i = 2; i <= (int) sqrt(N); i++) {
      int k = i * i;
      while (k <= N) {
         pole[k] = false;
         k += i;
      }
   }

   for (int i = 2; i <=N; i++)
      if (pole[i]) cout << i << " ";

   cout << endl;

   return 0;
}


Taka nostagia.... naposledy som ho pisal na gymku :)







_________________
Učet je neaktívny.
Offline

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

Registrovaný: 18.11.10
Prihlásený: 04.12.10
Príspevky: 8
Témy: 2
Príspevok Napísal autor témyOffline : 18.11.2010 21:55

dik za inspiraci... je to zajimave, trosku se v tom vyznam.. neslo by to vyresit moji metodou, tnz. bez bool... a dalsi otazecka proc [N + 11]??


Offline

Užívateľ
Užívateľ
eratosthenovo sito

Registrovaný: 16.02.08
Prihlásený: 08.12.10
Príspevky: 235
Témy: 13
Príspevok NapísalOffline : 18.11.2010 22:09

sniff píše:
dik za inspiraci... je to zajimave, trosku se v tom vyznam.. neslo by to vyresit moji metodou, tnz. bez bool... a dalsi otazecka proc [N + 11]??


uprimne, tvoje som nebol za 30 sekund schopny pochopit a myslim si, ze to ani nefunguje...

+ 11 preto, lebo tam trebalo aspon + 1 (vratane N a pole sa cisluje do nuly(i ked sa to obist ale zbytocne to zneprehladny kod) a nejak do mna vzdy stacili, ze pre kazdy pripad alokovat pole o kustik vacsie (ono potom +-1 nezhodi cely program).

Islo by to aj s int, ale naco... pole bool je skutocne implemtovane tak, ze jeden prvok pola ma velkost 1 bit, kdez to jeden int ma vacsinou 32 bitov. Pride mi to trochu rozdiel :)

K tomu je este uzitocne vediet, ze indexy nie su v poli iba tak ale daju sa aj vyuzit.







_________________
Učet je neaktívny.
Offline

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

Registrovaný: 18.11.10
Prihlásený: 04.12.10
Príspevky: 8
Témy: 2
Príspevok Napísal autor témyOffline : 18.11.2010 22:23

nejde mi to zkompilovat, protoze N musi byt konstantni hodnota.. nebo spis pole[N + 11]; musi byt konstantni.. prave proto to resim pomoci ukazatele


Offline

Užívateľ
Užívateľ
eratosthenovo sito

Registrovaný: 16.02.08
Prihlásený: 08.12.10
Príspevky: 235
Témy: 13
Príspevok NapísalOffline : 18.11.2010 22:34

asi pouzivas stary alebo zvlastne nastaveny kompilator. Standarne gcc to zvlada v pohode. Ono to je iba skrateny zapis pre dynamicky alokovane pole. Technicky je nemozne vytvorit staticke pole o neznamej velkosti.







_________________
Učet je neaktívny.
Offline

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

Registrovaný: 18.11.10
Prihlásený: 04.12.10
Príspevky: 8
Témy: 2
Príspevok Napísal autor témyOffline : 18.11.2010 22:51

"Technicky je nemozne vytvorit staticke pole o neznamej velkosti." a tohle neni presne to co delas?bool pole[N + 11];


Offline

Užívateľ
Užívateľ
eratosthenovo sito

Registrovaný: 16.02.08
Prihlásený: 08.12.10
Príspevky: 235
Témy: 13
Príspevok NapísalOffline : 18.11.2010 23:49

sniff píše:
"Technicky je nemozne vytvorit staticke pole o neznamej velkosti." a tohle neni presne to co delas?bool pole[N + 11];


opakujem, ze je to iba skrateny zapis pre dynamicky alokovane pole.







_________________
Učet je neaktívny.
Offline

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

Registrovaný: 18.11.10
Prihlásený: 04.12.10
Príspevky: 8
Témy: 2
Príspevok Napísal autor témyOffline : 19.11.2010 14:30

mohl bys napsat celistvy zapis pls. ?


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


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. eratosthenovo sito - NASM

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

1

455

30.11.2011 13:45

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Síto nepropustí vodu, kladivo nerozbije displej

v Novinky

12

813

01.05.2012 12:43

Daron 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