Toon posts:

C++ priemgetallen

Pagina: 1
Acties:
  • 173 views sinds 30-01-2008

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
using namespace std;
int main() 
{
cout<<"begin"<<endl;
long int number;    //het getal te berekenen op priem
float berekening;   //het getal na de deling
long int counter;   // het nummer dat bijhoud hoever de tussenberekening is
long int gedeeld;   //het nummer dat bepaald waardoor te delen
long int gehele;    //aantal gehele gedeelde getallen
long int tussen;     //voor tussenberekening
long int nummers;   //aantal gehele nummers dat gedeeld konden geworden
number=0;
start:
     counter=0;     //counter resette
     nummers=0;     //nummers weer resette
     number=number+1;     //1tje verder
     Deel:     //het deel dat het rekene doet
          counter=counter+1;   //teller bijhouden
          gedeeld=number-number+counter;          //welk getal nu door gedeeld moet worden
          berekening=number/gedeeld;
          tussen=berekening;
          if (tussen=berekening){                    //bepalen of de deling geheel is
               nummers=nummers+1;
          }
          if (nummers<=3){               //het kan dan geen priem getal meer zijn
               goto start;
          }
          if (gedeeld<number){          //nog een keer berekene
               goto Deel;
          }
          if (nummers=2){                    //dan is het een priemgetal
               cout<<number<<endl;
               goto start;
          }
          if ( gedeeld==number){
               goto start;
          }
     }
}


ik ben een programma aan het schrijven dat priemgetallen moet weergeven
maar hij geeft steeds deze fout
code:
1
22 C:\c++\zelfgemaakte\priem.cpp [Warning] assignment to `long int' from `float '


maar deze werkt wel 8)7 8)7
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
int main() {
cout<<"begin"<<endl;
int tim;
float ik;
tim=2;
ik=5.5;
cout<<tim<<endl;
tim=ik;
cout<<tim<<endl;
cout<<ik<<endl;
cin>>tim;
}

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 23-05 18:13
Da's geen fout, maar een waarschuwing. Als het goed is, is je code gewoon gecompileerd (of 'ie ook goed werkt durf ik niet te zeggen).

Als het goed is krijg je bij het tweede programma trouwens dezelfde waarschuwing.

Verwijderd

Topicstarter
Soultaker schreef op 10 augustus 2004 @ 17:47:
Da's geen fout, maar een waarschuwing. Als het goed is, is je code gewoon gecompileerd (of 'ie ook goed werkt durf ik niet te zeggen).

Als het goed is krijg je bij het tweede programma trouwens dezelfde waarschuwing.
bedankt maar hij doet et niet
weet iemand dan wat dit is ????
code:
1
/c++/zelfgemaakte/priem.cpp C:\c++\zelfgemaakte\C At global scope:

