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

poruka: 7.285
|
čitano: 1.713.104
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
TracerCPP kaže...
...

Nisam jos radio sequential file access ali namjeravam ubrzo. Zanima me sto radi ova linija Monster (int n) : health(n){}; (deklaracija klase, pod public)?
Po ovom dvotocju bih rekao da je nekakvo nasljedivanje u pitanju?

Floki kaže...
...

Hvala, to me zanimalo. Ako navecer uhvatim vremena probati cu napraviti cijeli zadatak pa cu ga staviti ovdje.
A sto se tice nasih izraza, jbg, sva literatura iz koje ucim je na engleskom.

 

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

Nije riječ o nasljeđivanju već inicijalizaciji. Gornja linija identična je ovom codu:

 

Monster (int n) {
    health = n;
}

14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Mozete pomoci jedan zadatak,da mi kazete kako se rjesava samo....

 

Pozitivne cijele brojeve nazivamo sretnim ako zadovoljavaju sledeci kriterij : Ako broj zamjenimo sa sumom kvadrata njegovig cifara i ponavljajuci taj postupak dobijemo broj 1.Brojevi koji nisu sretni nikada ne zavrse taj proces tj. proces zavrsi u petlji.

Primjer sretnog broja 19: 

1*1+9*9=82

8*8+2*2=68

6*6+8*8=100

1*1+0*0+0*0=1......

 

Vas zadatak je da za zadata dva cijela broja Ai B odredite koliko ima sretnih brojeva u opsegu od A do B,ukljucujuci i brojeve A i B.Mozete pretpostaviti da ako za neki zadati broj N<=1.000.000 ni nakon 8 izvrsenih iteracija ne dobijemo broj 1,da je taj broj N nesretan broj.

 

Primjer 1 :            

Ulaz:

1

20

Izlaz:

5

 

Sretni brojevi izmedju 1 i 20 su : 1,7,10,13,19...

 

Primjer 2 :

Ulaz:

50

100

Izlaz:

 

Sretni brojevi izmedju 50 i 100 su : 68,70,79,82,86,91,94,97,100..

http://www.bug.hr/forum/topic/softver-literatura-usluge/prodaja-knjige-hardware/103166.aspx
 
0 0 hvala 0
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Možeš to rješiti preko ovog algoritma koji koristi string varijable da bi računao kvadrate char vrijednosti na indexima string varijable.

Za pretvaranje char vrijednosti u double koristi se ascii dekadska vrijednost char znaka, a za pretvorbu double u string koristi se stringstream.

 

 

#include <iostream>
#include<string>
#include<sstream>
using namespace std;


int main()
{
    string broj;
    cin>> broj;
    double suma = 0;
    int brojac = 0;
    stringstream s;
    while(suma  != 1 && brojac != 8)
    {
       suma = 0;
       for(int i=0; i<broj.length(); i++)
       {
             suma += pow(((double)broj[i])-48, 2);
       }
       s<<  suma;
       broj = "";
       broj = s.str();
       s.str(string());
       brojac++;
    }
    if(suma == 1)
    {
       cout<< "Sretni broj!" << endl;
    }
    else
    {
       cout<< "Nije!" << endl;
    }
    return 0;
}

 
0 0 hvala 0
15 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Kako da u dev c++ napravim multi file program?

 

u tutorialu pise "In Visual Studio 2005 Express, right click on “Source Files” in the Solution Explorer window on the left, and choose Add -> New Item. Give the new file a name, and it will be added to your project."

ali kako da to izvedem u dev c++

 

Nista uspio sam

 

 

Ja sam napravio gresku u kodu.

MOARR
Poruka je uređivana zadnji put sri 20.6.2012 23:22 (GamerMaster2041).
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

@Rattner

