Programiranje u C++-u - pitanja i odgovori izdvojena tema

poruka: 7.285
|
čitano: 1.702.738
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

z-trening vise ne radi zna ko neku slicnu stranicu?

lol
 
0 1 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
neznam_ime kaže...

z-trening vise ne radi zna ko neku slicnu stranicu?

Sphere online judge (SPOJ.PL), Timus online judge...

16 godina
offline
Programiranje u C++-u - pitanja i odgovori

Trebao bih par savjeta u vezi jednog programa.

Program bi trebao ispisivati broj prostih brojeva u određenom intervalu.

 

Ja sam probao napraviti program, ali uvijek mi izbacuje krivi rezultat (recimo kada zadam 1 10, umjesto 4 izbaci 12). U čemu je problem?

 

 

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{

   int p, k, i , j;
   int u = 0;

   cin >> p;
   cin >> k;

   for ( i = p; i <= k; i++)
     for ( j = 2; j <= k / 2 ; j++) {
       if ( i % j == 0) {
          u += 1; 
          }}}

       cout << u << endl;

   system("PAUSE");
   return EXIT_SUCCESS;
 }

 

P je početak intervala, a k kraj.

 

Hvala

 

Poruka je uređivana zadnji put ned 18.9.2011 1:49 (Spyware).
Moj PC  
0 1 hvala 1
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Spyware kaže...

Trebao bih par savjeta u vezi jednog programa.

Program bi trebao ispisivati broj prostih brojeva u određenom intervalu.

 

Ja sam probao napraviti program, ali uvijek mi izbacuje krivi rezultat (recimo kada zadam 1 10, umjesto 4 izbaci 12). U čemu je problem?

 

 

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{

   int p, k, i , j;
   int u = 0;

   cin >> p;
   cin >> k;

   for ( i = p; i <= k; i++)
     for ( j = 2; j <= k / 2 ; j++) {
      if ( i % j == 0) {
          u += 1; 
          }}}

       cout << u << endl;

   system("PAUSE");
   return EXIT_SUCCESS;
 }

 

P je početak intervala, a k kraj.

 

Hvala

 

Evo sam ti oznacio problem ...

All religions are the same: religion is basically guilt, with different holidays.
14 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;
bool prost(int px)
{
   if(px == 2 || px == 3) return 1;
   if(px == 1) return 0;
   for(int i = 2 ; i <= px/2 ; ++i)
     if(px % i == 0) return 0;
     return 1;
}
int main(int argc, char *argv[])
{
  int p, k;
  int u = 0;
  cin >> p;
  cin >> k;
  for (int i = p; i <= k; i++) u += prost(i);
  cout << u << endl;
  system("PAUSE");
  return EXIT_SUCCESS;
 }

 

griješiti je ljudski al je osjećaj božanski
17 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Ma program je kriv poprilicno.

U biti toliko je kriv da je tesko objasniti gdje da krenem. :)

Dakle moras se zapitati kada je broj x prost?

Kada za nijedan broj j iz intervala [2,x/2] NE vrijedi x%j==0

 

@Kkristijan, nema ti potrebe za ==1, ==2, ==3 pretpostavljam da mislis da nesto optimiziras, ali stvarno nema potrebe za tim. :)

Ako si bas zainteresiran, onda je bolje ici do korijen od x a ne do x/2.

I kada vracas nesto iz bool funckije bolje(za citati, kompu je isto) true ili false.

Poruka je uređivana zadnji put ned 18.9.2011 3:11 (Zoidberg).
 
2 0 hvala 1
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Zoidberg kaže...
@Kkristijan, nema ti potrebe za ==1, ==2, ==3 pretpostavljam da mislis da nesto optimiziras, ali stvarno nema potrebe za tim. :)

Ako si bas zainteresiran, onda je bolje ici do korijen od x a ne do x/2.

I kada vracas nesto iz bool funckije bolje(za citati, kompu je isto) true ili false.

Jos bolje, moze preskociti sve parne brojeve osim 2, jer svaki n koji je paran djeljiv je sigurno s tri razlicita djelitelja, 1, 2 i n.

Gentoo... it's like wiping your ass with silk. Or sandpaper.
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