code:
1
40 C:\c++\zelfgemaakte\priem.cpp syntax error before `}' token

Verwijderd

Topicstarter
hij doet et maar niet wat ie moet doen :( 8)7 |:(

  • BRAINLESS01
  • Registratie: April 2003
  • Laatst online: 20-05 10:39
er zit een }-haakje teveel in als je het mij vraagt... haal die laatste eens weg?

Verwijderd

Topicstarter
_BRAINLESS schreef op 10 augustus 2004 @ 17:55:
er zit een }-haakje teveel in als je het mij vraagt... haal die laatste eens weg?
klopt hat ik al ontdenkt maar nu is mijn probleem dat ie niks doet als ie begint
de enige output is begin
en dan gaat ie wel rekenene volgenstaakbeheer
maar daar houd et dan ook mee op
dus zal nog wel ergens een foutje inziten
btw bedankt iedereen voor hulp _/-\o_

  • Opi
  • Registratie: Maart 2002
  • Niet online

Opi

Buiten de opmerking van _BRAINLESS, zou er een probleem kunnen ontstaan door afrondingsfouten. Tevens moet er denk ik in regel 23 '==' ipv '=' staan.

  • akoster
  • Registratie: Januari 2001
  • Laatst online: 08:08
naast regel 23 ook in regel 32...

is het misschien niet handig om ergens aan te geven wanneer het programma moet stoppen, nu blijft het altijd door draaien en kom je niet te weten of er uberhaupt nummers / tellers opgehoogd worden.

I can see clearly now, the brain is gone...


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 14:53

NMe

Quia Ego Sic Dico.

Ehm, no offence, maar misschien is het handig als je een tutorial of beter: een boek doorneemt. Alleen al je gebruik van goto's getuigt er voor mij van dat je niet genoeg van de taal en programmeren in het algemeen weet om er al wat mee te kunnen schrijven. In plaats van goto is er bijvoorbeeld het fenomeen "lus".
Verder is GoT geen vraagbaak waar je zomaar je code dumpt en zegt "hij doet het niet". Zelfwerkzaamheid wordt gewaardeerd. :)
Syntaxerrors vallen trouwens altijd onder debuggen, en dat kun je alleen zelf. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Verwijderd schreef op 10 augustus 2004 @ 18:01:
[...]
klopt hat ik al ontdenkt maar nu is mijn probleem dat ie niks doet als ie begint
de enige output is begin
en dan gaat ie wel rekenene volgenstaakbeheer
maar daar houd et dan ook mee op
dus zal nog wel ergens een foutje inziten
btw bedankt iedereen voor hulp _/-\o_
Ge gaat die code toch nog wat verschonen hoop ik? Een van de eerste dingen die ik in het vak programmeren geleerd heb: zoek eens voor de gein "goto Dijkstra" op. (google)
"Goto statement considered harmful"
Het bepalen van het al dan niet een priemgetal zijn is overigens iets wat zou moeten lukken in 3-tal regeltjes hoor. Probeer het maar eens wat eenvoudiger aan te pakken, je zal er veel uit leren.

En om eerlijk te zijn ik snap niet veel van je "manier" waarop je dit probleem oplost.

[ Voor 7% gewijzigd door Verwijderd op 10-08-2004 18:44 ]


Verwijderd

Wat mij nog het meest verbaast is constructies als deze:
C++:
1
gedeeld=number-number+counter;


Dat lijkt voor mij sterk op "flans maar iets in elkaar en post het, dan maken ze op GoT wel mijn huiswerk voor mij"; ware het niet dat de afschuwelijke, zo te zien met opzet gemaakte taalfouten in het commentaar op zich al solliciteren naar een onvoldoende is.

[ Voor 3% gewijzigd door Verwijderd op 10-08-2004 18:45 ]


  • Nick The Heazk
  • Registratie: Maart 2004
  • Laatst online: 07-09-2024

Nick The Heazk

Zie jij er wat in?

1) Ken niets van C++
2) Je code is zoals reeds gesteld helemaal niet functioneel en dit zal leiden tot onnodige belasting van je processor. Je zou beter eerst het systeem der priemgetallen bestuderen en zo weet je dat je eigenlijk maar heel weinig moet doen om te weten of het een priemgetal is, ipv het door alles te delen. Zoek maar eens op google achter: "De zeef van Eratosthenes"
3) als ik me niet vergis (ken C++ niet) is [ tussen=berekening; ] een bepaling van de integer 'tussen' die gelijk is aan 'berekening'.
4) Vul een getal in, en ik denk dat je niet veel juists zal uitkomen

[ Voor 34% gewijzigd door Nick The Heazk op 10-08-2004 19:05 ]

Performance is a residue of good design.


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Set createPrimeSet(int upperbound) {
        Set p;
        for (int q=2; q<=upperbound; ++q) {
            p.store(q);
        }

        for (int i=2; i <= upperbound / 2; ++i) {
            for (int j=2; j <= upperbound / i; ++j) {
                if (i*j <= upperbound) p.remove(i*j);
            }
        }
    
        return p;
}

En dan mag je zelf de set erbij verzinnen; behoort ook tot de opgave toch?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Dit schiet niet op.... ga maar eerst een keer een basiscursus C++ volgen (tip: koop "The C++ Programming Language" van Bjarne Stroupstrup.

In de tussentijd dump je hier gewoon je code zonder een idee te hebben wat het doet, en daar is Programming & Webscripting niet voor bedoeld. Debuggen, en zeker basale syntaxfouten e.d., mag je zelf doen. Mocht je nog eens een probleem hebben: lees onze stickies aub, en dan vooral het gedeelte over duidelijke topictitels en de Quickstart.

Professionele website nodig?

Pagina: 1

Dit topic is gesloten.