Vidim da ti je u međuvremenu odgovoreno na većinu nedoumica vezano za <list>.Ja nešto u gužvi ovih dana a dosta i izbivao iz ZG-a pa onda samo postam ono što sam ti naveo vezano za C++11 lambdu.Pošto nije full implementirana u svim komp. napravio sam kratki prikaz na online kompajleru http://ideone.com/mS3Tx. Imaš dolje pri kraju strane opciju upload with new input pa idi na 1 ili 2. Radi pojednostavljenja , napravio sam listu integera umjesto Dragona ali vidio si da je to ionako svejedno. Bitno je da vidiš koliko možeš skratiti kod te putem anonimne funkcije automatski olakšati  čitanje istog onom tko ga želi proučiti. 

 

 

/*kompajlirano sa C++11 implementacijom*/
 
#include<iostream>
#include<list>
 
using namespace std;
 
int main()
{
 
list<int> dragonList;
dragonList = {10 , 9 , 5 , 6 , 1 , 2 , 4 , 3 , 8 , 7};
 
int AscendDescend;
cout<< "press 1 for Ascending or 2 for Descending : ";
cin>> AscendDescend;
 
// BEGIN Lambda C++11
dragonList.sort(  [AscendDescend](int a , int b) {
  switch(AscendDescend)
  {
     case 1 :
     {
        return (a < b);
        break;
     }
 
     case 2 :
     {
        return (a > b);
        break;
     }
  }
});
// END Lambda C++11 cijeli sort je sveden na
// nesto vise od 10 linija koda
 
list<int>::iterator it;
 
cout<< endl << "list : " << endl;
for(it=dragonList.begin() ; it!=dragonList.end() ; it++)
{
  cout<< *it << endl;
}
 
 return 0;
}

Poruka je uređivana zadnji put čet 21.6.2012 15:33 (nik_02).
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Dakle i C++ je dobio lambda izraze.

A to nas dovodi do anonimnih metoda, kao si ih ti upotrijebio, baš sam probao i u mom MS Visual C++ 2010 Express radi.

 

 

#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;


int main()
{
    vector<int> nizBrojeva;
    for(int i=0; i<10; i++)
    {
       nizBrojeva.push_back(i);
    }
    for(int i=0; i<10; i++)
    {
       cout<< nizBrojeva[i] << " ";
    }
    cout<< endl;

    sort(nizBrojeva.begin(), nizBrojeva.end(), [] (int i, int j) -> bool{return i>j;});

    for(int i=0; i<10; i++)
    {
       cout<< nizBrojeva[i] << " ";
    }

   
    return 0;
}

Poruka je uređivana zadnji put čet 21.6.2012 19:38 (Floki).
 
1 0 hvala 0
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Ma zapravo je lambda već dugo prisutna kroz Third party libraries (boost) ali je kroz C++11 standard postala sastavni dio jezika službeno i bit će u nadolazećim implementacijama kompajlera podržana kao core C++.

 

EDIT: @floki

baš smo nekako u isto vrijeme postali pa nadodajem da na code::blocks-u 10.05 ja importam i dalje lambdu kroz boost a na VS 2008 nisam niti probavao.

Poruka je uređivana zadnji put čet 21.6.2012 19:43 (nik_02).
15 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

#include <iostream>
#include <string>

int UserInput1(){
    using namespace std;
    int UserInput1;
    cout << "Input a number" << endl;
    cin >> UserInput1;
    return UserInput1;  
   
   
}
int UserInput2(){
    using namespace std;
    int UserInput2;
    cout << "input a number" << endl;
    cin >> UserInput2;
    return UserInput2;
}
int MOperator(){
    using namespace std;
    char MOperator;
    cout << "Input mathematical operator (+,-,/,*)" << endl;
    cin >> MOperator;
    return MOperator;
}




int CalcResult(){
    int MOperator;
    int UserInput2;
    int UserInput1;
   
    int CalcResult;
    if (MOperator== '+')
    CalcResult = UserInput1 + UserInput2;
    if(MOperator =='-')
    CalcResult = UserInput1 - UserInput2;
    if(MOperator =='*')
    CalcResult = UserInput1 * UserInput2;
    if(MOperator =='/')
    CalcResult = UserInput1 / UserInput2;
    return 0;
}