ZADATAK: Napišite program koji će unositi brojeve sve dok se ne unese broj čiji je kvadrat simetričan broj. Program treba ispisivati koliko je parnih brojeva uneseno.

Unos: 10 5 7 11    Ispis: 1

 

Hvala unaprijed svima.

Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

zasto nebi i sam provo to je jednostavan zadatak

lol
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

dobar dan pozdravljam sve clanove foruma, naime ja sam novi medu vama i zainteresiralo me programiranje.

naime dobija sam na faksu jedan zadatak za isprogramirat ali kao sto rekoh jos sam pocetnik i donekle znam samo osnove.

treba mi vasa pomoc oko tog zadatka a zadatak glasi ovako:

 

Napisite program koji od korisnika trazi da unese znak i kad ga ovaj unese ispisuje ASCII kod unesenog znaka. Program se odvija u petlji sve dok korisnik ne unese znak 'q'.

 

eto to je zadatak nadam se da ce mi ga netko uspit rjesit tocno, hvala unaprid!

 
0 1 hvala 0
15 godina
online
Programiranje u C++-u - pitanja i odgovori

 

Evo:

 #include <iostream>

 

using namespace std;

 

int main()

{

   char a;

   do

   {

     cin>>a;

     cout<<static_cast<int>(a)<<endl;

   }

   while(a!='q');

   return 0;

}

 

 
0 0 hvala 0
14 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
Zoidberg kaže...

Ma program je kriv poprilicno.

U biti toliko je kriv da je tesko objasniti gdje da krenem. :)

Dakle moras se zapitati kada je broj x prost?

Kada za nijedan broj j iz intervala [2,x/2] NE vrijedi x%j==0

 

@Kkristijan, nema ti potrebe za ==1, ==2, ==3 pretpostavljam da mislis da nesto optimiziras, ali stvarno nema potrebe za tim. :)

Ako si bas zainteresiran, onda je bolje ici do korijen od x a ne do x/2.

I kada vracas nesto iz bool funckije bolje(za citati, kompu je isto) true ili false.

ma znam,inace se sa tim sistemom moze ici do korjena i preskakati parne ( i+= 2),a jos bi se ispred isplatilo provjeravat uvjet da je svaki prosti veci od 3 oblika 6k +/- 1

griješiti je ljudski al je osjećaj božanski
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Ne, nećemo ti ga riješiti mi - nego ćeš ga riješiti ti:

dakle:

uneseš neki znak kao char varijablu - a ispišeš njegov ascii kod - dakle ispišeš ga bez jednostrukih navodnika

i sve to u petlji while koja se izvodi uz uvjet (znak =! 'q')

Pogledaj malo ascii tablicu da bi shvatio bit zadatka:

http://www.asciitable.com/

svaka ascii vrijednost ima svoju dekadsku , hexa, oktalnu i char vrijednost

kAD želiš ispisati malo slovo a - onda ga ispišeš ovako : cout<< 'a';

kad želiš ispisati dekadsku vrijednost ascii znaka a onda ga ispisuješ ovako : cout<< a; (bez jednostrukih navodnika) - a na konzoli se ispisuje broj 97

A sad na posao - gdje zapneš - netko će uskočiti

nemoj biti gotovan - oni najprije dobiju dosta pomoći - ali brzo ih se svi zasite (i oni koji najviše žele pomoći).

 
0 0 hvala 0
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