int main(){
    using namespace std;
    UserInput1();
    UserInput2();
    MOperator();
    CalcResult();
    cout << CalcResult;
    system("pause");
    return 0;
}


 

Evo kod za kalkulator koji sam pokusao napraviti

 

Nakon nekog vremena uspio sam da ga natjeram da radi(otisao sam se istusirati i svatio sam gdje je greska)

Ali ne izracunava tacno i stalno izbacuje 1 kao odgovor.

Gdje je problem?

MOARR
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
GamerMaster2041 kaže...

int CalcResult(){
    int MOperator;
    int UserInput2;
    int UserInput1;
   
    int CalcResult;
    if (MOperator== '+')
    CalcResult = UserInput1 + UserInput2;
    if(MOperator =='-')
    CalcResult = UserInput1 - UserInput2;
    if(MOperator =='*')
    CalcResult = UserInput1 * UserInput2;
    if(MOperator =='/')
    CalcResult = UserInput1 / UserInput2;
    return 0;
}

Ne znam je li može do toga biti, a vjerovatno je. Gore deklariraš MOperator kao int, ujesto kao char, jer ga tu u upitima porediš sa charovima

A i BTW gdje ti čuvaš returnane varijable?

mmm... donuts
Poruka je uređivana zadnji put čet 21.6.2012 23:25 (Hambrle).
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
GamerMaster2041 kaže...

 

    int CalcResult;
    if (MOperator== '+')
    CalcResult = UserInput1 + UserInput2;
    if(MOperator =='-')
    CalcResult = UserInput1 - UserInput2;
    if(MOperator =='*')
    CalcResult = UserInput1 * UserInput2;
    if(MOperator =='/')
    CalcResult = UserInput1 / UserInput2;
    return 0;
}


 

Evo kod za kalkulator koji sam pokusao napraviti

 

Nakon nekog vremena uspio sam da ga natjeram da radi(otisao sam se istusirati i svatio sam gdje je greska)

Ali ne izracunava tacno i stalno izbacuje 1 kao odgovor.

Gdje je problem?

Pokusaj taj dio uraditi sa Select Case...

http://www.bug.hr/forum/topic/softver-literatura-usluge/prodaja-knjige-hardware/103166.aspx
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Kao što je hambrle rekao, problem je u deklaraci varijable MOperator, koja mora biti tipa char.

Senaid
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
royalhero kaže...

Kao što je hambrle rekao, problem je u deklaraci varijable MOperator, koja mora biti tipa char.

Znam hvala

 

nego sam u zurbi ukucao int.

 

 

EDIT:opet isti problem.

 

MOARR
Poruka je uređivana zadnji put čet 21.6.2012 23:41 (GamerMaster2041).
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

U žurbi?, ne programira se na brzinu, polako, korak po korak, nemoj "se tjerati" da ti neke stvari na brzinu pređu u rutinu, polako, kasnije ti se neće lako desiti da znak deklarišeš kao cjeli broj, što on po ASCII-u i jeste, ali to je druga stvar. Samo polako i razmišljaj dok radiš.


BTW, kakvi su to uvjeti, tu se ne zna ko pije, a ko plaća, kao što je Intelovac rekao, radi sa switch-om.
switch(Moperator)
{
   case '+':
                //To Do
                break;
   case '-':
               //To Do
               break;
  default:
              cout<<"Pogresan upis"<<endl;
              break;
}

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

Skrolaj do:

The selective structure: switch.

 

Senaid
Poruka je uređivana zadnji put čet 21.6.2012 23:45 (royalhero).
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
GamerMaster2041 kaže...

Znam hvala

 

nego sam u zurbi ukucao int.

 

 

EDIT:opet isti problem.

 

Nije problem u tome što koristiš int zato što u njega ionako stane cijeli char. Problem su ti povratne vrijednosti koje nigdje ne koristiš.

 

#include <iostream>
#include <string>
#include <cstdlib>

using namespace std;

int UserInput1()
{
    int UserInput1;
    cout << "Input a number" << endl;
    cin >> UserInput1;

    return UserInput1;
}

int UserInput2()
{
    int UserInput2;
    cout << "input a number" << endl;
    cin >> UserInput2;

    return UserInput2;
}

int MOperator()
{
    char MOperator;
    cout << "Input mathematical operator (+,-,/,*)" << endl;
    cin >> MOperator;

    return MOperator;
}

int CalcResult(int UserInput1, int UserInput2, int MOperator)
{
    int CalcResult;

    if (MOperator== '+')
        CalcResult = UserInput1 + UserInput2;

    if (MOperator =='-')
        CalcResult = UserInput1 - UserInput2;

    if (MOperator =='*')
        CalcResult = UserInput1 * UserInput2;

    if (MOperator =='/')
        CalcResult = UserInput1 / UserInput2;

    return CalcResult;
}

int main()
{
    int input1 = UserInput1();
    int input2 = UserInput2();
    int m_operator = MOperator();

    cout << CalcResult(input1, input2, m_operator) << endl;
    system("pause");

    return 0;
}

 

I zašto si svugdje stavljao "using namespace std;" kad ti je to dovoljno jednom na početku?

Oscar-Mike-Golf Whiskey-Tango-Foxtrot
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...
I zašto si svugdje stavljao "using namespace std;" kad ti je to dovoljno jednom na početku?

Sam bog zna, po kakvoj "knjizi" uči?

Senaid
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Hambrle kaže...

Ne znam je li može do toga biti, a vjerovatno je. Gore deklariraš MOperator kao int, ujesto kao char, jer ga tu u upitima porediš sa charovima

Nema veze, char ide 0-255 int ide 0-4294967295 (govorim o unsigned varijablama). Oba su brojevi samo što je jedan ograničeniji.

 

Hambrle kaže...

A i BTW gdje ti čuvaš returnane varijable?

Ovo je problem.

Oscar-Mike-Golf Whiskey-Tango-Foxtrot
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Da, lik fino vrati nulu...

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

Ma zapravo je lambda već dugo prisutna kroz Third party libraries (boost) ali je kroz C++11 standard postala sastavni dio jezika službeno i bit će u nadolazećim implementacijama kompajlera podržana kao core C++.

 

EDIT: @floki

baš smo nekako u isto vrijeme postali pa nadodajem da na code::blocks-u 10.05 ja importam i dalje lambdu kroz boost a na VS 2008 nisam niti probavao.

Tako je, dostupno je kroz boost, ali je boost tako i tako svojevrsni testni poligon za neke stvari koje onda dodu u novom standardu. Nisam znao da su lambda izrazi u novom dosli, thx. ;)

C provides a programmer with more than enough rope to hang himself. C++ provides a firing squad, blindfold and last cigarette.
15 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Ok hvala.

 

Ma idem po onom tut sa learncpp.com

govore tu kao "a sta ako korisnik upise pogresan znak "

 

i u tutorialu pise da ce to kasnije objasniti.

Nista hvala.

 

A pokusao sam samostalno bez gledanja u kod na tutorialu.

 

MOARR
Poruka je uređivana zadnji put pet 22.6.2012 0:12 (GamerMaster2041).
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Mozda bi bilo bolje, ako imas viska cca 150 KN, uzeti neku knjigu, isplatit ce ti se, vjeruj mi.
Senaid
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
nik_02 kaže...

Ma zapravo je lambda već dugo prisutna kroz Third party libraries (boost) ali je kroz C++11 standard postala sastavni dio jezika službeno i bit će u nadolazećim implementacijama kompajlera podržana kao core C++.

 

EDIT: @floki

baš smo nekako u isto vrijeme postali pa nadodajem da na code::blocks-u 10.05 ja importam i dalje lambdu kroz boost a na VS 2008 nisam niti probavao.

 

 