program radi savrseno, zahvaljujem na pomoci! {#}

13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Floki kaže...

Ne, nećemo ti ga riješiti mi - nego ćeš ga riješiti ti:

dakle:

uneseš neki znak kao char varijablu - a ispišeš njegov ascii kod - dakle ispišeš ga bez jednostrukih navodnika

i sve to u petlji while koja se izvodi uz uvjet (znak =! 'q')

Pogledaj malo ascii tablicu da bi shvatio bit zadatka:

http://www.asciitable.com/

svaka ascii vrijednost ima svoju dekadsku , hexa, oktalnu i char vrijednost

kAD želiš ispisati malo slovo a - onda ga ispišeš ovako : cout<< 'a';

kad želiš ispisati dekadsku vrijednost ascii znaka a onda ga ispisuješ ovako : cout<< a; (bez jednostrukih navodnika) - a na konzoli se ispisuje broj 97

A sad na posao - gdje zapneš - netko će uskočiti

nemoj biti gotovan - oni najprije dobiju dosta pomoći - ali brzo ih se svi zasite (i oni koji najviše žele pomoći).

da u pravu si, ali san dobija ovaj zadatak na faksu kojeg nisan ima pojma rjesit pa me zanimalo koje je rjesenje. a ja da ga iden rjesavat sam ne bi ga rjesija nikad..

skinija san tutorijale s interneta i sad polako ucin nadan se da cu uspit nesto naucit bar neke osnove u dogledno vrime.

17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Bi , brzo bi ga riješio sam - 

uneseš char varjablu preko konzole

na char varijabu primjeniš cast operator int 

vrtiš while petlju dok je znak različit od q

 

moraš naučiti baratati sa char znakovima - inače će se profa sutra praviti pametan kad vas jedno 50 posto sruši na nekom jednostavnom baratanju sa char znakovima

e zato odmah nauči da je ovaj izraz:

int broj = 65 - A jednak 0

vidi zašto je to tako kako jest - da bi znao napraviti nešto - moraš znati što radiš

Poruka je uređivana zadnji put pon 19.9.2011 17:09 (Floki).
 
0 0 hvala 0
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

sta je to cast operator ako mozes pojasnit?

17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
naldo kaže...

sta je to cast operator ako mozes pojasnit?

http://www.cplusplus.com/doc/tutorial/typecasting/

Gentoo... it's like wiping your ass with silk. Or sandpaper.
17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
naldo kaže...

sta je to cast operator ako mozes pojasnit?

Sa tim operatorom  vrijednost jednog  tipa varijable prebacuješ u vrijednost drugog tipa.

npr:

int broj1= 5;

int broj2 = 3;

double kvocijent;

 

double kvocijent = (double)broj1 / broj2;

 

 

uoči ovaj cast operator double u zagradama ispred varijable broj1 - s njim smo varijablu int broj1 pretvorili u double tip varijable

to nismo radili tek tako - da bi skužio ispiši ovaj program sa i bez tog cast operatora - vidjet ćeš u čemu je razlika

 

A ovaj kolega ti je gore dao c++ verziju cast operatora - static_cast<int>(a) - a mogao je napisati i staru c verziju (int)a

obje verzije u c++ jeziku prolaze.

 

Čak i na ovom malom zadatku od tebe se traži da znaš tri stvari:

- tipove varijabli

- castanje varijabli

- while petlju

 

Zato nije baš jednostavno kako izgleda - pročitaj i teoriju - a onda vježbaj.

Poruka je uređivana zadnji put pon 19.9.2011 18:04 (Floki).
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

moram krenit od osnova nema smisla ovako od sredine pa prema kraju.Zahvaljujem na objasnjenju {#}

17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
naldo kaže...

moram krenit od osnova nema smisla ovako od sredine pa prema kraju.Zahvaljujem na objasnjenju {#}

Evo. Uzivaj. ;)

Gentoo... it's like wiping your ass with silk. Or sandpaper.
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
Floki kaže...
naldo kaže...

sta je to cast operator ako mozes pojasnit?

Sa tim operatorom jedan tip varijable prebacuješ u drugi tip

Bolje reći "s operatorom za type-castingvrijednost jednog tipa konvertira se u vrijednost drugog tipa". Zašto ne "varijable"? Zato jer to može biti i tip nekog izraza, čija se vrijednost poslije dodjeljuje nekoj varijabli. Zašto "vrijednost", a ne "tip"? Zato jer ne mijenjaš tip varijable ili nečega drugog, nego mijenjaš tip vrijednosti koju varijabla sadrži.

17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
naldo kaže...

moram krenit od osnova nema smisla ovako od sredine pa prema kraju.Zahvaljujem na objasnjenju {#}

Samo naprijed - očito moraš teoriju apslovirati sam

profe se neće očito baš oznojiti - valjda su vam dali neku literaturu po kojoj ćete raditi

Ovo ti je referentna stranica za C++:

http://www.cplusplus.com/doc/tutorial/

Imaš i tutorijale, a imaš opisanu i svaku naredbu i funkciju uz jednostavne primjere

13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

da, imamo bas loseg profesora,mislin nije los nije da ne zna ali ne zna to nama objasnit dobro u tom je najveci problem.

16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
naldo kaže...

da, imamo bas loseg profesora,mislin nije los nije da ne zna ali ne zna to nama objasnit dobro u tom je najveci problem.

Sto ti uopce radis na faksu, ti kao da ocekujes da ce profesori umjesto tebe uciti ?

Ako ne kuzis uzmi si malo vremena i savladaj pogotovo ako se radi o ovakvim tricarijama

koje se mogu izguglati za 10 min.

 

 

 

All religions are the same: religion is basically guilt, with different holidays.
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Da , @mbaksa je u pravu,

sa cast operatorom konvertiramo vrijednost jednog tipa varijable u vrijednost drugog tipa, a ne konvertiramo varijablu

 

int broj1 = 5;

int broj2 = 3;

double kvocijent;

 

kvocijent = (double)broj1 / broj2;  // dobijamo vrijednost varijable kvocijent 1.66667

kvocijent = broj1 / broj2;         // dobijamo vrijednost varijable kvocijent 1

 

Očito je da je sa cast operatorom konvertirana vrijednost varijable broj1 iz int u double tip u prvom izrazu

Da je konvertirana varijabla broj1 onda bi i u drugom izrazu vrijednost varijable kvocijent bila kao i u prvom izrazu - ali to nije slučaj

 

 

 

* ispravljeno u originalnom postu.

Poruka je uređivana zadnji put pon 19.9.2011 18:05 (Floki).
 
0 0 hvala 0
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

reka san da ne znan ama bas nista i da cu sam pokusat priko tutorijala naucit...

a tebi ako je danas los dan ili si se diga na na livu nogu lici svoje frustracije negdi drugo...pravi si drnde,nisi moga izabrat bolji nick.

17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
naldo kaže...

reka san da ne znan ama bas nista i da cu sam pokusat priko tutorijala naucit...

a tebi ako je danas los dan ili si se diga na na livu nogu lici svoje frustracije negdi drugo...pravi si drnde,nisi moga izabrat bolji nick.

ispravi me ako griješim - ali u moje vrijeme su profesori davali popis literature potrebne za učenje

što to više ne čine?

(iskreno - malo mi je čudno da student priprema ispit isključivo preko tutorijala sa net-a - pitaj ipak profu koju literaturu preporučuje.)

 

Poruka je uređivana zadnji put pon 19.9.2011 18:38 (Floki).
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
naldo kaže...

reka san da ne znan ama bas nista i da cu sam pokusat priko tutorijala naucit...

a tebi ako je danas los dan ili si se diga na na livu nogu lici svoje frustracije negdi drugo...pravi si drnde,nisi moga izabrat bolji nick.

i dobro si ga reka... a jesan ispa nepristojan prije, da ti za ispriku izguglam neki video tutorijal ?  {#}

All religions are the same: religion is basically guilt, with different holidays.
17 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Moze malo bolje pojasnjenje oko ovog konkretnog primjera:

#include <iostream>
#include <ostream>

struct demo
{
  demo()      : x_(0) { std::cout << "default constructor\n"; }
  demo(int x) : x_(x) { std::cout << "constructor(" << x << ")\n"; }
  demo(demo const& that)
  : x_(that.x_)
  {
    std::cout << "copy constructor(" << x_ << ")\n";
  }
  int x_;
};

demo addone(demo d)
{
  ++d.x_;
  return d;
}

int main()
{
  demo d1;
  demo d2(d1);
  demo d3(42);
  demo d4(addone(d3));
}

Sporan mi d4. Naime, kod mene kad pokrenem ovaj kod ispise sljedece: default constructor, copy constructor(0), constructor(42), copy constructor(42), copy constructor(43). Sve mi je jasno osim zadnja dva. Naime, ja sam ocekivao da ce ispisati samo copy constructor(43). Zanima me, zasto je ispisao i copy constructor(42)? Ja pretpostavljam da je to zato sto prvi put zove konstruktor kopije kod poziva funkcije addone, a drugi put zove konstruktor kopije kad s return vrijednoscu f-je addone inicijalizira d4? Jel sam na tragu?

Gentoo... it's like wiping your ass with silk. Or sandpaper.
 
0 0 hvala 0
E-mail:
Lozinka:
 
vrh stranice