OBAVIJEST:: Stavio jučer MinGW gcc 4.6.1 u code::blocks i lambda radi po defaultu bez boost-a.

                    Google kaže " it supports most of C++11's features ".

                    Pa ako je netko zaglavio na gcc 4.4.1 kao i ja te ga zaboravio updateati.

15 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Ok wtf

 

napravim program sve kako treba

ono test da se vidi jel znam nesto.

Uradim sve

drugi zadatak funkcije u odvojenom fajlu

uradim

onda ide kao headerfiles

ja to uradim

uklonim greske

krenem compile and run

i program se uopste ne otvori.

dole pise kao da su funkcije visestruko definisane

  multiple definition of `ReadNumber()'

 

evo jedna od gresaka

 

 

 

onda sam kopirao kod sa tutoriala

ista imena za fajlove koristio

i opet isto

 

http://www.learncpp.com/cpp-tutorial/111-comprehensive-quiz/

 

evo ovde je to

dole pod solutions pod 3

 

neznam gdje je problem

MOARR
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
GamerMaster2041 kaže...
neznam gdje je problem

U čemu radiš? Meni je sve kako treba biti.

 

Dakle napraviš projekt, i sve ove tri datoteke dodaš u projekt.

Oscar-Mike-Golf Whiskey-Tango-Foxtrot
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...
GamerMaster2041 kaže...
neznam gdje je problem

U čemu radiš? Meni je sve kako treba biti.

 

Dakle napraviš projekt, i sve ove tri datoteke dodaš u projekt.

radim u dev c++

MOARR
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...
Dakle napraviš projekt, i sve ove tri datoteke dodaš u projekt.

Ja mislim da on tu grješi, uvjek muke sa dodavanjem datoteka u projekte imaju početnici.

Senaid
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
GamerMaster2041 kaže...

radim u dev c++

File->New->Project

odaberi "empty project"

Tražit će te ime projekta, ime je svejedno, upiši što želiš.

 

Onda File->New->Source File

 

kada te pita "Add new file to the current project" odgovori "yes". I tako za svaku od 3 datoteke.

Sve datoteke spremi sa imenima koja se nalaze na stranici sa koje učiš. Kompajliraj i deri.

 

Evo i slike:

U DevCpp-u U DevCpp-u
 
U Code Blocksu U Code Blocksu
 

Oscar-Mike-Golf Whiskey-Tango-Foxtrot
Poruka je uređivana zadnji put pet 22.6.2012 23:44 (rustweaver).
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...
GamerMaster2041 kaže...

radim u dev c++

File->New->Project

odaberi "empty project"

Tražit će te ime projekta, ime je svejedno, upiši što želiš.

 

Onda File->New->Source File

 

kada te pita "Add new file to the current project" odgovori "yes". I tako 3 puta za svaku od 3 datoteke.

Sve datoteke spremi sa imenima koja se nalaze na stranici sa koje učiš. Kompajliraj i deri.

Znam vec to sa source file

koristio sam sa jednostavnijim header files.

 

Jednostavno nece

MOARR
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
GamerMaster2041 kaže...

Znam vec to sa source file

koristio sam sa jednostavnijim header files.

 

Jednostavno nece

Pogledaj slike gore što sam stavio, i prebaci mi kompletan projekt i sve source datoteke u neku arhivu pa na net da mogu skinuti i pregledati što si ti tu napravio.

Oscar-Mike-Golf Whiskey-Tango-Foxtrot
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...
GamerMaster2041 kaže...

Znam vec to sa source file

koristio sam sa jednostavnijim header files.

 

Jednostavno nece

Pogledaj slike gore što sam stavio, i prebaci mi kompletan projekt i sve source datoteke u neku arhivu pa na net da mogu skinuti i pregledati što si ti tu napravio.

nema potrebe.

Nekako sam uspio nzm kako.

Nista dmrnut cu po hvala tipci.

MOARR
E-mail:
Lozinka:
 
vrh stranice